xref: /linux/Documentation/devicetree/bindings/clock/ti/ti,apll-clock.yaml (revision 502d45774af09f1c681c754c4b7cdfb5d7f72fd9)
1*16f21256SEduard Bostina# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*16f21256SEduard Bostina%YAML 1.2
3*16f21256SEduard Bostina---
4*16f21256SEduard Bostina$id: http://devicetree.org/schemas/clock/ti/ti,apll-clock.yaml#
5*16f21256SEduard Bostina$schema: http://devicetree.org/meta-schemas/core.yaml#
6*16f21256SEduard Bostina
7*16f21256SEduard Bostinatitle: Texas Instruments APLL clock
8*16f21256SEduard Bostina
9*16f21256SEduard Bostinamaintainers:
10*16f21256SEduard Bostina  - Eduard Bostina <egbostina@gmail.com>
11*16f21256SEduard Bostina
12*16f21256SEduard BostinaallOf:
13*16f21256SEduard Bostina  - $ref: /schemas/clock/clock.yaml#
14*16f21256SEduard Bostina
15*16f21256SEduard Bostinadescription:
16*16f21256SEduard Bostina  This binding assumes a register-mapped APLL with usually two selectable
17*16f21256SEduard Bostina  input clocks (reference clock and bypass clock), with analog phase locked
18*16f21256SEduard Bostina  loop logic for multiplying the input clock to a desired output clock.
19*16f21256SEduard Bostina  This clock also typically supports different operation modes (locked, low
20*16f21256SEduard Bostina  power stop etc.) APLL mostly behaves like a subtype of a DPLL, although
21*16f21256SEduard Bostina  a simplified one at that.
22*16f21256SEduard Bostina
23*16f21256SEduard Bostinaproperties:
24*16f21256SEduard Bostina  compatible:
25*16f21256SEduard Bostina    enum:
26*16f21256SEduard Bostina      - ti,dra7-apll-clock
27*16f21256SEduard Bostina      - ti,omap2-apll-clock
28*16f21256SEduard Bostina
29*16f21256SEduard Bostina  "#clock-cells":
30*16f21256SEduard Bostina    const: 0
31*16f21256SEduard Bostina
32*16f21256SEduard Bostina  clocks:
33*16f21256SEduard Bostina    minItems: 1
34*16f21256SEduard Bostina    maxItems: 2
35*16f21256SEduard Bostina    description: Link phandles of parent clocks (clk-ref and clk-bypass)
36*16f21256SEduard Bostina
37*16f21256SEduard Bostina  reg:
38*16f21256SEduard Bostina    minItems: 2
39*16f21256SEduard Bostina    maxItems: 3
40*16f21256SEduard Bostina    description: |
41*16f21256SEduard Bostina      Address and length of the register set for controlling the APLL.
42*16f21256SEduard Bostina      It contains the information of registers in the following order:
43*16f21256SEduard Bostina      "control" - contains the control register offset
44*16f21256SEduard Bostina      "idlest" - contains the idlest register offset
45*16f21256SEduard Bostina      "autoidle" - contains the autoidle register offset (OMAP2 only)
46*16f21256SEduard Bostina
47*16f21256SEduard Bostina  ti,clock-frequency:
48*16f21256SEduard Bostina    $ref: /schemas/types.yaml#/definitions/uint32
49*16f21256SEduard Bostina    description: static clock frequency for the clock (OMAP2 only)
50*16f21256SEduard Bostina
51*16f21256SEduard Bostina  ti,idlest-shift:
52*16f21256SEduard Bostina    $ref: /schemas/types.yaml#/definitions/uint32
53*16f21256SEduard Bostina    description: bit-shift for the idlest field (OMAP2 only)
54*16f21256SEduard Bostina
55*16f21256SEduard Bostina  ti,bit-shift:
56*16f21256SEduard Bostina    $ref: /schemas/types.yaml#/definitions/uint32
57*16f21256SEduard Bostina    description: bit-shift for enable and autoidle fields (OMAP2 only)
58*16f21256SEduard Bostina
59*16f21256SEduard Bostinarequired:
60*16f21256SEduard Bostina  - compatible
61*16f21256SEduard Bostina  - "#clock-cells"
62*16f21256SEduard Bostina  - clocks
63*16f21256SEduard Bostina  - reg
64*16f21256SEduard Bostina
65*16f21256SEduard BostinaunevaluatedProperties: false
66*16f21256SEduard Bostina
67*16f21256SEduard Bostinaexamples:
68*16f21256SEduard Bostina  - |
69*16f21256SEduard Bostina    bus {
70*16f21256SEduard Bostina        #address-cells = <1>;
71*16f21256SEduard Bostina        #size-cells = <0>;
72*16f21256SEduard Bostina
73*16f21256SEduard Bostina        clock@21c {
74*16f21256SEduard Bostina            #clock-cells = <0>;
75*16f21256SEduard Bostina            compatible = "ti,dra7-apll-clock";
76*16f21256SEduard Bostina            clocks = <&apll_pcie_in_clk_mux>, <&dpll_pcie_ref_ck>;
77*16f21256SEduard Bostina            reg = <0x021c>, <0x0220>;
78*16f21256SEduard Bostina        };
79*16f21256SEduard Bostina
80*16f21256SEduard Bostina        clock@500 {
81*16f21256SEduard Bostina            #clock-cells = <0>;
82*16f21256SEduard Bostina            compatible = "ti,omap2-apll-clock";
83*16f21256SEduard Bostina            clocks = <&sys_ck>;
84*16f21256SEduard Bostina            ti,bit-shift = <2>;
85*16f21256SEduard Bostina            ti,idlest-shift = <8>;
86*16f21256SEduard Bostina            ti,clock-frequency = <96000000>;
87*16f21256SEduard Bostina            reg = <0x0500>, <0x0530>, <0x0520>;
88*16f21256SEduard Bostina        };
89*16f21256SEduard Bostina    };
90