xref: /linux/Documentation/devicetree/bindings/clock/cirrus,cs2000-cp.yaml (revision 3a2c4d55e32ad65efebdb6de44eef3bfa08bb49d)
1# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2%YAML 1.2
3---
4$id: http://devicetree.org/schemas/clock/cirrus,cs2000-cp.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: CIRRUS LOGIC Fractional-N Clock Synthesizer & Clock Multiplier
8
9maintainers:
10  - Kuninori Morimoto <kuninori.morimoto.gx@renesas.com>
11
12description: |
13  The CS2000-CP is an extremely versatile system clocking device that
14  utilizes a programmable phase lock loop. CS2500 is a compatible
15  drop-in replacement for CS2000-CP.
16
17  Link: https://www.cirrus.com/products/cs2000/
18  Link: https://www.cirrus.com/products/cs2500/
19
20properties:
21  compatible:
22    oneOf:
23      - items:
24          - const: cirrus,cs2500
25          - const: cirrus,cs2000-cp
26      - const: cirrus,cs2000-cp
27
28  clocks:
29    description:
30      Common clock binding for CLK_IN, XTI/REF_CLK
31    maxItems: 2
32
33  clock-names:
34    items:
35      - const: clk_in
36      - const: ref_clk
37
38  '#clock-cells':
39    const: 0
40
41  reg:
42    maxItems: 1
43
44  cirrus,aux-output-source:
45    description:
46      Specifies the function of the auxiliary clock output pin
47    $ref: /schemas/types.yaml#/definitions/uint32
48    enum:
49      - 0 # CS2000CP_AUX_OUTPUT_REF_CLK:  ref_clk input
50      - 1 # CS2000CP_AUX_OUTPUT_CLK_IN:   clk_in input
51      - 2 # CS2000CP_AUX_OUTPUT_CLK_OUT:  clk_out output
52      - 3 # CS2000CP_AUX_OUTPUT_PLL_LOCK: pll lock status
53    default: 0
54
55  cirrus,clock-skip:
56    description:
57      This mode allows the PLL to maintain lock even when CLK_IN
58      has missing pulses for up to 20 ms.
59    $ref: /schemas/types.yaml#/definitions/flag
60
61  cirrus,dynamic-mode:
62    description:
63      In dynamic mode, the CLK_IN input is used to drive the
64      digital PLL of the silicon.
65      If not given, the static mode shall be used to derive the
66      output signal directly from the REF_CLK input.
67    $ref: /schemas/types.yaml#/definitions/flag
68
69required:
70  - compatible
71  - reg
72  - clocks
73  - clock-names
74  - '#clock-cells'
75
76additionalProperties: false
77
78examples:
79  - |
80    #include <dt-bindings/clock/cirrus,cs2000-cp.h>
81
82    i2c@0 {
83      reg = <0x0 0x100>;
84      #address-cells = <1>;
85      #size-cells = <0>;
86
87      clock-controller@4f {
88        #clock-cells = <0>;
89        compatible = "cirrus,cs2000-cp";
90        reg = <0x4f>;
91        clocks = <&rcar_sound 0>, <&x12_clk>;
92        clock-names = "clk_in", "ref_clk";
93        cirrus,aux-output-source = <CS2000CP_AUX_OUTPUT_CLK_OUT>;
94      };
95    };
96