162306a36Sopenharmony_ciBinding for a Clockgen hardware block found on
262306a36Sopenharmony_cicertain STMicroelectronics consumer electronics SoC devices.
362306a36Sopenharmony_ci
462306a36Sopenharmony_ciA Clockgen node can contain pll, diviser or multiplexer nodes.
562306a36Sopenharmony_ci
662306a36Sopenharmony_ciWe will find only the base address of the Clockgen, this base
762306a36Sopenharmony_ciaddress is common of all subnode.
862306a36Sopenharmony_ci
962306a36Sopenharmony_ci	clockgen_node {
1062306a36Sopenharmony_ci		reg = <>;
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ci		pll_node {
1362306a36Sopenharmony_ci			...
1462306a36Sopenharmony_ci		};
1562306a36Sopenharmony_ci
1662306a36Sopenharmony_ci		quadfs_node {
1762306a36Sopenharmony_ci			...
1862306a36Sopenharmony_ci		};
1962306a36Sopenharmony_ci
2062306a36Sopenharmony_ci		mux_node {
2162306a36Sopenharmony_ci			...
2262306a36Sopenharmony_ci		};
2362306a36Sopenharmony_ci
2462306a36Sopenharmony_ci		flexgen_node {
2562306a36Sopenharmony_ci			...
2662306a36Sopenharmony_ci		};
2762306a36Sopenharmony_ci		...
2862306a36Sopenharmony_ci	};
2962306a36Sopenharmony_ci
3062306a36Sopenharmony_ciThis binding uses the common clock binding[1].
3162306a36Sopenharmony_ciEach subnode should use the binding described in [2]..[7]
3262306a36Sopenharmony_ci
3362306a36Sopenharmony_ci[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
3462306a36Sopenharmony_ci[3] Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt
3562306a36Sopenharmony_ci[4] Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
3662306a36Sopenharmony_ci[7] Documentation/devicetree/bindings/clock/st/st,quadfs.txt
3762306a36Sopenharmony_ci[8] Documentation/devicetree/bindings/clock/st/st,flexgen.txt
3862306a36Sopenharmony_ci
3962306a36Sopenharmony_ci
4062306a36Sopenharmony_ciRequired properties:
4162306a36Sopenharmony_ci- reg : A Base address and length of the register set.
4262306a36Sopenharmony_ci
4362306a36Sopenharmony_ciExample:
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci	clockgen-a@90ff000 {
4662306a36Sopenharmony_ci		compatible = "st,clkgen-c32";
4762306a36Sopenharmony_ci		reg = <0x90ff000 0x1000>;
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci		clk_s_a0_pll: clk-s-a0-pll {
5062306a36Sopenharmony_ci			#clock-cells = <1>;
5162306a36Sopenharmony_ci			compatible = "st,clkgen-pll0";
5262306a36Sopenharmony_ci
5362306a36Sopenharmony_ci			clocks = <&clk_sysin>;
5462306a36Sopenharmony_ci
5562306a36Sopenharmony_ci			clock-output-names = "clk-s-a0-pll-ofd-0";
5662306a36Sopenharmony_ci		};
5762306a36Sopenharmony_ci
5862306a36Sopenharmony_ci		clk_s_a0_flexgen: clk-s-a0-flexgen {
5962306a36Sopenharmony_ci			compatible = "st,flexgen";
6062306a36Sopenharmony_ci
6162306a36Sopenharmony_ci			#clock-cells = <1>;
6262306a36Sopenharmony_ci
6362306a36Sopenharmony_ci			clocks = <&clk_s_a0_pll 0>,
6462306a36Sopenharmony_ci				 <&clk_sysin>;
6562306a36Sopenharmony_ci
6662306a36Sopenharmony_ci			clock-output-names = "clk-ic-lmi0";
6762306a36Sopenharmony_ci		};
6862306a36Sopenharmony_ci	};
69