[PATCH 1/1] dt-bindings: clock: meson: Convert axg-audio-clkc to YAML format

Jerome Brunet jbrunet at baylibre.com
Tue Aug 8 23:58:23 PDT 2023


On Wed 09 Aug 2023 at 08:38, Krzysztof Kozlowski <krzysztof.kozlowski at linaro.org> wrote:

> On 08/08/2023 21:48, Alexander Stein wrote:
>> Convert Amlogic AXG Audio Clock Controller binding to yaml.
>> 
>> Signed-off-by: Alexander Stein <alexander.stein at mailbox.org>
>> ---
>> As it is the same directory I picked the same maintainers as 
>> Documentation/devicetree/bindings/clock/amlogic,a1-peripherals-clkc.yaml.
>> 
>> I'm not 100% sure about the optional clocks constraints. As mentioned in
>> the .txt version only pclk is mandatory, others are optional.
>> 
>>  .../bindings/clock/amlogic,axg-audio-clkc.txt |  59 --------
>>  .../clock/amlogic,axg-audio-clkc.yaml         | 136 ++++++++++++++++++
>>  2 files changed, 136 insertions(+), 59 deletions(-)
>>  delete mode 100644 Documentation/devicetree/bindings/clock/amlogic,axg-audio-clkc.txt
>>  create mode 100644 Documentation/devicetree/bindings/clock/amlogic,axg-audio-clkc.yaml
>> 
>> diff --git a/Documentation/devicetree/bindings/clock/amlogic,axg-audio-clkc.txt b/Documentation/devicetree/bindings/clock/amlogic,axg-audio-clkc.txt
>> deleted file mode 100644
>> index 3a8948c04bc9..000000000000
>> --- a/Documentation/devicetree/bindings/clock/amlogic,axg-audio-clkc.txt
>> +++ /dev/null
>> @@ -1,59 +0,0 @@
>> -* Amlogic AXG Audio Clock Controllers
>> -
>> -The Amlogic AXG audio clock controller generates and supplies clock to the
>> -other elements of the audio subsystem, such as fifos, i2s, spdif and pdm
>> -devices.
>> -
>> -Required Properties:
>> -
>> -- compatible	: should be "amlogic,axg-audio-clkc" for the A113X and A113D,
>> -		  "amlogic,g12a-audio-clkc" for G12A,
>> -		  "amlogic,sm1-audio-clkc" for S905X3.
>> -- reg		: physical base address of the clock controller and length of
>> -		  memory mapped region.
>> -- clocks	: a list of phandle + clock-specifier pairs for the clocks listed
>> -		  in clock-names.
>> -- clock-names	: must contain the following:
>> -		  * "pclk" - Main peripheral bus clock
>> -		  may contain the following:
>> -		  * "mst_in[0-7]" - 8 input plls to generate clock signals
>> -		  * "slv_sclk[0-9]" - 10 slave bit clocks provided by external
>> -				      components.
>> -		  * "slv_lrclk[0-9]" - 10 slave sample clocks provided by external
>> -				       components.
>> -- resets	: phandle of the internal reset line
>> -- #clock-cells	: should be 1.
>> -- #reset-cells  : should be 1 on the g12a (and following) soc family
>> -
>> -Each clock is assigned an identifier and client nodes can use this identifier
>> -to specify the clock which they consume. All available clocks are defined as
>> -preprocessor macros in the dt-bindings/clock/axg-audio-clkc.h header and can be
>> -used in device tree sources.
>> -
>> -Example:
>> -
>> -clkc_audio: clock-controller at 0 {
>> -	compatible = "amlogic,axg-audio-clkc";
>> -	reg = <0x0 0x0 0x0 0xb4>;
>> -	#clock-cells = <1>;
>> -
>> -	clocks = <&clkc CLKID_AUDIO>,
>> -		 <&clkc CLKID_MPLL0>,
>> -		 <&clkc CLKID_MPLL1>,
>> -		 <&clkc CLKID_MPLL2>,
>> -		 <&clkc CLKID_MPLL3>,
>> -		 <&clkc CLKID_HIFI_PLL>,
>> -		 <&clkc CLKID_FCLK_DIV3>,
>> -		 <&clkc CLKID_FCLK_DIV4>,
>> -		 <&clkc CLKID_GP0_PLL>;
>> -	clock-names = "pclk",
>> -		      "mst_in0",
>> -		      "mst_in1",
>> -		      "mst_in2",
>> -		      "mst_in3",
>> -		      "mst_in4",
>> -		      "mst_in5",
>> -		      "mst_in6",
>> -		      "mst_in7";
>> -	resets = <&reset RESET_AUDIO>;
>> -};
>> diff --git a/Documentation/devicetree/bindings/clock/amlogic,axg-audio-clkc.yaml b/Documentation/devicetree/bindings/clock/amlogic,axg-audio-clkc.yaml
>> new file mode 100644
>> index 000000000000..629fa3a81cf7
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/clock/amlogic,axg-audio-clkc.yaml
>> @@ -0,0 +1,136 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/clock/amlogic,axg-audio-clkc.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Amlogic AXG Audio Clock Controller
>> +
>> +maintainers:
>> +  - Neil Armstrong <neil.armstrong at linaro.org>
>> +  - Jerome Brunet <jbrunet at baylibre.com>
>> +  - Jian Hu <jian.hu at jian.hu.com>
>> +  - Dmitry Rokosov <ddrokosov at sberdevices.ru>
>> +
>> +description:
>> +  The Amlogic AXG audio clock controller generates and supplies clock to the
>> +  other elements of the audio subsystem, such as fifos, i2s, spdif and pdm
>> +  devices.
>> +
>> +properties:
>> +  compatible:
>> +    enum:
>> +      - amlogic,axg-audio-clkc
>> +      - amlogic,g12a-audio-clkc
>> +      - amlogic,sm1-audio-clkc
>> +
>> +  '#clock-cells':
>> +    const: 1
>> +
>> +  '#reset-cells':
>> +    const: 1
>> +
>> +  reg:
>> +    maxItems: 1
>
> reg is usually the second property.
>
>> +
>> +  clocks:
>> +    minItems: 1
>> +    maxItems: 11
>> +
>> +  clock-names:
>> +    oneOf:
>> +      - const: pclk
>> +      - items:
>> +          - const: pclk
>> +          - const: mst_in0
>> +          - const: mst_in1
>> +          - const: mst_in2
>> +          - const: mst_in3
>> +          - const: mst_in4
>> +          - const: mst_in5
>> +          - const: mst_in6
>> +          - const: mst_in7
>> +      - items:
>> +          - const: pclk
>> +          - const: slv_sclk0
>> +          - const: slv_sclk1
>> +          - const: slv_sclk2
>> +          - const: slv_sclk3
>> +          - const: slv_sclk4
>> +          - const: slv_sclk5
>> +          - const: slv_sclk6
>> +          - const: slv_sclk7
>> +          - const: slv_sclk8
>> +          - const: slv_sclk9
>> +      - items:
>> +          - const: pclk
>> +          - const: slv_lrclk0
>> +          - const: slv_lrclk1
>> +          - const: slv_lrclk2
>> +          - const: slv_lrclk3
>> +          - const: slv_lrclk4
>> +          - const: slv_lrclk5
>> +          - const: slv_lrclk6
>> +          - const: slv_lrclk7
>> +          - const: slv_lrclk8
>> +          - const: slv_lrclk9
>> +
>> +  resets:
>> +    description: internal reset line
>> +
>> +required:
>> +  - compatible
>> +  - '#clock-cells'
>> +  - reg
>> +  - clocks
>> +  - clock-names
>> +  - resets
>> +
>> +allOf:
>> +  - if:
>> +      properties:
>> +        compatible:
>> +          contains:
>> +            enum:
>> +              - amlogic,g12a-audio-clkc
>> +              - amlogic,sm1-audio-clkc
>> +    then:
>> +      required:
>> +        - '#reset-cells'
>
> else:
>   properties:
>     '#reset-cells': false
> ???
>
>
> You need to constrain the clocks per variant. Probably names are also
> specific to each one, so the list of names can be moved here and you
> keep just min/maxItems in the top level property.
>

input clock names and constraints are the same for all 3 variants.

>> +
>> +additionalProperties: false
>> +
>> +examples:
>> +  - |
>> +    #include <dt-bindings/clock/axg-clkc.h>
>> +    #include <dt-bindings/reset/amlogic,meson-axg-reset.h>
>> +    apb {
>> +        #address-cells = <2>;
>> +        #size-cells = <2>;
>> +
>> +        clkc_audio: clock-controller at 0 {
>> +        compatible = "amlogic,axg-audio-clkc";
>
> Broken indentation.
>
>> +        reg = <0x0 0x0 0x0 0xb4>;
>> +        #clock-cells = <1>;
>> +
>> +        clocks = <&clkc CLKID_AUDIO>,
>> +            <&clkc CLKID_MPLL0>,
>> +            <&clkc CLKID_MPLL1>,
>> +            <&clkc CLKID_MPLL2>,
>> +            <&clkc CLKID_MPLL3>,
>> +            <&clkc CLKID_HIFI_PLL>,
>> +            <&clkc CLKID_FCLK_DIV3>,
>> +            <&clkc CLKID_FCLK_DIV4>,
>> +            <&clkc CLKID_GP0_PLL>;
>> +        clock-names = "pclk",
>> +            "mst_in0",
>> +            "mst_in1",
>> +            "mst_in2",
>> +            "mst_in3",
>> +            "mst_in4",
>> +            "mst_in5",
>> +            "mst_in6",
>> +            "mst_in7";
>> +        resets = <&reset RESET_AUDIO>;
>> +      };
>
> And indentation here is even less matching.
>> +    };
>
> Best regards,
> Krzysztof




More information about the linux-amlogic mailing list