162306a36Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
262306a36Sopenharmony_ci%YAML 1.2
362306a36Sopenharmony_ci---
462306a36Sopenharmony_ci$id: http://devicetree.org/schemas/soc/rockchip/grf.yaml#
562306a36Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
662306a36Sopenharmony_ci
762306a36Sopenharmony_cititle: Rockchip General Register Files (GRF)
862306a36Sopenharmony_ci
962306a36Sopenharmony_cimaintainers:
1062306a36Sopenharmony_ci  - Heiko Stuebner <heiko@sntech.de>
1162306a36Sopenharmony_ci
1262306a36Sopenharmony_ciproperties:
1362306a36Sopenharmony_ci  compatible:
1462306a36Sopenharmony_ci    oneOf:
1562306a36Sopenharmony_ci      - items:
1662306a36Sopenharmony_ci          - enum:
1762306a36Sopenharmony_ci              - rockchip,rk3288-sgrf
1862306a36Sopenharmony_ci              - rockchip,rk3566-pipe-grf
1962306a36Sopenharmony_ci              - rockchip,rk3568-pcie3-phy-grf
2062306a36Sopenharmony_ci              - rockchip,rk3568-pipe-grf
2162306a36Sopenharmony_ci              - rockchip,rk3568-pipe-phy-grf
2262306a36Sopenharmony_ci              - rockchip,rk3568-usb2phy-grf
2362306a36Sopenharmony_ci              - rockchip,rk3588-bigcore0-grf
2462306a36Sopenharmony_ci              - rockchip,rk3588-bigcore1-grf
2562306a36Sopenharmony_ci              - rockchip,rk3588-ioc
2662306a36Sopenharmony_ci              - rockchip,rk3588-php-grf
2762306a36Sopenharmony_ci              - rockchip,rk3588-pipe-phy-grf
2862306a36Sopenharmony_ci              - rockchip,rk3588-sys-grf
2962306a36Sopenharmony_ci              - rockchip,rk3588-pcie3-phy-grf
3062306a36Sopenharmony_ci              - rockchip,rk3588-pcie3-pipe-grf
3162306a36Sopenharmony_ci              - rockchip,rv1108-usbgrf
3262306a36Sopenharmony_ci          - const: syscon
3362306a36Sopenharmony_ci      - items:
3462306a36Sopenharmony_ci          - enum:
3562306a36Sopenharmony_ci              - rockchip,px30-grf
3662306a36Sopenharmony_ci              - rockchip,px30-pmugrf
3762306a36Sopenharmony_ci              - rockchip,px30-usb2phy-grf
3862306a36Sopenharmony_ci              - rockchip,rk3036-grf
3962306a36Sopenharmony_ci              - rockchip,rk3066-grf
4062306a36Sopenharmony_ci              - rockchip,rk3128-grf
4162306a36Sopenharmony_ci              - rockchip,rk3188-grf
4262306a36Sopenharmony_ci              - rockchip,rk3228-grf
4362306a36Sopenharmony_ci              - rockchip,rk3288-grf
4462306a36Sopenharmony_ci              - rockchip,rk3308-core-grf
4562306a36Sopenharmony_ci              - rockchip,rk3308-detect-grf
4662306a36Sopenharmony_ci              - rockchip,rk3308-grf
4762306a36Sopenharmony_ci              - rockchip,rk3308-usb2phy-grf
4862306a36Sopenharmony_ci              - rockchip,rk3328-grf
4962306a36Sopenharmony_ci              - rockchip,rk3328-usb2phy-grf
5062306a36Sopenharmony_ci              - rockchip,rk3368-grf
5162306a36Sopenharmony_ci              - rockchip,rk3368-pmugrf
5262306a36Sopenharmony_ci              - rockchip,rk3399-grf
5362306a36Sopenharmony_ci              - rockchip,rk3399-pmugrf
5462306a36Sopenharmony_ci              - rockchip,rk3568-grf
5562306a36Sopenharmony_ci              - rockchip,rk3568-pmugrf
5662306a36Sopenharmony_ci              - rockchip,rk3588-usb2phy-grf
5762306a36Sopenharmony_ci              - rockchip,rv1108-grf
5862306a36Sopenharmony_ci              - rockchip,rv1108-pmugrf
5962306a36Sopenharmony_ci              - rockchip,rv1126-grf
6062306a36Sopenharmony_ci              - rockchip,rv1126-pmugrf
6162306a36Sopenharmony_ci          - const: syscon
6262306a36Sopenharmony_ci          - const: simple-mfd
6362306a36Sopenharmony_ci
6462306a36Sopenharmony_ci  reg:
6562306a36Sopenharmony_ci    maxItems: 1
6662306a36Sopenharmony_ci
6762306a36Sopenharmony_ci  "#address-cells":
6862306a36Sopenharmony_ci    const: 1
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci  "#size-cells":
7162306a36Sopenharmony_ci    const: 1
7262306a36Sopenharmony_ci
7362306a36Sopenharmony_cirequired:
7462306a36Sopenharmony_ci  - compatible
7562306a36Sopenharmony_ci  - reg
7662306a36Sopenharmony_ci
7762306a36Sopenharmony_ciadditionalProperties:
7862306a36Sopenharmony_ci  type: object
7962306a36Sopenharmony_ci
8062306a36Sopenharmony_ciallOf:
8162306a36Sopenharmony_ci  - if:
8262306a36Sopenharmony_ci      properties:
8362306a36Sopenharmony_ci        compatible:
8462306a36Sopenharmony_ci          contains:
8562306a36Sopenharmony_ci            enum:
8662306a36Sopenharmony_ci              - rockchip,px30-grf
8762306a36Sopenharmony_ci
8862306a36Sopenharmony_ci    then:
8962306a36Sopenharmony_ci      properties:
9062306a36Sopenharmony_ci        lvds:
9162306a36Sopenharmony_ci          type: object
9262306a36Sopenharmony_ci
9362306a36Sopenharmony_ci          $ref: /schemas/display/rockchip/rockchip,lvds.yaml#
9462306a36Sopenharmony_ci
9562306a36Sopenharmony_ci          unevaluatedProperties: false
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci  - if:
9862306a36Sopenharmony_ci      properties:
9962306a36Sopenharmony_ci        compatible:
10062306a36Sopenharmony_ci          contains:
10162306a36Sopenharmony_ci            const: rockchip,rk3288-grf
10262306a36Sopenharmony_ci
10362306a36Sopenharmony_ci    then:
10462306a36Sopenharmony_ci      properties:
10562306a36Sopenharmony_ci        edp-phy:
10662306a36Sopenharmony_ci          type: object
10762306a36Sopenharmony_ci          $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml#
10862306a36Sopenharmony_ci          unevaluatedProperties: false
10962306a36Sopenharmony_ci
11062306a36Sopenharmony_ci  - if:
11162306a36Sopenharmony_ci      properties:
11262306a36Sopenharmony_ci        compatible:
11362306a36Sopenharmony_ci          contains:
11462306a36Sopenharmony_ci            enum:
11562306a36Sopenharmony_ci              - rockchip,rk3066-grf
11662306a36Sopenharmony_ci              - rockchip,rk3188-grf
11762306a36Sopenharmony_ci              - rockchip,rk3288-grf
11862306a36Sopenharmony_ci
11962306a36Sopenharmony_ci    then:
12062306a36Sopenharmony_ci      properties:
12162306a36Sopenharmony_ci        usbphy:
12262306a36Sopenharmony_ci          type: object
12362306a36Sopenharmony_ci
12462306a36Sopenharmony_ci          $ref: /schemas/phy/rockchip-usb-phy.yaml#
12562306a36Sopenharmony_ci
12662306a36Sopenharmony_ci          unevaluatedProperties: false
12762306a36Sopenharmony_ci
12862306a36Sopenharmony_ci  - if:
12962306a36Sopenharmony_ci      properties:
13062306a36Sopenharmony_ci        compatible:
13162306a36Sopenharmony_ci          contains:
13262306a36Sopenharmony_ci            const: rockchip,rk3328-grf
13362306a36Sopenharmony_ci
13462306a36Sopenharmony_ci    then:
13562306a36Sopenharmony_ci      properties:
13662306a36Sopenharmony_ci        gpio:
13762306a36Sopenharmony_ci          type: object
13862306a36Sopenharmony_ci
13962306a36Sopenharmony_ci          $ref: /schemas/gpio/rockchip,rk3328-grf-gpio.yaml#
14062306a36Sopenharmony_ci
14162306a36Sopenharmony_ci          unevaluatedProperties: false
14262306a36Sopenharmony_ci
14362306a36Sopenharmony_ci        power-controller:
14462306a36Sopenharmony_ci          type: object
14562306a36Sopenharmony_ci
14662306a36Sopenharmony_ci          $ref: /schemas/power/rockchip,power-controller.yaml#
14762306a36Sopenharmony_ci
14862306a36Sopenharmony_ci          unevaluatedProperties: false
14962306a36Sopenharmony_ci
15062306a36Sopenharmony_ci  - if:
15162306a36Sopenharmony_ci      properties:
15262306a36Sopenharmony_ci        compatible:
15362306a36Sopenharmony_ci          contains:
15462306a36Sopenharmony_ci            const: rockchip,rk3399-grf
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci    then:
15762306a36Sopenharmony_ci      properties:
15862306a36Sopenharmony_ci        mipi-dphy-rx0:
15962306a36Sopenharmony_ci          type: object
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci          $ref: /schemas/phy/rockchip-mipi-dphy-rx0.yaml#
16262306a36Sopenharmony_ci
16362306a36Sopenharmony_ci          unevaluatedProperties: false
16462306a36Sopenharmony_ci
16562306a36Sopenharmony_ci        pcie-phy:
16662306a36Sopenharmony_ci          description:
16762306a36Sopenharmony_ci            Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt
16862306a36Sopenharmony_ci
16962306a36Sopenharmony_ci      patternProperties:
17062306a36Sopenharmony_ci        "phy@[0-9a-f]+$":
17162306a36Sopenharmony_ci          description:
17262306a36Sopenharmony_ci            Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt
17362306a36Sopenharmony_ci
17462306a36Sopenharmony_ci  - if:
17562306a36Sopenharmony_ci      properties:
17662306a36Sopenharmony_ci        compatible:
17762306a36Sopenharmony_ci          contains:
17862306a36Sopenharmony_ci            enum:
17962306a36Sopenharmony_ci              - rockchip,px30-pmugrf
18062306a36Sopenharmony_ci              - rockchip,rk3036-grf
18162306a36Sopenharmony_ci              - rockchip,rk3308-grf
18262306a36Sopenharmony_ci              - rockchip,rk3368-pmugrf
18362306a36Sopenharmony_ci
18462306a36Sopenharmony_ci    then:
18562306a36Sopenharmony_ci      properties:
18662306a36Sopenharmony_ci        reboot-mode:
18762306a36Sopenharmony_ci          type: object
18862306a36Sopenharmony_ci
18962306a36Sopenharmony_ci          $ref: /schemas/power/reset/syscon-reboot-mode.yaml#
19062306a36Sopenharmony_ci
19162306a36Sopenharmony_ci          unevaluatedProperties: false
19262306a36Sopenharmony_ci
19362306a36Sopenharmony_ci  - if:
19462306a36Sopenharmony_ci      properties:
19562306a36Sopenharmony_ci        compatible:
19662306a36Sopenharmony_ci          contains:
19762306a36Sopenharmony_ci            enum:
19862306a36Sopenharmony_ci              - rockchip,px30-usb2phy-grf
19962306a36Sopenharmony_ci              - rockchip,rk3128-grf
20062306a36Sopenharmony_ci              - rockchip,rk3228-grf
20162306a36Sopenharmony_ci              - rockchip,rk3308-usb2phy-grf
20262306a36Sopenharmony_ci              - rockchip,rk3328-usb2phy-grf
20362306a36Sopenharmony_ci              - rockchip,rk3399-grf
20462306a36Sopenharmony_ci              - rockchip,rk3588-usb2phy-grf
20562306a36Sopenharmony_ci              - rockchip,rv1108-grf
20662306a36Sopenharmony_ci
20762306a36Sopenharmony_ci    then:
20862306a36Sopenharmony_ci      required:
20962306a36Sopenharmony_ci        - "#address-cells"
21062306a36Sopenharmony_ci        - "#size-cells"
21162306a36Sopenharmony_ci
21262306a36Sopenharmony_ci      patternProperties:
21362306a36Sopenharmony_ci        "usb2phy@[0-9a-f]+$":
21462306a36Sopenharmony_ci          type: object
21562306a36Sopenharmony_ci
21662306a36Sopenharmony_ci          $ref: /schemas/phy/rockchip,inno-usb2phy.yaml#
21762306a36Sopenharmony_ci
21862306a36Sopenharmony_ci          unevaluatedProperties: false
21962306a36Sopenharmony_ci
22062306a36Sopenharmony_ci  - if:
22162306a36Sopenharmony_ci      properties:
22262306a36Sopenharmony_ci        compatible:
22362306a36Sopenharmony_ci          contains:
22462306a36Sopenharmony_ci            enum:
22562306a36Sopenharmony_ci              - rockchip,px30-grf
22662306a36Sopenharmony_ci              - rockchip,px30-pmugrf
22762306a36Sopenharmony_ci              - rockchip,rk3188-grf
22862306a36Sopenharmony_ci              - rockchip,rk3228-grf
22962306a36Sopenharmony_ci              - rockchip,rk3288-grf
23062306a36Sopenharmony_ci              - rockchip,rk3328-grf
23162306a36Sopenharmony_ci              - rockchip,rk3368-grf
23262306a36Sopenharmony_ci              - rockchip,rk3368-pmugrf
23362306a36Sopenharmony_ci              - rockchip,rk3399-grf
23462306a36Sopenharmony_ci              - rockchip,rk3399-pmugrf
23562306a36Sopenharmony_ci              - rockchip,rk3568-pmugrf
23662306a36Sopenharmony_ci              - rockchip,rv1108-grf
23762306a36Sopenharmony_ci              - rockchip,rv1108-pmugrf
23862306a36Sopenharmony_ci
23962306a36Sopenharmony_ci    then:
24062306a36Sopenharmony_ci      properties:
24162306a36Sopenharmony_ci        io-domains:
24262306a36Sopenharmony_ci          type: object
24362306a36Sopenharmony_ci
24462306a36Sopenharmony_ci          $ref: /schemas/power/rockchip-io-domain.yaml#
24562306a36Sopenharmony_ci
24662306a36Sopenharmony_ci          unevaluatedProperties: false
24762306a36Sopenharmony_ci
24862306a36Sopenharmony_ciexamples:
24962306a36Sopenharmony_ci  - |
25062306a36Sopenharmony_ci    #include <dt-bindings/clock/rk3399-cru.h>
25162306a36Sopenharmony_ci    #include <dt-bindings/interrupt-controller/arm-gic.h>
25262306a36Sopenharmony_ci    #include <dt-bindings/power/rk3399-power.h>
25362306a36Sopenharmony_ci    grf: syscon@ff770000 {
25462306a36Sopenharmony_ci      compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd";
25562306a36Sopenharmony_ci      reg = <0xff770000 0x10000>;
25662306a36Sopenharmony_ci      #address-cells = <1>;
25762306a36Sopenharmony_ci      #size-cells = <1>;
25862306a36Sopenharmony_ci
25962306a36Sopenharmony_ci      mipi_dphy_rx0: mipi-dphy-rx0 {
26062306a36Sopenharmony_ci        compatible = "rockchip,rk3399-mipi-dphy-rx0";
26162306a36Sopenharmony_ci        clocks = <&cru SCLK_MIPIDPHY_REF>,
26262306a36Sopenharmony_ci                 <&cru SCLK_DPHY_RX0_CFG>,
26362306a36Sopenharmony_ci                 <&cru PCLK_VIO_GRF>;
26462306a36Sopenharmony_ci        clock-names = "dphy-ref", "dphy-cfg", "grf";
26562306a36Sopenharmony_ci        power-domains = <&power RK3399_PD_VIO>;
26662306a36Sopenharmony_ci        #phy-cells = <0>;
26762306a36Sopenharmony_ci      };
26862306a36Sopenharmony_ci
26962306a36Sopenharmony_ci      u2phy0: usb2phy@e450 {
27062306a36Sopenharmony_ci        compatible = "rockchip,rk3399-usb2phy";
27162306a36Sopenharmony_ci        reg = <0xe450 0x10>;
27262306a36Sopenharmony_ci        clocks = <&cru SCLK_USB2PHY0_REF>;
27362306a36Sopenharmony_ci        clock-names = "phyclk";
27462306a36Sopenharmony_ci        #clock-cells = <0>;
27562306a36Sopenharmony_ci        clock-output-names = "clk_usbphy0_480m";
27662306a36Sopenharmony_ci
27762306a36Sopenharmony_ci        u2phy0_host: host-port {
27862306a36Sopenharmony_ci          #phy-cells = <0>;
27962306a36Sopenharmony_ci          interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>;
28062306a36Sopenharmony_ci          interrupt-names = "linestate";
28162306a36Sopenharmony_ci         };
28262306a36Sopenharmony_ci
28362306a36Sopenharmony_ci        u2phy0_otg: otg-port {
28462306a36Sopenharmony_ci          #phy-cells = <0>;
28562306a36Sopenharmony_ci          interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>,
28662306a36Sopenharmony_ci                       <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>,
28762306a36Sopenharmony_ci                       <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>;
28862306a36Sopenharmony_ci          interrupt-names = "otg-bvalid", "otg-id",
28962306a36Sopenharmony_ci                            "linestate";
29062306a36Sopenharmony_ci        };
29162306a36Sopenharmony_ci      };
29262306a36Sopenharmony_ci    };
293