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