# SPDX-License-Identifier: GPL-2.0 %YAML 1.2 --- $id: http://devicetree.org/schemas/soc/rockchip/grf.yaml# $schema: http://devicetree.org/meta-schemas/core.yaml# title: Rockchip General Register Files (GRF) maintainers: - Heiko Stuebner <heiko@sntech.de> properties: compatible: oneOf: - items: - enum: - rockchip,rk3288-sgrf - rockchip,rk3566-pipe-grf - rockchip,rk3568-pcie3-phy-grf - rockchip,rk3568-pipe-grf - rockchip,rk3568-pipe-phy-grf - rockchip,rk3568-usb2phy-grf - rockchip,rk3588-bigcore0-grf - rockchip,rk3588-bigcore1-grf - rockchip,rk3588-ioc - rockchip,rk3588-php-grf - rockchip,rk3588-pipe-phy-grf - rockchip,rk3588-sys-grf - rockchip,rk3588-pcie3-phy-grf - rockchip,rk3588-pcie3-pipe-grf - rockchip,rv1108-usbgrf - const: syscon - items: - enum: - rockchip,px30-grf - rockchip,px30-pmugrf - rockchip,px30-usb2phy-grf - rockchip,rk3036-grf - rockchip,rk3066-grf - rockchip,rk3128-grf - rockchip,rk3188-grf - rockchip,rk3228-grf - rockchip,rk3288-grf - rockchip,rk3308-core-grf - rockchip,rk3308-detect-grf - rockchip,rk3308-grf - rockchip,rk3308-usb2phy-grf - rockchip,rk3328-grf - rockchip,rk3328-usb2phy-grf - rockchip,rk3368-grf - rockchip,rk3368-pmugrf - rockchip,rk3399-grf - rockchip,rk3399-pmugrf - rockchip,rk3568-grf - rockchip,rk3568-pmugrf - rockchip,rk3588-usb2phy-grf - rockchip,rv1108-grf - rockchip,rv1108-pmugrf - rockchip,rv1126-grf - rockchip,rv1126-pmugrf - const: syscon - const: simple-mfd reg: maxItems: 1 "#address-cells": const: 1 "#size-cells": const: 1 required: - compatible - reg additionalProperties: type: object allOf: - if: properties: compatible: contains: enum: - rockchip,px30-grf then: properties: lvds: type: object $ref: /schemas/display/rockchip/rockchip,lvds.yaml# unevaluatedProperties: false - if: properties: compatible: contains: const: rockchip,rk3288-grf then: properties: edp-phy: type: object $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml# unevaluatedProperties: false - if: properties: compatible: contains: enum: - rockchip,rk3066-grf - rockchip,rk3188-grf - rockchip,rk3288-grf then: properties: usbphy: type: object $ref: /schemas/phy/rockchip-usb-phy.yaml# unevaluatedProperties: false - if: properties: compatible: contains: const: rockchip,rk3328-grf then: properties: gpio: type: object $ref: /schemas/gpio/rockchip,rk3328-grf-gpio.yaml# unevaluatedProperties: false power-controller: type: object $ref: /schemas/power/rockchip,power-controller.yaml# unevaluatedProperties: false - if: properties: compatible: contains: const: rockchip,rk3399-grf then: properties: mipi-dphy-rx0: type: object $ref: /schemas/phy/rockchip-mipi-dphy-rx0.yaml# unevaluatedProperties: false pcie-phy: description: Documentation/devicetree/bindings/phy/rockchip-pcie-phy.txt patternProperties: "phy@[0-9a-f]+$": description: Documentation/devicetree/bindings/phy/rockchip-emmc-phy.txt - if: properties: compatible: contains: enum: - rockchip,px30-pmugrf - rockchip,rk3036-grf - rockchip,rk3308-grf - rockchip,rk3368-pmugrf then: properties: reboot-mode: type: object $ref: /schemas/power/reset/syscon-reboot-mode.yaml# unevaluatedProperties: false - if: properties: compatible: contains: enum: - rockchip,px30-usb2phy-grf - rockchip,rk3128-grf - rockchip,rk3228-grf - rockchip,rk3308-usb2phy-grf - rockchip,rk3328-usb2phy-grf - rockchip,rk3399-grf - rockchip,rk3588-usb2phy-grf - rockchip,rv1108-grf then: required: - "#address-cells" - "#size-cells" patternProperties: "usb2phy@[0-9a-f]+$": type: object $ref: /schemas/phy/rockchip,inno-usb2phy.yaml# unevaluatedProperties: false - if: properties: compatible: contains: enum: - rockchip,px30-grf - rockchip,px30-pmugrf - rockchip,rk3188-grf - rockchip,rk3228-grf - rockchip,rk3288-grf - rockchip,rk3328-grf - rockchip,rk3368-grf - rockchip,rk3368-pmugrf - rockchip,rk3399-grf - rockchip,rk3399-pmugrf - rockchip,rk3568-pmugrf - rockchip,rv1108-grf - rockchip,rv1108-pmugrf then: properties: io-domains: type: object $ref: /schemas/power/rockchip-io-domain.yaml# unevaluatedProperties: false examples: - | #include <dt-bindings/clock/rk3399-cru.h> #include <dt-bindings/interrupt-controller/arm-gic.h> #include <dt-bindings/power/rk3399-power.h> grf: syscon@ff770000 { compatible = "rockchip,rk3399-grf", "syscon", "simple-mfd"; reg = <0xff770000 0x10000>; #address-cells = <1>; #size-cells = <1>; mipi_dphy_rx0: mipi-dphy-rx0 { compatible = "rockchip,rk3399-mipi-dphy-rx0"; clocks = <&cru SCLK_MIPIDPHY_REF>, <&cru SCLK_DPHY_RX0_CFG>, <&cru PCLK_VIO_GRF>; clock-names = "dphy-ref", "dphy-cfg", "grf"; power-domains = <&power RK3399_PD_VIO>; #phy-cells = <0>; }; u2phy0: usb2phy@e450 { compatible = "rockchip,rk3399-usb2phy"; reg = <0xe450 0x10>; clocks = <&cru SCLK_USB2PHY0_REF>; clock-names = "phyclk"; #clock-cells = <0>; clock-output-names = "clk_usbphy0_480m"; u2phy0_host: host-port { #phy-cells = <0>; interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH 0>; interrupt-names = "linestate"; }; u2phy0_otg: otg-port { #phy-cells = <0>; interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH 0>, <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH 0>, <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH 0>; interrupt-names = "otg-bvalid", "otg-id", "linestate"; }; }; };