1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/mfd/allwinner,sun6i-a31-prcm.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Allwinner A31 PRCM Device Tree Bindings 8 9maintainers: 10 - Chen-Yu Tsai <wens@csie.org> 11 - Maxime Ripard <mripard@kernel.org> 12 13deprecated: true 14 15properties: 16 compatible: 17 const: allwinner,sun6i-a31-prcm 18 19 reg: 20 maxItems: 1 21 22patternProperties: 23 "^.*_(clk|rst)$": 24 type: object 25 26 properties: 27 compatible: 28 enum: 29 - allwinner,sun4i-a10-mod0-clk 30 - allwinner,sun6i-a31-apb0-clk 31 - allwinner,sun6i-a31-apb0-gates-clk 32 - allwinner,sun6i-a31-ar100-clk 33 - allwinner,sun6i-a31-clock-reset 34 - fixed-factor-clock 35 36 allOf: 37 - if: 38 properties: 39 compatible: 40 contains: 41 const: allwinner,sun6i-a31-apb0-clk 42 43 then: 44 properties: 45 "#clock-cells": 46 const: 0 47 48 # Already checked in the main schema 49 compatible: true 50 51 clocks: 52 maxItems: 1 53 54 clock-output-names: 55 maxItems: 1 56 57 phandle: true 58 59 required: 60 - "#clock-cells" 61 - compatible 62 - clocks 63 - clock-output-names 64 65 additionalProperties: false 66 67 - if: 68 properties: 69 compatible: 70 contains: 71 const: allwinner,sun6i-a31-apb0-gates-clk 72 73 then: 74 properties: 75 "#clock-cells": 76 const: 1 77 description: > 78 This additional argument passed to that clock is the 79 offset of the bit controlling this particular gate in 80 the register. 81 82 # Already checked in the main schema 83 compatible: true 84 85 clocks: 86 maxItems: 1 87 88 clock-output-names: 89 minItems: 1 90 maxItems: 32 91 92 phandle: true 93 94 required: 95 - "#clock-cells" 96 - compatible 97 - clocks 98 - clock-output-names 99 100 additionalProperties: false 101 102 - if: 103 properties: 104 compatible: 105 contains: 106 const: allwinner,sun6i-a31-ar100-clk 107 108 then: 109 properties: 110 "#clock-cells": 111 const: 0 112 113 # Already checked in the main schema 114 compatible: true 115 116 clocks: 117 maxItems: 4 118 description: > 119 The parent order must match the hardware programming 120 order. 121 122 clock-output-names: 123 maxItems: 1 124 125 phandle: true 126 127 required: 128 - "#clock-cells" 129 - compatible 130 - clocks 131 - clock-output-names 132 133 additionalProperties: false 134 135 - if: 136 properties: 137 compatible: 138 contains: 139 const: allwinner,sun6i-a31-clock-reset 140 141 then: 142 properties: 143 "#reset-cells": 144 const: 1 145 146 # Already checked in the main schema 147 compatible: true 148 149 phandle: true 150 151 required: 152 - "#reset-cells" 153 - compatible 154 155 additionalProperties: false 156 157required: 158 - compatible 159 - reg 160 161additionalProperties: false 162 163examples: 164 - | 165 #include <dt-bindings/clock/sun6i-a31-ccu.h> 166 167 prcm@1f01400 { 168 compatible = "allwinner,sun6i-a31-prcm"; 169 reg = <0x01f01400 0x200>; 170 171 ar100: ar100_clk { 172 compatible = "allwinner,sun6i-a31-ar100-clk"; 173 #clock-cells = <0>; 174 clocks = <&rtc 0>, <&osc24M>, 175 <&ccu CLK_PLL_PERIPH>, 176 <&ccu CLK_PLL_PERIPH>; 177 clock-output-names = "ar100"; 178 }; 179 180 ahb0: ahb0_clk { 181 compatible = "fixed-factor-clock"; 182 #clock-cells = <0>; 183 clock-div = <1>; 184 clock-mult = <1>; 185 clocks = <&ar100>; 186 clock-output-names = "ahb0"; 187 }; 188 189 apb0: apb0_clk { 190 compatible = "allwinner,sun6i-a31-apb0-clk"; 191 #clock-cells = <0>; 192 clocks = <&ahb0>; 193 clock-output-names = "apb0"; 194 }; 195 196 apb0_gates: apb0_gates_clk { 197 compatible = "allwinner,sun6i-a31-apb0-gates-clk"; 198 #clock-cells = <1>; 199 clocks = <&apb0>; 200 clock-output-names = "apb0_pio", "apb0_ir", 201 "apb0_timer", "apb0_p2wi", 202 "apb0_uart", "apb0_1wire", 203 "apb0_i2c"; 204 }; 205 206 ir_clk: ir_clk { 207 #clock-cells = <0>; 208 compatible = "allwinner,sun4i-a10-mod0-clk"; 209 clocks = <&rtc 0>, <&osc24M>; 210 clock-output-names = "ir"; 211 }; 212 213 apb0_rst: apb0_rst { 214 compatible = "allwinner,sun6i-a31-clock-reset"; 215 #reset-cells = <1>; 216 }; 217 }; 218 219... 220