1# SPDX-License-Identifier: GPL-2.0 2%YAML 1.2 3--- 4$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml# 5$schema: http://devicetree.org/meta-schemas/core.yaml# 6 7title: Rockchip General Register Files (GRF) 8 9maintainers: 10 - Heiko Stuebner <heiko@sntech.de> 11 12properties: 13 compatible: 14 oneOf: 15 - items: 16 - enum: 17 - rockchip,rk3288-sgrf 18 - rockchip,rk3528-ioc-grf 19 - rockchip,rk3528-pipe-phy-grf 20 - rockchip,rk3528-vo-grf 21 - rockchip,rk3528-vpu-grf 22 - rockchip,rk3562-ioc-grf 23 - rockchip,rk3562-peri-grf 24 - rockchip,rk3562-pipephy-grf 25 - rockchip,rk3562-pmu-grf 26 - rockchip,rk3562-sys-grf 27 - rockchip,rk3562-usbphy-grf 28 - rockchip,rk3566-pipe-grf 29 - rockchip,rk3568-pcie3-phy-grf 30 - rockchip,rk3568-pipe-grf 31 - rockchip,rk3568-pipe-phy-grf 32 - rockchip,rk3568-usb2phy-grf 33 - rockchip,rk3576-bigcore-grf 34 - rockchip,rk3576-cci-grf 35 - rockchip,rk3576-dcphy-grf 36 - rockchip,rk3576-gpu-grf 37 - rockchip,rk3576-hdptxphy-grf 38 - rockchip,rk3576-litcore-grf 39 - rockchip,rk3576-npu-grf 40 - rockchip,rk3576-php-grf 41 - rockchip,rk3576-pipe-phy-grf 42 - rockchip,rk3576-pmu1-grf 43 - rockchip,rk3576-sdgmac-grf 44 - rockchip,rk3576-sys-grf 45 - rockchip,rk3576-usb-grf 46 - rockchip,rk3576-usbdpphy-grf 47 - rockchip,rk3576-vo0-grf 48 - rockchip,rk3576-vo1-grf 49 - rockchip,rk3576-vop-grf 50 - rockchip,rk3588-bigcore0-grf 51 - rockchip,rk3588-bigcore1-grf 52 - rockchip,rk3588-csidphy-grf 53 - rockchip,rk3588-dcphy-grf 54 - rockchip,rk3588-hdptxphy-grf 55 - rockchip,rk3588-ioc 56 - rockchip,rk3588-php-grf 57 - rockchip,rk3588-pipe-phy-grf 58 - rockchip,rk3588-sys-grf 59 - rockchip,rk3588-pcie3-phy-grf 60 - rockchip,rk3588-pcie3-pipe-grf 61 - rockchip,rk3588-usb-grf 62 - rockchip,rk3588-usbdpphy-grf 63 - rockchip,rk3588-vo0-grf 64 - rockchip,rk3588-vo1-grf 65 - rockchip,rk3588-vop-grf 66 - rockchip,rv1103b-ioc 67 - rockchip,rv1108-usbgrf 68 - const: syscon 69 - items: 70 - const: rockchip,rk3588-vo-grf 71 - const: syscon 72 deprecated: true 73 description: Use rockchip,rk3588-vo{0,1}-grf instead. 74 - items: 75 - enum: 76 - rockchip,px30-grf 77 - rockchip,px30-pmugrf 78 - rockchip,px30-usb2phy-grf 79 - rockchip,rk3036-grf 80 - rockchip,rk3066-grf 81 - rockchip,rk3128-grf 82 - rockchip,rk3188-grf 83 - rockchip,rk3228-grf 84 - rockchip,rk3288-grf 85 - rockchip,rk3308-core-grf 86 - rockchip,rk3308-detect-grf 87 - rockchip,rk3308-grf 88 - rockchip,rk3308-usb2phy-grf 89 - rockchip,rk3328-grf 90 - rockchip,rk3328-usb2phy-grf 91 - rockchip,rk3368-grf 92 - rockchip,rk3368-pmugrf 93 - rockchip,rk3399-grf 94 - rockchip,rk3399-pmugrf 95 - rockchip,rk3562-pmu-grf 96 - rockchip,rk3568-grf 97 - rockchip,rk3568-pmugrf 98 - rockchip,rk3576-ioc-grf 99 - rockchip,rk3576-pmu0-grf 100 - rockchip,rk3576-usb2phy-grf 101 - rockchip,rk3588-usb2phy-grf 102 - rockchip,rv1103b-pmu-grf 103 - rockchip,rv1108-grf 104 - rockchip,rv1108-pmugrf 105 - rockchip,rv1126-grf 106 - rockchip,rv1126-pmugrf 107 - const: syscon 108 - const: simple-mfd 109 110 reg: 111 maxItems: 1 112 113 clocks: 114 maxItems: 1 115 116 "#address-cells": 117 const: 1 118 119 "#size-cells": 120 const: 1 121 122required: 123 - compatible 124 - reg 125 126additionalProperties: 127 type: object 128 129allOf: 130 - if: 131 properties: 132 compatible: 133 contains: 134 enum: 135 - rockchip,px30-grf 136 137 then: 138 properties: 139 lvds: 140 type: object 141 142 $ref: /schemas/display/rockchip/rockchip,lvds.yaml# 143 144 unevaluatedProperties: false 145 146 - if: 147 properties: 148 compatible: 149 contains: 150 const: rockchip,rk3288-grf 151 152 then: 153 properties: 154 edp-phy: 155 type: object 156 $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml# 157 unevaluatedProperties: false 158 159 - if: 160 properties: 161 compatible: 162 contains: 163 enum: 164 - rockchip,rk3066-grf 165 - rockchip,rk3188-grf 166 - rockchip,rk3288-grf 167 168 then: 169 properties: 170 usbphy: 171 type: object 172 173 $ref: /schemas/phy/rockchip-usb-phy.yaml# 174 175 unevaluatedProperties: false 176 177 - if: 178 properties: 179 compatible: 180 contains: 181 const: rockchip,rk3328-grf 182 183 then: 184 properties: 185 gpio: 186 type: object 187 properties: 188 compatible: 189 contains: 190 const: rockchip,rk3328-grf-gpio 191 192 additionalProperties: true 193 194 power-controller: 195 type: object 196 197 $ref: /schemas/power/rockchip,power-controller.yaml# 198 199 unevaluatedProperties: false 200 201 - if: 202 properties: 203 compatible: 204 contains: 205 const: rockchip,rk3399-grf 206 207 then: 208 properties: 209 mipi-dphy-rx0: 210 type: object 211 212 $ref: /schemas/phy/rockchip-mipi-dphy-rx0.yaml# 213 214 unevaluatedProperties: false 215 216 pcie-phy: 217 type: object 218 $ref: /schemas/phy/rockchip,rk3399-pcie-phy.yaml# 219 unevaluatedProperties: false 220 221 patternProperties: 222 "^phy@[0-9a-f]+$": 223 type: object 224 $ref: /schemas/phy/rockchip,rk3399-emmc-phy.yaml# 225 unevaluatedProperties: false 226 227 - if: 228 properties: 229 compatible: 230 contains: 231 enum: 232 - rockchip,px30-pmugrf 233 - rockchip,rk3036-grf 234 - rockchip,rk3308-grf 235 - rockchip,rk3368-pmugrf 236 - rockchip,rv1103b-pmu-grf 237 238 then: 239 properties: 240 reboot-mode: 241 type: object 242 $ref: /schemas/power/reset/syscon-reboot-mode.yaml# 243 unevaluatedProperties: false 244 245 patternProperties: 246 # Negative look-ahead to disallow unsupported modes. The '$' has to be 247 # part of lookahead group to work, instead of trailing outside of (). 248 "^mode-(?!(bootloader$|fastboot$|loader$|normal$|recovery$))": false 249 250 - if: 251 properties: 252 compatible: 253 contains: 254 enum: 255 - rockchip,px30-usb2phy-grf 256 - rockchip,rk3128-grf 257 - rockchip,rk3228-grf 258 - rockchip,rk3308-usb2phy-grf 259 - rockchip,rk3328-usb2phy-grf 260 - rockchip,rk3399-grf 261 - rockchip,rk3576-usb2phy-grf 262 - rockchip,rk3588-usb2phy-grf 263 - rockchip,rv1108-grf 264 265 then: 266 required: 267 - "#address-cells" 268 - "#size-cells" 269 270 patternProperties: 271 "usb2phy@[0-9a-f]+$": 272 type: object 273 274 $ref: /schemas/phy/rockchip,inno-usb2phy.yaml# 275 276 unevaluatedProperties: false 277 278 - if: 279 properties: 280 compatible: 281 contains: 282 enum: 283 - rockchip,px30-grf 284 - rockchip,px30-pmugrf 285 - rockchip,rk3188-grf 286 - rockchip,rk3228-grf 287 - rockchip,rk3288-grf 288 - rockchip,rk3328-grf 289 - rockchip,rk3368-grf 290 - rockchip,rk3368-pmugrf 291 - rockchip,rk3399-grf 292 - rockchip,rk3399-pmugrf 293 - rockchip,rk3568-pmugrf 294 - rockchip,rk3588-pmugrf 295 - rockchip,rv1108-grf 296 - rockchip,rv1108-pmugrf 297 298 then: 299 properties: 300 io-domains: 301 type: object 302 303 $ref: /schemas/power/rockchip-io-domain.yaml# 304 305 unevaluatedProperties: false 306 307 - if: 308 properties: 309 compatible: 310 contains: 311 enum: 312 - rockchip,rk3576-dcphy-grf 313 - rockchip,rk3576-vo1-grf 314 - rockchip,rk3588-vo-grf 315 - rockchip,rk3588-vo0-grf 316 - rockchip,rk3588-vo1-grf 317 318 then: 319 required: 320 - clocks 321 322 else: 323 properties: 324 clocks: false 325 326examples: 327 - | 328 #include <dt-bindings/clock/rk3399-cru.h> 329 #include <dt-bindings/interrupt-controller/arm-gic.h> 330 #include <dt-bindings/power/rk3399-power.h> 331 grf: syscon@ff770000 { 332 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd"; 333 reg = <0xff770000 0x10000>; 334 #address-cells = <1>; 335 #size-cells = <1>; 336 337 mipi_dphy_rx0: mipi-dphy-rx0 { 338 compatible = "rockchip,rk3399-mipi-dphy-rx0"; 339 clocks = <&cru SCLK_MIPIDPHY_REF>, 340 <&cru SCLK_DPHY_RX0_CFG>, 341 <&cru PCLK_VIO_GRF>; 342 clock-names = "dphy-ref", "dphy-cfg", "grf"; 343 power-domains = <&power RK3399_PD_VIO>; 344 #phy-cells = <0>; 345 }; 346 347 pcie-phy { 348 compatible = "rockchip,rk3399-pcie-phy"; 349 #phy-cells = <1>; 350 clocks = <&cru SCLK_PCIEPHY_REF>; 351 clock-names = "refclk"; 352 resets = <&cru SRST_PCIEPHY>; 353 reset-names = "phy"; 354 }; 355 356 phy@f780 { 357 compatible = "rockchip,rk3399-emmc-phy"; 358 reg = <0xf780 0x20>; 359 clocks = <&sdhci>; 360 clock-names = "emmcclk"; 361 drive-impedance-ohm = <50>; 362 #phy-cells = <0>; 363 }; 364 365 u2phy0: usb2phy@e450 { 366 compatible = "rockchip,rk3399-usb2phy"; 367 reg = <0xe450 0x10>; 368 clocks = <&cru SCLK_USB2PHY0_REF>; 369 clock-names = "phyclk"; 370 #clock-cells = <0>; 371 clock-output-names = "clk_usbphy0_480m"; 372 373 u2phy0_host: host-port { 374 #phy-cells = <0>; 375 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>; 376 interrupt-names = "linestate"; 377 }; 378 379 u2phy0_otg: otg-port { 380 #phy-cells = <0>; 381 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>, 382 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>, 383 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>; 384 interrupt-names = "otg-bvalid", "otg-id", 385 "linestate"; 386 }; 387 }; 388 }; 389