On Tue, 2018-05-08 at 18:27 +0800, John Garry wrote:
This patchset adds ACPI FW support for the UART on
the LPC bus on the Huawei D03 development board.
It also drops MFD API usage. It's not right to use MFD
APIs outside drivers/mfd. As the alternate solution, we
use platform device APIs directly.
The UART is 8250-compatible, and has the following
profile:
- IO space iotype
- no interrupt, so polling mode required
- 16550 type
Currently no platform driver exists for the UART. Indeed,
for PNP-compatible devices - like this UART - it would be
better to create a PNP device so that we may use the
existing PNP driver. Thus, we should use the 8250 PNP
driver.
However this host driver does not support PNP devices.
An RFC was sent for PNP support in [1]. However it was
deemed impractical to follow this path.
So to provide this UART support we use the 8250 generic
isa driver. For this, we need to set the UART platform
device name to match the 8250 isa driver. This means
passing the 8250 serial config in the child pdev platform
data.
1. https://lkml.org/lkml/2018/4/20/278
I'm fine with this least invasive approach. It seems it has minimum
duplication of code, which is anyway unavoidable when we are speaking of
instantiating platform devices.
FWIW,
Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
Differences:
v1 -> v2:
- drop MFD API usage and use platform device APIs
directly for ACPI support
RFC -> v1:
- drop PNP support
- use static MFD cells
- add 8250 setup
John Garry (3):
HISI LPC: Stop using MFD APIs
HISI LPC: Re-Add ACPI child enumeration support
HISI LPC: Add ACPI UART support
drivers/bus/Kconfig | 1 -
drivers/bus/hisi_lpc.c | 159 ++++++++++++++++++++++++++++++--------
-----------
2 files changed, 97 insertions(+), 63 deletions(-)