* [PATCH v2 1/3] dt-bindings: clock: convert cs2000-cp bindings to yaml
2021-05-19 20:15 [PATCH v2 0/3] clk: cs2000-cp: make aux output pin configurable Daniel Mack
@ 2021-05-19 20:15 ` Daniel Mack
2021-05-21 1:59 ` Rob Herring
2021-05-19 20:15 ` [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source Daniel Mack
2021-05-19 20:15 ` [PATCH v2 3/3] clk: cs2000-cp: Make aux output function controllable Daniel Mack
2 siblings, 1 reply; 9+ messages in thread
From: Daniel Mack @ 2021-05-19 20:15 UTC (permalink / raw)
To: linux-clk, devicetree
Cc: robh+dt, kuninori.morimoto.gx, mturquette, sboyd, Daniel Mack
The original author of the file was added as maintainer.
Signed-off-by: Daniel Mack <daniel@zonque.org>
Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
Signed-off-by: Daniel Mack <daniel@zonque.org>
---
.../bindings/clock/cirrus,cs2000-cp.yaml | 63 +++++++++++++++++++
.../devicetree/bindings/clock/cs2000-cp.txt | 22 -------
2 files changed, 63 insertions(+), 22 deletions(-)
create mode 100644 Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
delete mode 100644 Documentation/devicetree/bindings/clock/cs2000-cp.txt
diff --git a/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml b/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
new file mode 100644
index 000000000000..379a8bab49ca
--- /dev/null
+++ b/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
@@ -0,0 +1,63 @@
+# 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 <kuninori.morimoto.gx@renesas.com>
+
+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:
+ items:
+ - const: clk_in
+ - const: ref_clk
+
+ '#clock-cells':
+ const: 0
+
+ reg:
+ maxItems: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - '#clock-cells'
+
+additionalProperties: false
+
+examples:
+ - |
+ i2c@0 {
+ reg = <0x0 0x100>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ clock-controller@4f {
+ #clock-cells = <0>;
+ compatible = "cirrus,cs2000-cp";
+ reg = <0x4f>;
+ clocks = <&rcar_sound 0>, <&x12_clk>;
+ clock-names = "clk_in", "ref_clk";
+ };
+ };
diff --git a/Documentation/devicetree/bindings/clock/cs2000-cp.txt b/Documentation/devicetree/bindings/clock/cs2000-cp.txt
deleted file mode 100644
index 54e6df0bee8a..000000000000
--- a/Documentation/devicetree/bindings/clock/cs2000-cp.txt
+++ /dev/null
@@ -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";
- };
-};
--
2.31.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 1/3] dt-bindings: clock: convert cs2000-cp bindings to yaml
2021-05-19 20:15 ` [PATCH v2 1/3] dt-bindings: clock: convert cs2000-cp bindings to yaml Daniel Mack
@ 2021-05-21 1:59 ` Rob Herring
0 siblings, 0 replies; 9+ messages in thread
From: Rob Herring @ 2021-05-21 1:59 UTC (permalink / raw)
To: Daniel Mack
Cc: linux-clk, devicetree, mturquette, kuninori.morimoto.gx, robh+dt, sboyd
On Wed, 19 May 2021 22:15:49 +0200, Daniel Mack wrote:
> The original author of the file was added as maintainer.
>
> Signed-off-by: Daniel Mack <daniel@zonque.org>
> Cc: Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
> Signed-off-by: Daniel Mack <daniel@zonque.org>
> ---
> .../bindings/clock/cirrus,cs2000-cp.yaml | 63 +++++++++++++++++++
> .../devicetree/bindings/clock/cs2000-cp.txt | 22 -------
> 2 files changed, 63 insertions(+), 22 deletions(-)
> create mode 100644 Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
> delete mode 100644 Documentation/devicetree/bindings/clock/cs2000-cp.txt
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source
2021-05-19 20:15 [PATCH v2 0/3] clk: cs2000-cp: make aux output pin configurable Daniel Mack
2021-05-19 20:15 ` [PATCH v2 1/3] dt-bindings: clock: convert cs2000-cp bindings to yaml Daniel Mack
@ 2021-05-19 20:15 ` Daniel Mack
2021-05-21 2:00 ` Rob Herring
2021-06-11 12:18 ` Geert Uytterhoeven
2021-05-19 20:15 ` [PATCH v2 3/3] clk: cs2000-cp: Make aux output function controllable Daniel Mack
2 siblings, 2 replies; 9+ messages in thread
From: Daniel Mack @ 2021-05-19 20:15 UTC (permalink / raw)
To: linux-clk, devicetree
Cc: robh+dt, kuninori.morimoto.gx, mturquette, sboyd, 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 <daniel@zonque.org>
---
.../bindings/clock/cirrus,cs2000-cp.yaml | 13 +++++++++++++
include/dt-bindings/clock/cirrus,cs2000-cp.h | 14 ++++++++++++++
2 files changed, 27 insertions(+)
create mode 100644 include/dt-bindings/clock/cirrus,cs2000-cp.h
diff --git a/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml b/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
index 379a8bab49ca..72902192e084 100644
--- a/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
+++ b/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
@@ -37,6 +37,16 @@ properties:
reg:
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
@@ -48,6 +58,8 @@ additionalProperties: false
examples:
- |
+ #include <dt-bindings/clock/cirrus,cs2000-cp.h>
+
i2c@0 {
reg = <0x0 0x100>;
#address-cells = <1>;
@@ -59,5 +71,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>;
};
};
diff --git a/include/dt-bindings/clock/cirrus,cs2000-cp.h b/include/dt-bindings/clock/cirrus,cs2000-cp.h
new file mode 100644
index 000000000000..fe3ac71750a8
--- /dev/null
+++ b/include/dt-bindings/clock/cirrus,cs2000-cp.h
@@ -0,0 +1,14 @@
+/* SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) */
+/*
+ * 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 */
--
2.31.1
^ permalink raw reply related [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source
2021-05-19 20:15 ` [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source Daniel Mack
@ 2021-05-21 2:00 ` Rob Herring
2021-06-02 11:13 ` Daniel Mack
2021-06-11 12:18 ` Geert Uytterhoeven
1 sibling, 1 reply; 9+ messages in thread
From: Rob Herring @ 2021-05-21 2:00 UTC (permalink / raw)
To: Daniel Mack
Cc: robh+dt, mturquette, kuninori.morimoto.gx, linux-clk, sboyd, devicetree
On Wed, 19 May 2021 22:15:50 +0200, Daniel Mack wrote:
> 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 <daniel@zonque.org>
> ---
> .../bindings/clock/cirrus,cs2000-cp.yaml | 13 +++++++++++++
> include/dt-bindings/clock/cirrus,cs2000-cp.h | 14 ++++++++++++++
> 2 files changed, 27 insertions(+)
> create mode 100644 include/dt-bindings/clock/cirrus,cs2000-cp.h
>
Reviewed-by: Rob Herring <robh@kernel.org>
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source
2021-05-21 2:00 ` Rob Herring
@ 2021-06-02 11:13 ` Daniel Mack
0 siblings, 0 replies; 9+ messages in thread
From: Daniel Mack @ 2021-06-02 11:13 UTC (permalink / raw)
To: Rob Herring
Cc: robh+dt, mturquette, kuninori.morimoto.gx, linux-clk, sboyd, devicetree
On 5/21/21 4:00 AM, Rob Herring wrote:
> On Wed, 19 May 2021 22:15:50 +0200, Daniel Mack wrote:
>> 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 <daniel@zonque.org>
>> ---
>> .../bindings/clock/cirrus,cs2000-cp.yaml | 13 +++++++++++++
>> include/dt-bindings/clock/cirrus,cs2000-cp.h | 14 ++++++++++++++
>> 2 files changed, 27 insertions(+)
>> create mode 100644 include/dt-bindings/clock/cirrus,cs2000-cp.h
>>
>
> Reviewed-by: Rob Herring <robh@kernel.org>
>
Thanks Rob!
Mike, Stephen, do you want me to resend with Rob's ack?
Thanks,
Daniel
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source
2021-05-19 20:15 ` [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source Daniel Mack
2021-05-21 2:00 ` Rob Herring
@ 2021-06-11 12:18 ` Geert Uytterhoeven
2021-06-17 13:10 ` Daniel Mack
1 sibling, 1 reply; 9+ messages in thread
From: Geert Uytterhoeven @ 2021-06-11 12:18 UTC (permalink / raw)
To: Daniel Mack
Cc: linux-clk,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Rob Herring, Kuninori Morimoto, Michael Turquette, Stephen Boyd
Hi Daniel,
On Wed, May 19, 2021 at 10:23 PM Daniel Mack <daniel@zonque.org> wrote:
> 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 <daniel@zonque.org>
Thanks for your patch!
> --- a/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
> +++ b/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml
> @@ -37,6 +37,16 @@ properties:
> reg:
> maxItems: 1
>
> + cirrus,aux-output-source:
> + description:
> + Specfies the function of the auxililary clock output pin
Specifies ... auxiliary
> + $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
Should the default be documented? "default: 0"?
Gr{oetje,eeting}s,
Geert
--
Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org
In personal conversations with technical people, I call myself a hacker. But
when I'm talking to journalists I just say "programmer" or something like that.
-- Linus Torvalds
^ permalink raw reply [flat|nested] 9+ messages in thread
* Re: [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source
2021-06-11 12:18 ` Geert Uytterhoeven
@ 2021-06-17 13:10 ` Daniel Mack
0 siblings, 0 replies; 9+ messages in thread
From: Daniel Mack @ 2021-06-17 13:10 UTC (permalink / raw)
To: Geert Uytterhoeven
Cc: linux-clk,
open list:OPEN FIRMWARE AND FLATTENED DEVICE TREE BINDINGS,
Rob Herring, Kuninori Morimoto, Michael Turquette, Stephen Boyd
Hi Geert,
Thanks for looking into this patch!
On 6/11/21 2:18 PM, Geert Uytterhoeven wrote:
>> + cirrus,aux-output-source:
>> + description:
>> + Specfies the function of the auxililary clock output pin
>
> Specifies ... auxiliary
>
>> + $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
>
> Should the default be documented? "default: 0"?
Both addressed. I will send a new series soon that supersedes this one
and carries some more changes.
Daniel
^ permalink raw reply [flat|nested] 9+ messages in thread
* [PATCH v2 3/3] clk: cs2000-cp: Make aux output function controllable
2021-05-19 20:15 [PATCH v2 0/3] clk: cs2000-cp: make aux output pin configurable Daniel Mack
2021-05-19 20:15 ` [PATCH v2 1/3] dt-bindings: clock: convert cs2000-cp bindings to yaml Daniel Mack
2021-05-19 20:15 ` [PATCH v2 2/3] dt-bindings: clock: cs2000-cp: Document aux-output-source Daniel Mack
@ 2021-05-19 20:15 ` Daniel Mack
2 siblings, 0 replies; 9+ messages in thread
From: Daniel Mack @ 2021-05-19 20:15 UTC (permalink / raw)
To: linux-clk, devicetree
Cc: robh+dt, kuninori.morimoto.gx, mturquette, sboyd, Daniel Mack
The 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.
Signed-off-by: Daniel Mack <daniel@zonque.org>
---
drivers/clk/clk-cs2000-cp.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/clk/clk-cs2000-cp.c b/drivers/clk/clk-cs2000-cp.c
index 92bc4aca0f95..db7290621cef 100644
--- a/drivers/clk/clk-cs2000-cp.c
+++ b/drivers/clk/clk-cs2000-cp.c
@@ -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
--
2.31.1
^ permalink raw reply related [flat|nested] 9+ messages in thread