xref: /freebsd/sys/contrib/device-tree/Bindings/clock/samsung,s5pv210-clock.txt (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
1*c66ec88fSEmmanuel Vadot* Samsung S5P6442/S5PC110/S5PV210 Clock Controller
2*c66ec88fSEmmanuel Vadot
3*c66ec88fSEmmanuel VadotSamsung S5P6442, S5PC110 and S5PV210 SoCs contain integrated clock
4*c66ec88fSEmmanuel Vadotcontroller, which generates and supplies clock to various controllers
5*c66ec88fSEmmanuel Vadotwithin the SoC.
6*c66ec88fSEmmanuel Vadot
7*c66ec88fSEmmanuel VadotRequired Properties:
8*c66ec88fSEmmanuel Vadot
9*c66ec88fSEmmanuel Vadot- compatible: should be one of following:
10*c66ec88fSEmmanuel Vadot	- "samsung,s5pv210-clock" : for clock controller of Samsung
11*c66ec88fSEmmanuel Vadot	  S5PC110/S5PV210 SoCs,
12*c66ec88fSEmmanuel Vadot	- "samsung,s5p6442-clock" : for clock controller of Samsung
13*c66ec88fSEmmanuel Vadot	  S5P6442 SoC.
14*c66ec88fSEmmanuel Vadot
15*c66ec88fSEmmanuel Vadot- reg: physical base address of the controller and length of memory mapped
16*c66ec88fSEmmanuel Vadot  region.
17*c66ec88fSEmmanuel Vadot
18*c66ec88fSEmmanuel Vadot- #clock-cells: should be 1.
19*c66ec88fSEmmanuel Vadot
20*c66ec88fSEmmanuel VadotAll available clocks are defined as preprocessor macros in
21*c66ec88fSEmmanuel Vadotdt-bindings/clock/s5pv210.h header and can be used in device tree sources.
22*c66ec88fSEmmanuel Vadot
23*c66ec88fSEmmanuel VadotExternal clocks:
24*c66ec88fSEmmanuel Vadot
25*c66ec88fSEmmanuel VadotThere are several clocks that are generated outside the SoC. It is expected
26*c66ec88fSEmmanuel Vadotthat they are defined using standard clock bindings with following
27*c66ec88fSEmmanuel Vadotclock-output-names:
28*c66ec88fSEmmanuel Vadot - "xxti": external crystal oscillator connected to XXTI and XXTO pins of
29*c66ec88fSEmmanuel Vadotthe SoC,
30*c66ec88fSEmmanuel Vadot - "xusbxti": external crystal oscillator connected to XUSBXTI and XUSBXTO
31*c66ec88fSEmmanuel Vadotpins of the SoC,
32*c66ec88fSEmmanuel Vadot
33*c66ec88fSEmmanuel VadotA subset of above clocks available on given board shall be specified in
34*c66ec88fSEmmanuel Vadotboard device tree, including the system base clock, as selected by XOM[0]
35*c66ec88fSEmmanuel Vadotpin of the SoC. Refer to generic fixed rate clock bindings
36*c66ec88fSEmmanuel Vadotdocumentation[1] for more information how to specify these clocks.
37*c66ec88fSEmmanuel Vadot
38*c66ec88fSEmmanuel Vadot[1] Documentation/devicetree/bindings/clock/fixed-clock.yaml
39*c66ec88fSEmmanuel Vadot
40*c66ec88fSEmmanuel VadotExample: Clock controller node:
41*c66ec88fSEmmanuel Vadot
42*c66ec88fSEmmanuel Vadot	clock: clock-controller@7e00f000 {
43*c66ec88fSEmmanuel Vadot		compatible = "samsung,s5pv210-clock";
44*c66ec88fSEmmanuel Vadot		reg = <0x7e00f000 0x1000>;
45*c66ec88fSEmmanuel Vadot		#clock-cells = <1>;
46*c66ec88fSEmmanuel Vadot	};
47*c66ec88fSEmmanuel Vadot
48*c66ec88fSEmmanuel VadotExample: Required external clocks:
49*c66ec88fSEmmanuel Vadot
50*c66ec88fSEmmanuel Vadot	xxti: clock-xxti {
51*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
52*c66ec88fSEmmanuel Vadot		clock-output-names = "xxti";
53*c66ec88fSEmmanuel Vadot		clock-frequency = <24000000>;
54*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
55*c66ec88fSEmmanuel Vadot	};
56*c66ec88fSEmmanuel Vadot
57*c66ec88fSEmmanuel Vadot	xusbxti: clock-xusbxti {
58*c66ec88fSEmmanuel Vadot		compatible = "fixed-clock";
59*c66ec88fSEmmanuel Vadot		clock-output-names = "xusbxti";
60*c66ec88fSEmmanuel Vadot		clock-frequency = <24000000>;
61*c66ec88fSEmmanuel Vadot		#clock-cells = <0>;
62*c66ec88fSEmmanuel Vadot	};
63*c66ec88fSEmmanuel Vadot
64*c66ec88fSEmmanuel VadotExample: UART controller node that consumes the clock generated by the clock
65*c66ec88fSEmmanuel Vadot  controller (refer to the standard clock bindings for information about
66*c66ec88fSEmmanuel Vadot  "clocks" and "clock-names" properties):
67*c66ec88fSEmmanuel Vadot
68*c66ec88fSEmmanuel Vadot	uart0: serial@e2900000 {
69*c66ec88fSEmmanuel Vadot		compatible = "samsung,s5pv210-uart";
70*c66ec88fSEmmanuel Vadot		reg = <0xe2900000 0x400>;
71*c66ec88fSEmmanuel Vadot		interrupt-parent = <&vic1>;
72*c66ec88fSEmmanuel Vadot		interrupts = <10>;
73*c66ec88fSEmmanuel Vadot		clock-names = "uart", "clk_uart_baud0",
74*c66ec88fSEmmanuel Vadot				"clk_uart_baud1";
75*c66ec88fSEmmanuel Vadot		clocks = <&clocks UART0>, <&clocks UART0>,
76*c66ec88fSEmmanuel Vadot				<&clocks SCLK_UART0>;
77*c66ec88fSEmmanuel Vadot	};
78