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