Re: [RFC PATCH 0/2] serial: 8250_dw: IO space + polling mode support

From: Andy Shevchenko
Date: Mon Feb 26 2018 - 07:21:22 EST


On Mon, 2018-02-26 at 11:56 +0000, John Garry wrote:
> > > > > > Why you can't do properly in ACPI?
> > > >
> > > > No answer here either.
> > > >
> > > > Sorry, but with this level of communication it's no go for the
> > > > series.
> > > >
> > >
> > > Sorry if my answers did not tell you want you want to know.
> > >
> > > My point was that the 8250_pnp driver would be used for a
> > > pnp_device,
> > > but we are creating a platform device for this UART slave so would
> > > require a platform device driver, that which 8250_dw.c is. But I
> > > will
> > > check on pnp device support.
>
> Hi Andy,
>
> > Perhaps it's not visible, though below is a description of the
> > drivers
> > we have:
> >
> > 8250_dw - OF/ACPI driver for Synopsys DW (+ DW DMA)
> > 8250_lpss - PCI driver for Synopsys DW (+ DW DMA)
> > 8250_of - generic 8250 compatible driver for OF
> > 8250_pci - generic 8250 compatible driver for PCI
> > 8250_pnp - generic 8250 compatible driver for ACPI
> >
> > 8250_* (except core parts) - custom glue drivers per some IPs
> >
> > By description you gave your driver fits 8250_pnp if ACPI tables
> > crafted
> > properly.
> >
> > Share the ACPI excerpt and we can discuss further how to improve
> > them.
> >
>
> For a bit of background, MFD support was discussed here initially:
> https://lkml.org/lkml/2017/6/13/796
>
> Here is the ACPI table:
> Scope(_SB) {
> Device (LPC0) {
> Name (_HID, "HISI0191") // HiSi LPC
> Name (_CRS, ResourceTemplate () {
> Memory32Fixed (ReadWrite, 0xa01b0000, 0x1000)
> })
> }
>
> Device (LPC0.CON0) {
> Name (_HID, "HISI1031")
> // Name (_CID, "PNP0501") // cannot support PNP
> Name (LORS, ResourceTemplate() {
> QWordIO (
> ResourceConsumer,
> MinNotFixed, // _MIF
> MaxNotFixed, // _MAF
> PosDecode,
> EntireRange,
> 0x0, // _GRA
> 0x2F8, // _MIN

> 0x3fff, // _MAX

Shouldn't be 0x2ff ?

> 0x0, // _TRA
> 0x08, // _LEN
> , ,
> IO02
>
>
> The latest framework changes and host driver patchset are here:
> https://lkml.org/lkml/2018/2/19/465
>

It still doesn't explain impediments you have.

Just few approaches comes to my mind:
- move UART outside of parent device
- register PNP driver manually for that cell instead of MFD
- use serial8250 platform driver (I totally forgot that we have a
generic platform driver, so, it might be what you need to use at the
end)

--
Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Intel Finland Oy