18c2ecf20Sopenharmony_ciDevice tree Clock bindings for Renesas EMMA Mobile EV2
28c2ecf20Sopenharmony_ci
38c2ecf20Sopenharmony_ciThis binding uses the common clock binding.
48c2ecf20Sopenharmony_ci
58c2ecf20Sopenharmony_ci* SMU
68c2ecf20Sopenharmony_ciSystem Management Unit described in user's manual R19UH0037EJ1000_SMU.
78c2ecf20Sopenharmony_ciThis is not a clock provider, but clocks under SMU depend on it.
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ciRequired properties:
108c2ecf20Sopenharmony_ci- compatible: Should be "renesas,emev2-smu"
118c2ecf20Sopenharmony_ci- reg: Address and Size of SMU registers
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_ci* SMU_CLKDIV
148c2ecf20Sopenharmony_ciFunction block with an input mux and a divider, which corresponds to
158c2ecf20Sopenharmony_ci"Serial clock generator" in fig."Clock System Overview" of the manual,
168c2ecf20Sopenharmony_ciand "xxx frequency division setting register" (XXXCLKDIV) registers.
178c2ecf20Sopenharmony_ciThis makes internal (neither input nor output) clock that is provided
188c2ecf20Sopenharmony_cito input of xxxGCLK block.
198c2ecf20Sopenharmony_ci
208c2ecf20Sopenharmony_ciRequired properties:
218c2ecf20Sopenharmony_ci- compatible: Should be "renesas,emev2-smu-clkdiv"
228c2ecf20Sopenharmony_ci- reg: Byte offset from SMU base and Bit position in the register
238c2ecf20Sopenharmony_ci- clocks: Parent clocks. Input clocks as described in clock-bindings.txt
248c2ecf20Sopenharmony_ci- #clock-cells: Should be <0>
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci* SMU_GCLK
278c2ecf20Sopenharmony_ciClock gating node shown as "Clock stop processing block" in the
288c2ecf20Sopenharmony_cifig."Clock System Overview" of the manual.
298c2ecf20Sopenharmony_ciRegisters are "xxx clock gate control register" (XXXGCLKCTRL).
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ciRequired properties:
328c2ecf20Sopenharmony_ci- compatible: Should be "renesas,emev2-smu-gclk"
338c2ecf20Sopenharmony_ci- reg: Byte offset from SMU base and Bit position in the register
348c2ecf20Sopenharmony_ci- clocks: Input clock as described in clock-bindings.txt
358c2ecf20Sopenharmony_ci- #clock-cells: Should be <0>
368c2ecf20Sopenharmony_ci
378c2ecf20Sopenharmony_ciExample of provider:
388c2ecf20Sopenharmony_ci
398c2ecf20Sopenharmony_ciusia_u0_sclkdiv: usia_u0_sclkdiv {
408c2ecf20Sopenharmony_ci	compatible = "renesas,emev2-smu-clkdiv";
418c2ecf20Sopenharmony_ci	reg = <0x610 0>;
428c2ecf20Sopenharmony_ci	clocks = <&pll3_fo>, <&pll4_fo>, <&pll1_fo>, <&osc1_fo>;
438c2ecf20Sopenharmony_ci	#clock-cells = <0>;
448c2ecf20Sopenharmony_ci};
458c2ecf20Sopenharmony_ci
468c2ecf20Sopenharmony_ciusia_u0_sclk: usia_u0_sclk {
478c2ecf20Sopenharmony_ci	compatible = "renesas,emev2-smu-gclk";
488c2ecf20Sopenharmony_ci	reg = <0x4a0 1>;
498c2ecf20Sopenharmony_ci	clocks = <&usia_u0_sclkdiv>;
508c2ecf20Sopenharmony_ci	#clock-cells = <0>;
518c2ecf20Sopenharmony_ci};
528c2ecf20Sopenharmony_ci
538c2ecf20Sopenharmony_ciExample of consumer:
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ciserial@e1020000 {
568c2ecf20Sopenharmony_ci	compatible = "renesas,em-uart";
578c2ecf20Sopenharmony_ci	reg = <0xe1020000 0x38>;
588c2ecf20Sopenharmony_ci	interrupts = <0 8 0>;
598c2ecf20Sopenharmony_ci	clocks = <&usia_u0_sclk>;
608c2ecf20Sopenharmony_ci	clock-names = "sclk";
618c2ecf20Sopenharmony_ci};
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ciExample of clock-tree description:
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_ci This describes a clock path in the clock tree
668c2ecf20Sopenharmony_ci  c32ki -> pll3_fo -> usia_u0_sclkdiv -> usia_u0_sclk
678c2ecf20Sopenharmony_ci
688c2ecf20Sopenharmony_cismu@e0110000 {
698c2ecf20Sopenharmony_ci	compatible = "renesas,emev2-smu";
708c2ecf20Sopenharmony_ci	reg = <0xe0110000 0x10000>;
718c2ecf20Sopenharmony_ci	#address-cells = <2>;
728c2ecf20Sopenharmony_ci	#size-cells = <0>;
738c2ecf20Sopenharmony_ci
748c2ecf20Sopenharmony_ci	c32ki: c32ki {
758c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
768c2ecf20Sopenharmony_ci		clock-frequency = <32768>;
778c2ecf20Sopenharmony_ci		#clock-cells = <0>;
788c2ecf20Sopenharmony_ci	};
798c2ecf20Sopenharmony_ci	pll3_fo: pll3_fo {
808c2ecf20Sopenharmony_ci		compatible = "fixed-factor-clock";
818c2ecf20Sopenharmony_ci		clocks = <&c32ki>;
828c2ecf20Sopenharmony_ci		clock-div = <1>;
838c2ecf20Sopenharmony_ci		clock-mult = <7000>;
848c2ecf20Sopenharmony_ci		#clock-cells = <0>;
858c2ecf20Sopenharmony_ci	};
868c2ecf20Sopenharmony_ci	usia_u0_sclkdiv: usia_u0_sclkdiv {
878c2ecf20Sopenharmony_ci		compatible = "renesas,emev2-smu-clkdiv";
888c2ecf20Sopenharmony_ci		reg = <0x610 0>;
898c2ecf20Sopenharmony_ci		clocks = <&pll3_fo>;
908c2ecf20Sopenharmony_ci		#clock-cells = <0>;
918c2ecf20Sopenharmony_ci	};
928c2ecf20Sopenharmony_ci	usia_u0_sclk: usia_u0_sclk {
938c2ecf20Sopenharmony_ci		compatible = "renesas,emev2-smu-gclk";
948c2ecf20Sopenharmony_ci		reg = <0x4a0 1>;
958c2ecf20Sopenharmony_ci		clocks = <&usia_u0_sclkdiv>;
968c2ecf20Sopenharmony_ci		#clock-cells = <0>;
978c2ecf20Sopenharmony_ci	};
988c2ecf20Sopenharmony_ci};
99