12ed2732eSJohan Jonker# SPDX-License-Identifier: GPL-2.0
22ed2732eSJohan Jonker%YAML 1.2
32ed2732eSJohan Jonker---
42ed2732eSJohan Jonker$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
52ed2732eSJohan Jonker$schema: http://devicetree.org/meta-schemas/core.yaml#
62ed2732eSJohan Jonker
72ed2732eSJohan Jonkertitle: Rockchip General Register Files (GRF)
82ed2732eSJohan Jonker
92ed2732eSJohan Jonkermaintainers:
102ed2732eSJohan Jonker  - Heiko Stuebner <heiko@sntech.de>
112ed2732eSJohan Jonker
122ed2732eSJohan Jonkerproperties:
132ed2732eSJohan Jonker  compatible:
142ed2732eSJohan Jonker    oneOf:
152ed2732eSJohan Jonker      - items:
162ed2732eSJohan Jonker          - enum:
172ed2732eSJohan Jonker              - rockchip,rk3288-sgrf
182a872dd8SPeter Geis              - rockchip,rk3566-pipe-grf
194e441643SFrank Wunderlich              - rockchip,rk3568-pcie3-phy-grf
208a1b63b1SJohan Jonker              - rockchip,rk3568-pipe-grf
218a1b63b1SJohan Jonker              - rockchip,rk3568-pipe-phy-grf
227dbb47d6SPeter Geis              - rockchip,rk3568-usb2phy-grf
23306f74d2SSebastian Reichel              - rockchip,rk3588-bigcore0-grf
24306f74d2SSebastian Reichel              - rockchip,rk3588-bigcore1-grf
25306f74d2SSebastian Reichel              - rockchip,rk3588-ioc
26306f74d2SSebastian Reichel              - rockchip,rk3588-php-grf
27ea85370dSSebastian Reichel              - rockchip,rk3588-pipe-phy-grf
28306f74d2SSebastian Reichel              - rockchip,rk3588-sys-grf
294e441643SFrank Wunderlich              - rockchip,rk3588-pcie3-phy-grf
304e441643SFrank Wunderlich              - rockchip,rk3588-pcie3-pipe-grf
312ed2732eSJohan Jonker              - rockchip,rv1108-usbgrf
322ed2732eSJohan Jonker          - const: syscon
332ed2732eSJohan Jonker      - items:
342ed2732eSJohan Jonker          - enum:
352ed2732eSJohan Jonker              - rockchip,px30-grf
362ed2732eSJohan Jonker              - rockchip,px30-pmugrf
372ed2732eSJohan Jonker              - rockchip,px30-usb2phy-grf
382ed2732eSJohan Jonker              - rockchip,rk3036-grf
392ed2732eSJohan Jonker              - rockchip,rk3066-grf
40adc4f190SJohan Jonker              - rockchip,rk3128-grf
412ed2732eSJohan Jonker              - rockchip,rk3188-grf
422ed2732eSJohan Jonker              - rockchip,rk3228-grf
432ed2732eSJohan Jonker              - rockchip,rk3288-grf
442ed2732eSJohan Jonker              - rockchip,rk3308-core-grf
452ed2732eSJohan Jonker              - rockchip,rk3308-detect-grf
462ed2732eSJohan Jonker              - rockchip,rk3308-grf
47da76290fSTobias Schramm              - rockchip,rk3308-usb2phy-grf
482ed2732eSJohan Jonker              - rockchip,rk3328-grf
492ed2732eSJohan Jonker              - rockchip,rk3328-usb2phy-grf
502ed2732eSJohan Jonker              - rockchip,rk3368-grf
512ed2732eSJohan Jonker              - rockchip,rk3368-pmugrf
522ed2732eSJohan Jonker              - rockchip,rk3399-grf
532ed2732eSJohan Jonker              - rockchip,rk3399-pmugrf
542ed2732eSJohan Jonker              - rockchip,rk3568-grf
552ed2732eSJohan Jonker              - rockchip,rk3568-pmugrf
567224aefbSSebastian Reichel              - rockchip,rk3588-usb2phy-grf
572ed2732eSJohan Jonker              - rockchip,rv1108-grf
58959e131fSJohan Jonker              - rockchip,rv1108-pmugrf
5926d8b279SJagan Teki              - rockchip,rv1126-grf
60614ce48bSJagan Teki              - rockchip,rv1126-pmugrf
612ed2732eSJohan Jonker          - const: syscon
622ed2732eSJohan Jonker          - const: simple-mfd
632ed2732eSJohan Jonker
642ed2732eSJohan Jonker  reg:
652ed2732eSJohan Jonker    maxItems: 1
662ed2732eSJohan Jonker
672ed2732eSJohan Jonker  "#address-cells":
682ed2732eSJohan Jonker    const: 1
692ed2732eSJohan Jonker
702ed2732eSJohan Jonker  "#size-cells":
712ed2732eSJohan Jonker    const: 1
722ed2732eSJohan Jonker
732ed2732eSJohan Jonkerrequired:
742ed2732eSJohan Jonker  - compatible
752ed2732eSJohan Jonker  - reg
762ed2732eSJohan Jonker
772ed2732eSJohan JonkeradditionalProperties:
782ed2732eSJohan Jonker  type: object
792ed2732eSJohan Jonker
802ed2732eSJohan JonkerallOf:
812ed2732eSJohan Jonker  - if:
822ed2732eSJohan Jonker      properties:
832ed2732eSJohan Jonker        compatible:
842ed2732eSJohan Jonker          contains:
85cbfc73a3SJohan Jonker            enum:
86cbfc73a3SJohan Jonker              - rockchip,px30-grf
872ed2732eSJohan Jonker
882ed2732eSJohan Jonker    then:
892ed2732eSJohan Jonker      properties:
902ed2732eSJohan Jonker        lvds:
91cbfc73a3SJohan Jonker          type: object
92cbfc73a3SJohan Jonker
93cbfc73a3SJohan Jonker          $ref: /schemas/display/rockchip/rockchip,lvds.yaml#
94cbfc73a3SJohan Jonker
95cbfc73a3SJohan Jonker          unevaluatedProperties: false
962ed2732eSJohan Jonker
972ed2732eSJohan Jonker  - if:
982ed2732eSJohan Jonker      properties:
992ed2732eSJohan Jonker        compatible:
1002ed2732eSJohan Jonker          contains:
1012ed2732eSJohan Jonker            const: rockchip,rk3288-grf
1022ed2732eSJohan Jonker
1032ed2732eSJohan Jonker    then:
1042ed2732eSJohan Jonker      properties:
1052ed2732eSJohan Jonker        edp-phy:
10651b20892SJohan Jonker          type: object
10751b20892SJohan Jonker          $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml#
10851b20892SJohan Jonker          unevaluatedProperties: false
1092ed2732eSJohan Jonker
1102ed2732eSJohan Jonker  - if:
1112ed2732eSJohan Jonker      properties:
1122ed2732eSJohan Jonker        compatible:
1132ed2732eSJohan Jonker          contains:
1142ed2732eSJohan Jonker            enum:
1152ed2732eSJohan Jonker              - rockchip,rk3066-grf
1162ed2732eSJohan Jonker              - rockchip,rk3188-grf
1172ed2732eSJohan Jonker              - rockchip,rk3288-grf
1182ed2732eSJohan Jonker
1192ed2732eSJohan Jonker    then:
1202ed2732eSJohan Jonker      properties:
1212ed2732eSJohan Jonker        usbphy:
1222ed2732eSJohan Jonker          type: object
1232ed2732eSJohan Jonker
1240d36b50eSKrzysztof Kozlowski          $ref: /schemas/phy/rockchip-usb-phy.yaml#
1252ed2732eSJohan Jonker
1262ed2732eSJohan Jonker          unevaluatedProperties: false
1272ed2732eSJohan Jonker
1282ed2732eSJohan Jonker  - if:
1292ed2732eSJohan Jonker      properties:
1302ed2732eSJohan Jonker        compatible:
1312ed2732eSJohan Jonker          contains:
1322ed2732eSJohan Jonker            const: rockchip,rk3328-grf
1332ed2732eSJohan Jonker
1342ed2732eSJohan Jonker    then:
1352ed2732eSJohan Jonker      properties:
1362ed2732eSJohan Jonker        gpio:
1372ed2732eSJohan Jonker          type: object
1382ed2732eSJohan Jonker
1390d36b50eSKrzysztof Kozlowski          $ref: /schemas/gpio/rockchip,rk3328-grf-gpio.yaml#
1402ed2732eSJohan Jonker
1412ed2732eSJohan Jonker          unevaluatedProperties: false
1422ed2732eSJohan Jonker
1432ed2732eSJohan Jonker        power-controller:
1442ed2732eSJohan Jonker          type: object
1452ed2732eSJohan Jonker
1460d36b50eSKrzysztof Kozlowski          $ref: /schemas/power/rockchip,power-controller.yaml#
1472ed2732eSJohan Jonker
1482ed2732eSJohan Jonker          unevaluatedProperties: false
1492ed2732eSJohan Jonker
1502ed2732eSJohan Jonker  - if:
1512ed2732eSJohan Jonker      properties:
1522ed2732eSJohan Jonker        compatible:
1532ed2732eSJohan Jonker          contains:
1542ed2732eSJohan Jonker            const: rockchip,rk3399-grf
1552ed2732eSJohan Jonker
1562ed2732eSJohan Jonker    then:
1572ed2732eSJohan Jonker      properties:
1582ed2732eSJohan Jonker        mipi-dphy-rx0:
1592ed2732eSJohan Jonker          type: object
1602ed2732eSJohan Jonker
1610d36b50eSKrzysztof Kozlowski          $ref: /schemas/phy/rockchip-mipi-dphy-rx0.yaml#
1622ed2732eSJohan Jonker
1632ed2732eSJohan Jonker          unevaluatedProperties: false
1642ed2732eSJohan Jonker
1652ed2732eSJohan Jonker        pcie-phy:
166e26d4063SRob Herring          type: object
1672ed2732eSJohan Jonker          description:
1682ed2732eSJohan Jonker            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
1692ed2732eSJohan Jonker
1702ed2732eSJohan Jonker      patternProperties:
1712ed2732eSJohan Jonker        "phy@[0-9a-f]+$":
1722ed2732eSJohan Jonker          description:
1732ed2732eSJohan Jonker            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
1742ed2732eSJohan Jonker
1752ed2732eSJohan Jonker  - if:
1762ed2732eSJohan Jonker      properties:
1772ed2732eSJohan Jonker        compatible:
1782ed2732eSJohan Jonker          contains:
1792ed2732eSJohan Jonker            enum:
1802ed2732eSJohan Jonker              - rockchip,px30-pmugrf
1812ed2732eSJohan Jonker              - rockchip,rk3036-grf
1822ed2732eSJohan Jonker              - rockchip,rk3308-grf
1832ed2732eSJohan Jonker              - rockchip,rk3368-pmugrf
1842ed2732eSJohan Jonker
1852ed2732eSJohan Jonker    then:
1862ed2732eSJohan Jonker      properties:
1872ed2732eSJohan Jonker        reboot-mode:
1882ed2732eSJohan Jonker          type: object
1892ed2732eSJohan Jonker
1900d36b50eSKrzysztof Kozlowski          $ref: /schemas/power/reset/syscon-reboot-mode.yaml#
1912ed2732eSJohan Jonker
1922ed2732eSJohan Jonker          unevaluatedProperties: false
1932ed2732eSJohan Jonker
1942ed2732eSJohan Jonker  - if:
1952ed2732eSJohan Jonker      properties:
1962ed2732eSJohan Jonker        compatible:
1972ed2732eSJohan Jonker          contains:
1982ed2732eSJohan Jonker            enum:
1992ed2732eSJohan Jonker              - rockchip,px30-usb2phy-grf
200adc4f190SJohan Jonker              - rockchip,rk3128-grf
2012ed2732eSJohan Jonker              - rockchip,rk3228-grf
202da76290fSTobias Schramm              - rockchip,rk3308-usb2phy-grf
2032ed2732eSJohan Jonker              - rockchip,rk3328-usb2phy-grf
2042ed2732eSJohan Jonker              - rockchip,rk3399-grf
2057224aefbSSebastian Reichel              - rockchip,rk3588-usb2phy-grf
2062ed2732eSJohan Jonker              - rockchip,rv1108-grf
2072ed2732eSJohan Jonker
2082ed2732eSJohan Jonker    then:
2092ed2732eSJohan Jonker      required:
2102ed2732eSJohan Jonker        - "#address-cells"
2112ed2732eSJohan Jonker        - "#size-cells"
2122ed2732eSJohan Jonker
2132ed2732eSJohan Jonker      patternProperties:
214e71ccdffSJohan Jonker        "usb2phy@[0-9a-f]+$":
2152ed2732eSJohan Jonker          type: object
2162ed2732eSJohan Jonker
2170f48b0edSJohan Jonker          $ref: /schemas/phy/rockchip,inno-usb2phy.yaml#
2182ed2732eSJohan Jonker
2192ed2732eSJohan Jonker          unevaluatedProperties: false
2202ed2732eSJohan Jonker
2212ed2732eSJohan Jonker  - if:
2222ed2732eSJohan Jonker      properties:
2232ed2732eSJohan Jonker        compatible:
2242ed2732eSJohan Jonker          contains:
2252ed2732eSJohan Jonker            enum:
2262ed2732eSJohan Jonker              - rockchip,px30-grf
227959e131fSJohan Jonker              - rockchip,px30-pmugrf
228959e131fSJohan Jonker              - rockchip,rk3188-grf
2292ed2732eSJohan Jonker              - rockchip,rk3228-grf
2302ed2732eSJohan Jonker              - rockchip,rk3288-grf
2312ed2732eSJohan Jonker              - rockchip,rk3328-grf
2322ed2732eSJohan Jonker              - rockchip,rk3368-grf
233959e131fSJohan Jonker              - rockchip,rk3368-pmugrf
2342ed2732eSJohan Jonker              - rockchip,rk3399-grf
235959e131fSJohan Jonker              - rockchip,rk3399-pmugrf
236fadbd4e7SMichael Riesch              - rockchip,rk3568-pmugrf
237959e131fSJohan Jonker              - rockchip,rv1108-grf
238959e131fSJohan Jonker              - rockchip,rv1108-pmugrf
2392ed2732eSJohan Jonker
2402ed2732eSJohan Jonker    then:
2412ed2732eSJohan Jonker      properties:
2422ed2732eSJohan Jonker        io-domains:
243959e131fSJohan Jonker          type: object
244959e131fSJohan Jonker
2450d36b50eSKrzysztof Kozlowski          $ref: /schemas/power/rockchip-io-domain.yaml#
246959e131fSJohan Jonker
247959e131fSJohan Jonker          unevaluatedProperties: false
2482ed2732eSJohan Jonker
2492ed2732eSJohan Jonkerexamples:
2502ed2732eSJohan Jonker  - |
2512ed2732eSJohan Jonker    #include <dt-bindings/clock/rk3399-cru.h>
2522ed2732eSJohan Jonker    #include <dt-bindings/interrupt-controller/arm-gic.h>
2532ed2732eSJohan Jonker    #include <dt-bindings/power/rk3399-power.h>
2542ed2732eSJohan Jonker    grf: syscon@ff770000 {
2552ed2732eSJohan Jonker      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
2562ed2732eSJohan Jonker      reg = <0xff770000 0x10000>;
2572ed2732eSJohan Jonker      #address-cells = <1>;
2582ed2732eSJohan Jonker      #size-cells = <1>;
2592ed2732eSJohan Jonker
2602ed2732eSJohan Jonker      mipi_dphy_rx0: mipi-dphy-rx0 {
2612ed2732eSJohan Jonker        compatible = "rockchip,rk3399-mipi-dphy-rx0";
2622ed2732eSJohan Jonker        clocks = <&cru SCLK_MIPIDPHY_REF>,
2632ed2732eSJohan Jonker                 <&cru SCLK_DPHY_RX0_CFG>,
2642ed2732eSJohan Jonker                 <&cru PCLK_VIO_GRF>;
2652ed2732eSJohan Jonker        clock-names = "dphy-ref", "dphy-cfg", "grf";
2662ed2732eSJohan Jonker        power-domains = <&power RK3399_PD_VIO>;
2672ed2732eSJohan Jonker        #phy-cells = <0>;
2682ed2732eSJohan Jonker      };
2692ed2732eSJohan Jonker
270e71ccdffSJohan Jonker      u2phy0: usb2phy@e450 {
2712ed2732eSJohan Jonker        compatible = "rockchip,rk3399-usb2phy";
2722ed2732eSJohan Jonker        reg = <0xe450 0x10>;
2732ed2732eSJohan Jonker        clocks = <&cru SCLK_USB2PHY0_REF>;
2742ed2732eSJohan Jonker        clock-names = "phyclk";
2752ed2732eSJohan Jonker        #clock-cells = <0>;
2762ed2732eSJohan Jonker        clock-output-names = "clk_usbphy0_480m";
2772ed2732eSJohan Jonker
2782ed2732eSJohan Jonker        u2phy0_host: host-port {
2792ed2732eSJohan Jonker          #phy-cells = <0>;
2802ed2732eSJohan Jonker          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
2812ed2732eSJohan Jonker          interrupt-names = "linestate";
2822ed2732eSJohan Jonker         };
2832ed2732eSJohan Jonker
2842ed2732eSJohan Jonker        u2phy0_otg: otg-port {
2852ed2732eSJohan Jonker          #phy-cells = <0>;
2862ed2732eSJohan Jonker          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
2872ed2732eSJohan Jonker                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
2882ed2732eSJohan Jonker                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
2892ed2732eSJohan Jonker          interrupt-names = "otg-bvalid", "otg-id",
2902ed2732eSJohan Jonker                            "linestate";
2912ed2732eSJohan Jonker        };
2922ed2732eSJohan Jonker      };
2932ed2732eSJohan Jonker    };
294