mbox series

[v2,0/3] HISI LPC ACPI UART support

Message ID 1525775252-239214-1-git-send-email-john.garry@huawei.com
Headers show
Series HISI LPC ACPI UART support | expand

Message

John Garry May 8, 2018, 10:27 a.m. UTC
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

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(-)

-- 
1.9.1

Comments

Andy Shevchenko May 8, 2018, 11:17 a.m. UTC | #1
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@linux.intel.com>


> 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(-)

> 


-- 
Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Intel Finland Oy
John Garry May 9, 2018, 2:48 p.m. UTC | #2
On 08/05/2018 12:17, Andy Shevchenko wrote:
> 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@linux.intel.com>


Thanks Andy!

Hi xuwei,

Unless there are any more comments, can you please pick up this series 
(with Andy's review tags) for merging through the arm soc tree?

All the best,
John

>

>> 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(-)

>>

>
Wei Xu May 11, 2018, 2:02 p.m. UTC | #3
Hi John,

On 2018/5/9 15:48, John Garry wrote:
> On 08/05/2018 12:17, Andy Shevchenko wrote:

>> 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@linux.intel.com>

> 

> Thanks Andy!

> 

> Hi xuwei,

> 

> Unless there are any more comments, can you please pick up this series (with Andy's review tags) for merging through the arm soc tree?


Thanks!
Series applied into the hisilicon driver tree.

BR,
Wei

> 

> All the best,

> John

> 

>>

>>> 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(-)

>>>

>>

> 

> 

> 

> .

>