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