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