13414666dSGabriel FERNANDEZBinding for a type of flexgen structure found on certain 23414666dSGabriel FERNANDEZSTMicroelectronics consumer electronics SoC devices 33414666dSGabriel FERNANDEZ 43414666dSGabriel FERNANDEZThis structure includes: 53414666dSGabriel FERNANDEZ- a clock cross bar (represented by a mux element) 63414666dSGabriel FERNANDEZ- a pre and final dividers (represented by a divider and gate elements) 73414666dSGabriel FERNANDEZ 83414666dSGabriel FERNANDEZFlexgen structure is a part of Clockgen[1]. 93414666dSGabriel FERNANDEZ 103414666dSGabriel FERNANDEZPlease find an example below: 113414666dSGabriel FERNANDEZ 123414666dSGabriel FERNANDEZ Clockgen block diagram 133414666dSGabriel FERNANDEZ ------------------------------------------------------------------- 14994bef10SGeert Uytterhoeven | Flexgen structure | 153414666dSGabriel FERNANDEZ | --------------------------------------------- | 163414666dSGabriel FERNANDEZ | | ------- -------- -------- | | 173414666dSGabriel FERNANDEZclk_sysin | | | | | | | | | 183414666dSGabriel FERNANDEZ---|-----------------|-->| | | | | | | | 193414666dSGabriel FERNANDEZ | | | | | | | | | | | 203414666dSGabriel FERNANDEZ | | ------- | | | |Pre | |Final | | | 213414666dSGabriel FERNANDEZ | | |PLL0 | | | | |Dividers| |Dividers| | | 223414666dSGabriel FERNANDEZ | |->| | | | | | x32 | | x32 | | | 233414666dSGabriel FERNANDEZ | | | odf_0|----|-->| | | | | | | | 243414666dSGabriel FERNANDEZ | | | | | | | | | | | | | 253414666dSGabriel FERNANDEZ | | | | | | | | | | | | | 263414666dSGabriel FERNANDEZ | | | | | | | | | | | | | 273414666dSGabriel FERNANDEZ | | | | | | | | | | | | | 283414666dSGabriel FERNANDEZ | | ------- | | | | | | | | | 293414666dSGabriel FERNANDEZ | | | | | | | | | | | 303414666dSGabriel FERNANDEZ | | ------- | | Clock | | | | | | | 313414666dSGabriel FERNANDEZ | | |PLL1 | | | | | | | | | | 323414666dSGabriel FERNANDEZ | |->| | | | Cross | | | | | | | 333414666dSGabriel FERNANDEZ | | | odf_0|----|-->| | | | | | CLK_DIV[31:0] 343414666dSGabriel FERNANDEZ | | | | | | Bar |====>| |====>| |===|=========> 353414666dSGabriel FERNANDEZ | | | | | | | | | | | | | 363414666dSGabriel FERNANDEZ | | | | | | | | | | | | | 373414666dSGabriel FERNANDEZ | | | | | | | | | | | | | 383414666dSGabriel FERNANDEZ | | ------- | | | | | | | | | 393414666dSGabriel FERNANDEZ | | | | | | | | | | | 403414666dSGabriel FERNANDEZ | | ------- | | | | | | | | | 413414666dSGabriel FERNANDEZ | | |QUADFS | | | | | | | | | | 423414666dSGabriel FERNANDEZ | |->| ch0|----|-->| | | | | | | | 433414666dSGabriel FERNANDEZ | | | | | | | | | | | | 443414666dSGabriel FERNANDEZ | | ch1|----|-->| | | | | | | | 453414666dSGabriel FERNANDEZ | | | | | | | | | | | | 463414666dSGabriel FERNANDEZ | | ch2|----|-->| | | DIV | | DIV | | | 473414666dSGabriel FERNANDEZ | | | | | | | 1 to | | 1 to | | | 483414666dSGabriel FERNANDEZ | | ch3|----|-->| | | 1024 | | 64 | | | 493414666dSGabriel FERNANDEZ | ------- | | | | | | | | | 503414666dSGabriel FERNANDEZ | | ------- -------- -------- | | 513414666dSGabriel FERNANDEZ | -------------------------------------------- | 523414666dSGabriel FERNANDEZ | | 533414666dSGabriel FERNANDEZ ------------------------------------------------------------------- 543414666dSGabriel FERNANDEZ 553414666dSGabriel FERNANDEZThis binding uses the common clock binding[2]. 563414666dSGabriel FERNANDEZ 573414666dSGabriel FERNANDEZ[1] Documentation/devicetree/bindings/clock/st/st,clkgen.txt 583414666dSGabriel FERNANDEZ[2] Documentation/devicetree/bindings/clock/clock-bindings.txt 593414666dSGabriel FERNANDEZ 603414666dSGabriel FERNANDEZRequired properties: 613414666dSGabriel FERNANDEZ- compatible : shall be: 623414666dSGabriel FERNANDEZ "st,flexgen" 63*26bd0a57SGabriel Fernandez "st,flexgen-audio", "st,flexgen" (enable clock propagation on parent for 64*26bd0a57SGabriel Fernandez audio use case) 653414666dSGabriel FERNANDEZ 663414666dSGabriel FERNANDEZ- #clock-cells : from common clock binding; shall be set to 1 (multiple clock 673414666dSGabriel FERNANDEZ outputs). 683414666dSGabriel FERNANDEZ 693414666dSGabriel FERNANDEZ- clocks : must be set to the parent's phandle. it's could be output clocks of 703414666dSGabriel FERNANDEZ a quadsfs or/and a pll or/and clk_sysin (up to 7 clocks) 713414666dSGabriel FERNANDEZ 723414666dSGabriel FERNANDEZ- clock-output-names : List of strings used to name the clock outputs. 733414666dSGabriel FERNANDEZ 743414666dSGabriel FERNANDEZExample: 753414666dSGabriel FERNANDEZ 763414666dSGabriel FERNANDEZ clk_s_c0_flexgen: clk-s-c0-flexgen { 773414666dSGabriel FERNANDEZ 783414666dSGabriel FERNANDEZ #clock-cells = <1>; 793414666dSGabriel FERNANDEZ compatible = "st,flexgen"; 803414666dSGabriel FERNANDEZ 813414666dSGabriel FERNANDEZ clocks = <&clk_s_c0_pll0 0>, 823414666dSGabriel FERNANDEZ <&clk_s_c0_pll1 0>, 833414666dSGabriel FERNANDEZ <&clk_s_c0_quadfs 0>, 843414666dSGabriel FERNANDEZ <&clk_s_c0_quadfs 1>, 853414666dSGabriel FERNANDEZ <&clk_s_c0_quadfs 2>, 863414666dSGabriel FERNANDEZ <&clk_s_c0_quadfs 3>, 873414666dSGabriel FERNANDEZ <&clk_sysin>; 883414666dSGabriel FERNANDEZ 893414666dSGabriel FERNANDEZ clock-output-names = "clk-icn-gpu", 903414666dSGabriel FERNANDEZ "clk-fdma", 913414666dSGabriel FERNANDEZ "clk-nand", 923414666dSGabriel FERNANDEZ "clk-hva", 933414666dSGabriel FERNANDEZ "clk-proc-stfe", 943414666dSGabriel FERNANDEZ "clk-proc-tp", 953414666dSGabriel FERNANDEZ "clk-rx-icn-dmu", 963414666dSGabriel FERNANDEZ "clk-rx-icn-hva", 973414666dSGabriel FERNANDEZ "clk-icn-cpu", 983414666dSGabriel FERNANDEZ "clk-tx-icn-dmu", 993414666dSGabriel FERNANDEZ "clk-mmc-0", 1003414666dSGabriel FERNANDEZ "clk-mmc-1", 1013414666dSGabriel FERNANDEZ "clk-jpegdec", 1023414666dSGabriel FERNANDEZ "clk-ext2fa9", 1033414666dSGabriel FERNANDEZ "clk-ic-bdisp-0", 1043414666dSGabriel FERNANDEZ "clk-ic-bdisp-1", 1053414666dSGabriel FERNANDEZ "clk-pp-dmu", 1063414666dSGabriel FERNANDEZ "clk-vid-dmu", 1073414666dSGabriel FERNANDEZ "clk-dss-lpc", 1083414666dSGabriel FERNANDEZ "clk-st231-aud-0", 1093414666dSGabriel FERNANDEZ "clk-st231-gp-1", 1103414666dSGabriel FERNANDEZ "clk-st231-dmu", 1113414666dSGabriel FERNANDEZ "clk-icn-lmi", 1123414666dSGabriel FERNANDEZ "clk-tx-icn-disp-1", 1133414666dSGabriel FERNANDEZ "clk-icn-sbc", 1143414666dSGabriel FERNANDEZ "clk-stfe-frc2", 1153414666dSGabriel FERNANDEZ "clk-eth-phy", 1163414666dSGabriel FERNANDEZ "clk-eth-ref-phyclk", 1173414666dSGabriel FERNANDEZ "clk-flash-promip", 1183414666dSGabriel FERNANDEZ "clk-main-disp", 1193414666dSGabriel FERNANDEZ "clk-aux-disp", 1203414666dSGabriel FERNANDEZ "clk-compo-dvp"; 1213414666dSGabriel FERNANDEZ }; 122