2022-12-14 22:39:15

by Alexander Sverdlin

[permalink] [raw]
Subject: [PATCH 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.

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


2022-12-15 08:51:37

by Krzysztof Kozlowski

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

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

2022-12-15 13:43:11

by Rob Herring

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


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.

2022-12-15 16:23:31

by Rob Herring

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

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

2022-12-15 16:53:51

by Alexander Sverdlin

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

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.

2022-12-16 12:00:41

by Krzysztof Kozlowski

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

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