Re: GPIO Driver for Skylake-Y PCH

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 





On Fri, 14 Jun 2019 12:09 -07:00, Valdis Klētnieks <valdis.kletnieks@xxxxxx> wrote:
On Fri, 14 Jun 2019 12:01:28 -0700, you said:

> > static const struct pci_device_id pch_gpio_pcidev_id[] = {
> >  { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x8803) },
> >  { PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8014) },
> >  { PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8043) },
> >  { PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8803) },
> >  { 0, }
> > };
> > MODULE_DEVICE_TABLE(pci, pch_gpio_pcidev_id);

> It is a PCI device with 8086/9d20 IDs.

Give this patch a try, if it works I'll push it upstream for you...

diff --git a/drivers/gpio/gpio-pch.c b/drivers/gpio/gpio-pch.c
index 1d99293096f2..19884b5b2a74 100644
--- a/drivers/gpio/gpio-pch.c
+++ b/drivers/gpio/gpio-pch.c
@@ -439,6 +439,7 @@ static SIMPLE_DEV_PM_OPS(pch_gpio_pm_ops, pch_gpio_suspend, pch_gpio_resume);

static const struct pci_device_id pch_gpio_pcidev_id[] = {
{ PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x8803) },
+ { PCI_DEVICE(PCI_VENDOR_ID_INTEL, 0x9d20) },
{ PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8014) },
{ PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8043) },
{ PCI_DEVICE(PCI_VENDOR_ID_ROHM, 0x8803) },



I did try this. It did not enumerate.
There is one little detail. This device is hidden by default in motherboard FW. However, I manually un-hide it before trying to enumerate the device.

gpio-pch driver's patched as you described, built out-of-tree and loaded. Then, I un-hide the device and rescan the bus:

# echo 1 > /sys/bus/pcie/rescan




On Fri, 14 Jun 2019 12:13 -07:00, Bjørn Mork <bjorn@xxxxxxx> wrote:
> "Valdis Klētnieks" <valdis.kletnieks@xxxxxx> writes:
>
> > Though I'm having a hard time aligning that with "D31:F2". Are you confusing
> > a PCI address with a PCI ID, or is this on a non-PCI bus?
>
> "D31:F2" is device 31, function 2. We're used to see this as "1f.2".
>
> The question is really: Is there such a device in the system? And if so:
> What's the ID? That's easy to find out:
>
>   lspci -vvvnns 0:1f.2
>

Device is indeed there:
lspci -vvvnns 1f.1
00:1f.1 Memory controller [0580]: Intel Corporation Device [8086:9d20] (rev 21)
        Subsystem: Gigabyte Technology Co., Ltd Device [1458:1000]
        Control: I/O- Mem+ BusMaster+ SpecCycle- MemWINV- VGASnoop- ParErr- Stepping- SERR- FastB2B- DisINTx-
        Status: Cap- 66MHz- UDF- FastB2B- ParErr- DEVSEL=fast >TAbort- <TAbort- <MAbort- >SERR- <PERR- INTx-
        Latency: 0
        Region 0: Memory at 7d000000 (64-bit, non-prefetchable) [size=16M]


ps. I misstyped device address in my original post, it is supposed to be function 1 not 2: d31:f1.
_______________________________________________
Kernelnewbies mailing list
Kernelnewbies@xxxxxxxxxxxxxxxxx
https://lists.kernelnewbies.org/mailman/listinfo/kernelnewbies

[Index of Archives]     [Newbies FAQ]     [Linux Kernel Mentors]     [Linux Kernel Development]     [IETF Annouce]     [Git]     [Networking]     [Security]     [Bugtraq]     [Yosemite]     [MIPS Linux]     [ARM Linux]     [Linux RAID]     [Linux SCSI]     [Linux ACPI]

  Powered by Linux