[PATCH v4 2/6] dt-bindings: phy: Add rockchip,rk3568-edp-phy
Krzysztof Kozlowski
krzk at kernel.org
Tue Nov 3 03:20:34 PST 2026
On Fri, Oct 30, 2026 at 02:49:01PM +0800, Damon Ding wrote:
> Document the eDP transmitter PHY with NaNeng IP block found on the
> RK3568 SoC. The PHY has its own register window inside the eDP PHY
> GRF, so its node is modeled as a child of the eDP PHY GRF syscon with
> a reg property describing that window. Also add the
> "rockchip,rk3568-edp-phy-grf" compatible and the phy node reference to
> the Rockchip GRF schema.
>
> Signed-off-by: Damon Ding <damon.ding at rock-chips.com>
>
> ---
>
> Changes in v4:
> - Add the reg entry for the PHY node and the ranges/#address-cells/
> #size-cells for the parent syscon node.
> ---
> .../bindings/phy/rockchip,rk3568-edp-phy.yaml | 68 +++++++++++++++++++
> .../devicetree/bindings/soc/rockchip/grf.yaml | 20 ++++++
> 2 files changed, 88 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/phy/rockchip,rk3568-edp-phy.yaml
>
> diff --git a/Documentation/devicetree/bindings/phy/rockchip,rk3568-edp-phy.yaml b/Documentation/devicetree/bindings/phy/rockchip,rk3568-edp-phy.yaml
> new file mode 100644
> index 000000000000..b78da00ffefd
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/phy/rockchip,rk3568-edp-phy.yaml
> @@ -0,0 +1,68 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/phy/rockchip,rk3568-edp-phy.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Rockchip eDP Transmitter PHY with NaNeng IP block
> +
> +maintainers:
> + - Damon Ding <damon.ding at rock-chips.com>
> + - Heiko Stuebner <heiko at sntech.de>
> +
> +description:
> + On the RK3568 SoC the eDP PHY is controlled through the eDP PHY GRF
> + registers, therefore the PHY node is expected to be a child of the
> + eDP PHY GRF syscon node.
> +
> +properties:
> + compatible:
> + const: rockchip,rk3568-edp-phy
> +
> + reg:
> + maxItems: 1
> + description: PHY registers within the eDP PHY GRF.
> +
> + clocks:
> + maxItems: 1
> +
> + clock-names:
> + const: refclk
Just "ref"
> +
> + "#phy-cells":
> + const: 0
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - clock-names
> + - "#phy-cells"
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/rk3568-cru.h>
> +
> + soc {
> + #address-cells = <2>;
> + #size-cells = <2>;
> +
> + edp_phy_grf: syscon at fdcb0000 {
> + compatible = "rockchip,rk3568-edp-phy-grf", "syscon", "simple-mfd";
This is beyond the scope of this binding. Drop entire node.
> + reg = <0x0 0xfdcb0000 0x0 0x8000>;
> + clocks = <&cru PCLK_EDPPHY_GRF>;
> + ranges = <0x0 0x0 0xfdcb0000 0x100>;
> + #address-cells = <1>;
> + #size-cells = <1>;
> +
> + edp_phy: phy at 0 {
> + compatible = "rockchip,rk3568-edp-phy";
> + reg = <0x0 0x100>;
> + clocks = <&pmucru XIN_OSC0_EDPPHY_G>;
> + clock-names = "refclk";
> + #phy-cells = <0>;
> + };
> + };
> + };
> diff --git a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> index 7bcb4e2f47ec..c089bd014003 100644
> --- a/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> +++ b/Documentation/devicetree/bindings/soc/rockchip/grf.yaml
> @@ -93,6 +93,7 @@ properties:
> - rockchip,rk3399-grf
> - rockchip,rk3399-pmugrf
> - rockchip,rk3562-pmu-grf
> + - rockchip,rk3568-edp-phy-grf
> - rockchip,rk3568-grf
> - rockchip,rk3568-pmugrf
> - rockchip,rk3576-ioc-grf
> @@ -119,6 +120,8 @@ properties:
> "#size-cells":
> const: 1
>
> + ranges: true
> +
> required:
> - compatible
> - reg
> @@ -156,6 +159,22 @@ allOf:
> $ref: /schemas/phy/rockchip,rk3288-dp-phy.yaml#
> unevaluatedProperties: false
>
> + - if:
> + properties:
> + compatible:
> + contains:
> + const: rockchip,rk3568-edp-phy-grf
> +
> + then:
> + required:
> + - "#address-cells"
> + - "#size-cells"
> + patternProperties:
> + "^phy@[0-9a-f]+$":
> + type: object
> + $ref: /schemas/phy/rockchip,rk3568-edp-phy.yaml#
> + unevaluatedProperties: false
Properties should be defined in top level. Here you only narrow them.
This binding is getting close to unreadable/unmaintainable. Split new
devices with children to their own binding.
Best regards,
Krzysztof
More information about the linux-phy
mailing list