xref: /linux/Documentation/devicetree/bindings/clock/ti,lmk04832.yaml (revision 33cd7c6fffa3c546b3fce3b000d4b83f88c01e0d)
1199ead40SLiam Beguin# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2199ead40SLiam Beguin%YAML 1.2
3199ead40SLiam Beguin---
4199ead40SLiam Beguin$id: http://devicetree.org/schemas/clock/ti,lmk04832.yaml#
5199ead40SLiam Beguin$schema: http://devicetree.org/meta-schemas/core.yaml#
6199ead40SLiam Beguin
7*33cd7c6fSKrzysztof Kozlowskititle: Texas Instruments LMK04832 Clock Controller
8199ead40SLiam Beguin
9199ead40SLiam Beguinmaintainers:
10199ead40SLiam Beguin  - Liam Beguin <liambeguin@gmail.com>
11199ead40SLiam Beguin
12199ead40SLiam Beguindescription: |
13199ead40SLiam Beguin  Devicetree binding for the LMK04832, a clock conditioner with JEDEC JESD204B
14199ead40SLiam Beguin  support. The LMK04832 is pin compatible with the LMK0482x family.
15199ead40SLiam Beguin
16199ead40SLiam Beguin  Link to datasheet, https://www.ti.com/lit/ds/symlink/lmk04832.pdf
17199ead40SLiam Beguin
18199ead40SLiam Beguinproperties:
19199ead40SLiam Beguin  compatible:
20199ead40SLiam Beguin    enum:
21199ead40SLiam Beguin      - ti,lmk04832
22199ead40SLiam Beguin
23199ead40SLiam Beguin  reg:
24199ead40SLiam Beguin    maxItems: 1
25199ead40SLiam Beguin
26199ead40SLiam Beguin  '#address-cells':
27199ead40SLiam Beguin    const: 1
28199ead40SLiam Beguin
29199ead40SLiam Beguin  '#size-cells':
30199ead40SLiam Beguin    const: 0
31199ead40SLiam Beguin
32199ead40SLiam Beguin  '#clock-cells':
33199ead40SLiam Beguin    const: 1
34199ead40SLiam Beguin
35199ead40SLiam Beguin  spi-max-frequency:
36199ead40SLiam Beguin    maximum: 5000000
37199ead40SLiam Beguin
38199ead40SLiam Beguin  clocks:
39199ead40SLiam Beguin    items:
40199ead40SLiam Beguin      - description: PLL2 reference clock.
41199ead40SLiam Beguin
42199ead40SLiam Beguin  clock-names:
43199ead40SLiam Beguin    items:
44199ead40SLiam Beguin      - const: oscin
45199ead40SLiam Beguin
46199ead40SLiam Beguin  reset-gpios:
47199ead40SLiam Beguin    maxItems: 1
48199ead40SLiam Beguin
49199ead40SLiam Beguin  ti,spi-4wire-rdbk:
50199ead40SLiam Beguin    description: |
51199ead40SLiam Beguin      Select SPI 4wire readback pin configuration.
52199ead40SLiam Beguin      Available readback pins are,
53199ead40SLiam Beguin        CLKin_SEL0 0
54199ead40SLiam Beguin        CLKin_SEL1 1
55199ead40SLiam Beguin        RESET 2
56199ead40SLiam Beguin    $ref: /schemas/types.yaml#/definitions/uint32
57199ead40SLiam Beguin    enum: [0, 1, 2]
58199ead40SLiam Beguin    default: 1
59199ead40SLiam Beguin
60199ead40SLiam Beguin  ti,vco-hz:
61199ead40SLiam Beguin    description: Optional to set VCO frequency of the PLL in Hertz.
62199ead40SLiam Beguin
63199ead40SLiam Beguin  ti,sysref-ddly:
64199ead40SLiam Beguin    description: SYSREF digital delay value.
65199ead40SLiam Beguin    $ref: /schemas/types.yaml#/definitions/uint32
66199ead40SLiam Beguin    minimum: 8
67199ead40SLiam Beguin    maximum: 8191
68199ead40SLiam Beguin    default: 8
69199ead40SLiam Beguin
70199ead40SLiam Beguin  ti,sysref-mux:
71199ead40SLiam Beguin    description: |
72199ead40SLiam Beguin      SYSREF Mux configuration.
73199ead40SLiam Beguin      Available options are,
74199ead40SLiam Beguin        Normal SYNC 0
75199ead40SLiam Beguin        Re-clocked 1
76199ead40SLiam Beguin        SYSREF Pulser 2
77199ead40SLiam Beguin        SYSREF Continuous 3
78199ead40SLiam Beguin    $ref: /schemas/types.yaml#/definitions/uint32
79199ead40SLiam Beguin    enum: [0, 1, 2, 3]
80199ead40SLiam Beguin    default: 3
81199ead40SLiam Beguin
82199ead40SLiam Beguin  ti,sync-mode:
83199ead40SLiam Beguin    description: SYNC pin configuration.
84199ead40SLiam Beguin    $ref: /schemas/types.yaml#/definitions/uint32
85199ead40SLiam Beguin    enum: [0, 1, 2]
86199ead40SLiam Beguin    default: 1
87199ead40SLiam Beguin
88199ead40SLiam Beguin  ti,sysref-pulse-count:
89199ead40SLiam Beguin    description:
90199ead40SLiam Beguin      Number of SYSREF pulses to send when SYSREF is not in continuous mode.
91199ead40SLiam Beguin    $ref: /schemas/types.yaml#/definitions/uint32
92199ead40SLiam Beguin    enum: [1, 2, 4, 8]
93199ead40SLiam Beguin    default: 4
94199ead40SLiam Beguin
95199ead40SLiam BeguinpatternProperties:
96199ead40SLiam Beguin  "@[0-9a-d]+$":
97199ead40SLiam Beguin    type: object
98199ead40SLiam Beguin    description:
99199ead40SLiam Beguin      Child nodes used to configure output clocks.
100199ead40SLiam Beguin
101199ead40SLiam Beguin    properties:
102199ead40SLiam Beguin      reg:
103199ead40SLiam Beguin        description:
104199ead40SLiam Beguin          clock output identifier.
105199ead40SLiam Beguin        minimum: 0
106199ead40SLiam Beguin        maximum: 13
107199ead40SLiam Beguin
108199ead40SLiam Beguin      ti,clkout-fmt:
109199ead40SLiam Beguin        description:
110199ead40SLiam Beguin          Clock output format.
111199ead40SLiam Beguin          Available options are,
112199ead40SLiam Beguin            Powerdown 0x00
113199ead40SLiam Beguin            LVDS 0x01
114199ead40SLiam Beguin            HSDS 6 mA 0x02
115199ead40SLiam Beguin            HSDS 8 mA 0x03
116199ead40SLiam Beguin            LVPECL 1600 mV 0x04
117199ead40SLiam Beguin            LVPECL 2000 mV 0x05
118199ead40SLiam Beguin            LCPECL 0x06
119199ead40SLiam Beguin            CML 16 mA 0x07
120199ead40SLiam Beguin            CML 24 mA 0x08
121199ead40SLiam Beguin            CML 32 mA 0x09
122199ead40SLiam Beguin            CMOS (Off/Inverted) 0x0a
123199ead40SLiam Beguin            CMOS (Normal/Off) 0x0b
124199ead40SLiam Beguin            CMOS (Inverted/Inverted) 0x0c
125199ead40SLiam Beguin            CMOS (Inverted/Normal) 0x0d
126199ead40SLiam Beguin            CMOS (Normal/Inverted) 0x0e
127199ead40SLiam Beguin            CMOS (Normal/Normal) 0x0f
128199ead40SLiam Beguin        $ref: /schemas/types.yaml#/definitions/uint32
129199ead40SLiam Beguin        minimum: 0
130199ead40SLiam Beguin        maximum: 15
131199ead40SLiam Beguin
132199ead40SLiam Beguin      ti,clkout-sysref:
133199ead40SLiam Beguin        description:
134199ead40SLiam Beguin          Select SYSREF clock path for output clock.
135199ead40SLiam Beguin        type: boolean
136199ead40SLiam Beguin
137199ead40SLiam Beguin    required:
138199ead40SLiam Beguin      - reg
139199ead40SLiam Beguin
140199ead40SLiam Beguin    additionalProperties: false
141199ead40SLiam Beguin
142199ead40SLiam Beguinrequired:
143199ead40SLiam Beguin  - compatible
144199ead40SLiam Beguin  - reg
145199ead40SLiam Beguin  - '#clock-cells'
146199ead40SLiam Beguin  - clocks
147199ead40SLiam Beguin  - clock-names
148199ead40SLiam Beguin
149199ead40SLiam BeguinadditionalProperties: false
150199ead40SLiam Beguin
151199ead40SLiam Beguinexamples:
152199ead40SLiam Beguin  - |
153199ead40SLiam Beguin    clocks {
154199ead40SLiam Beguin        lmk04832_oscin: oscin {
155199ead40SLiam Beguin            compatible = "fixed-clock";
156199ead40SLiam Beguin
157199ead40SLiam Beguin            #clock-cells = <0>;
158199ead40SLiam Beguin            clock-frequency = <122880000>;
159199ead40SLiam Beguin            clock-output-names = "lmk04832-oscin";
160199ead40SLiam Beguin        };
161199ead40SLiam Beguin    };
162199ead40SLiam Beguin
163199ead40SLiam Beguin    spi0 {
164199ead40SLiam Beguin        #address-cells = <1>;
165199ead40SLiam Beguin        #size-cells = <0>;
166199ead40SLiam Beguin
167199ead40SLiam Beguin        lmk04832: clock-controller@0 {
168199ead40SLiam Beguin            #address-cells = <1>;
169199ead40SLiam Beguin            #size-cells = <0>;
170199ead40SLiam Beguin
171199ead40SLiam Beguin            reg = <0>;
172199ead40SLiam Beguin
173199ead40SLiam Beguin            compatible = "ti,lmk04832";
174199ead40SLiam Beguin            spi-max-frequency = <781250>;
175199ead40SLiam Beguin
176199ead40SLiam Beguin            reset-gpios = <&gpio_lmk 0 0 0>;
177199ead40SLiam Beguin
178199ead40SLiam Beguin            #clock-cells = <1>;
179199ead40SLiam Beguin            clocks = <&lmk04832_oscin>;
180199ead40SLiam Beguin            clock-names = "oscin";
181199ead40SLiam Beguin
182199ead40SLiam Beguin            ti,spi-4wire-rdbk = <0>;
183199ead40SLiam Beguin            ti,vco-hz = <2457600000>;
184199ead40SLiam Beguin
185199ead40SLiam Beguin            assigned-clocks =
186199ead40SLiam Beguin                <&lmk04832 0>, <&lmk04832 1>,
187199ead40SLiam Beguin                <&lmk04832 2>, <&lmk04832 3>,
188199ead40SLiam Beguin                <&lmk04832 4>,
189199ead40SLiam Beguin                <&lmk04832 6>, <&lmk04832 7>,
190199ead40SLiam Beguin                <&lmk04832 10>, <&lmk04832 11>;
191199ead40SLiam Beguin            assigned-clock-rates =
192199ead40SLiam Beguin                <122880000>, <384000>,
193199ead40SLiam Beguin                <122880000>, <384000>,
194199ead40SLiam Beguin                <122880000>,
195199ead40SLiam Beguin                <153600000>, <384000>,
196199ead40SLiam Beguin                <614400000>, <384000>;
197199ead40SLiam Beguin
198199ead40SLiam Beguin            clkout0@0 {
199199ead40SLiam Beguin                reg = <0>;
200199ead40SLiam Beguin                ti,clkout-fmt = <0x01>; // LVDS
201199ead40SLiam Beguin            };
202199ead40SLiam Beguin
203199ead40SLiam Beguin            clkout1@1 {
204199ead40SLiam Beguin                reg = <1>;
205199ead40SLiam Beguin                ti,clkout-fmt = <0x01>; // LVDS
206199ead40SLiam Beguin                ti,clkout-sysref;
207199ead40SLiam Beguin            };
208199ead40SLiam Beguin        };
209199ead40SLiam Beguin    };
210