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