Contribute
Register

Dell Inspiron 7586 / I7-8565U /Intel UHD 620

Joined
Apr 14, 2019
Messages
40
Motherboard
Dell Inspiron 7586
CPU
i7-8565U
Graphics
UHD 620
Mobile Phone
Android
Oh, that sounds really great. Thank you for that tip. I will try ASAP when I’m home again with my computer.
I've got the real touchpad working now with full gesture support! I'll post details this afternoon (AEST) when I can.
 
Joined
Apr 14, 2019
Messages
40
Motherboard
Dell Inspiron 7586
CPU
i7-8565U
Graphics
UHD 620
Mobile Phone
Android
I've fixed the display brightness by using this ACPI patch! https://github.com/RehabMan/OS-X-Clover-Laptop-Config/blob/master/hotpatch/SSDT-PNLFCFL.dsl

Now, to get the touchpad working:
- Enable the GPIO controller patch in your DSDT
- Make sure the _CRS method of the touchpad (the ACPI ID can be found in the windows device manager) returns the right value (as given the the GPIO pinning guide, note that's all you need to change, you don't need to pin it)
- Replace the "If (USTP)" check with "If (One)" in your DSDT
- Make sure you use SMCBatteryManager with VirtualSMC, not FakeSMC or ACPIBatteryManager

This is now a perfect Hackbook.
 
Joined
May 1, 2019
Messages
41
Motherboard
Dell Inspiron 15 7586
CPU
i7-8565U
Graphics
UHD 620, 3840 x 2160
Mac
MacBook Pro
Mobile Phone
iOS
Oh I can‘t wait to try that. Thank you so much. Which device did you use as reference from windows device manger? Cause there a so much devices for input That nearly means the same. I’m really confused about that
 

Attachments

Joined
Jun 11, 2019
Messages
3
Motherboard
Dell Inspiron 7573 2in1
CPU
I7-8550u
Graphics
UHD620
Mobile Phone
Android
post you problem reporting zip file. I have your same laptop just 7573 version. I have 95percent stable system. just waiting for dell dw1830 wifi card to replace with stock card. hopefully I can help you since so many others have helped me as well.
Hi! @Mrgeque I have your same laptop 7573-i7 8550u too, could you share your EFI folder or clover folder? Thank you very much!
 
Last edited:
Joined
Apr 14, 2019
Messages
40
Motherboard
Dell Inspiron 7586
CPU
i7-8565U
Graphics
UHD 620
Mobile Phone
Android
Oh I can‘t wait to try that. Thank you so much. Which device did you use as reference from windows device manger? Cause there a so much devices for input That nearly means the same. I’m really confused about that
I2C-HID Gerat. Disable it and check if the touchpad stop working to make sure it's the right device.
 
Joined
May 1, 2019
Messages
41
Motherboard
Dell Inspiron 15 7586
CPU
i7-8565U
Graphics
UHD 620, 3840 x 2160
Mac
MacBook Pro
Mobile Phone
iOS
I2C-HID Gerat. Disable it and check if the touchpad stop working to make sure it's the right device.
Yes thank you for that tip. So after trying that I think my APIC ID = TPD0

The device's hexadecimal APIC pin number is : 33 so I think I have to use 0x33

This is a excerpt from my dsdt.dsl of the device section of TPDO:

Code:
Device (TPD0)
        {
            Name (HID2, Zero)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "NULL",
                    0x00, ResourceConsumer, _Y38, Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
                    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0000
                    }
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveLow, ExclusiveAndWake, ,, _Y39)
                {
                    0x00000000,
                }
            })
            CreateWordField (SBFB, \_SB.PCI0.I2C0.TPD0._Y38._ADR, BADR)  // _ADR: Address
            CreateDWordField (SBFB, \_SB.PCI0.I2C0.TPD0._Y38._SPE, SPED)  // _SPE: Speed
            CreateWordField (SBFG, 0x17, INT1)
            CreateDWordField (SBFI, \_SB.PCI0.I2C0.TPD0._Y39._INT, INT2)  // _INT: Interrupts
            Method (GTID, 1, Serialized)
            {
                If (Arg0)
                {
                    Switch (CBID)
                    {
                        Case (0x0896)
                        {
                            Return ("DELL0896")
                        }
                        Case (0x0895)
                        {
                            Return ("DELL0895")
                        }
                        Case (0x0894)
                        {
                            Return ("DELL0894")
                        }
                        Case (0x08A5)
                        {
                            Return ("DELL08A5")
                        }
                        Case (0x08A6)
                        {
                            Return ("DELL08A6")
                        }
                        Case (0x089C)
                        {
                            Return ("DELL089C")
                        }
                        Case (0x089D)
                        {
                            Return ("DELL089D")
                        }
                        Case (0x089E)
                        {
                            Return ("DELL089E")
                        }
                        Case (0x089F)
                        {
                            Return ("DELL089F")
                        }
                        Case (0x08A7)
                        {
                            Return ("DELL08A7")
                        }
                        Case (0x08A8)
                        {
                            Return ("DELL08A8")
                        }
                        Case (0x08A9)
                        {
                            Return ("DELL08A9")
                        }
                        Case (0x08BC)
                        {
                            Return ("DELL08BC")
                        }
                        Case (0x08BD)
                        {
                            Return ("DELL08BD")
                        }
                        Case (0x08C0)
                        {
                            Return ("DELL08C0")
                        }
                        Case (0x0949)
                        {
                            Return ("DELL0949")
                        }
                        Default
                        {
                            Return ("DELL0896")
                        }

                    }
                }
                Else
                {
                    Return (One)
                }
            }

            Method (_INI, 0, Serialized)  // _INI: Initialize
            {
                If (LLess (OSYS, 0x07DC))
                {
                    SRXO (GPDI, One)
                }

                Store (GNUM (GPDI), INT1)
                Store (INUM (GPDI), INT2)
                If (LEqual (TPDM, Zero))
                {
                    SHPO (GPDI, One)
                }

                If (LEqual (TPDT, One))
                {
                    Store ("SYNA2393", _HID)
                    Store (0x20, HID2)
                    Return (Zero)
                }

                If (LEqual (TPDT, 0x02))
                {
                    Store ("06CB2846", _HID)
                    Store (0x20, HID2)
                    Return (Zero)
                }

                If (LEqual (TPDT, 0x06))
                {
                    Store ("ALPS0000", _HID)
                    Store (0x20, HID2)
                    Store (0x2C, BADR)
                    Return (Zero)
                }

                If (LEqual (TPDT, 0x05))
                {
                    Store (GTID (One), _HID)
                    Store (TPDH, HID2)
                    Switch (CBID)
                    {
                        Case (0x08BC)
                        {
                            Store (0x15, BADR)
                        }
                        Case (0x08BD)
                        {
                            Store (TPDB, BADR)
                        }
                        Case (0x08C0)
                        {
                            Store (TPDB, BADR)
                        }
                        Default
                        {
                            Store (TPDB, BADR)
                        }

                    }

                    If (LEqual (TPDS, Zero))
                    {
                        Store (0x000186A0, SPED)
                    }

                    If (LEqual (TPDS, One))
                    {
                        Store (0x00061A80, SPED)
                    }

                    If (LEqual (TPDS, 0x02))
                    {
                        Store (0x000F4240, SPED)
                    }

                    Return (Zero)
                }
            }

            Name (_HID, "XXXX0000")  // _HID: Hardware ID
            Name (_CID, "PNP0C50")  // _CID: Compatible ID
            Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, HIDG))
                {
                    Return (HIDD (Arg0, Arg1, Arg2, Arg3, HID2))
                }

                If (LEqual (Arg0, TP7G))
                {
                    Return (TP7D (Arg0, Arg1, Arg2, Arg3, SBFB, SBFG))
                }

                Return (Buffer (One)
                {
                     0x00                                           
                })
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (LAnd (LNotEqual (TPDT, Zero), And (I2CN, One)))
                {
                    Return (0x0F)
                }

                Return (Zero)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If (LLess (OSYS, 0x07DC))
                {
                    Return (SBFI)
                }

                If (LEqual (TPDM, Zero))
                {
                    Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
                }

                Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFI))
            }
        }
Can you tell me how to change the _CRS to let it work, or maybe show me your patched _CRS for your device section?
Thank you so much in advance.
 
Joined
May 1, 2019
Messages
41
Motherboard
Dell Inspiron 15 7586
CPU
i7-8565U
Graphics
UHD 620, 3840 x 2160
Mac
MacBook Pro
Mobile Phone
iOS
Aaaah I can't believe, I also got it working. But there seems to be a little latency when I use the touchpad. Did you also recognize that? Is this because, we use polling mode?
 
Joined
Dec 20, 2018
Messages
280
Motherboard
Gigabyte Z370 AORUS Gaming 7
CPU
i7-8700K OC 5GHz
Graphics
GTX 1080 Ti & UHD 630
Mac
iMac, MacBook Pro
Mobile Phone
iOS
Hi! @Mrgeque I have your same laptop 7573-i7 8550u too, could you share your EFI folder or clover folder? Thank you very much!
update your hardware profile. then post your Problem Reporting Files. how far have you gotten? are you using 4k or 1080? what OS are you trying to use? if possible open a new thread
 
Joined
Dec 20, 2018
Messages
280
Motherboard
Gigabyte Z370 AORUS Gaming 7
CPU
i7-8700K OC 5GHz
Graphics
GTX 1080 Ti & UHD 630
Mac
iMac, MacBook Pro
Mobile Phone
iOS
Aaaah I can't believe, I also got it working. But there seems to be a little latency when I use the touchpad. Did you also recognize that? Is this because, we use polling mode?
what kind of latency issue are you having with trackpad?
 
Joined
Apr 14, 2019
Messages
40
Motherboard
Dell Inspiron 7586
CPU
i7-8565U
Graphics
UHD 620
Mobile Phone
Android
Yes thank you for that tip. So after trying that I think my APIC ID = TPD0

The device's hexadecimal APIC pin number is : 33 so I think I have to use 0x33

This is a excerpt from my dsdt.dsl of the device section of TPDO:

Code:
Device (TPD0)
        {
            Name (HID2, Zero)
            Name (SBFB, ResourceTemplate ()
            {
                I2cSerialBusV2 (0x0000, ControllerInitiated, 0x00061A80,
                    AddressingMode7Bit, "NULL",
                    0x00, ResourceConsumer, _Y38, Exclusive,
                    )
            })
            Name (SBFG, ResourceTemplate ()
            {
                GpioInt (Level, ActiveLow, ExclusiveAndWake, PullDefault, 0x0000,
                    "\\_SB.PCI0.GPI0", 0x00, ResourceConsumer, ,
                    )
                    {   // Pin list
                        0x0000
                    }
            })
            Name (SBFI, ResourceTemplate ()
            {
                Interrupt (ResourceConsumer, Level, ActiveLow, ExclusiveAndWake, ,, _Y39)
                {
                    0x00000000,
                }
            })
            CreateWordField (SBFB, \_SB.PCI0.I2C0.TPD0._Y38._ADR, BADR)  // _ADR: Address
            CreateDWordField (SBFB, \_SB.PCI0.I2C0.TPD0._Y38._SPE, SPED)  // _SPE: Speed
            CreateWordField (SBFG, 0x17, INT1)
            CreateDWordField (SBFI, \_SB.PCI0.I2C0.TPD0._Y39._INT, INT2)  // _INT: Interrupts
            Method (GTID, 1, Serialized)
            {
                If (Arg0)
                {
                    Switch (CBID)
                    {
                        Case (0x0896)
                        {
                            Return ("DELL0896")
                        }
                        Case (0x0895)
                        {
                            Return ("DELL0895")
                        }
                        Case (0x0894)
                        {
                            Return ("DELL0894")
                        }
                        Case (0x08A5)
                        {
                            Return ("DELL08A5")
                        }
                        Case (0x08A6)
                        {
                            Return ("DELL08A6")
                        }
                        Case (0x089C)
                        {
                            Return ("DELL089C")
                        }
                        Case (0x089D)
                        {
                            Return ("DELL089D")
                        }
                        Case (0x089E)
                        {
                            Return ("DELL089E")
                        }
                        Case (0x089F)
                        {
                            Return ("DELL089F")
                        }
                        Case (0x08A7)
                        {
                            Return ("DELL08A7")
                        }
                        Case (0x08A8)
                        {
                            Return ("DELL08A8")
                        }
                        Case (0x08A9)
                        {
                            Return ("DELL08A9")
                        }
                        Case (0x08BC)
                        {
                            Return ("DELL08BC")
                        }
                        Case (0x08BD)
                        {
                            Return ("DELL08BD")
                        }
                        Case (0x08C0)
                        {
                            Return ("DELL08C0")
                        }
                        Case (0x0949)
                        {
                            Return ("DELL0949")
                        }
                        Default
                        {
                            Return ("DELL0896")
                        }

                    }
                }
                Else
                {
                    Return (One)
                }
            }

            Method (_INI, 0, Serialized)  // _INI: Initialize
            {
                If (LLess (OSYS, 0x07DC))
                {
                    SRXO (GPDI, One)
                }

                Store (GNUM (GPDI), INT1)
                Store (INUM (GPDI), INT2)
                If (LEqual (TPDM, Zero))
                {
                    SHPO (GPDI, One)
                }

                If (LEqual (TPDT, One))
                {
                    Store ("SYNA2393", _HID)
                    Store (0x20, HID2)
                    Return (Zero)
                }

                If (LEqual (TPDT, 0x02))
                {
                    Store ("06CB2846", _HID)
                    Store (0x20, HID2)
                    Return (Zero)
                }

                If (LEqual (TPDT, 0x06))
                {
                    Store ("ALPS0000", _HID)
                    Store (0x20, HID2)
                    Store (0x2C, BADR)
                    Return (Zero)
                }

                If (LEqual (TPDT, 0x05))
                {
                    Store (GTID (One), _HID)
                    Store (TPDH, HID2)
                    Switch (CBID)
                    {
                        Case (0x08BC)
                        {
                            Store (0x15, BADR)
                        }
                        Case (0x08BD)
                        {
                            Store (TPDB, BADR)
                        }
                        Case (0x08C0)
                        {
                            Store (TPDB, BADR)
                        }
                        Default
                        {
                            Store (TPDB, BADR)
                        }

                    }

                    If (LEqual (TPDS, Zero))
                    {
                        Store (0x000186A0, SPED)
                    }

                    If (LEqual (TPDS, One))
                    {
                        Store (0x00061A80, SPED)
                    }

                    If (LEqual (TPDS, 0x02))
                    {
                        Store (0x000F4240, SPED)
                    }

                    Return (Zero)
                }
            }

            Name (_HID, "XXXX0000")  // _HID: Hardware ID
            Name (_CID, "PNP0C50")  // _CID: Compatible ID
            Name (_S0W, 0x03)  // _S0W: S0 Device Wake State
            Method (_DSM, 4, Serialized)  // _DSM: Device-Specific Method
            {
                If (LEqual (Arg0, HIDG))
                {
                    Return (HIDD (Arg0, Arg1, Arg2, Arg3, HID2))
                }

                If (LEqual (Arg0, TP7G))
                {
                    Return (TP7D (Arg0, Arg1, Arg2, Arg3, SBFB, SBFG))
                }

                Return (Buffer (One)
                {
                     0x00                                         
                })
            }

            Method (_STA, 0, NotSerialized)  // _STA: Status
            {
                If (LAnd (LNotEqual (TPDT, Zero), And (I2CN, One)))
                {
                    Return (0x0F)
                }

                Return (Zero)
            }

            Method (_CRS, 0, NotSerialized)  // _CRS: Current Resource Settings
            {
                If (LLess (OSYS, 0x07DC))
                {
                    Return (SBFI)
                }

                If (LEqual (TPDM, Zero))
                {
                    Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFG))
                }

                Return (ConcatenateResTemplate (I2CM (I2CX, BADR, SPED), SBFI))
            }
        }
Can you tell me how to change the _CRS to let it work, or maybe show me your patched _CRS for your device section?
Thank you so much in advance.
Don't change any pins (0x33 is wrong anyway), don't change anything but the _CRS method. Remove everything inside it and insert this line: Return (ConcatenateResTemplate (SBFB, SBFG))
 
Top