On Thu, Nov 05, 2020 at 06:09:25PM +0200, Andy Shevchenko wrote: > On Thu, Nov 05, 2020 at 03:54:32PM +0000, Flavio Suligoi wrote: > > > > > > > In one of our boards we have an add-on PCI board, with a PCI > > > serial > > > > > device > > > > > > > Exar XR17V352. This device also contains 16 gpios. > > > > > > > The exar device drivers work good, both the "8250_exar" and the > > > > > "gpio_exar", and > > > > > > > I can manage the exar's gpios correctly. > > > > > > > The problem is how to assign the gpio-line-names property to a PCI > > > > > gpio > > > > > > > expanders like this. > > > > > > > > > > > > > > I tried adding a new device in my ACPI configuration, as: > > > > > > > > > > > > > > Device (EXAR) > > > > > > > { > > > > > > > Name (_HID, "13A80352") > > > > > > > > > > If this is PCI device then you need to have _ADR here instead of _HID. > > > > > > > > the problem is that the parent bus of this device is not declared in any > > > ACPI table. > > > > The exar chip is on the bus 7 : > > > > > > > > 07:00.0 Serial controller: Exar Corp. XR17V3521 Dual PCIe UART (rev 03) > > > > > > > > and in the _ADR object you can specify device and function only. > > > > How can I specify the parent bus? It is not simple … > > > > The lspci output is the following: > > > > > > The parent is the root port the device is connected to and I'm pretty > > > sure it exists in the namespace as this seems to be Intel hardware. If > > > you run 'lspci -t' it shows you the root port. > > > > > > The _ADR should be 0 for this one. > > > > Unfortunately there is bridge in the middle: > > > > root@debian:~# lspci -t > > -[0000:00]-+-00.0 > > +-02.0 > > +-0e.0 > > +-0f.0 > > +-12.0 > > +-13.0-[01]----00.0 > > +-13.1-[02]----00.0 > > +-13.2-[03]-- > > +-14.0-[04]----00.0 > > +-14.1-[05-09]----00.0-[06-09]--+-01.0-[07]----00.0 <-- Exar (bus 7, dev 0, funct 0) > > | +-02.0-[08]----00.0 > > | \-03.0-[09]-- > > +-15.0 > > +-16.0 > > +-16.1 > > +-19.0 > > +-19.1 > > +-19.2 > > +-1f.0 > > \-1f.1 > > root@debian:~# > > > > My changes in the ACPI: > > > > Scope (_SB.PCI0) { > > Device (EXAR) > > { > > Name (_ADR, 0x0000) > > _ADR should represent BDF (Bus:Device.Function) > > Something like 0x07000000 Per documentation: "High word–Device #, Low word–Function #. (for example, device 3, function 2 is 0x00030002). To refer to all the functions on a device #, use a function number of FFFF)." It seems it doesn't describe where bus is going. Maybe Mika can help here. > > .... > > > > but it doesn't work, because of the bridge. -- With Best Regards, Andy Shevchenko