2022-05-02 23:56:45

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2] hwmon: (sun4i-lradc) Add driver for LRADC found on Allwinner A13/A20 SoC

On 5/2/22 04:00, Maxime Ripard wrote:
> Hi,
>
> On Thu, Apr 28, 2022 at 09:09:03PM +0000, Ruslan Zalata wrote:
>> Some Allwinner SoCs like A13, A20 or T2 are equipped with two-channel
>> low rate (6 bit) ADC that is often used for extra keys. There's a driver
>> for that already implementing standard input device, but it has these
>> limitations: 1) it cannot be used for general ADC data equisition, and
>> 2) it uses only one LRADC channel of two available.
>>
>> This driver provides basic hwmon interface to both channels of LRADC on
>> such Allwinner SoCs.
>>
>> Signed-off-by: Ruslan Zalata <[email protected]>
>> ---
>> MAINTAINERS | 6 +
>> drivers/hwmon/Kconfig | 13 ++
>> drivers/hwmon/Makefile | 1 +
>> drivers/hwmon/sun4i-lradc-hwmon.c | 280 ++++++++++++++++++++++++++++++
>> 4 files changed, 300 insertions(+)
>> create mode 100644 drivers/hwmon/sun4i-lradc-hwmon.c
>>
>> diff --git a/MAINTAINERS b/MAINTAINERS
>> index 5e8c2f61176..d9c71e94133 100644
>> --- a/MAINTAINERS
>> +++ b/MAINTAINERS
>> @@ -18861,6 +18861,12 @@ S: Maintained
>> F: Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
>> F: drivers/input/keyboard/sun4i-lradc-keys.c
>>
>> +SUN4I LOW RES ADC HWMON DRIVER
>> +M: Ruslan Zalata <[email protected]>
>> +L: [email protected]
>> +S: Maintained
>> +F: drivers/hwmon/sun4i-lradc-hwmon.c
>> +
>> SUNDANCE NETWORK DRIVER
>> M: Denis Kirjanov <[email protected]>
>> L: [email protected]
>> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
>> index 68a8a27ab3b..86776488a81 100644
>> --- a/drivers/hwmon/Kconfig
>> +++ b/drivers/hwmon/Kconfig
>> @@ -1691,6 +1691,19 @@ config SENSORS_SIS5595
>> This driver can also be built as a module. If so, the module
>> will be called sis5595.
>>
>> +config SENSORS_SUN4I_LRADC
>> + tristate "Allwinner A13/A20 LRADC hwmon"
>> + depends on ARCH_SUNXI && !KEYBOARD_SUN4I_LRADC
>> + help
>> + Say y here to support the LRADC found in Allwinner A13/A20 SoCs.
>> + Both channels are supported.
>> +
>> + This driver can also be built as module. If so, the module
>> + will be called sun4i-lradc-hwmon.
>> +
>> + This option is not compatible with KEYBOARD_SUN4I_LRADC, one
>> + of these must be used at a time.
>
> How do you plan on enforcing that?
>
depends on ARCH_SUNXI && !KEYBOARD_SUN4I_LRADC
^^^^^^^^^^^^^^^^^^^^^

> I guess a better path forward would be to either register an hwmon
> device in the original driver, or convert that driver to iio and use
> iio-hwmon.
>
Both is fine with me.

Guenter


2022-05-03 00:08:28

by Maxime Ripard

[permalink] [raw]
Subject: Re: [PATCH v2] hwmon: (sun4i-lradc) Add driver for LRADC found on Allwinner A13/A20 SoC

On Mon, May 02, 2022 at 06:31:56AM -0700, Guenter Roeck wrote:
> On 5/2/22 04:00, Maxime Ripard wrote:
> > Hi,
> >
> > On Thu, Apr 28, 2022 at 09:09:03PM +0000, Ruslan Zalata wrote:
> > > Some Allwinner SoCs like A13, A20 or T2 are equipped with two-channel
> > > low rate (6 bit) ADC that is often used for extra keys. There's a driver
> > > for that already implementing standard input device, but it has these
> > > limitations: 1) it cannot be used for general ADC data equisition, and
> > > 2) it uses only one LRADC channel of two available.
> > >
> > > This driver provides basic hwmon interface to both channels of LRADC on
> > > such Allwinner SoCs.
> > >
> > > Signed-off-by: Ruslan Zalata <[email protected]>
> > > ---
> > > MAINTAINERS | 6 +
> > > drivers/hwmon/Kconfig | 13 ++
> > > drivers/hwmon/Makefile | 1 +
> > > drivers/hwmon/sun4i-lradc-hwmon.c | 280 ++++++++++++++++++++++++++++++
> > > 4 files changed, 300 insertions(+)
> > > create mode 100644 drivers/hwmon/sun4i-lradc-hwmon.c
> > >
> > > diff --git a/MAINTAINERS b/MAINTAINERS
> > > index 5e8c2f61176..d9c71e94133 100644
> > > --- a/MAINTAINERS
> > > +++ b/MAINTAINERS
> > > @@ -18861,6 +18861,12 @@ S: Maintained
> > > F: Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
> > > F: drivers/input/keyboard/sun4i-lradc-keys.c
> > > +SUN4I LOW RES ADC HWMON DRIVER
> > > +M: Ruslan Zalata <[email protected]>
> > > +L: [email protected]
> > > +S: Maintained
> > > +F: drivers/hwmon/sun4i-lradc-hwmon.c
> > > +
> > > SUNDANCE NETWORK DRIVER
> > > M: Denis Kirjanov <[email protected]>
> > > L: [email protected]
> > > diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
> > > index 68a8a27ab3b..86776488a81 100644
> > > --- a/drivers/hwmon/Kconfig
> > > +++ b/drivers/hwmon/Kconfig
> > > @@ -1691,6 +1691,19 @@ config SENSORS_SIS5595
> > > This driver can also be built as a module. If so, the module
> > > will be called sis5595.
> > > +config SENSORS_SUN4I_LRADC
> > > + tristate "Allwinner A13/A20 LRADC hwmon"
> > > + depends on ARCH_SUNXI && !KEYBOARD_SUN4I_LRADC
> > > + help
> > > + Say y here to support the LRADC found in Allwinner A13/A20 SoCs.
> > > + Both channels are supported.
> > > +
> > > + This driver can also be built as module. If so, the module
> > > + will be called sun4i-lradc-hwmon.
> > > +
> > > + This option is not compatible with KEYBOARD_SUN4I_LRADC, one
> > > + of these must be used at a time.
> >
> > How do you plan on enforcing that?
> >
> depends on ARCH_SUNXI && !KEYBOARD_SUN4I_LRADC

Right, but that just doesn't fly for any generic distro / build-system.

Maxime


Attachments:
(No filename) (2.72 kB)
signature.asc (235.00 B)
Download all attachments

2022-05-03 00:20:25

by Guenter Roeck

[permalink] [raw]
Subject: Re: [PATCH v2] hwmon: (sun4i-lradc) Add driver for LRADC found on Allwinner A13/A20 SoC

On 5/2/22 06:39, Maxime Ripard wrote:
> On Mon, May 02, 2022 at 06:31:56AM -0700, Guenter Roeck wrote:
>> On 5/2/22 04:00, Maxime Ripard wrote:
>>> Hi,
>>>
>>> On Thu, Apr 28, 2022 at 09:09:03PM +0000, Ruslan Zalata wrote:
>>>> Some Allwinner SoCs like A13, A20 or T2 are equipped with two-channel
>>>> low rate (6 bit) ADC that is often used for extra keys. There's a driver
>>>> for that already implementing standard input device, but it has these
>>>> limitations: 1) it cannot be used for general ADC data equisition, and
>>>> 2) it uses only one LRADC channel of two available.
>>>>
>>>> This driver provides basic hwmon interface to both channels of LRADC on
>>>> such Allwinner SoCs.
>>>>
>>>> Signed-off-by: Ruslan Zalata <[email protected]>
>>>> ---
>>>> MAINTAINERS | 6 +
>>>> drivers/hwmon/Kconfig | 13 ++
>>>> drivers/hwmon/Makefile | 1 +
>>>> drivers/hwmon/sun4i-lradc-hwmon.c | 280 ++++++++++++++++++++++++++++++
>>>> 4 files changed, 300 insertions(+)
>>>> create mode 100644 drivers/hwmon/sun4i-lradc-hwmon.c
>>>>
>>>> diff --git a/MAINTAINERS b/MAINTAINERS
>>>> index 5e8c2f61176..d9c71e94133 100644
>>>> --- a/MAINTAINERS
>>>> +++ b/MAINTAINERS
>>>> @@ -18861,6 +18861,12 @@ S: Maintained
>>>> F: Documentation/devicetree/bindings/input/allwinner,sun4i-a10-lradc-keys.yaml
>>>> F: drivers/input/keyboard/sun4i-lradc-keys.c
>>>> +SUN4I LOW RES ADC HWMON DRIVER
>>>> +M: Ruslan Zalata <[email protected]>
>>>> +L: [email protected]
>>>> +S: Maintained
>>>> +F: drivers/hwmon/sun4i-lradc-hwmon.c
>>>> +
>>>> SUNDANCE NETWORK DRIVER
>>>> M: Denis Kirjanov <[email protected]>
>>>> L: [email protected]
>>>> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig
>>>> index 68a8a27ab3b..86776488a81 100644
>>>> --- a/drivers/hwmon/Kconfig
>>>> +++ b/drivers/hwmon/Kconfig
>>>> @@ -1691,6 +1691,19 @@ config SENSORS_SIS5595
>>>> This driver can also be built as a module. If so, the module
>>>> will be called sis5595.
>>>> +config SENSORS_SUN4I_LRADC
>>>> + tristate "Allwinner A13/A20 LRADC hwmon"
>>>> + depends on ARCH_SUNXI && !KEYBOARD_SUN4I_LRADC
>>>> + help
>>>> + Say y here to support the LRADC found in Allwinner A13/A20 SoCs.
>>>> + Both channels are supported.
>>>> +
>>>> + This driver can also be built as module. If so, the module
>>>> + will be called sun4i-lradc-hwmon.
>>>> +
>>>> + This option is not compatible with KEYBOARD_SUN4I_LRADC, one
>>>> + of these must be used at a time.
>>>
>>> How do you plan on enforcing that?
>>>
>> depends on ARCH_SUNXI && !KEYBOARD_SUN4I_LRADC
>
> Right, but that just doesn't fly for any generic distro / build-system.
>

That is correct. Alternative might be to use devicetree bindings, which
presumably will be needed anyway to tell the driver(s) what to bind to.

Guenter