[PATCH 23/54] dt-bindings: mfd: Convert X-Powers AC100 binding to a schema

Rob Herring robh at kernel.org
Fri Jul 23 14:54:26 PDT 2021


On Wed, Jul 21, 2021 at 04:03:53PM +0200, Maxime Ripard wrote:
> The X-Powers AC100 hybrid devices are supported by Linux thanks to its
> device tree binding.
> 
> Now that we have the DT validation in place, let's convert the device
> tree bindings for that driver over to a YAML schema.
> 
> Cc: Chen-Yu Tsai <wens at csie.org>
> Cc: Lee Jones <lee.jones at linaro.org>
> Signed-off-by: Maxime Ripard <maxime at cerno.tech>
> ---
>  .../devicetree/bindings/mfd/ac100.txt         |  50 --------
>  .../bindings/mfd/x-powers,ac100.yaml          | 113 ++++++++++++++++++
>  2 files changed, 113 insertions(+), 50 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/mfd/ac100.txt
>  create mode 100644 Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml
> 
> diff --git a/Documentation/devicetree/bindings/mfd/ac100.txt b/Documentation/devicetree/bindings/mfd/ac100.txt
> deleted file mode 100644
> index dff219f07493..000000000000
> --- a/Documentation/devicetree/bindings/mfd/ac100.txt
> +++ /dev/null
> @@ -1,50 +0,0 @@
> -X-Powers AC100 Codec/RTC IC Device Tree bindings
> -
> -AC100 is a audio codec and RTC subsystem combo IC. The 2 parts are
> -separated, including power supplies and interrupt lines, but share
> -a common register address space and host interface.
> -
> -Required properties:
> -- compatible: "x-powers,ac100"
> -- reg: The I2C slave address or RSB hardware address for the chip
> -- sub-nodes:
> -  - codec
> -    - compatible:		"x-powers,ac100-codec"
> -    - interrupts:		SoC NMI / GPIO interrupt connected to the
> -    				IRQ_AUDIO pin
> -    - #clock-cells:		Shall be 0
> -    - clock-output-names:	"4M_adda"
> -
> -    - see clock/clock-bindings.txt for common clock bindings
> -
> -  - rtc
> -    - compatible:		"x-powers,ac100-rtc"
> -    - clocks:			A phandle to the codec's "4M_adda" clock
> -    - #clock-cells:		Shall be 1
> -    - clock-output-names:	"cko1_rtc", "cko2_rtc", "cko3_rtc"
> -
> -    - see clock/clock-bindings.txt for common clock bindings
> -
> -Example:
> -
> -ac100: codec at e89 {
> -	compatible = "x-powers,ac100";
> -	reg = <0xe89>;
> -
> -	ac100_codec: codec {
> -		compatible = "x-powers,ac100-codec";
> -		interrupt-parent = <&r_pio>;
> -		interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
> -		#clock-cells = <0>;
> -		clock-output-names = "4M_adda";
> -	};
> -
> -	ac100_rtc: rtc {
> -		compatible = "x-powers,ac100-rtc";
> -		interrupt-parent = <&nmi_intc>;
> -		interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> -		clocks = <&ac100_codec>;
> -		#clock-cells = <1>;
> -		clock-output-names = "cko1_rtc", "cko2_rtc", "cko3_rtc";
> -	};
> -};
> diff --git a/Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml b/Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml
> new file mode 100644
> index 000000000000..6990765076b8
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/mfd/x-powers,ac100.yaml
> @@ -0,0 +1,113 @@
> +# SPDX-License-Identifier: GPL-2.0
> +%YAML 1.2
> +---
> +$id: "http://devicetree.org/schemas/mfd/x-powers,ac100.yaml#"
> +$schema: "http://devicetree.org/meta-schemas/core.yaml#"
> +
> +title: X-Powers AC100 Device Tree Bindings
> +
> +maintainers:
> +  - Chen-Yu Tsai <wens at csie.org>
> +
> +properties:
> +  compatible:
> +    const: x-powers,ac100
> +
> +  reg:
> +    maxItems: 1
> +
> +  codec:
> +    type: object
> +
> +    properties:
> +      "#clock-cells":
> +        const: 0
> +
> +      compatible:
> +        const: x-powers,ac100-codec
> +
> +      interrupts:
> +        maxItems: 1
> +
> +      clock-output-names:
> +        description: >
> +          Name of the 4M_adda clock exposed by the codec

maxItems: 1

> +
> +    required:
> +      - "#clock-cells"
> +      - compatible
> +      - interrupts
> +      - clock-output-names
> +
> +    additionalProperties: false
> +
> +  rtc:
> +    type: object
> +
> +    properties:
> +      "#clock-cells":
> +        const: 1
> +
> +      compatible:
> +        const: x-powers,ac100-rtc
> +
> +      interrupts:
> +        maxItems: 1
> +
> +      clocks:
> +        description: >
> +           A phandle to the codec's "4M_adda" clock

maxItems: 1

> +
> +      clock-output-names:
> +        description: >
> +          Name of the cko1, cko2 and cko3 clocks exposed by the codec

maxItems: 3

> +
> +    required:
> +      - "#clock-cells"
> +      - compatible
> +      - interrupts
> +      - clocks
> +      - clock-output-names
> +
> +    additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - codec
> +  - rtc
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    #include <dt-bindings/interrupt-controller/irq.h>
> +
> +    rsb {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        codec at e89 {
> +            compatible = "x-powers,ac100";
> +            reg = <0xe89>;
> +
> +            ac100_codec: codec {
> +                compatible = "x-powers,ac100-codec";
> +                interrupt-parent = <&r_pio>;
> +                interrupts = <0 9 IRQ_TYPE_LEVEL_LOW>; /* PL9 */
> +                #clock-cells = <0>;
> +                clock-output-names = "4M_adda";
> +            };
> +
> +            ac100_rtc: rtc {
> +                compatible = "x-powers,ac100-rtc";
> +                interrupt-parent = <&nmi_intc>;
> +                interrupts = <0 IRQ_TYPE_LEVEL_LOW>;
> +                clocks = <&ac100_codec>;
> +                #clock-cells = <1>;
> +                clock-output-names = "cko1_rtc", "cko2_rtc", "cko3_rtc";
> +            };
> +        };
> +    };
> +
> +...
> -- 
> 2.31.1
> 
> 



More information about the linux-arm-kernel mailing list