1*c66ec88fSEmmanuel Vadot# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 2*c66ec88fSEmmanuel Vadot%YAML 1.2 3*c66ec88fSEmmanuel Vadot--- 4*c66ec88fSEmmanuel Vadot$id: http://devicetree.org/schemas/clock/renesas,cpg-clocks.yaml# 5*c66ec88fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml# 6*c66ec88fSEmmanuel Vadot 7*c66ec88fSEmmanuel Vadottitle: Renesas Clock Pulse Generator (CPG) 8*c66ec88fSEmmanuel Vadot 9*c66ec88fSEmmanuel Vadotmaintainers: 10*c66ec88fSEmmanuel Vadot - Geert Uytterhoeven <geert+renesas@glider.be> 11*c66ec88fSEmmanuel Vadot 12*c66ec88fSEmmanuel Vadotdescription: 13*c66ec88fSEmmanuel Vadot The Clock Pulse Generator (CPG) generates core clocks for the SoC. It 14*c66ec88fSEmmanuel Vadot includes PLLs, and fixed and variable ratio dividers. 15*c66ec88fSEmmanuel Vadot 16*c66ec88fSEmmanuel Vadot The CPG may also provide a Clock Domain for SoC devices, in combination with 17*c66ec88fSEmmanuel Vadot the CPG Module Stop (MSTP) Clocks. 18*c66ec88fSEmmanuel Vadot 19*c66ec88fSEmmanuel Vadotproperties: 20*c66ec88fSEmmanuel Vadot compatible: 21*c66ec88fSEmmanuel Vadot oneOf: 22*c66ec88fSEmmanuel Vadot - const: renesas,r8a73a4-cpg-clocks # R-Mobile APE6 23*c66ec88fSEmmanuel Vadot - const: renesas,r8a7740-cpg-clocks # R-Mobile A1 24*c66ec88fSEmmanuel Vadot - const: renesas,r8a7778-cpg-clocks # R-Car M1 25*c66ec88fSEmmanuel Vadot - const: renesas,r8a7779-cpg-clocks # R-Car H1 26*c66ec88fSEmmanuel Vadot - items: 27*c66ec88fSEmmanuel Vadot - enum: 28*c66ec88fSEmmanuel Vadot - renesas,r7s72100-cpg-clocks # RZ/A1H 29*c66ec88fSEmmanuel Vadot - const: renesas,rz-cpg-clocks # RZ/A1 30*c66ec88fSEmmanuel Vadot - const: renesas,sh73a0-cpg-clocks # SH-Mobile AG5 31*c66ec88fSEmmanuel Vadot 32*c66ec88fSEmmanuel Vadot reg: 33*c66ec88fSEmmanuel Vadot maxItems: 1 34*c66ec88fSEmmanuel Vadot 35*c66ec88fSEmmanuel Vadot clocks: true 36*c66ec88fSEmmanuel Vadot 37*c66ec88fSEmmanuel Vadot '#clock-cells': 38*c66ec88fSEmmanuel Vadot const: 1 39*c66ec88fSEmmanuel Vadot 40*c66ec88fSEmmanuel Vadot clock-output-names: true 41*c66ec88fSEmmanuel Vadot 42*c66ec88fSEmmanuel Vadot renesas,mode: 43*c66ec88fSEmmanuel Vadot description: Board-specific settings of the MD_CK* bits on R-Mobile A1 44*c66ec88fSEmmanuel Vadot $ref: /schemas/types.yaml#/definitions/uint32 45*c66ec88fSEmmanuel Vadot minimum: 0 46*c66ec88fSEmmanuel Vadot maximum: 7 47*c66ec88fSEmmanuel Vadot 48*c66ec88fSEmmanuel Vadot '#power-domain-cells': 49*c66ec88fSEmmanuel Vadot const: 0 50*c66ec88fSEmmanuel Vadot 51*c66ec88fSEmmanuel Vadotrequired: 52*c66ec88fSEmmanuel Vadot - compatible 53*c66ec88fSEmmanuel Vadot - reg 54*c66ec88fSEmmanuel Vadot - clocks 55*c66ec88fSEmmanuel Vadot - '#clock-cells' 56*c66ec88fSEmmanuel Vadot - clock-output-names 57*c66ec88fSEmmanuel Vadot 58*c66ec88fSEmmanuel VadotallOf: 59*c66ec88fSEmmanuel Vadot - if: 60*c66ec88fSEmmanuel Vadot properties: 61*c66ec88fSEmmanuel Vadot compatible: 62*c66ec88fSEmmanuel Vadot contains: 63*c66ec88fSEmmanuel Vadot const: renesas,r8a73a4-cpg-clocks 64*c66ec88fSEmmanuel Vadot then: 65*c66ec88fSEmmanuel Vadot properties: 66*c66ec88fSEmmanuel Vadot clocks: 67*c66ec88fSEmmanuel Vadot items: 68*c66ec88fSEmmanuel Vadot - description: extal1 69*c66ec88fSEmmanuel Vadot - description: extal2 70*c66ec88fSEmmanuel Vadot 71*c66ec88fSEmmanuel Vadot clock-output-names: 72*c66ec88fSEmmanuel Vadot items: 73*c66ec88fSEmmanuel Vadot - const: main 74*c66ec88fSEmmanuel Vadot - const: pll0 75*c66ec88fSEmmanuel Vadot - const: pll1 76*c66ec88fSEmmanuel Vadot - const: pll2 77*c66ec88fSEmmanuel Vadot - const: pll2s 78*c66ec88fSEmmanuel Vadot - const: pll2h 79*c66ec88fSEmmanuel Vadot - const: z 80*c66ec88fSEmmanuel Vadot - const: z2 81*c66ec88fSEmmanuel Vadot - const: i 82*c66ec88fSEmmanuel Vadot - const: m3 83*c66ec88fSEmmanuel Vadot - const: b 84*c66ec88fSEmmanuel Vadot - const: m1 85*c66ec88fSEmmanuel Vadot - const: m2 86*c66ec88fSEmmanuel Vadot - const: zx 87*c66ec88fSEmmanuel Vadot - const: zs 88*c66ec88fSEmmanuel Vadot - const: hp 89*c66ec88fSEmmanuel Vadot 90*c66ec88fSEmmanuel Vadot - if: 91*c66ec88fSEmmanuel Vadot properties: 92*c66ec88fSEmmanuel Vadot compatible: 93*c66ec88fSEmmanuel Vadot contains: 94*c66ec88fSEmmanuel Vadot const: renesas,r8a7740-cpg-clocks 95*c66ec88fSEmmanuel Vadot then: 96*c66ec88fSEmmanuel Vadot properties: 97*c66ec88fSEmmanuel Vadot clocks: 98*c66ec88fSEmmanuel Vadot items: 99*c66ec88fSEmmanuel Vadot - description: extal1 100*c66ec88fSEmmanuel Vadot - description: extal2 101*c66ec88fSEmmanuel Vadot - description: extalr 102*c66ec88fSEmmanuel Vadot 103*c66ec88fSEmmanuel Vadot clock-output-names: 104*c66ec88fSEmmanuel Vadot items: 105*c66ec88fSEmmanuel Vadot - const: system 106*c66ec88fSEmmanuel Vadot - const: pllc0 107*c66ec88fSEmmanuel Vadot - const: pllc1 108*c66ec88fSEmmanuel Vadot - const: pllc2 109*c66ec88fSEmmanuel Vadot - const: r 110*c66ec88fSEmmanuel Vadot - const: usb24s 111*c66ec88fSEmmanuel Vadot - const: i 112*c66ec88fSEmmanuel Vadot - const: zg 113*c66ec88fSEmmanuel Vadot - const: b 114*c66ec88fSEmmanuel Vadot - const: m1 115*c66ec88fSEmmanuel Vadot - const: hp 116*c66ec88fSEmmanuel Vadot - const: hpp 117*c66ec88fSEmmanuel Vadot - const: usbp 118*c66ec88fSEmmanuel Vadot - const: s 119*c66ec88fSEmmanuel Vadot - const: zb 120*c66ec88fSEmmanuel Vadot - const: m3 121*c66ec88fSEmmanuel Vadot - const: cp 122*c66ec88fSEmmanuel Vadot 123*c66ec88fSEmmanuel Vadot required: 124*c66ec88fSEmmanuel Vadot - renesas,mode 125*c66ec88fSEmmanuel Vadot 126*c66ec88fSEmmanuel Vadot - if: 127*c66ec88fSEmmanuel Vadot properties: 128*c66ec88fSEmmanuel Vadot compatible: 129*c66ec88fSEmmanuel Vadot contains: 130*c66ec88fSEmmanuel Vadot const: renesas,r8a7778-cpg-clocks 131*c66ec88fSEmmanuel Vadot then: 132*c66ec88fSEmmanuel Vadot properties: 133*c66ec88fSEmmanuel Vadot clocks: 134*c66ec88fSEmmanuel Vadot maxItems: 1 135*c66ec88fSEmmanuel Vadot 136*c66ec88fSEmmanuel Vadot clock-output-names: 137*c66ec88fSEmmanuel Vadot items: 138*c66ec88fSEmmanuel Vadot - const: plla 139*c66ec88fSEmmanuel Vadot - const: pllb 140*c66ec88fSEmmanuel Vadot - const: b 141*c66ec88fSEmmanuel Vadot - const: out 142*c66ec88fSEmmanuel Vadot - const: p 143*c66ec88fSEmmanuel Vadot - const: s 144*c66ec88fSEmmanuel Vadot - const: s1 145*c66ec88fSEmmanuel Vadot 146*c66ec88fSEmmanuel Vadot - if: 147*c66ec88fSEmmanuel Vadot properties: 148*c66ec88fSEmmanuel Vadot compatible: 149*c66ec88fSEmmanuel Vadot contains: 150*c66ec88fSEmmanuel Vadot const: renesas,r8a7779-cpg-clocks 151*c66ec88fSEmmanuel Vadot then: 152*c66ec88fSEmmanuel Vadot properties: 153*c66ec88fSEmmanuel Vadot clocks: 154*c66ec88fSEmmanuel Vadot maxItems: 1 155*c66ec88fSEmmanuel Vadot 156*c66ec88fSEmmanuel Vadot clock-output-names: 157*c66ec88fSEmmanuel Vadot items: 158*c66ec88fSEmmanuel Vadot - const: plla 159*c66ec88fSEmmanuel Vadot - const: z 160*c66ec88fSEmmanuel Vadot - const: zs 161*c66ec88fSEmmanuel Vadot - const: s 162*c66ec88fSEmmanuel Vadot - const: s1 163*c66ec88fSEmmanuel Vadot - const: p 164*c66ec88fSEmmanuel Vadot - const: b 165*c66ec88fSEmmanuel Vadot - const: out 166*c66ec88fSEmmanuel Vadot 167*c66ec88fSEmmanuel Vadot - if: 168*c66ec88fSEmmanuel Vadot properties: 169*c66ec88fSEmmanuel Vadot compatible: 170*c66ec88fSEmmanuel Vadot contains: 171*c66ec88fSEmmanuel Vadot const: renesas,r7s72100-cpg-clocks 172*c66ec88fSEmmanuel Vadot then: 173*c66ec88fSEmmanuel Vadot properties: 174*c66ec88fSEmmanuel Vadot clocks: 175*c66ec88fSEmmanuel Vadot items: 176*c66ec88fSEmmanuel Vadot - description: extal1 177*c66ec88fSEmmanuel Vadot - description: usb_x1 178*c66ec88fSEmmanuel Vadot 179*c66ec88fSEmmanuel Vadot clock-output-names: 180*c66ec88fSEmmanuel Vadot items: 181*c66ec88fSEmmanuel Vadot - const: pll 182*c66ec88fSEmmanuel Vadot - const: i 183*c66ec88fSEmmanuel Vadot - const: g 184*c66ec88fSEmmanuel Vadot 185*c66ec88fSEmmanuel Vadot - if: 186*c66ec88fSEmmanuel Vadot properties: 187*c66ec88fSEmmanuel Vadot compatible: 188*c66ec88fSEmmanuel Vadot contains: 189*c66ec88fSEmmanuel Vadot const: renesas,sh73a0-cpg-clocks 190*c66ec88fSEmmanuel Vadot then: 191*c66ec88fSEmmanuel Vadot properties: 192*c66ec88fSEmmanuel Vadot clocks: 193*c66ec88fSEmmanuel Vadot items: 194*c66ec88fSEmmanuel Vadot - description: extal1 195*c66ec88fSEmmanuel Vadot - description: extal2 196*c66ec88fSEmmanuel Vadot 197*c66ec88fSEmmanuel Vadot clock-output-names: 198*c66ec88fSEmmanuel Vadot items: 199*c66ec88fSEmmanuel Vadot - const: main 200*c66ec88fSEmmanuel Vadot - const: pll0 201*c66ec88fSEmmanuel Vadot - const: pll1 202*c66ec88fSEmmanuel Vadot - const: pll2 203*c66ec88fSEmmanuel Vadot - const: pll3 204*c66ec88fSEmmanuel Vadot - const: dsi0phy 205*c66ec88fSEmmanuel Vadot - const: dsi1phy 206*c66ec88fSEmmanuel Vadot - const: zg 207*c66ec88fSEmmanuel Vadot - const: m3 208*c66ec88fSEmmanuel Vadot - const: b 209*c66ec88fSEmmanuel Vadot - const: m1 210*c66ec88fSEmmanuel Vadot - const: m2 211*c66ec88fSEmmanuel Vadot - const: z 212*c66ec88fSEmmanuel Vadot - const: zx 213*c66ec88fSEmmanuel Vadot - const: hp 214*c66ec88fSEmmanuel Vadot 215*c66ec88fSEmmanuel Vadot - if: 216*c66ec88fSEmmanuel Vadot properties: 217*c66ec88fSEmmanuel Vadot compatible: 218*c66ec88fSEmmanuel Vadot contains: 219*c66ec88fSEmmanuel Vadot enum: 220*c66ec88fSEmmanuel Vadot - renesas,r8a7778-cpg-clocks 221*c66ec88fSEmmanuel Vadot - renesas,r8a7779-cpg-clocks 222*c66ec88fSEmmanuel Vadot - renesas,rz-cpg-clocks 223*c66ec88fSEmmanuel Vadot then: 224*c66ec88fSEmmanuel Vadot required: 225*c66ec88fSEmmanuel Vadot - '#power-domain-cells' 226*c66ec88fSEmmanuel Vadot 227*c66ec88fSEmmanuel VadotadditionalProperties: false 228*c66ec88fSEmmanuel Vadot 229*c66ec88fSEmmanuel Vadotexamples: 230*c66ec88fSEmmanuel Vadot - | 231*c66ec88fSEmmanuel Vadot #include <dt-bindings/clock/r8a7740-clock.h> 232*c66ec88fSEmmanuel Vadot cpg_clocks: cpg_clocks@e6150000 { 233*c66ec88fSEmmanuel Vadot compatible = "renesas,r8a7740-cpg-clocks"; 234*c66ec88fSEmmanuel Vadot reg = <0xe6150000 0x10000>; 235*c66ec88fSEmmanuel Vadot clocks = <&extal1_clk>, <&extal2_clk>, <&extalr_clk>; 236*c66ec88fSEmmanuel Vadot #clock-cells = <1>; 237*c66ec88fSEmmanuel Vadot clock-output-names = "system", "pllc0", "pllc1", "pllc2", "r", 238*c66ec88fSEmmanuel Vadot "usb24s", "i", "zg", "b", "m1", "hp", "hpp", 239*c66ec88fSEmmanuel Vadot "usbp", "s", "zb", "m3", "cp"; 240*c66ec88fSEmmanuel Vadot renesas,mode = <0x05>; 241*c66ec88fSEmmanuel Vadot }; 242