162306a36Sopenharmony_ciBinding for a type of flexgen structure found on certain 262306a36Sopenharmony_ciSTMicroelectronics consumer electronics SoC devices 362306a36Sopenharmony_ci 462306a36Sopenharmony_ciThis structure includes: 562306a36Sopenharmony_ci- a clock cross bar (represented by a mux element) 662306a36Sopenharmony_ci- a pre and final dividers (represented by a divider and gate elements) 762306a36Sopenharmony_ci 862306a36Sopenharmony_ciFlexgen structure is a part of Clockgen[1]. 962306a36Sopenharmony_ci 1062306a36Sopenharmony_ciPlease find an example below: 1162306a36Sopenharmony_ci 1262306a36Sopenharmony_ci Clockgen block diagram 1362306a36Sopenharmony_ci ------------------------------------------------------------------- 1462306a36Sopenharmony_ci | Flexgen structure | 1562306a36Sopenharmony_ci | --------------------------------------------- | 1662306a36Sopenharmony_ci | | ------- -------- -------- | | 1762306a36Sopenharmony_ciclk_sysin | | | | | | | | | 1862306a36Sopenharmony_ci---|-----------------|-->| | | | | | | | 1962306a36Sopenharmony_ci | | | | | | | | | | | 2062306a36Sopenharmony_ci | | ------- | | | |Pre | |Final | | | 2162306a36Sopenharmony_ci | | |PLL0 | | | | |Dividers| |Dividers| | | 2262306a36Sopenharmony_ci | |->| | | | | | x32 | | x32 | | | 2362306a36Sopenharmony_ci | | | odf_0|----|-->| | | | | | | | 2462306a36Sopenharmony_ci | | | | | | | | | | | | | 2562306a36Sopenharmony_ci | | | | | | | | | | | | | 2662306a36Sopenharmony_ci | | | | | | | | | | | | | 2762306a36Sopenharmony_ci | | | | | | | | | | | | | 2862306a36Sopenharmony_ci | | ------- | | | | | | | | | 2962306a36Sopenharmony_ci | | | | | | | | | | | 3062306a36Sopenharmony_ci | | ------- | | Clock | | | | | | | 3162306a36Sopenharmony_ci | | |PLL1 | | | | | | | | | | 3262306a36Sopenharmony_ci | |->| | | | Cross | | | | | | | 3362306a36Sopenharmony_ci | | | odf_0|----|-->| | | | | | CLK_DIV[31:0] 3462306a36Sopenharmony_ci | | | | | | Bar |====>| |====>| |===|=========> 3562306a36Sopenharmony_ci | | | | | | | | | | | | | 3662306a36Sopenharmony_ci | | | | | | | | | | | | | 3762306a36Sopenharmony_ci | | | | | | | | | | | | | 3862306a36Sopenharmony_ci | | ------- | | | | | | | | | 3962306a36Sopenharmony_ci | | | | | | | | | | | 4062306a36Sopenharmony_ci | | ------- | | | | | | | | | 4162306a36Sopenharmony_ci | | |QUADFS | | | | | | | | | | 4262306a36Sopenharmony_ci | |->| ch0|----|-->| | | | | | | | 4362306a36Sopenharmony_ci | | | | | | | | | | | | 4462306a36Sopenharmony_ci | | ch1|----|-->| | | | | | | | 4562306a36Sopenharmony_ci | | | | | | | | | | | | 4662306a36Sopenharmony_ci | | ch2|----|-->| | | DIV | | DIV | | | 4762306a36Sopenharmony_ci | | | | | | | 1 to | | 1 to | | | 4862306a36Sopenharmony_ci | | ch3|----|-->| | | 1024 | | 64 | | | 4962306a36Sopenharmony_ci | ------- | | | | | | | | | 5062306a36Sopenharmony_ci | | ------- -------- -------- | | 5162306a36Sopenharmony_ci | -------------------------------------------- | 5262306a36Sopenharmony_ci | | 5362306a36Sopenharmony_ci ------------------------------------------------------------------- 5462306a36Sopenharmony_ci 5562306a36Sopenharmony_ciThis binding uses the common clock binding[2]. 5662306a36Sopenharmony_ci 5762306a36Sopenharmony_ci[1] Documentation/devicetree/bindings/clock/st/st,clkgen.txt 5862306a36Sopenharmony_ci[2] Documentation/devicetree/bindings/clock/clock-bindings.txt 5962306a36Sopenharmony_ci 6062306a36Sopenharmony_ciRequired properties: 6162306a36Sopenharmony_ci- compatible : shall be: 6262306a36Sopenharmony_ci "st,flexgen" 6362306a36Sopenharmony_ci "st,flexgen-audio", "st,flexgen" (enable clock propagation on parent for 6462306a36Sopenharmony_ci audio use case) 6562306a36Sopenharmony_ci "st,flexgen-video", "st,flexgen" (enable clock propagation on parent 6662306a36Sopenharmony_ci and activate synchronous mode) 6762306a36Sopenharmony_ci "st,flexgen-stih407-a0" 6862306a36Sopenharmony_ci "st,flexgen-stih410-a0" 6962306a36Sopenharmony_ci "st,flexgen-stih407-c0" 7062306a36Sopenharmony_ci "st,flexgen-stih410-c0" 7162306a36Sopenharmony_ci "st,flexgen-stih418-c0" 7262306a36Sopenharmony_ci "st,flexgen-stih407-d0" 7362306a36Sopenharmony_ci "st,flexgen-stih410-d0" 7462306a36Sopenharmony_ci "st,flexgen-stih407-d2" 7562306a36Sopenharmony_ci "st,flexgen-stih418-d2" 7662306a36Sopenharmony_ci "st,flexgen-stih407-d3" 7762306a36Sopenharmony_ci 7862306a36Sopenharmony_ci- #clock-cells : from common clock binding; shall be set to 1 (multiple clock 7962306a36Sopenharmony_ci outputs). 8062306a36Sopenharmony_ci 8162306a36Sopenharmony_ci- clocks : must be set to the parent's phandle. it could be output clocks of 8262306a36Sopenharmony_ci a quadsfs or/and a pll or/and clk_sysin (up to 7 clocks) 8362306a36Sopenharmony_ci 8462306a36Sopenharmony_ci- clock-output-names : List of strings used to name the clock outputs. 8562306a36Sopenharmony_ci 8662306a36Sopenharmony_ciExample: 8762306a36Sopenharmony_ci 8862306a36Sopenharmony_ci clk_s_c0_flexgen: clk-s-c0-flexgen { 8962306a36Sopenharmony_ci 9062306a36Sopenharmony_ci #clock-cells = <1>; 9162306a36Sopenharmony_ci compatible = "st,flexgen"; 9262306a36Sopenharmony_ci 9362306a36Sopenharmony_ci clocks = <&clk_s_c0_pll0 0>, 9462306a36Sopenharmony_ci <&clk_s_c0_pll1 0>, 9562306a36Sopenharmony_ci <&clk_s_c0_quadfs 0>, 9662306a36Sopenharmony_ci <&clk_s_c0_quadfs 1>, 9762306a36Sopenharmony_ci <&clk_s_c0_quadfs 2>, 9862306a36Sopenharmony_ci <&clk_s_c0_quadfs 3>, 9962306a36Sopenharmony_ci <&clk_sysin>; 10062306a36Sopenharmony_ci 10162306a36Sopenharmony_ci clock-output-names = "clk-icn-gpu", 10262306a36Sopenharmony_ci "clk-fdma", 10362306a36Sopenharmony_ci "clk-nand", 10462306a36Sopenharmony_ci "clk-hva", 10562306a36Sopenharmony_ci "clk-proc-stfe", 10662306a36Sopenharmony_ci "clk-proc-tp", 10762306a36Sopenharmony_ci "clk-rx-icn-dmu", 10862306a36Sopenharmony_ci "clk-rx-icn-hva", 10962306a36Sopenharmony_ci "clk-icn-cpu", 11062306a36Sopenharmony_ci "clk-tx-icn-dmu", 11162306a36Sopenharmony_ci "clk-mmc-0", 11262306a36Sopenharmony_ci "clk-mmc-1", 11362306a36Sopenharmony_ci "clk-jpegdec", 11462306a36Sopenharmony_ci "clk-ext2fa9", 11562306a36Sopenharmony_ci "clk-ic-bdisp-0", 11662306a36Sopenharmony_ci "clk-ic-bdisp-1", 11762306a36Sopenharmony_ci "clk-pp-dmu", 11862306a36Sopenharmony_ci "clk-vid-dmu", 11962306a36Sopenharmony_ci "clk-dss-lpc", 12062306a36Sopenharmony_ci "clk-st231-aud-0", 12162306a36Sopenharmony_ci "clk-st231-gp-1", 12262306a36Sopenharmony_ci "clk-st231-dmu", 12362306a36Sopenharmony_ci "clk-icn-lmi", 12462306a36Sopenharmony_ci "clk-tx-icn-disp-1", 12562306a36Sopenharmony_ci "clk-icn-sbc", 12662306a36Sopenharmony_ci "clk-stfe-frc2", 12762306a36Sopenharmony_ci "clk-eth-phy", 12862306a36Sopenharmony_ci "clk-eth-ref-phyclk", 12962306a36Sopenharmony_ci "clk-flash-promip", 13062306a36Sopenharmony_ci "clk-main-disp", 13162306a36Sopenharmony_ci "clk-aux-disp", 13262306a36Sopenharmony_ci "clk-compo-dvp"; 13362306a36Sopenharmony_ci }; 134