18c2ecf20Sopenharmony_ciBinding for a Clockgen hardware block found on
28c2ecf20Sopenharmony_cicertain STMicroelectronics consumer electronics SoC devices.
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ciA Clockgen node can contain pll, diviser or multiplexer nodes.
58c2ecf20Sopenharmony_ci
68c2ecf20Sopenharmony_ciWe will find only the base address of the Clockgen, this base
78c2ecf20Sopenharmony_ciaddress is common of all subnode.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci	clockgen_node {
108c2ecf20Sopenharmony_ci		reg = <>;
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci		pll_node {
138c2ecf20Sopenharmony_ci			...
148c2ecf20Sopenharmony_ci		};
158c2ecf20Sopenharmony_ci
168c2ecf20Sopenharmony_ci		quadfs_node {
178c2ecf20Sopenharmony_ci			...
188c2ecf20Sopenharmony_ci		};
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ci		mux_node {
218c2ecf20Sopenharmony_ci			...
228c2ecf20Sopenharmony_ci		};
238c2ecf20Sopenharmony_ci
248c2ecf20Sopenharmony_ci		flexgen_node {
258c2ecf20Sopenharmony_ci			...
268c2ecf20Sopenharmony_ci		};
278c2ecf20Sopenharmony_ci		...
288c2ecf20Sopenharmony_ci	};
298c2ecf20Sopenharmony_ci
308c2ecf20Sopenharmony_ciThis binding uses the common clock binding[1].
318c2ecf20Sopenharmony_ciEach subnode should use the binding described in [2]..[7]
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
348c2ecf20Sopenharmony_ci[3] Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt
358c2ecf20Sopenharmony_ci[4] Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
368c2ecf20Sopenharmony_ci[7] Documentation/devicetree/bindings/clock/st/st,quadfs.txt
378c2ecf20Sopenharmony_ci[8] Documentation/devicetree/bindings/clock/st/st,flexgen.txt
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ci
408c2ecf20Sopenharmony_ciRequired properties:
418c2ecf20Sopenharmony_ci- reg : A Base address and length of the register set.
428c2ecf20Sopenharmony_ci
438c2ecf20Sopenharmony_ciExample:
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ci	clockgen-a@90ff000 {
468c2ecf20Sopenharmony_ci		compatible = "st,clkgen-c32";
478c2ecf20Sopenharmony_ci		reg = <0x90ff000 0x1000>;
488c2ecf20Sopenharmony_ci
498c2ecf20Sopenharmony_ci		clk_s_a0_pll: clk-s-a0-pll {
508c2ecf20Sopenharmony_ci			#clock-cells = <1>;
518c2ecf20Sopenharmony_ci			compatible = "st,clkgen-pll0";
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ci			clocks = <&clk_sysin>;
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci			clock-output-names = "clk-s-a0-pll-ofd-0";
568c2ecf20Sopenharmony_ci		};
578c2ecf20Sopenharmony_ci
588c2ecf20Sopenharmony_ci		clk_s_a0_flexgen: clk-s-a0-flexgen {
598c2ecf20Sopenharmony_ci			compatible = "st,flexgen";
608c2ecf20Sopenharmony_ci
618c2ecf20Sopenharmony_ci			#clock-cells = <1>;
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci			clocks = <&clk_s_a0_pll 0>,
648c2ecf20Sopenharmony_ci				 <&clk_sysin>;
658c2ecf20Sopenharmony_ci
668c2ecf20Sopenharmony_ci			clock-output-names = "clk-ic-lmi0";
678c2ecf20Sopenharmony_ci		};
688c2ecf20Sopenharmony_ci	};
69