Re: How to add the "gpio-line-names" property in a PCI gpio expander

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

 



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





[Index of Archives]     [Linux IBM ACPI]     [Linux Power Management]     [Linux Kernel]     [Linux Laptop]     [Kernel Newbies]     [Share Photos]     [Security]     [Netfilter]     [Bugtraq]     [Yosemite News]     [MIPS Linux]     [ARM Linux]     [Linux Security]     [Linux RAID]     [Samba]     [Video 4 Linux]     [Device Mapper]     [Linux Resources]

  Powered by Linux