xref: /freebsd/sys/contrib/device-tree/Bindings/clock/st/st,clkgen.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel VadotBinding for a Clockgen hardware block found on
2*c66ec88fSEmmanuel Vadotcertain STMicroelectronics consumer electronics SoC devices.
3*c66ec88fSEmmanuel Vadot
4*c66ec88fSEmmanuel VadotA Clockgen node can contain pll, diviser or multiplexer nodes.
5*c66ec88fSEmmanuel Vadot
6*c66ec88fSEmmanuel VadotWe will find only the base address of the Clockgen, this base
7*c66ec88fSEmmanuel Vadotaddress is common of all subnode.
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot	clockgen_node {
10*c66ec88fSEmmanuel Vadot		reg = <>;
11*c66ec88fSEmmanuel Vadot
12*c66ec88fSEmmanuel Vadot		pll_node {
13*c66ec88fSEmmanuel Vadot			...
14*c66ec88fSEmmanuel Vadot		};
15*c66ec88fSEmmanuel Vadot
16*c66ec88fSEmmanuel Vadot		quadfs_node {
17*c66ec88fSEmmanuel Vadot			...
18*c66ec88fSEmmanuel Vadot		};
19*c66ec88fSEmmanuel Vadot
20*c66ec88fSEmmanuel Vadot		mux_node {
21*c66ec88fSEmmanuel Vadot			...
22*c66ec88fSEmmanuel Vadot		};
23*c66ec88fSEmmanuel Vadot
24*c66ec88fSEmmanuel Vadot		flexgen_node {
25*c66ec88fSEmmanuel Vadot			...
26*c66ec88fSEmmanuel Vadot		};
27*c66ec88fSEmmanuel Vadot		...
28*c66ec88fSEmmanuel Vadot	};
29*c66ec88fSEmmanuel Vadot
30*c66ec88fSEmmanuel VadotThis binding uses the common clock binding[1].
31*c66ec88fSEmmanuel VadotEach subnode should use the binding described in [2]..[7]
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel Vadot[1] Documentation/devicetree/bindings/clock/clock-bindings.txt
34*c66ec88fSEmmanuel Vadot[3] Documentation/devicetree/bindings/clock/st/st,clkgen-mux.txt
35*c66ec88fSEmmanuel Vadot[4] Documentation/devicetree/bindings/clock/st/st,clkgen-pll.txt
36*c66ec88fSEmmanuel Vadot[7] Documentation/devicetree/bindings/clock/st/st,quadfs.txt
37*c66ec88fSEmmanuel Vadot[8] Documentation/devicetree/bindings/clock/st/st,flexgen.txt
38*c66ec88fSEmmanuel Vadot
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel VadotRequired properties:
41*c66ec88fSEmmanuel Vadot- reg : A Base address and length of the register set.
42*c66ec88fSEmmanuel Vadot
43*c66ec88fSEmmanuel VadotExample:
44*c66ec88fSEmmanuel Vadot
45*c66ec88fSEmmanuel Vadot	clockgen-a@90ff000 {
46*c66ec88fSEmmanuel Vadot		compatible = "st,clkgen-c32";
47*c66ec88fSEmmanuel Vadot		reg = <0x90ff000 0x1000>;
48*c66ec88fSEmmanuel Vadot
49*c66ec88fSEmmanuel Vadot		clk_s_a0_pll: clk-s-a0-pll {
50*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
51*c66ec88fSEmmanuel Vadot			compatible = "st,clkgen-pll0";
52*c66ec88fSEmmanuel Vadot
53*c66ec88fSEmmanuel Vadot			clocks = <&clk_sysin>;
54*c66ec88fSEmmanuel Vadot
55*c66ec88fSEmmanuel Vadot			clock-output-names = "clk-s-a0-pll-ofd-0";
56*c66ec88fSEmmanuel Vadot		};
57*c66ec88fSEmmanuel Vadot
58*c66ec88fSEmmanuel Vadot		clk_s_a0_flexgen: clk-s-a0-flexgen {
59*c66ec88fSEmmanuel Vadot			compatible = "st,flexgen";
60*c66ec88fSEmmanuel Vadot
61*c66ec88fSEmmanuel Vadot			#clock-cells = <1>;
62*c66ec88fSEmmanuel Vadot
63*c66ec88fSEmmanuel Vadot			clocks = <&clk_s_a0_pll 0>,
64*c66ec88fSEmmanuel Vadot				 <&clk_sysin>;
65*c66ec88fSEmmanuel Vadot
66*c66ec88fSEmmanuel Vadot			clock-output-names = "clk-ic-lmi0";
67*c66ec88fSEmmanuel Vadot		};
68*c66ec88fSEmmanuel Vadot	};
69