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,rv1108-usbgrf 67 - const: syscon 68 - items: 69 - const: rockchip,rk3588-vo-grf 70 - const: syscon 71 deprecated: true 72 description: Use rockchip,rk3588-vo{0,1}-grf instead. 73 - items: 74 - enum: 75 - rockchip,px30-grf 76 - rockchip,px30-pmugrf 77 - rockchip,px30-usb2phy-grf 78 - rockchip,rk3036-grf 79 - rockchip,rk3066-grf 80 - rockchip,rk3128-grf 81 - rockchip,rk3188-grf 82 - rockchip,rk3228-grf 83 - rockchip,rk3288-grf 84 - rockchip,rk3308-core-grf 85 - rockchip,rk3308-detect-grf 86 - rockchip,rk3308-grf 87 - rockchip,rk3308-usb2phy-grf 88 - rockchip,rk3328-grf 89 - rockchip,rk3328-usb2phy-grf 90 - rockchip,rk3368-grf 91 - rockchip,rk3368-pmugrf 92 - rockchip,rk3399-grf 93 - rockchip,rk3399-pmugrf 94 - rockchip,rk3562-pmu-grf 95 - rockchip,rk3568-grf 96 - rockchip,rk3568-pmugrf 97 - rockchip,rk3576-ioc-grf 98 - rockchip,rk3576-pmu0-grf 99 - rockchip,rk3576-usb2phy-grf 100 - rockchip,rk3588-usb2phy-grf 101 - rockchip,rv1108-grf 102 - rockchip,rv1108-pmugrf 103 - rockchip,rv1126-grf 104 - rockchip,rv1126-pmugrf 105 - const: syscon 106 - const: simple-mfd 107 108 reg: 109 maxItems: 1 110 111 clocks: 112 maxItems: 1 113 114 "#address-cells": 115 const: 1 116 117 "#size-cells": 118 const: 1 119 120required: 121 - compatible 122 - reg 123 124additionalProperties: 125 type: object 126 127allOf: 128 - if: 129 properties: 130 compatible: 131 contains: 132 enum: 133 - rockchip,px30-grf 134 135 then: 136 properties: 137 lvds: 138 type: object 139 140 $ref: /schemas/display/rockchip/rockchip,lvds.yaml# 141 142 unevaluatedProperties: false 143 144 - if: 145 properties: 146 compatible: 147 contains: 148 const: rockchip,rk3288-grf 149 150 then: 151 properties: 152 edp-phy: 153 type: object 154 $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml# 155 unevaluatedProperties: false 156 157 - if: 158 properties: 159 compatible: 160 contains: 161 enum: 162 - rockchip,rk3066-grf 163 - rockchip,rk3188-grf 164 - rockchip,rk3288-grf 165 166 then: 167 properties: 168 usbphy: 169 type: object 170 171 $ref: /schemas/phy/rockchip-usb-phy.yaml# 172 173 unevaluatedProperties: false 174 175 - if: 176 properties: 177 compatible: 178 contains: 179 const: rockchip,rk3328-grf 180 181 then: 182 properties: 183 gpio: 184 type: object 185 properties: 186 compatible: 187 contains: 188 const: rockchip,rk3328-grf-gpio 189 190 additionalProperties: true 191 192 power-controller: 193 type: object 194 195 $ref: /schemas/power/rockchip,power-controller.yaml# 196 197 unevaluatedProperties: false 198 199 - if: 200 properties: 201 compatible: 202 contains: 203 const: rockchip,rk3399-grf 204 205 then: 206 properties: 207 mipi-dphy-rx0: 208 type: object 209 210 $ref: /schemas/phy/rockchip-mipi-dphy-rx0.yaml# 211 212 unevaluatedProperties: false 213 214 pcie-phy: 215 type: object 216 $ref: /schemas/phy/rockchip,rk3399-pcie-phy.yaml# 217 unevaluatedProperties: false 218 219 patternProperties: 220 "^phy@[0-9a-f]+$": 221 type: object 222 $ref: /schemas/phy/rockchip,rk3399-emmc-phy.yaml# 223 unevaluatedProperties: false 224 225 - if: 226 properties: 227 compatible: 228 contains: 229 enum: 230 - rockchip,px30-pmugrf 231 - rockchip,rk3036-grf 232 - rockchip,rk3308-grf 233 - rockchip,rk3368-pmugrf 234 235 then: 236 properties: 237 reboot-mode: 238 type: object 239 240 $ref: /schemas/power/reset/syscon-reboot-mode.yaml# 241 242 unevaluatedProperties: false 243 244 - if: 245 properties: 246 compatible: 247 contains: 248 enum: 249 - rockchip,px30-usb2phy-grf 250 - rockchip,rk3128-grf 251 - rockchip,rk3228-grf 252 - rockchip,rk3308-usb2phy-grf 253 - rockchip,rk3328-usb2phy-grf 254 - rockchip,rk3399-grf 255 - rockchip,rk3576-usb2phy-grf 256 - rockchip,rk3588-usb2phy-grf 257 - rockchip,rv1108-grf 258 259 then: 260 required: 261 - "#address-cells" 262 - "#size-cells" 263 264 patternProperties: 265 "usb2phy@[0-9a-f]+$": 266 type: object 267 268 $ref: /schemas/phy/rockchip,inno-usb2phy.yaml# 269 270 unevaluatedProperties: false 271 272 - if: 273 properties: 274 compatible: 275 contains: 276 enum: 277 - rockchip,px30-grf 278 - rockchip,px30-pmugrf 279 - rockchip,rk3188-grf 280 - rockchip,rk3228-grf 281 - rockchip,rk3288-grf 282 - rockchip,rk3328-grf 283 - rockchip,rk3368-grf 284 - rockchip,rk3368-pmugrf 285 - rockchip,rk3399-grf 286 - rockchip,rk3399-pmugrf 287 - rockchip,rk3568-pmugrf 288 - rockchip,rk3588-pmugrf 289 - rockchip,rv1108-grf 290 - rockchip,rv1108-pmugrf 291 292 then: 293 properties: 294 io-domains: 295 type: object 296 297 $ref: /schemas/power/rockchip-io-domain.yaml# 298 299 unevaluatedProperties: false 300 301 - if: 302 properties: 303 compatible: 304 contains: 305 enum: 306 - rockchip,rk3576-dcphy-grf 307 - rockchip,rk3576-vo1-grf 308 - rockchip,rk3588-vo-grf 309 - rockchip,rk3588-vo0-grf 310 - rockchip,rk3588-vo1-grf 311 312 then: 313 required: 314 - clocks 315 316 else: 317 properties: 318 clocks: false 319 320 321examples: 322 - | 323 #include <dt-bindings/clock/rk3399-cru.h> 324 #include <dt-bindings/interrupt-controller/arm-gic.h> 325 #include <dt-bindings/power/rk3399-power.h> 326 grf: syscon@ff770000 { 327 compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd"; 328 reg = <0xff770000 0x10000>; 329 #address-cells = <1>; 330 #size-cells = <1>; 331 332 mipi_dphy_rx0: mipi-dphy-rx0 { 333 compatible = "rockchip,rk3399-mipi-dphy-rx0"; 334 clocks = <&cru SCLK_MIPIDPHY_REF>, 335 <&cru SCLK_DPHY_RX0_CFG>, 336 <&cru PCLK_VIO_GRF>; 337 clock-names = "dphy-ref", "dphy-cfg", "grf"; 338 power-domains = <&power RK3399_PD_VIO>; 339 #phy-cells = <0>; 340 }; 341 342 pcie-phy { 343 compatible = "rockchip,rk3399-pcie-phy"; 344 #phy-cells = <1>; 345 clocks = <&cru SCLK_PCIEPHY_REF>; 346 clock-names = "refclk"; 347 resets = <&cru SRST_PCIEPHY>; 348 reset-names = "phy"; 349 }; 350 351 phy@f780 { 352 compatible = "rockchip,rk3399-emmc-phy"; 353 reg = <0xf780 0x20>; 354 clocks = <&sdhci>; 355 clock-names = "emmcclk"; 356 drive-impedance-ohm = <50>; 357 #phy-cells = <0>; 358 }; 359 360 u2phy0: usb2phy@e450 { 361 compatible = "rockchip,rk3399-usb2phy"; 362 reg = <0xe450 0x10>; 363 clocks = <&cru SCLK_USB2PHY0_REF>; 364 clock-names = "phyclk"; 365 #clock-cells = <0>; 366 clock-output-names = "clk_usbphy0_480m"; 367 368 u2phy0_host: host-port { 369 #phy-cells = <0>; 370 interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>; 371 interrupt-names = "linestate"; 372 }; 373 374 u2phy0_otg: otg-port { 375 #phy-cells = <0>; 376 interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>, 377 <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>, 378 <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>; 379 interrupt-names = "otg-bvalid", "otg-id", 380 "linestate"; 381 }; 382 }; 383 }; 384