xref: /freebsd-src/sys/contrib/device-tree/Bindings/soc/rockchip/grf.yaml (revision b2d2a78ad80ec68d4a17f5aef97d21686cb1e29b)
15956d97fSEmmanuel Vadot# SPDX-License-Identifier: GPL-2.0
25956d97fSEmmanuel Vadot%YAML 1.2
35956d97fSEmmanuel Vadot---
45956d97fSEmmanuel Vadot$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
55956d97fSEmmanuel Vadot$schema: http://devicetree.org/meta-schemas/core.yaml#
65956d97fSEmmanuel Vadot
75956d97fSEmmanuel Vadottitle: Rockchip General Register Files (GRF)
85956d97fSEmmanuel Vadot
95956d97fSEmmanuel Vadotmaintainers:
105956d97fSEmmanuel Vadot  - Heiko Stuebner <heiko@sntech.de>
115956d97fSEmmanuel Vadot
125956d97fSEmmanuel Vadotproperties:
135956d97fSEmmanuel Vadot  compatible:
145956d97fSEmmanuel Vadot    oneOf:
155956d97fSEmmanuel Vadot      - items:
165956d97fSEmmanuel Vadot          - enum:
175956d97fSEmmanuel Vadot              - rockchip,rk3288-sgrf
18d5b0e70fSEmmanuel Vadot              - rockchip,rk3566-pipe-grf
197ef62cebSEmmanuel Vadot              - rockchip,rk3568-pcie3-phy-grf
20d5b0e70fSEmmanuel Vadot              - rockchip,rk3568-pipe-grf
21d5b0e70fSEmmanuel Vadot              - rockchip,rk3568-pipe-phy-grf
22c9ccf3a3SEmmanuel Vadot              - rockchip,rk3568-usb2phy-grf
23*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-bigcore-grf
24*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-cci-grf
25*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-gpu-grf
26*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-litcore-grf
27*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-npu-grf
28*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-php-grf
29*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-pipe-phy-grf
30*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-pmu1-grf
31*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-sdgmac-grf
32*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-sys-grf
33*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-usb-grf
34*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-usbdpphy-grf
35*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-vo0-grf
36*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-vop-grf
37cb7aa33aSEmmanuel Vadot              - rockchip,rk3588-bigcore0-grf
38cb7aa33aSEmmanuel Vadot              - rockchip,rk3588-bigcore1-grf
3901950c46SEmmanuel Vadot              - rockchip,rk3588-hdptxphy-grf
40cb7aa33aSEmmanuel Vadot              - rockchip,rk3588-ioc
41cb7aa33aSEmmanuel Vadot              - rockchip,rk3588-php-grf
42f126890aSEmmanuel Vadot              - rockchip,rk3588-pipe-phy-grf
43cb7aa33aSEmmanuel Vadot              - rockchip,rk3588-sys-grf
447ef62cebSEmmanuel Vadot              - rockchip,rk3588-pcie3-phy-grf
457ef62cebSEmmanuel Vadot              - rockchip,rk3588-pcie3-pipe-grf
4601950c46SEmmanuel Vadot              - rockchip,rk3588-usb-grf
4701950c46SEmmanuel Vadot              - rockchip,rk3588-usbdpphy-grf
480e8011faSEmmanuel Vadot              - rockchip,rk3588-vo0-grf
490e8011faSEmmanuel Vadot              - rockchip,rk3588-vo1-grf
508d13bc63SEmmanuel Vadot              - rockchip,rk3588-vop-grf
515956d97fSEmmanuel Vadot              - rockchip,rv1108-usbgrf
525956d97fSEmmanuel Vadot          - const: syscon
535956d97fSEmmanuel Vadot      - items:
540e8011faSEmmanuel Vadot          - const: rockchip,rk3588-vo-grf
550e8011faSEmmanuel Vadot          - const: syscon
560e8011faSEmmanuel Vadot        deprecated: true
570e8011faSEmmanuel Vadot        description: Use rockchip,rk3588-vo{0,1}-grf instead.
580e8011faSEmmanuel Vadot      - items:
595956d97fSEmmanuel Vadot          - enum:
605956d97fSEmmanuel Vadot              - rockchip,px30-grf
615956d97fSEmmanuel Vadot              - rockchip,px30-pmugrf
625956d97fSEmmanuel Vadot              - rockchip,px30-usb2phy-grf
635956d97fSEmmanuel Vadot              - rockchip,rk3036-grf
645956d97fSEmmanuel Vadot              - rockchip,rk3066-grf
657ef62cebSEmmanuel Vadot              - rockchip,rk3128-grf
665956d97fSEmmanuel Vadot              - rockchip,rk3188-grf
675956d97fSEmmanuel Vadot              - rockchip,rk3228-grf
685956d97fSEmmanuel Vadot              - rockchip,rk3288-grf
695956d97fSEmmanuel Vadot              - rockchip,rk3308-core-grf
705956d97fSEmmanuel Vadot              - rockchip,rk3308-detect-grf
715956d97fSEmmanuel Vadot              - rockchip,rk3308-grf
725956d97fSEmmanuel Vadot              - rockchip,rk3308-usb2phy-grf
735956d97fSEmmanuel Vadot              - rockchip,rk3328-grf
745956d97fSEmmanuel Vadot              - rockchip,rk3328-usb2phy-grf
755956d97fSEmmanuel Vadot              - rockchip,rk3368-grf
765956d97fSEmmanuel Vadot              - rockchip,rk3368-pmugrf
775956d97fSEmmanuel Vadot              - rockchip,rk3399-grf
785956d97fSEmmanuel Vadot              - rockchip,rk3399-pmugrf
795956d97fSEmmanuel Vadot              - rockchip,rk3568-grf
805956d97fSEmmanuel Vadot              - rockchip,rk3568-pmugrf
81*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-ioc-grf
82*b2d2a78aSEmmanuel Vadot              - rockchip,rk3576-pmu0-grf
83f126890aSEmmanuel Vadot              - rockchip,rk3588-usb2phy-grf
845956d97fSEmmanuel Vadot              - rockchip,rv1108-grf
85354d7675SEmmanuel Vadot              - rockchip,rv1108-pmugrf
867ef62cebSEmmanuel Vadot              - rockchip,rv1126-grf
877ef62cebSEmmanuel Vadot              - rockchip,rv1126-pmugrf
885956d97fSEmmanuel Vadot          - const: syscon
895956d97fSEmmanuel Vadot          - const: simple-mfd
905956d97fSEmmanuel Vadot
915956d97fSEmmanuel Vadot  reg:
925956d97fSEmmanuel Vadot    maxItems: 1
935956d97fSEmmanuel Vadot
9401950c46SEmmanuel Vadot  clocks:
9501950c46SEmmanuel Vadot    maxItems: 1
9601950c46SEmmanuel Vadot
975956d97fSEmmanuel Vadot  "#address-cells":
985956d97fSEmmanuel Vadot    const: 1
995956d97fSEmmanuel Vadot
1005956d97fSEmmanuel Vadot  "#size-cells":
1015956d97fSEmmanuel Vadot    const: 1
1025956d97fSEmmanuel Vadot
1035956d97fSEmmanuel Vadotrequired:
1045956d97fSEmmanuel Vadot  - compatible
1055956d97fSEmmanuel Vadot  - reg
1065956d97fSEmmanuel Vadot
1075956d97fSEmmanuel VadotadditionalProperties:
1085956d97fSEmmanuel Vadot  type: object
1095956d97fSEmmanuel Vadot
1105956d97fSEmmanuel VadotallOf:
1115956d97fSEmmanuel Vadot  - if:
1125956d97fSEmmanuel Vadot      properties:
1135956d97fSEmmanuel Vadot        compatible:
1145956d97fSEmmanuel Vadot          contains:
115fac71e4eSEmmanuel Vadot            enum:
116fac71e4eSEmmanuel Vadot              - rockchip,px30-grf
1175956d97fSEmmanuel Vadot
1185956d97fSEmmanuel Vadot    then:
1195956d97fSEmmanuel Vadot      properties:
1205956d97fSEmmanuel Vadot        lvds:
121fac71e4eSEmmanuel Vadot          type: object
122fac71e4eSEmmanuel Vadot
123fac71e4eSEmmanuel Vadot          $ref: /schemas/display/rockchip/rockchip,lvds.yaml#
124fac71e4eSEmmanuel Vadot
125fac71e4eSEmmanuel Vadot          unevaluatedProperties: false
1265956d97fSEmmanuel Vadot
1275956d97fSEmmanuel Vadot  - if:
1285956d97fSEmmanuel Vadot      properties:
1295956d97fSEmmanuel Vadot        compatible:
1305956d97fSEmmanuel Vadot          contains:
1315956d97fSEmmanuel Vadot            const: rockchip,rk3288-grf
1325956d97fSEmmanuel Vadot
1335956d97fSEmmanuel Vadot    then:
1345956d97fSEmmanuel Vadot      properties:
1355956d97fSEmmanuel Vadot        edp-phy:
136cb7aa33aSEmmanuel Vadot          type: object
137cb7aa33aSEmmanuel Vadot          $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml#
138cb7aa33aSEmmanuel Vadot          unevaluatedProperties: false
1395956d97fSEmmanuel Vadot
1405956d97fSEmmanuel Vadot  - if:
1415956d97fSEmmanuel Vadot      properties:
1425956d97fSEmmanuel Vadot        compatible:
1435956d97fSEmmanuel Vadot          contains:
1445956d97fSEmmanuel Vadot            enum:
1455956d97fSEmmanuel Vadot              - rockchip,rk3066-grf
1465956d97fSEmmanuel Vadot              - rockchip,rk3188-grf
1475956d97fSEmmanuel Vadot              - rockchip,rk3288-grf
1485956d97fSEmmanuel Vadot
1495956d97fSEmmanuel Vadot    then:
1505956d97fSEmmanuel Vadot      properties:
1515956d97fSEmmanuel Vadot        usbphy:
1525956d97fSEmmanuel Vadot          type: object
1535956d97fSEmmanuel Vadot
154f126890aSEmmanuel Vadot          $ref: /schemas/phy/rockchip-usb-phy.yaml#
1555956d97fSEmmanuel Vadot
1565956d97fSEmmanuel Vadot          unevaluatedProperties: false
1575956d97fSEmmanuel Vadot
1585956d97fSEmmanuel Vadot  - if:
1595956d97fSEmmanuel Vadot      properties:
1605956d97fSEmmanuel Vadot        compatible:
1615956d97fSEmmanuel Vadot          contains:
1625956d97fSEmmanuel Vadot            const: rockchip,rk3328-grf
1635956d97fSEmmanuel Vadot
1645956d97fSEmmanuel Vadot    then:
1655956d97fSEmmanuel Vadot      properties:
1665956d97fSEmmanuel Vadot        gpio:
1675956d97fSEmmanuel Vadot          type: object
1685956d97fSEmmanuel Vadot
169f126890aSEmmanuel Vadot          $ref: /schemas/gpio/rockchip,rk3328-grf-gpio.yaml#
1705956d97fSEmmanuel Vadot
1715956d97fSEmmanuel Vadot          unevaluatedProperties: false
1725956d97fSEmmanuel Vadot
1735956d97fSEmmanuel Vadot        power-controller:
1745956d97fSEmmanuel Vadot          type: object
1755956d97fSEmmanuel Vadot
176f126890aSEmmanuel Vadot          $ref: /schemas/power/rockchip,power-controller.yaml#
1775956d97fSEmmanuel Vadot
1785956d97fSEmmanuel Vadot          unevaluatedProperties: false
1795956d97fSEmmanuel Vadot
1805956d97fSEmmanuel Vadot  - if:
1815956d97fSEmmanuel Vadot      properties:
1825956d97fSEmmanuel Vadot        compatible:
1835956d97fSEmmanuel Vadot          contains:
1845956d97fSEmmanuel Vadot            const: rockchip,rk3399-grf
1855956d97fSEmmanuel Vadot
1865956d97fSEmmanuel Vadot    then:
1875956d97fSEmmanuel Vadot      properties:
1885956d97fSEmmanuel Vadot        mipi-dphy-rx0:
1895956d97fSEmmanuel Vadot          type: object
1905956d97fSEmmanuel Vadot
191f126890aSEmmanuel Vadot          $ref: /schemas/phy/rockchip-mipi-dphy-rx0.yaml#
1925956d97fSEmmanuel Vadot
1935956d97fSEmmanuel Vadot          unevaluatedProperties: false
1945956d97fSEmmanuel Vadot
1955956d97fSEmmanuel Vadot        pcie-phy:
19601950c46SEmmanuel Vadot          type: object
1975956d97fSEmmanuel Vadot          description:
1985956d97fSEmmanuel Vadot            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
1995956d97fSEmmanuel Vadot
2005956d97fSEmmanuel Vadot      patternProperties:
2010e8011faSEmmanuel Vadot        "^phy@[0-9a-f]+$":
2020e8011faSEmmanuel Vadot          type: object
2030e8011faSEmmanuel Vadot          $ref: /schemas/phy/rockchip,rk3399-emmc-phy.yaml#
2040e8011faSEmmanuel Vadot          unevaluatedProperties: false
2055956d97fSEmmanuel Vadot
2065956d97fSEmmanuel Vadot  - if:
2075956d97fSEmmanuel Vadot      properties:
2085956d97fSEmmanuel Vadot        compatible:
2095956d97fSEmmanuel Vadot          contains:
2105956d97fSEmmanuel Vadot            enum:
2115956d97fSEmmanuel Vadot              - rockchip,px30-pmugrf
2125956d97fSEmmanuel Vadot              - rockchip,rk3036-grf
2135956d97fSEmmanuel Vadot              - rockchip,rk3308-grf
2145956d97fSEmmanuel Vadot              - rockchip,rk3368-pmugrf
2155956d97fSEmmanuel Vadot
2165956d97fSEmmanuel Vadot    then:
2175956d97fSEmmanuel Vadot      properties:
2185956d97fSEmmanuel Vadot        reboot-mode:
2195956d97fSEmmanuel Vadot          type: object
2205956d97fSEmmanuel Vadot
221f126890aSEmmanuel Vadot          $ref: /schemas/power/reset/syscon-reboot-mode.yaml#
2225956d97fSEmmanuel Vadot
2235956d97fSEmmanuel Vadot          unevaluatedProperties: false
2245956d97fSEmmanuel Vadot
2255956d97fSEmmanuel Vadot  - if:
2265956d97fSEmmanuel Vadot      properties:
2275956d97fSEmmanuel Vadot        compatible:
2285956d97fSEmmanuel Vadot          contains:
2295956d97fSEmmanuel Vadot            enum:
2305956d97fSEmmanuel Vadot              - rockchip,px30-usb2phy-grf
2317ef62cebSEmmanuel Vadot              - rockchip,rk3128-grf
2325956d97fSEmmanuel Vadot              - rockchip,rk3228-grf
2335956d97fSEmmanuel Vadot              - rockchip,rk3308-usb2phy-grf
2345956d97fSEmmanuel Vadot              - rockchip,rk3328-usb2phy-grf
2355956d97fSEmmanuel Vadot              - rockchip,rk3399-grf
236f126890aSEmmanuel Vadot              - rockchip,rk3588-usb2phy-grf
2375956d97fSEmmanuel Vadot              - rockchip,rv1108-grf
2385956d97fSEmmanuel Vadot
2395956d97fSEmmanuel Vadot    then:
2405956d97fSEmmanuel Vadot      required:
2415956d97fSEmmanuel Vadot        - "#address-cells"
2425956d97fSEmmanuel Vadot        - "#size-cells"
2435956d97fSEmmanuel Vadot
2445956d97fSEmmanuel Vadot      patternProperties:
2455956d97fSEmmanuel Vadot        "usb2phy@[0-9a-f]+$":
2465956d97fSEmmanuel Vadot          type: object
2475956d97fSEmmanuel Vadot
248cb7aa33aSEmmanuel Vadot          $ref: /schemas/phy/rockchip,inno-usb2phy.yaml#
2495956d97fSEmmanuel Vadot
2505956d97fSEmmanuel Vadot          unevaluatedProperties: false
2515956d97fSEmmanuel Vadot
2525956d97fSEmmanuel Vadot  - if:
2535956d97fSEmmanuel Vadot      properties:
2545956d97fSEmmanuel Vadot        compatible:
2555956d97fSEmmanuel Vadot          contains:
2565956d97fSEmmanuel Vadot            enum:
2575956d97fSEmmanuel Vadot              - rockchip,px30-grf
258354d7675SEmmanuel Vadot              - rockchip,px30-pmugrf
259354d7675SEmmanuel Vadot              - rockchip,rk3188-grf
2605956d97fSEmmanuel Vadot              - rockchip,rk3228-grf
2615956d97fSEmmanuel Vadot              - rockchip,rk3288-grf
2625956d97fSEmmanuel Vadot              - rockchip,rk3328-grf
2635956d97fSEmmanuel Vadot              - rockchip,rk3368-grf
264354d7675SEmmanuel Vadot              - rockchip,rk3368-pmugrf
2655956d97fSEmmanuel Vadot              - rockchip,rk3399-grf
266354d7675SEmmanuel Vadot              - rockchip,rk3399-pmugrf
267354d7675SEmmanuel Vadot              - rockchip,rk3568-pmugrf
26884943d6fSEmmanuel Vadot              - rockchip,rk3588-pmugrf
269354d7675SEmmanuel Vadot              - rockchip,rv1108-grf
270354d7675SEmmanuel Vadot              - rockchip,rv1108-pmugrf
2715956d97fSEmmanuel Vadot
2725956d97fSEmmanuel Vadot    then:
2735956d97fSEmmanuel Vadot      properties:
2745956d97fSEmmanuel Vadot        io-domains:
275354d7675SEmmanuel Vadot          type: object
276354d7675SEmmanuel Vadot
277f126890aSEmmanuel Vadot          $ref: /schemas/power/rockchip-io-domain.yaml#
278354d7675SEmmanuel Vadot
279354d7675SEmmanuel Vadot          unevaluatedProperties: false
2805956d97fSEmmanuel Vadot
28101950c46SEmmanuel Vadot  - if:
28201950c46SEmmanuel Vadot      properties:
28301950c46SEmmanuel Vadot        compatible:
28401950c46SEmmanuel Vadot          contains:
28501950c46SEmmanuel Vadot            enum:
28601950c46SEmmanuel Vadot              - rockchip,rk3588-vo-grf
2870e8011faSEmmanuel Vadot              - rockchip,rk3588-vo0-grf
2880e8011faSEmmanuel Vadot              - rockchip,rk3588-vo1-grf
28901950c46SEmmanuel Vadot
29001950c46SEmmanuel Vadot    then:
29101950c46SEmmanuel Vadot      required:
29201950c46SEmmanuel Vadot        - clocks
29301950c46SEmmanuel Vadot
29401950c46SEmmanuel Vadot    else:
29501950c46SEmmanuel Vadot      properties:
29601950c46SEmmanuel Vadot        clocks: false
29701950c46SEmmanuel Vadot
29801950c46SEmmanuel Vadot
2995956d97fSEmmanuel Vadotexamples:
3005956d97fSEmmanuel Vadot  - |
3015956d97fSEmmanuel Vadot    #include <dt-bindings/clock/rk3399-cru.h>
3025956d97fSEmmanuel Vadot    #include <dt-bindings/interrupt-controller/arm-gic.h>
3035956d97fSEmmanuel Vadot    #include <dt-bindings/power/rk3399-power.h>
3045956d97fSEmmanuel Vadot    grf: syscon@ff770000 {
3055956d97fSEmmanuel Vadot      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
3065956d97fSEmmanuel Vadot      reg = <0xff770000 0x10000>;
3075956d97fSEmmanuel Vadot      #address-cells = <1>;
3085956d97fSEmmanuel Vadot      #size-cells = <1>;
3095956d97fSEmmanuel Vadot
3105956d97fSEmmanuel Vadot      mipi_dphy_rx0: mipi-dphy-rx0 {
3115956d97fSEmmanuel Vadot        compatible = "rockchip,rk3399-mipi-dphy-rx0";
3125956d97fSEmmanuel Vadot        clocks = <&cru SCLK_MIPIDPHY_REF>,
3135956d97fSEmmanuel Vadot                 <&cru SCLK_DPHY_RX0_CFG>,
3145956d97fSEmmanuel Vadot                 <&cru PCLK_VIO_GRF>;
3155956d97fSEmmanuel Vadot        clock-names = "dphy-ref", "dphy-cfg", "grf";
3165956d97fSEmmanuel Vadot        power-domains = <&power RK3399_PD_VIO>;
3175956d97fSEmmanuel Vadot        #phy-cells = <0>;
3185956d97fSEmmanuel Vadot      };
3195956d97fSEmmanuel Vadot
3200e8011faSEmmanuel Vadot      phy@f780 {
3210e8011faSEmmanuel Vadot        compatible = "rockchip,rk3399-emmc-phy";
3220e8011faSEmmanuel Vadot        reg = <0xf780 0x20>;
3230e8011faSEmmanuel Vadot        clocks = <&sdhci>;
3240e8011faSEmmanuel Vadot        clock-names = "emmcclk";
3250e8011faSEmmanuel Vadot        drive-impedance-ohm = <50>;
3260e8011faSEmmanuel Vadot        #phy-cells = <0>;
3270e8011faSEmmanuel Vadot      };
3280e8011faSEmmanuel Vadot
3295956d97fSEmmanuel Vadot      u2phy0: usb2phy@e450 {
3305956d97fSEmmanuel Vadot        compatible = "rockchip,rk3399-usb2phy";
3315956d97fSEmmanuel Vadot        reg = <0xe450 0x10>;
3325956d97fSEmmanuel Vadot        clocks = <&cru SCLK_USB2PHY0_REF>;
3335956d97fSEmmanuel Vadot        clock-names = "phyclk";
3345956d97fSEmmanuel Vadot        #clock-cells = <0>;
3355956d97fSEmmanuel Vadot        clock-output-names = "clk_usbphy0_480m";
3365956d97fSEmmanuel Vadot
3375956d97fSEmmanuel Vadot        u2phy0_host: host-port {
3385956d97fSEmmanuel Vadot          #phy-cells = <0>;
3395956d97fSEmmanuel Vadot          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
3405956d97fSEmmanuel Vadot          interrupt-names = "linestate";
3415956d97fSEmmanuel Vadot         };
3425956d97fSEmmanuel Vadot
3435956d97fSEmmanuel Vadot        u2phy0_otg: otg-port {
3445956d97fSEmmanuel Vadot          #phy-cells = <0>;
3455956d97fSEmmanuel Vadot          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
3465956d97fSEmmanuel Vadot                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
3475956d97fSEmmanuel Vadot                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
3485956d97fSEmmanuel Vadot          interrupt-names = "otg-bvalid", "otg-id",
3495956d97fSEmmanuel Vadot                            "linestate";
3505956d97fSEmmanuel Vadot        };
3515956d97fSEmmanuel Vadot      };
3525956d97fSEmmanuel Vadot    };
353