2022-12-23 16:50:24

by Alexander Sverdlin

[permalink] [raw]
Subject: [PATCH v3 1/2] dt-bindings: iio: adc: ep93xx: Add cirrus,ep9301-adc description

Add device tree bindings for Cirrus Logic EP9301/EP9302 internal SoCs' ADC
block.

Reviewed-by: Krzysztof Kozlowski <[email protected]>
Signed-off-by: Alexander Sverdlin <[email protected]>
---
Changelog:
v2: removed clock-names property, soc node and include as Krzysztof suggested

.../bindings/iio/adc/cirrus,ep9301-adc.yaml | 47 +++++++++++++++++++
MAINTAINERS | 2 +
2 files changed, 49 insertions(+)
create mode 100644 Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml

diff --git a/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml b/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
new file mode 100644
index 000000000000..6d4fb3e1d2a2
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
@@ -0,0 +1,47 @@
+# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/iio/adc/cirrus,ep9301-adc.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Cirrus Logic EP930x internal ADC
+
+description: |
+ Cirrus Logic EP9301/EP9302 SoCs' internal ADC block.
+
+ User's manual:
+ https://cdn.embeddedts.com/resource-attachments/ts-7000_ep9301-ug.pdf
+
+maintainers:
+ - Alexander Sverdlin <[email protected]>
+
+properties:
+ compatible:
+ const: cirrus,ep9301-adc
+
+ reg:
+ maxItems: 1
+
+ clocks:
+ maxItems: 1
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+
+additionalProperties: false
+
+examples:
+ - |
+ adc: adc@80900000 {
+ compatible = "cirrus,ep9301-adc";
+ reg = <0x80900000 0x28>;
+ clocks = <&syscon 24>;
+ interrupt-parent = <&vic1>;
+ interrupts = <30>;
+ };
+...
diff --git a/MAINTAINERS b/MAINTAINERS
index 69565ac0c224..4a914d5bc2e6 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -2027,8 +2027,10 @@ M: Hartley Sweeten <[email protected]>
M: Alexander Sverdlin <[email protected]>
L: [email protected] (moderated for non-subscribers)
S: Maintained
+F: Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
F: arch/arm/mach-ep93xx/
F: arch/arm/mach-ep93xx/include/mach/
+F: drivers/iio/adc/ep93xx_adc.c

ARM/CLKDEV SUPPORT
M: Russell King <[email protected]>
--
2.39.0


2022-12-23 16:58:59

by Alexander Sverdlin

[permalink] [raw]
Subject: [PATCH v3 2/2] iio: adc: ep93xx: Add OF support

Prepare for EP93xx conversion to DT.

Signed-off-by: Alexander Sverdlin <[email protected]>
---
Changelog:
v3: Removed comma, of_match_ptr() protection and the ifdefs

drivers/iio/adc/ep93xx_adc.c | 8 ++++++++
1 file changed, 8 insertions(+)

diff --git a/drivers/iio/adc/ep93xx_adc.c b/drivers/iio/adc/ep93xx_adc.c
index fd5a9404c8dc..a35e6cead67d 100644
--- a/drivers/iio/adc/ep93xx_adc.c
+++ b/drivers/iio/adc/ep93xx_adc.c
@@ -21,6 +21,7 @@
#include <linux/module.h>
#include <linux/mutex.h>
#include <linux/platform_device.h>
+#include <linux/of.h>

/*
* This code could benefit from real HR Timers, but jiffy granularity would
@@ -227,9 +228,16 @@ static int ep93xx_adc_remove(struct platform_device *pdev)
return 0;
}

+static const struct of_device_id ep93xx_adc_of_ids[] = {
+ { .compatible = "cirrus,ep9301-adc" },
+ {}
+};
+MODULE_DEVICE_TABLE(of, ep93xx_adc_of_ids);
+
static struct platform_driver ep93xx_adc_driver = {
.driver = {
.name = "ep93xx-adc",
+ .of_match_table = ep93xx_adc_of_ids,
},
.probe = ep93xx_adc_probe,
.remove = ep93xx_adc_remove,
--
2.39.0

2022-12-30 18:24:17

by Jonathan Cameron

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] dt-bindings: iio: adc: ep93xx: Add cirrus,ep9301-adc description

On Fri, 23 Dec 2022 17:26:35 +0100
Alexander Sverdlin <[email protected]> wrote:

> Add device tree bindings for Cirrus Logic EP9301/EP9302 internal SoCs' ADC
> block.
>
> Reviewed-by: Krzysztof Kozlowski <[email protected]>
> Signed-off-by: Alexander Sverdlin <[email protected]>

Applied to the togreg branch of iio.git and pushed out as testing.

Whilst we are looking at this driver, Alexander, would you mind if we relaxed
the Kconfig dependencies to:

diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
index 46c4fc2fc534..fd1d68dce507 100644
--- a/drivers/iio/adc/Kconfig
+++ b/drivers/iio/adc/Kconfig
@@ -441,7 +441,7 @@ config ENVELOPE_DETECTOR

config EP93XX_ADC
tristate "Cirrus Logic EP93XX ADC driver"
- depends on ARCH_EP93XX
+ depends on ARCH_EP93XX || COMPILE_TEST
help
Driver for the ADC module on the EP93XX series of SoC from Cirrus Logic.
It's recommended to switch on CONFIG_HIGH_RES_TIMERS option, in this

I end up doing that locally to build test patches like this one and it doesn't
seem to cause any problems.

Jonathan

> ---
> Changelog:
> v2: removed clock-names property, soc node and include as Krzysztof suggested
>
> .../bindings/iio/adc/cirrus,ep9301-adc.yaml | 47 +++++++++++++++++++
> MAINTAINERS | 2 +
> 2 files changed, 49 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
>
> diff --git a/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml b/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
> new file mode 100644
> index 000000000000..6d4fb3e1d2a2
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
> @@ -0,0 +1,47 @@
> +# SPDX-License-Identifier: (GPL-2.0 OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/iio/adc/cirrus,ep9301-adc.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Cirrus Logic EP930x internal ADC
> +
> +description: |
> + Cirrus Logic EP9301/EP9302 SoCs' internal ADC block.
> +
> + User's manual:
> + https://cdn.embeddedts.com/resource-attachments/ts-7000_ep9301-ug.pdf
> +
> +maintainers:
> + - Alexander Sverdlin <[email protected]>
> +
> +properties:
> + compatible:
> + const: cirrus,ep9301-adc
> +
> + reg:
> + maxItems: 1
> +
> + clocks:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + adc: adc@80900000 {
> + compatible = "cirrus,ep9301-adc";
> + reg = <0x80900000 0x28>;
> + clocks = <&syscon 24>;
> + interrupt-parent = <&vic1>;
> + interrupts = <30>;
> + };
> +...
> diff --git a/MAINTAINERS b/MAINTAINERS
> index 69565ac0c224..4a914d5bc2e6 100644
> --- a/MAINTAINERS
> +++ b/MAINTAINERS
> @@ -2027,8 +2027,10 @@ M: Hartley Sweeten <[email protected]>
> M: Alexander Sverdlin <[email protected]>
> L: [email protected] (moderated for non-subscribers)
> S: Maintained
> +F: Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
> F: arch/arm/mach-ep93xx/
> F: arch/arm/mach-ep93xx/include/mach/
> +F: drivers/iio/adc/ep93xx_adc.c
>
> ARM/CLKDEV SUPPORT
> M: Russell King <[email protected]>

2022-12-30 21:09:22

by Alexander Sverdlin

[permalink] [raw]
Subject: Re: [PATCH v3 1/2] dt-bindings: iio: adc: ep93xx: Add cirrus,ep9301-adc description

Hi Jonathan,

On Fri, 2022-12-30 at 18:08 +0000, Jonathan Cameron wrote:
> On Fri, 23 Dec 2022 17:26:35 +0100
> Alexander Sverdlin <[email protected]> wrote:
>
> > Add device tree bindings for Cirrus Logic EP9301/EP9302 internal SoCs' ADC
> > block.
> >
> > Reviewed-by: Krzysztof Kozlowski <[email protected]>
> > Signed-off-by: Alexander Sverdlin <[email protected]>
>
> Applied to the togreg branch of iio.git and pushed out as testing.

Thanks!

> Whilst we are looking at this driver, Alexander, would you mind if we relaxed
> the Kconfig dependencies to:
>
> diff --git a/drivers/iio/adc/Kconfig b/drivers/iio/adc/Kconfig
> index 46c4fc2fc534..fd1d68dce507 100644
> --- a/drivers/iio/adc/Kconfig
> +++ b/drivers/iio/adc/Kconfig
> @@ -441,7 +441,7 @@ config ENVELOPE_DETECTOR
>  
>  config EP93XX_ADC
>         tristate "Cirrus Logic EP93XX ADC driver"
> -       depends on ARCH_EP93XX
> +       depends on ARCH_EP93XX || COMPILE_TEST
>         help
>           Driver for the ADC module on the EP93XX series of SoC from Cirrus Logic.
>           It's recommended to switch on CONFIG_HIGH_RES_TIMERS option, in this
>
> I end up doing that locally to build test patches like this one and it doesn't
> seem to cause any problems.

Sure, it's fine with me!

--
Alexander Sverdlin.