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