Add device tree bindings for Cirrus Logic EP9301/EP9302 internal SoCs' ADC
block.
Signed-off-by: Alexander Sverdlin <[email protected]>
---
.../bindings/iio/adc/cirrus,ep9301-adc.yaml | 58 +++++++++++++++++++
MAINTAINERS | 2 +
2 files changed, 60 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..d0fd24d1be04
--- /dev/null
+++ b/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
@@ -0,0 +1,58 @@
+# 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
+
+ clock-names:
+ const: ep93xx-adc
+
+ interrupts:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+
+additionalProperties: false
+
+examples:
+ - |
+ #include <dt-bindings/clock/cirrus,ep93xx-clock.h>
+ soc {
+ #address-cells = <1>;
+ #size-cells = <1>;
+
+ adc: adc@80900000 {
+ compatible = "cirrus,ep9301-adc";
+ reg = <0x80900000 0x28>;
+ clocks = <&syscon EP93XX_CLK_ADC>;
+ clock-names = "ep93xx-adc";
+ 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.37.3
On 14/12/2022 23:20, Alexander Sverdlin wrote:
> Add device tree bindings for Cirrus Logic EP9301/EP9302 internal SoCs' ADC
> block.
>
> Signed-off-by: Alexander Sverdlin <[email protected]>
> ---
> .../bindings/iio/adc/cirrus,ep9301-adc.yaml | 58 +++++++++++++++++++
> MAINTAINERS | 2 +
> 2 files changed, 60 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..d0fd24d1be04
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
> @@ -0,0 +1,58 @@
> +# 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
> +
> + clock-names:
> + const: ep93xx-adc
One entry with same name as device is not really useful, so maybe just
drop it?
> +
> + interrupts:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - clock-names
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/cirrus,ep93xx-clock.h>
> + soc {
> + #address-cells = <1>;
> + #size-cells = <1>;
I think you do not need the soc node as examples are built with
address/size-cells=1
Best regards,
Krzysztof
On Wed, 14 Dec 2022 23:20:23 +0100, Alexander Sverdlin wrote:
> Add device tree bindings for Cirrus Logic EP9301/EP9302 internal SoCs' ADC
> block.
>
> Signed-off-by: Alexander Sverdlin <[email protected]>
> ---
> .../bindings/iio/adc/cirrus,ep9301-adc.yaml | 58 +++++++++++++++++++
> MAINTAINERS | 2 +
> 2 files changed, 60 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
>
My bot found errors running 'make DT_CHECKER_FLAGS=-m dt_binding_check'
on your patch (DT_CHECKER_FLAGS is new in v5.13):
yamllint warnings/errors:
dtschema/dtc warnings/errors:
Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.example.dts:21:18: fatal error: dt-bindings/clock/cirrus,ep93xx-clock.h: No such file or directory
21 | #include <dt-bindings/clock/cirrus,ep93xx-clock.h>
| ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
compilation terminated.
make[1]: *** [scripts/Makefile.lib:406: Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.example.dtb] Error 1
make[1]: *** Waiting for unfinished jobs....
make: *** [Makefile:1492: dt_binding_check] Error 2
doc reference errors (make refcheckdocs):
See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/[email protected]
The base for the series is generally the latest rc1. A different dependency
should be noted in *this* patch.
If you already ran 'make dt_binding_check' and didn't see the above
error(s), then make sure 'yamllint' is installed and dt-schema is up to
date:
pip3 install dtschema --upgrade
Please check and re-submit after running the above command yourself. Note
that DT_SCHEMA_FILES can be set to your schema file to speed up checking
your schema. However, it must be unset to test all examples with your schema.
On Wed, Dec 14, 2022 at 11:20:23PM +0100, Alexander Sverdlin wrote:
> Add device tree bindings for Cirrus Logic EP9301/EP9302 internal SoCs' ADC
> block.
>
> Signed-off-by: Alexander Sverdlin <[email protected]>
> ---
> .../bindings/iio/adc/cirrus,ep9301-adc.yaml | 58 +++++++++++++++++++
> MAINTAINERS | 2 +
> 2 files changed, 60 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..d0fd24d1be04
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/iio/adc/cirrus,ep9301-adc.yaml
> @@ -0,0 +1,58 @@
> +# 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
> +
> + clock-names:
> + const: ep93xx-adc
Weird name for a clock. Generally is signal name or what it
controls (e.g. bus, core, etc.). Perhaps just drop it.
> +
> + interrupts:
> + maxItems: 1
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - clock-names
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/cirrus,ep93xx-clock.h>
> + soc {
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + adc: adc@80900000 {
> + compatible = "cirrus,ep9301-adc";
> + reg = <0x80900000 0x28>;
> + clocks = <&syscon EP93XX_CLK_ADC>;
> + clock-names = "ep93xx-adc";
> + 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.37.3
>
>
Thanks Krzysztof, Rob,
I'll incorporate your comments into the next version, but...
On Thu, 2022-12-15 at 10:18 -0600, Rob Herring wrote:
> > + clock-names:
> > + const: ep93xx-adc
>
> Weird name for a clock. Generally is signal name or what it
> controls (e.g. bus, core, etc.). Perhaps just drop it.
>
> > +
> > + interrupts:
> > + maxItems: 1
> > +
> > +required:
> > + - compatible
> > + - reg
> > + - clocks
> > + - clock-names
> > +
> > +additionalProperties: false
> > +
> > +examples:
> > + - |
> > + #include <dt-bindings/clock/cirrus,ep93xx-clock.h>
your robot was right, this dependency is missing, I thought I can prepare
the ADC driver in advance, but seems it has to go together with the whole
DT conversion of the EP93xx series.
--
Alexander Sverdlin.
On 15/12/2022 17:25, Alexander Sverdlin wrote:
>>> +
>>> +examples:
>>> + - |
>>> + #include <dt-bindings/clock/cirrus,ep93xx-clock.h>
>
> your robot was right, this dependency is missing, I thought I can prepare
> the ADC driver in advance, but seems it has to go together with the whole
> DT conversion of the EP93xx series.
You can hard-code a number in the binding example, to drop dependency on
the header.
Best regards,
Krzysztof