xref: /linux/Documentation/devicetree/bindings/clock/st/st,flexgen.txt (revision 3414666d34bb50f91965d16eab98a5fd7c8af08c)
1*3414666dSGabriel FERNANDEZBinding for a type of flexgen structure found on certain
2*3414666dSGabriel FERNANDEZSTMicroelectronics consumer electronics SoC devices
3*3414666dSGabriel FERNANDEZ
4*3414666dSGabriel FERNANDEZThis structure includes:
5*3414666dSGabriel FERNANDEZ- a clock cross bar (represented by a mux element)
6*3414666dSGabriel FERNANDEZ- a pre and final dividers (represented by a divider and gate elements)
7*3414666dSGabriel FERNANDEZ
8*3414666dSGabriel FERNANDEZFlexgen structure is a part of Clockgen[1].
9*3414666dSGabriel FERNANDEZ
10*3414666dSGabriel FERNANDEZPlease find an example below:
11*3414666dSGabriel FERNANDEZ
12*3414666dSGabriel FERNANDEZ    Clockgen block diagram
13*3414666dSGabriel FERNANDEZ    -------------------------------------------------------------------
14*3414666dSGabriel FERNANDEZ   |                     Flexgen stucture                              |
15*3414666dSGabriel FERNANDEZ   |                  ---------------------------------------------    |
16*3414666dSGabriel FERNANDEZ   |                 |    -------       --------       --------    |   |
17*3414666dSGabriel FERNANDEZclk_sysin            |   |       |     |        |     |        |   |   |
18*3414666dSGabriel FERNANDEZ---|-----------------|-->|       |     |        |     |        |   |   |
19*3414666dSGabriel FERNANDEZ   | |               |   |       |     |        |     |        |   |   |
20*3414666dSGabriel FERNANDEZ   | |   -------     |   |       |     |Pre     |     |Final   |   |   |
21*3414666dSGabriel FERNANDEZ   | |  |PLL0   |    |   |       |     |Dividers|     |Dividers|   |   |
22*3414666dSGabriel FERNANDEZ   | |->|       |    |   |       |     |  x32   |     |  x32   |   |   |
23*3414666dSGabriel FERNANDEZ   | |  |  odf_0|----|-->|       |     |        |     |        |   |   |
24*3414666dSGabriel FERNANDEZ   | |  |       |    |   |       |     |        |     |        |   |   |
25*3414666dSGabriel FERNANDEZ   | |  |       |    |   |       |     |        |     |        |   |   |
26*3414666dSGabriel FERNANDEZ   | |  |       |    |   |       |     |        |     |        |   |   |
27*3414666dSGabriel FERNANDEZ   | |  |       |    |   |       |     |        |     |        |   |   |
28*3414666dSGabriel FERNANDEZ   | |   -------     |   |       |     |        |     |        |   |   |
29*3414666dSGabriel FERNANDEZ   | |               |   |       |     |        |     |        |   |   |
30*3414666dSGabriel FERNANDEZ   | |   -------     |   | Clock |     |        |     |        |   |   |
31*3414666dSGabriel FERNANDEZ   | |  |PLL1   |    |   |       |     |        |     |        |   |   |
32*3414666dSGabriel FERNANDEZ   | |->|       |    |   | Cross |     |        |     |        |   |   |
33*3414666dSGabriel FERNANDEZ   | |  |  odf_0|----|-->|       |     |        |     |        | CLK_DIV[31:0]
34*3414666dSGabriel FERNANDEZ   | |  |       |    |   | Bar   |====>|        |====>|        |===|=========>
35*3414666dSGabriel FERNANDEZ   | |  |       |    |   |       |     |        |     |        |   |   |
36*3414666dSGabriel FERNANDEZ   | |  |       |    |   |       |     |        |     |        |   |   |
37*3414666dSGabriel FERNANDEZ   | |  |       |    |   |       |     |        |     |        |   |   |
38*3414666dSGabriel FERNANDEZ   | |   -------     |   |       |     |        |     |        |   |   |
39*3414666dSGabriel FERNANDEZ   | |               |   |       |     |        |     |        |   |   |
40*3414666dSGabriel FERNANDEZ   | |   -------     |   |       |     |        |     |        |   |   |
41*3414666dSGabriel FERNANDEZ   | |  |QUADFS |    |   |       |     |        |     |        |   |   |
42*3414666dSGabriel FERNANDEZ   | |->|    ch0|----|-->|       |     |        |     |        |   |   |
43*3414666dSGabriel FERNANDEZ   |    |       |    |   |       |     |        |     |        |   |   |
44*3414666dSGabriel FERNANDEZ   |    |    ch1|----|-->|       |     |        |     |        |   |   |
45*3414666dSGabriel FERNANDEZ   |    |       |    |   |       |     |        |     |        |   |   |
46*3414666dSGabriel FERNANDEZ   |    |    ch2|----|-->|       |     | DIV    |     | DIV    |   |   |
47*3414666dSGabriel FERNANDEZ   |    |       |    |   |       |     |  1 to  |     |  1 to  |   |   |
48*3414666dSGabriel FERNANDEZ   |    |    ch3|----|-->|       |     |   1024 |     |     64 |   |   |
49*3414666dSGabriel FERNANDEZ   |     -------     |   |       |     |        |     |        |   |   |
50*3414666dSGabriel FERNANDEZ   |                 |    -------       --------       --------    |   |
51*3414666dSGabriel FERNANDEZ   |                   --------------------------------------------    |
52*3414666dSGabriel FERNANDEZ   |                                                                   |
53*3414666dSGabriel FERNANDEZ    -------------------------------------------------------------------
54*3414666dSGabriel FERNANDEZ
55*3414666dSGabriel FERNANDEZThis binding uses the common clock binding[2].
56*3414666dSGabriel FERNANDEZ
57*3414666dSGabriel FERNANDEZ[1] Documentation/devicetree/bindings/clock/st/st,clkgen.txt
58*3414666dSGabriel FERNANDEZ[2] Documentation/devicetree/bindings/clock/clock-bindings.txt
59*3414666dSGabriel FERNANDEZ
60*3414666dSGabriel FERNANDEZRequired properties:
61*3414666dSGabriel FERNANDEZ- compatible : shall be:
62*3414666dSGabriel FERNANDEZ  "st,flexgen"
63*3414666dSGabriel FERNANDEZ
64*3414666dSGabriel FERNANDEZ- #clock-cells : from common clock binding; shall be set to 1 (multiple clock
65*3414666dSGabriel FERNANDEZ  outputs).
66*3414666dSGabriel FERNANDEZ
67*3414666dSGabriel FERNANDEZ- clocks : must be set to the parent's phandle. it's could be output clocks of
68*3414666dSGabriel FERNANDEZ  a quadsfs or/and a pll or/and clk_sysin (up to 7 clocks)
69*3414666dSGabriel FERNANDEZ
70*3414666dSGabriel FERNANDEZ- clock-output-names : List of strings used to name the clock outputs.
71*3414666dSGabriel FERNANDEZ
72*3414666dSGabriel FERNANDEZExample:
73*3414666dSGabriel FERNANDEZ
74*3414666dSGabriel FERNANDEZ	clk_s_c0_flexgen: clk-s-c0-flexgen {
75*3414666dSGabriel FERNANDEZ
76*3414666dSGabriel FERNANDEZ		#clock-cells = <1>;
77*3414666dSGabriel FERNANDEZ		compatible = "st,flexgen";
78*3414666dSGabriel FERNANDEZ
79*3414666dSGabriel FERNANDEZ		clocks = <&clk_s_c0_pll0 0>,
80*3414666dSGabriel FERNANDEZ			 <&clk_s_c0_pll1 0>,
81*3414666dSGabriel FERNANDEZ			 <&clk_s_c0_quadfs 0>,
82*3414666dSGabriel FERNANDEZ			 <&clk_s_c0_quadfs 1>,
83*3414666dSGabriel FERNANDEZ			 <&clk_s_c0_quadfs 2>,
84*3414666dSGabriel FERNANDEZ			 <&clk_s_c0_quadfs 3>,
85*3414666dSGabriel FERNANDEZ			 <&clk_sysin>;
86*3414666dSGabriel FERNANDEZ
87*3414666dSGabriel FERNANDEZ		clock-output-names = "clk-icn-gpu",
88*3414666dSGabriel FERNANDEZ				     "clk-fdma",
89*3414666dSGabriel FERNANDEZ				     "clk-nand",
90*3414666dSGabriel FERNANDEZ				     "clk-hva",
91*3414666dSGabriel FERNANDEZ				     "clk-proc-stfe",
92*3414666dSGabriel FERNANDEZ				     "clk-proc-tp",
93*3414666dSGabriel FERNANDEZ				     "clk-rx-icn-dmu",
94*3414666dSGabriel FERNANDEZ				     "clk-rx-icn-hva",
95*3414666dSGabriel FERNANDEZ				     "clk-icn-cpu",
96*3414666dSGabriel FERNANDEZ				     "clk-tx-icn-dmu",
97*3414666dSGabriel FERNANDEZ				     "clk-mmc-0",
98*3414666dSGabriel FERNANDEZ				     "clk-mmc-1",
99*3414666dSGabriel FERNANDEZ				     "clk-jpegdec",
100*3414666dSGabriel FERNANDEZ				     "clk-ext2fa9",
101*3414666dSGabriel FERNANDEZ				     "clk-ic-bdisp-0",
102*3414666dSGabriel FERNANDEZ				     "clk-ic-bdisp-1",
103*3414666dSGabriel FERNANDEZ				     "clk-pp-dmu",
104*3414666dSGabriel FERNANDEZ				     "clk-vid-dmu",
105*3414666dSGabriel FERNANDEZ				     "clk-dss-lpc",
106*3414666dSGabriel FERNANDEZ				     "clk-st231-aud-0",
107*3414666dSGabriel FERNANDEZ				     "clk-st231-gp-1",
108*3414666dSGabriel FERNANDEZ				     "clk-st231-dmu",
109*3414666dSGabriel FERNANDEZ				     "clk-icn-lmi",
110*3414666dSGabriel FERNANDEZ				     "clk-tx-icn-disp-1",
111*3414666dSGabriel FERNANDEZ				     "clk-icn-sbc",
112*3414666dSGabriel FERNANDEZ				     "clk-stfe-frc2",
113*3414666dSGabriel FERNANDEZ				     "clk-eth-phy",
114*3414666dSGabriel FERNANDEZ				     "clk-eth-ref-phyclk",
115*3414666dSGabriel FERNANDEZ				     "clk-flash-promip",
116*3414666dSGabriel FERNANDEZ				     "clk-main-disp",
117*3414666dSGabriel FERNANDEZ				     "clk-aux-disp",
118*3414666dSGabriel FERNANDEZ				     "clk-compo-dvp";
119*3414666dSGabriel FERNANDEZ	};
120