1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/power/rockchip-io-domain.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Rockchip SRAM for IO Voltage Domains 8 9maintainers: 10 - Heiko Stuebner <heiko@sntech.de> 11 12description: | 13 IO domain voltages on some Rockchip SoCs are variable but need to be 14 kept in sync between the regulators and the SoC using a special 15 register. 16 17 A specific example using rk3288 18 If the regulator hooked up to a pin like SDMMC0_VDD is 3.3V then 19 bit 7 of GRF_IO_VSEL needs to be 0. If the regulator hooked up to 20 that same pin is 1.8V then bit 7 of GRF_IO_VSEL needs to be 1. 21 22 Said another way, this driver simply handles keeping bits in the SoCs 23 General Register File (GRF) in sync with the actual value of a voltage 24 hooked up to the pins. 25 26 Note that this driver specifically does not include 27 any logic for deciding what voltage we should set regulators to 28 any logic for deciding whether regulators (or internal SoC blocks) 29 should have power or not have power 30 31 If there were some other software that had the smarts of making 32 decisions about regulators, it would work in conjunction with this 33 driver. When that other software adjusted a regulators voltage then 34 this driver would handle telling the SoC about it. A good example is 35 vqmmc for SD. In that case the dw_mmc driver simply is told about a 36 regulator. It changes the regulator between 3.3V and 1.8V at the 37 right time. This driver notices the change and makes sure that the 38 SoC is on the same page. 39 40 You specify supplies using the standard regulator bindings by including 41 a phandle the relevant regulator. All specified supplies must be able 42 to report their voltage. The IO Voltage Domain for any non-specified 43 supplies will be not be touched. 44 45properties: 46 compatible: 47 enum: 48 - rockchip,px30-io-voltage-domain 49 - rockchip,px30-pmu-io-voltage-domain 50 - rockchip,rk3188-io-voltage-domain 51 - rockchip,rk3228-io-voltage-domain 52 - rockchip,rk3288-io-voltage-domain 53 - rockchip,rk3328-io-voltage-domain 54 - rockchip,rk3368-io-voltage-domain 55 - rockchip,rk3368-pmu-io-voltage-domain 56 - rockchip,rk3399-io-voltage-domain 57 - rockchip,rk3399-pmu-io-voltage-domain 58 - rockchip,rk3568-pmu-io-voltage-domain 59 - rockchip,rv1108-io-voltage-domain 60 - rockchip,rv1108-pmu-io-voltage-domain 61 62required: 63 - compatible 64 65unevaluatedProperties: false 66 67allOf: 68 - $ref: "#/$defs/px30" 69 - $ref: "#/$defs/px30-pmu" 70 - $ref: "#/$defs/rk3188" 71 - $ref: "#/$defs/rk3228" 72 - $ref: "#/$defs/rk3288" 73 - $ref: "#/$defs/rk3328" 74 - $ref: "#/$defs/rk3368" 75 - $ref: "#/$defs/rk3368-pmu" 76 - $ref: "#/$defs/rk3399" 77 - $ref: "#/$defs/rk3399-pmu" 78 - $ref: "#/$defs/rk3568-pmu" 79 - $ref: "#/$defs/rv1108" 80 - $ref: "#/$defs/rv1108-pmu" 81 82$defs: 83 px30: 84 if: 85 properties: 86 compatible: 87 contains: 88 const: rockchip,px30-io-voltage-domain 89 90 then: 91 properties: 92 vccio1-supply: 93 description: The supply connected to VCCIO1. 94 vccio2-supply: 95 description: The supply connected to VCCIO2. 96 vccio3-supply: 97 description: The supply connected to VCCIO3. 98 vccio4-supply: 99 description: The supply connected to VCCIO4. 100 vccio5-supply: 101 description: The supply connected to VCCIO5. 102 vccio6-supply: 103 description: The supply connected to VCCIO6. 104 vccio-oscgpi-supply: 105 description: The supply connected to VCCIO_OSCGPI. 106 107 px30-pmu: 108 if: 109 properties: 110 compatible: 111 contains: 112 const: rockchip,px30-pmu-io-voltage-domain 113 114 then: 115 properties: 116 pmuio1-supply: 117 description: The supply connected to PMUIO1. 118 pmuio2-supply: 119 description: The supply connected to PMUIO2. 120 121 rk3188: 122 if: 123 properties: 124 compatible: 125 contains: 126 const: rockchip,rk3188-io-voltage-domain 127 128 then: 129 properties: 130 ap0-supply: 131 description: The supply connected to AP0_VCC. 132 ap1-supply: 133 description: The supply connected to AP1_VCC. 134 cif-supply: 135 description: The supply connected to CIF_VCC. 136 flash-supply: 137 description: The supply connected to FLASH_VCC. 138 lcdc0-supply: 139 description: The supply connected to LCD0_VCC. 140 lcdc1-supply: 141 description: The supply connected to LCD1_VCC. 142 vccio0-supply: 143 description: The supply connected to VCCIO0. 144 vccio1-supply: 145 description: The supply connected to VCCIO1. Also labeled as VCCIO2. 146 147 rk3228: 148 if: 149 properties: 150 compatible: 151 contains: 152 const: rockchip,rk3228-io-voltage-domain 153 154 then: 155 properties: 156 vccio1-supply: 157 description: The supply connected to VCCIO1. 158 vccio2-supply: 159 description: The supply connected to VCCIO2. 160 vccio3-supply: 161 description: The supply connected to VCCIO3. 162 vccio4-supply: 163 description: The supply connected to VCCIO4. 164 165 rk3288: 166 if: 167 properties: 168 compatible: 169 contains: 170 const: rockchip,rk3288-io-voltage-domain 171 172 then: 173 properties: 174 audio-supply: 175 description: The supply connected to APIO4_VDD. 176 bb-supply: 177 description: The supply connected to APIO5_VDD. 178 dvp-supply: 179 description: The supply connected to DVPIO_VDD. 180 flash0-supply: 181 description: The supply connected to FLASH0_VDD. Typically for eMMC. 182 flash1-supply: 183 description: The supply connected to FLASH1_VDD. Also known as SDIO1. 184 gpio30-supply: 185 description: The supply connected to APIO1_VDD. 186 gpio1830-supply: 187 description: The supply connected to APIO2_VDD. 188 lcdc-supply: 189 description: The supply connected to LCDC_VDD. 190 sdcard-supply: 191 description: The supply connected to SDMMC0_VDD. 192 wifi-supply: 193 description: The supply connected to APIO3_VDD. Also known as SDIO0. 194 195 rk3328: 196 if: 197 properties: 198 compatible: 199 contains: 200 const: rockchip,rk3328-io-voltage-domain 201 202 then: 203 properties: 204 vccio1-supply: 205 description: The supply connected to VCCIO1. 206 vccio2-supply: 207 description: The supply connected to VCCIO2. 208 vccio3-supply: 209 description: The supply connected to VCCIO3. 210 vccio4-supply: 211 description: The supply connected to VCCIO4. 212 vccio5-supply: 213 description: The supply connected to VCCIO5. 214 vccio6-supply: 215 description: The supply connected to VCCIO6. 216 pmuio-supply: 217 description: The supply connected to VCCIO_PMU. 218 219 rk3368: 220 if: 221 properties: 222 compatible: 223 contains: 224 const: rockchip,rk3368-io-voltage-domain 225 226 then: 227 properties: 228 audio-supply: 229 description: The supply connected to APIO3_VDD. 230 dvp-supply: 231 description: The supply connected to DVPIO_VDD. 232 flash0-supply: 233 description: The supply connected to FLASH0_VDD. Typically for eMMC. 234 gpio30-supply: 235 description: The supply connected to APIO1_VDD. 236 gpio1830-supply: 237 description: The supply connected to APIO4_VDD. 238 sdcard-supply: 239 description: The supply connected to SDMMC0_VDD. 240 wifi-supply: 241 description: The supply connected to APIO2_VDD. Also known as SDIO0. 242 243 rk3368-pmu: 244 if: 245 properties: 246 compatible: 247 contains: 248 const: rockchip,rk3368-pmu-io-voltage-domain 249 250 then: 251 properties: 252 pmu-supply: 253 description: The supply connected to PMUIO_VDD. 254 vop-supply: 255 description: The supply connected to LCDC_VDD. 256 257 rk3399: 258 if: 259 properties: 260 compatible: 261 contains: 262 const: rockchip,rk3399-io-voltage-domain 263 264 then: 265 properties: 266 audio-supply: 267 description: The supply connected to APIO5_VDD. 268 bt656-supply: 269 description: The supply connected to APIO2_VDD. 270 gpio1830-supply: 271 description: The supply connected to APIO4_VDD. 272 sdmmc-supply: 273 description: The supply connected to SDMMC0_VDD. 274 275 rk3399-pmu: 276 if: 277 properties: 278 compatible: 279 contains: 280 const: rockchip,rk3399-pmu-io-voltage-domain 281 282 then: 283 properties: 284 pmu1830-supply: 285 description: The supply connected to PMUIO2_VDD. 286 287 rk3568-pmu: 288 if: 289 properties: 290 compatible: 291 contains: 292 const: rockchip,rk3568-pmu-io-voltage-domain 293 294 then: 295 properties: 296 pmuio1-supply: 297 description: The supply connected to PMUIO1. 298 pmuio2-supply: 299 description: The supply connected to PMUIO2. 300 vccio1-supply: 301 description: The supply connected to VCCIO1. 302 vccio2-supply: 303 description: The supply connected to VCCIO2. 304 vccio3-supply: 305 description: The supply connected to VCCIO3. 306 vccio4-supply: 307 description: The supply connected to VCCIO4. 308 vccio5-supply: 309 description: The supply connected to VCCIO5. 310 vccio6-supply: 311 description: The supply connected to VCCIO6. 312 vccio7-supply: 313 description: The supply connected to VCCIO7. 314 315 rv1108: 316 if: 317 properties: 318 compatible: 319 contains: 320 const: rockchip,rv1108-io-voltage-domain 321 322 then: 323 properties: 324 vccio1-supply: 325 description: The supply connected to APIO1_VDD. 326 vccio2-supply: 327 description: The supply connected to APIO2_VDD. 328 vccio3-supply: 329 description: The supply connected to APIO3_VDD. 330 vccio5-supply: 331 description: The supply connected to APIO5_VDD. 332 vccio6-supply: 333 description: The supply connected to APIO6_VDD. 334 335 rv1108-pmu: 336 if: 337 properties: 338 compatible: 339 contains: 340 const: rockchip,rv1108-pmu-io-voltage-domain 341 342 then: 343 properties: 344 pmu-supply: 345 description: The supply connected to PMUIO_VDD. 346 347examples: 348 - | 349 io-domains { 350 compatible = "rockchip,rk3288-io-voltage-domain"; 351 audio-supply = <&vcc18_codec>; 352 bb-supply = <&vcc33_io>; 353 dvp-supply = <&vcc_18>; 354 flash0-supply = <&vcc18_flashio>; 355 gpio1830-supply = <&vcc33_io>; 356 gpio30-supply = <&vcc33_pmuio>; 357 lcdc-supply = <&vcc33_lcd>; 358 sdcard-supply = <&vccio_sd>; 359 wifi-supply = <&vcc18_wl>; 360 }; 361