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