dt-bindings: clock: convert cs2000-cp bindings to yaml
Subsystems (2)
PATCH 1/3 dt-bindings: clock: convert cs2000-cp bindings to yaml
The original author of the file was added as maintainer.
--- .../bindings/clock/cirrus,cs2000-cp.yaml | 64 +++++++++++++++++++ .../devicetree/bindings/clock/cs2000-cp.txt | 22 ------- 2 files changed, 64 insertions(+), 22 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml delete mode 100644 Documentation/devicetree/bindings/clock/cs2000-cp.txt
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml new file +64 -0
@@ -0,0 +1,64 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/cirrus,cs2000-cp.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Binding CIRRUS LOGIC Fractional-N Clock Synthesizer & Clock Multiplier + +maintainers: + - Kuninori Morimoto <[email protected]> + +description: | + The CS2000-CP is an extremely versatile system clocking device that + utilizes a programmable phase lock loop. + + Link: https://www.cirrus.com/products/cs2000/ + +properties: + compatible: + enum: + - cirrus,cs2000-cp + + clocks: + description: + Common clock binding for CLK_IN, XTI/REF_CLK + minItems: 2 + maxItems: 2 + + clock-names: + minItems: 2 + maxItems: 2 + + '#clock-cells': + const: 0 + + reg: + description: + The chip select number on the I2C bus + maxItems: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - '#clock-cells' + +additionalProperties: false + +examples: + - | + i2c@0 { + reg = <0x0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + + cs2000: clk_multiplier@4f { + #clock-cells = <0>; + compatible = "cirrus,cs2000-cp"; + reg = <0x4f>; + clocks = <&rcar_sound 0>, <&x12_clk>; + clock-names = "clk_in", "ref_clk"; + }; + };
Documentation/devicetree/bindings/clock/cs2000-cp.txt deleted +0 -22
@@ -1,22 +0,0 @@ -CIRRUS LOGIC Fractional-N Clock Synthesizer & Clock Multiplier - -Required properties: - -- compatible: "cirrus,cs2000-cp" -- reg: The chip select number on the I2C bus -- clocks: common clock binding for CLK_IN, XTI/REF_CLK -- clock-names: CLK_IN : clk_in, XTI/REF_CLK : ref_clk -- #clock-cells: must be <0> - -Example: - -&i2c2 { - ... - cs2000: clk_multiplier@4f { - #clock-cells = <0>; - compatible = "cirrus,cs2000-cp"; - reg = <0x4f>; - clocks = <&rcar_sound 0>, <&x12_clk>; - clock-names = "clk_in", "ref_clk"; - }; -};
Signature · 1 line
2.31.1
PATCH 2/3 dt-bindings: clk: cs2000-cp: Document aux-output-source
This new optional property can be used to control the function of the auxiliary output pin. Introduce a new dt-bindings include file that contains the numerical values.
--- .../bindings/clock/cirrus,cs2000-cp.yaml | 15 ++++++++++++++- include/dt-bindings/clock/cirrus,cs2000-cp.h | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 include/dt-bindings/clock/cirrus,cs2000-cp.h
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml +14 -1
@@ -38,6 +38,16 @@ properties: The chip select number on the I2C bus maxItems: 1 + cirrus,aux-output-source: + description: + Specfies the function of the auxililary clock output pin + $ref: /schemas/types.yaml#/definitions/uint32 + enum: + - 0 # CS2000CP_AUX_OUTPUT_REF_CLK: ref_clk input + - 1 # CS2000CP_AUX_OUTPUT_CLK_IN: clk_in input + - 2 # CS2000CP_AUX_OUTPUT_CLK_OUT: clk_out output + - 3 # CS2000CP_AUX_OUTPUT_PLL_LOCK: pll lock status + required: - compatible - reg
@@ -45,10 +55,12 @@ required: - clock-names - '#clock-cells' -additionalProperties: false +additionalProperties: true examples: - | + #include <dt-bindings/clock/cirrus,cs2000-cp.h> + i2c@0 { reg = <0x0 0x100>; #address-cells = <1>;
@@ -60,5 +72,6 @@ examples: reg = <0x4f>; clocks = <&rcar_sound 0>, <&x12_clk>; clock-names = "clk_in", "ref_clk"; + cirrus,aux-output-source = <CS2000CP_AUX_OUTPUT_CLK_OUT>; }; };
include/dt-bindings/clock/cirrus,cs2000-cp.h new file +14 -0
@@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */ +/* +* Copyright (C) 2021 Daniel Mack +*/ + +#ifndef __DT_BINDINGS_CS2000CP_CLK_H +#define __DT_BINDINGS_CS2000CP_CLK_H + +#define CS2000CP_AUX_OUTPUT_REF_CLK 0 +#define CS2000CP_AUX_OUTPUT_CLK_IN 1 +#define CS2000CP_AUX_OUTPUT_CLK_OUT 2 +#define CS2000CP_AUX_OUTPUT_PLL_LOCK 3 + +#endif /* __DT_BINDINGS_CS2000CP_CLK_H */
Signature · 1 line
2.31.1
Rob Herring
maintainerRe: [PATCH 2/3] dt-bindings: clk: cs2000-cp: Document aux-output-source
Quoted 33 lines · Daniel Mack
This new optional property can be used to control the function of the auxiliary output pin. Introduce a new dt-bindings include file that contains the numerical values.
Signed-off-by Daniel Mack <[email protected]>--- .../bindings/clock/cirrus,cs2000-cp.yaml | 15 ++++++++++++++- include/dt-bindings/clock/cirrus,cs2000-cp.h | 14 ++++++++++++++ 2 files changed, 28 insertions(+), 1 deletion(-) create mode 100644 include/dt-bindings/clock/cirrus,cs2000-cp.hDocumentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml +10
-0@@ -38,6 +38,16 @@ properties: The chip select number on the I2C bus maxItems: 1 + cirrus,aux-output-source: + description: + Specfies the function of the auxililary clock output pin + $ref: /schemas/types.yaml#/definitions/uint32 + enum: + - 0 # CS2000CP_AUX_OUTPUT_REF_CLK: ref_clk input + - 1 # CS2000CP_AUX_OUTPUT_CLK_IN: clk_in input + - 2 # CS2000CP_AUX_OUTPUT_CLK_OUT: clk_out output + - 3 # CS2000CP_AUX_OUTPUT_PLL_LOCK: pll lock status + required: - compatible - reg
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml required: · line 58
Quoted 5 lines
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml +1
-1@@ -45,10 +55,12 @@ required: - clock-names - '#clock-cells' -additionalProperties: false +additionalProperties: true
No, that's only correct for collections of common properties.
Quoted 21 lines
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml +3
-0examples: - | + #include <dt-bindings/clock/cirrus,cs2000-cp.h> + i2c@0 { reg = <0x0 0x100>; #address-cells = <1>;@@ -60,5 +72,6 @@ examples: reg = <0x4f>; clocks = <&rcar_sound 0>, <&x12_clk>; clock-names = "clk_in", "ref_clk"; + cirrus,aux-output-source = <CS2000CP_AUX_OUTPUT_CLK_OUT>; }; };include/dt-bindings/clock/cirrus,cs2000-cp.h new file +0
-0
include/dt-bindings/clock/cirrus,cs2000-cp.h line 1
Quoted 1 line
include/dt-bindings/clock/cirrus,cs2000-cp.h new file +1
-0@@ -0,0 +1,14 @@ +/* SPDX-License-Identifier: GPL-2.0-only */
What about non-GPL users?
Quoted 16 lines
include/dt-bindings/clock/cirrus,cs2000-cp.h new file +13
-0+/* +* Copyright (C) 2021 Daniel Mack +*/ + +#ifndef __DT_BINDINGS_CS2000CP_CLK_H +#define __DT_BINDINGS_CS2000CP_CLK_H + +#define CS2000CP_AUX_OUTPUT_REF_CLK 0 +#define CS2000CP_AUX_OUTPUT_CLK_IN 1 +#define CS2000CP_AUX_OUTPUT_CLK_OUT 2 +#define CS2000CP_AUX_OUTPUT_PLL_LOCK 3 + +#endif /* __DT_BINDINGS_CS2000CP_CLK_H */ Signature · 1 line
2.31.1
PATCH 3/3 clk: cs2000-cp: Make aux output function controllable
In reply to Daniel MackThe aux output pin can be configured to output either of the two clock inputs, the generated clock or the pll lock status. Allow access to this feature through a new optional device-tree property.
--- drivers/clk/clk-cs2000-cp.c | 9 +++++++++ 1 file changed, 9 insertions(+)
drivers/clk/clk-cs2000-cp.c +9 -0
@@ -39,6 +39,8 @@/* DEVICE_CFG1 */ #define RSEL (x) (((x) & 0x3) << 3)#define RSEL_MASK RSEL(0x3) +#define AUXOUTSRC (x) (((x) & 0x3) << 1) +#define AUXOUTSRC_MASK AUXOUTSRC(0x3)#define ENDEV1 (0x1)/* DEVICE_CFG2 */
@@ -421,12 +423,19 @@ static int cs2000_clk_register(struct cs2000_priv *priv)struct clk_init_data init;const char *name = np->name;static const char *parent_names[CLK_MAX ]; +u32 aux_out =0 ;int ch =0 ;/* it uses ch0 only at this point */ int rate;int ret;of_property_read_string (np,"clock-output-names" , &name); +of_property_read_u32 (np,"cirrus,aux-output-source" , &aux_out); + ret =cs2000_bset (priv,DEVICE_CFG1 , +AUXOUTSRC_MASK ,AUXOUTSRC (aux_out)); +if (ret <0 ) +return ret; +/* * set default rate as 1/1. * otherwise .set_rate which setup ratio
Signature · 1 line
2.31.1
Rob Herring
maintainerQuoted 38 lines · Daniel Mack
The original author of the file was added as maintainer.
Signed-off-by Daniel Mack <[email protected]>Cc Kuninori Morimoto <[email protected]>--- .../bindings/clock/cirrus,cs2000-cp.yaml | 64 +++++++++++++++++++ .../devicetree/bindings/clock/cs2000-cp.txt | 22 ------- 2 files changed, 64 insertions(+), 22 deletions(-) create mode 100644 Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml delete mode 100644 Documentation/devicetree/bindings/clock/cs2000-cp.txtDocumentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml new file +21
-0@@ -0,0 +1,64 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/clock/cirrus,cs2000-cp.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Binding CIRRUS LOGIC Fractional-N Clock Synthesizer & Clock Multiplier + +maintainers: + - Kuninori Morimoto <[email protected]> + +description: | + The CS2000-CP is an extremely versatile system clocking device that + utilizes a programmable phase lock loop. + + Link: https://www.cirrus.com/products/cs2000/ + +properties: + compatible: + enum: + - cirrus,cs2000-cp
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml line 31
Quoted 10 lines
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml new file +10
-0+ + clocks: + description: + Common clock binding for CLK_IN, XTI/REF_CLK + minItems: 2 + maxItems: 2 + + clock-names: + minItems: 2 + maxItems: 2
Need to define the names and order.
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml line 38
Quoted 7 lines
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml new file +7
-0+ + '#clock-cells': + const: 0 + + reg: + description: + The chip select number on the I2C bus
Drop. That's 'reg' for every I2C device.
Quoted 9 lines
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml new file +9
-0+ maxItems: 1 + +required: + - compatible + - reg + - clocks + - clock-names + - '#clock-cells' +
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml line 57
Quoted 10 lines
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml new file +10
-0+additionalProperties: false + +examples: + - | + i2c@0 { + reg = <0x0 0x100>; + #address-cells = <1>; + #size-cells = <0>; + + cs2000: clk_multiplier@4f {
clock-controller@4f
And drop cs2000 as it is unused here.
Quoted 38 lines
Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml new file +7
-0+ #clock-cells = <0>; + compatible = "cirrus,cs2000-cp"; + reg = <0x4f>; + clocks = <&rcar_sound 0>, <&x12_clk>; + clock-names = "clk_in", "ref_clk"; + }; + };Documentation/devicetree/bindings/clock/cs2000-cp.txt deleted +0
-22@@ -1,22 +0,0 @@ -CIRRUS LOGIC Fractional-N Clock Synthesizer & Clock Multiplier - -Required properties: - -- compatible: "cirrus,cs2000-cp" -- reg: The chip select number on the I2C bus -- clocks: common clock binding for CLK_IN, XTI/REF_CLK -- clock-names: CLK_IN : clk_in, XTI/REF_CLK : ref_clk -- #clock-cells: must be <0> - -Example: - -&i2c2 { - ... - cs2000: clk_multiplier@4f { - #clock-cells = <0>; - compatible = "cirrus,cs2000-cp"; - reg = <0x4f>; - clocks = <&rcar_sound 0>, <&x12_clk>; - clock-names = "clk_in", "ref_clk"; - }; -};Signature · 1 line
2.31.1