From: Chaoyi Chen <chaoyi.chen@rock-chips.com>
Convert cdn-dp-rockchip.txt to yaml.
Tested with:
1. make ARCH=arm64 dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
2. make ARCH=arm64 dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com>
---
.../display/rockchip/cdn-dp-rockchip.txt | 74 ---------
.../display/rockchip/rockchip,cdn-dp.yaml | 148 ++++++++++++++++++
2 files changed, 148 insertions(+), 74 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt
create mode 100644 Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
diff --git a/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt b/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt
deleted file mode 100644
index 8df7d2e393d6..000000000000
--- a/Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt
+++ /dev/null
@@ -1,74 +0,0 @@
-Rockchip RK3399 specific extensions to the cdn Display Port
-================================
-
-Required properties:
-- compatible: must be "rockchip,rk3399-cdn-dp"
-
-- reg: physical base address of the controller and length
-
-- clocks: from common clock binding: handle to dp clock.
-
-- clock-names: from common clock binding:
- Required elements: "core-clk" "pclk" "spdif" "grf"
-
-- resets : a list of phandle + reset specifier pairs
-- reset-names : string of reset names
- Required elements: "apb", "core", "dptx", "spdif"
-- power-domains : power-domain property defined with a phandle
- to respective power domain.
-- assigned-clocks: main clock, should be <&cru SCLK_DP_CORE>
-- assigned-clock-rates : the DP core clk frequency, shall be: 100000000
-
-- rockchip,grf: this soc should set GRF regs, so need get grf here.
-
-- ports: contain a port nodes with endpoint definitions as defined in
- Documentation/devicetree/bindings/media/video-interfaces.txt.
- contained 2 endpoints, connecting to the output of vop.
-
-- phys: from general PHY binding: the phandle for the PHY device.
-
-- extcon: extcon specifier for the Power Delivery
-
-- #sound-dai-cells = it must be 1 if your system is using 2 DAIs: I2S, SPDIF
-
--------------------------------------------------------------------------------
-
-Example:
- cdn_dp: dp@fec00000 {
- compatible = "rockchip,rk3399-cdn-dp";
- reg = <0x0 0xfec00000 0x0 0x100000>;
- interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
- clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>,
- <&cru SCLK_SPDIF_REC_DPTX>, <&cru PCLK_VIO_GRF>;
- clock-names = "core-clk", "pclk", "spdif", "grf";
- assigned-clocks = <&cru SCLK_DP_CORE>;
- assigned-clock-rates = <100000000>;
- power-domains = <&power RK3399_PD_HDCP>;
- phys = <&tcphy0_dp>, <&tcphy1_dp>;
- resets = <&cru SRST_DPTX_SPDIF_REC>;
- reset-names = "spdif";
- extcon = <&fusb0>, <&fusb1>;
- rockchip,grf = <&grf>;
- #address-cells = <1>;
- #size-cells = <0>;
- #sound-dai-cells = <1>;
-
- ports {
- #address-cells = <1>;
- #size-cells = <0>;
-
- dp_in: port {
- #address-cells = <1>;
- #size-cells = <0>;
- dp_in_vopb: endpoint@0 {
- reg = <0>;
- remote-endpoint = <&vopb_out_dp>;
- };
-
- dp_in_vopl: endpoint@1 {
- reg = <1>;
- remote-endpoint = <&vopl_out_dp>;
- };
- };
- };
- };
diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
new file mode 100644
index 000000000000..ed68b48a6743
--- /dev/null
+++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
@@ -0,0 +1,148 @@
+# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/display/rockchip/rockchip,cdn-dp.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Rockchip RK3399 specific extensions to the CDN Display Port
+
+maintainers:
+ - Andy Yan <andy.yan@rock-chip.com>
+ - Heiko Stuebner <heiko@sntech.de>
+ - Sandy Huang <hjc@rock-chips.com>
+
+properties:
+ compatible:
+ items:
+ - const: rockchip,rk3399-cdn-dp
+
+ reg:
+ description:
+ CDN DP core register
+
+ assigned-clock-rates: true
+ assigned-clocks: true
+
+ clocks:
+ minItems: 4
+
+ clock-names:
+ items:
+ - const: core-clk
+ - const: pclk
+ - const: spdif
+ - const: grf
+
+ extcon:
+ description:
+ Phandle to the extcon device providing the cable state for the DP phy.
+
+ interrupts:
+ maxItems: 1
+
+ phys:
+ minItems: 1
+ maxItems: 2
+
+ ports:
+ $ref: /schemas/graph.yaml#/properties/ports
+
+ properties:
+ port@0:
+ $ref: /schemas/graph.yaml#/properties/port
+ description: Input of the CDN DP
+ properties:
+ endpoint@0:
+ description: Connection to the VOPB
+ endpoint@1:
+ description: Connection to the VOPL
+ port@1:
+ $ref: /schemas/graph.yaml#/properties/port
+ description: Output of the CDN DP
+
+ required:
+ - port@0
+ - port@1
+
+ power-domains:
+ maxItems: 1
+
+ resets:
+ minItems: 4
+
+ reset-names:
+ items:
+ - const: spdif
+ - const: dptx
+ - const: apb
+ - const: core
+
+ rockchip,grf:
+ $ref: /schemas/types.yaml#/definitions/phandle
+ description:
+ This SoC makes use of GRF regs.
+
+ "#sound-dai-cells":
+ const: 1
+
+required:
+ - compatible
+ - reg
+ - clocks
+ - clock-names
+ - interrupts
+ - phys
+ - ports
+ - resets
+ - reset-names
+ - rockchip,grf
+
+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>
+ cdn_dp: dp@fec00000 {
+ compatible = "rockchip,rk3399-cdn-dp";
+ reg = <0x0 0xfec00000 0x0 0x100000>;
+ assigned-clocks = <&cru SCLK_DP_CORE>;
+ assigned-clock-rates = <100000000>;
+ interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
+ clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>, <&cru SCLK_SPDIF_REC_DPTX>,
+ <&cru PCLK_VIO_GRF>;
+ clock-names = "core-clk", "pclk", "spdif", "grf";
+ power-domains = <&power RK3399_PD_HDCP>;
+ phys = <&tcphy0_dp>, <&tcphy1_dp>;
+ resets = <&cru SRST_DPTX_SPDIF_REC>, <&cru SRST_P_UPHY0_DPTX>,
+ <&cru SRST_P_UPHY0_APB>, <&cru SRST_DP_CORE>;
+ reset-names = "spdif", "dptx", "apb", "core";
+ rockchip,grf = <&grf>;
+ #sound-dai-cells = <1>;
+
+ ports {
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dp_in: port@0 {
+ reg = <0>;
+ #address-cells = <1>;
+ #size-cells = <0>;
+
+ dp_in_vopb: endpoint@0 {
+ reg = <0>;
+ remote-endpoint = <&vopb_out_dp>;
+ };
+
+ dp_in_vopl: endpoint@1 {
+ reg = <1>;
+ remote-endpoint = <&vopl_out_dp>;
+ };
+ };
+
+ dp_out: port@1 {
+ reg = <1>;
+ };
+ };
+ };
--
2.49.0
On 08/05/2025 08:43, Chaoyi Chen wrote:
> From: Chaoyi Chen <chaoyi.chen@rock-chips.com>
>
> Convert cdn-dp-rockchip.txt to yaml.
>
> Tested with:
>
> 1. make ARCH=arm64 dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
>
> 2. make ARCH=arm64 dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
Drop. You do not have to embed in commit msg standard makefile targets.
We all know how to use it. You do not do it for C files, do you?
>
> Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com>
> ---
...
> - };
> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
> new file mode 100644
> index 000000000000..ed68b48a6743
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
Filename matching compatible.
> @@ -0,0 +1,148 @@
> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/rockchip/rockchip,cdn-dp.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Rockchip RK3399 specific extensions to the CDN Display Port
> +
> +maintainers:
> + - Andy Yan <andy.yan@rock-chip.com>
> + - Heiko Stuebner <heiko@sntech.de>
> + - Sandy Huang <hjc@rock-chips.com>
> +
> +properties:
> + compatible:
> + items:
> + - const: rockchip,rk3399-cdn-dp
> +
> + reg:
> + description:
> + CDN DP core register
Missing constraints. Drop description.
Just look at other bindings.
> +
> + assigned-clock-rates: true
> + assigned-clocks: true
Drop these two
> +
> + clocks:
> + minItems: 4
No, look at other bindings.
> +
> + clock-names:
> + items:
> + - const: core-clk
> + - const: pclk
> + - const: spdif
> + - const: grf
> +
> + extcon:
> + description:
> + Phandle to the extcon device providing the cable state for the DP phy.
Missing type, unless you could not add a type because of conflicts? This
should be really fixed...
> +
> + interrupts:
> + maxItems: 1
and here is maxItems. Why in other places you put minItems?
> +
> + phys:
> + minItems: 1
> + maxItems: 2
Why is this flexible? It wasn't in original binding and you must
document all the changes done to the binding in commit msg.
> +
> + ports:
> + $ref: /schemas/graph.yaml#/properties/ports
> +
> + properties:
> + port@0:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: Input of the CDN DP
> + properties:
> + endpoint@0:
> + description: Connection to the VOPB
> + endpoint@1:
> + description: Connection to the VOPL
> + port@1:
> + $ref: /schemas/graph.yaml#/properties/port
> + description: Output of the CDN DP
> +
> + required:
> + - port@0
> + - port@1
> +
> + power-domains:
> + maxItems: 1
> +
> + resets:
> + minItems: 4
No, look at other bindings.
> +
> + reset-names:
> + items:
> + - const: spdif
> + - const: dptx
> + - const: apb
> + - const: core
> +
> + rockchip,grf:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + This SoC makes use of GRF regs.
For what? You did not say anything useful above, so instead explain the
purpose.
> +
> + "#sound-dai-cells":
> + const: 1
Missing dai-common ref, unless this is not a DAI?
> +
> +required:
> + - compatible
> + - reg
> + - clocks
> + - clock-names
> + - interrupts
> + - phys
> + - ports
> + - resets
> + - reset-names
> + - rockchip,grf
> +
> +unevaluatedProperties: false
Where is any $ref? additionalProperties instead or add proper ref
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/rk3399-cru.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/power/rk3399-power.h>
> + cdn_dp: dp@fec00000 {
Drop unused label
> + compatible = "rockchip,rk3399-cdn-dp";
> + reg = <0x0 0xfec00000 0x0 0x100000>;
> + assigned-clocks = <&cru SCLK_DP_CORE>;
> + assigned-clock-rates = <100000000>;
> + interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
> + clocks = <&cru SCLK_DP_CORE>, <&cru PCLK_DP_CTRL>, <&cru SCLK_SPDIF_REC_DPTX>,
> + <&cru PCLK_VIO_GRF>;
Best regards,
Krzysztof
Hi Krzysztof,
On 2025/5/8 15:16, Krzysztof Kozlowski wrote:
> On 08/05/2025 08:43, Chaoyi Chen wrote:
>> From: Chaoyi Chen <chaoyi.chen@rock-chips.com>
>>
>> Convert cdn-dp-rockchip.txt to yaml.
>>
>> Tested with:
>>
>> 1. make ARCH=arm64 dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
>>
>> 2. make ARCH=arm64 dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
> Drop. You do not have to embed in commit msg standard makefile targets.
> We all know how to use it. You do not do it for C files, do you?
Will drop it on v2.
>
>> Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com>
>> ---
> ...
>
>> - };
>> diff --git a/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml b/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
>> new file mode 100644
>> index 000000000000..ed68b48a6743
>> --- /dev/null
>> +++ b/Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml
> Filename matching compatible.
Will change it in v2.
>
>> @@ -0,0 +1,148 @@
>> +# SPDX-License-Identifier: GPL-2.0-only OR BSD-2-Clause
>> +%YAML 1.2
>> +---
>> +$id: http://devicetree.org/schemas/display/rockchip/rockchip,cdn-dp.yaml#
>> +$schema: http://devicetree.org/meta-schemas/core.yaml#
>> +
>> +title: Rockchip RK3399 specific extensions to the CDN Display Port
>> +
>> +maintainers:
>> + - Andy Yan <andy.yan@rock-chip.com>
>> + - Heiko Stuebner <heiko@sntech.de>
>> + - Sandy Huang <hjc@rock-chips.com>
>> +
>> +properties:
>> + compatible:
>> + items:
>> + - const: rockchip,rk3399-cdn-dp
>> +
>> + reg:
>> + description:
>> + CDN DP core register
> Missing constraints. Drop description.
>
> Just look at other bindings.
Will fix in v2.
>
>> +
>> + assigned-clock-rates: true
>> + assigned-clocks: true
> Drop these two
>
>> +
>> + clocks:
>> + minItems: 4
> No, look at other bindings.
Will fix in v2.
>
>> +
>> + clock-names:
>> + items:
>> + - const: core-clk
>> + - const: pclk
>> + - const: spdif
>> + - const: grf
>> +
>> + extcon:
>> + description:
>> + Phandle to the extcon device providing the cable state for the DP phy.
> Missing type, unless you could not add a type because of conflicts? This
> should be really fixed...
Will add refs in v2.
>
>
>> +
>> + interrupts:
>> + maxItems: 1
> and here is maxItems. Why in other places you put minItems?
Sorry for that, I misunderstood the meaning of those filed. Will fix in v2.
>
>> +
>> + phys:
>> + minItems: 1
>> + maxItems: 2
> Why is this flexible? It wasn't in original binding and you must
> document all the changes done to the binding in commit msg.
I think the original binding had this. I will fix this in v2 and add
more description.
>
>> +
>> + ports:
>> + $ref: /schemas/graph.yaml#/properties/ports
>> +
>> + properties:
>> + port@0:
>> + $ref: /schemas/graph.yaml#/properties/port
>> + description: Input of the CDN DP
>> + properties:
>> + endpoint@0:
>> + description: Connection to the VOPB
>> + endpoint@1:
>> + description: Connection to the VOPL
>> + port@1:
>> + $ref: /schemas/graph.yaml#/properties/port
>> + description: Output of the CDN DP
>> +
>> + required:
>> + - port@0
>> + - port@1
>> +
>> + power-domains:
>> + maxItems: 1
>> +
>> + resets:
>> + minItems: 4
> No, look at other bindings.
Will fix in v2.
>
>> +
>> + reset-names:
>> + items:
>> + - const: spdif
>> + - const: dptx
>> + - const: apb
>> + - const: core
>> +
>> + rockchip,grf:
>> + $ref: /schemas/types.yaml#/definitions/phandle
>> + description:
>> + This SoC makes use of GRF regs.
> For what? You did not say anything useful above, so instead explain the
> purpose.
Will add more description in v2.
>
>> +
>> + "#sound-dai-cells":
>> + const: 1
> Missing dai-common ref, unless this is not a DAI?
Will add dai-common.yaml ref in v2.
>
>> +
>> +required:
>> + - compatible
>> + - reg
>> + - clocks
>> + - clock-names
>> + - interrupts
>> + - phys
>> + - ports
>> + - resets
>> + - reset-names
>> + - rockchip,grf
>> +
>> +unevaluatedProperties: false
> Where is any $ref? additionalProperties instead or add proper ref
Will fix in v2.
>
>
>> +
>> +examples:
>> + - |
>> + #include <dt-bindings/clock/rk3399-cru.h>
>> + #include <dt-bindings/interrupt-controller/arm-gic.h>
>> + #include <dt-bindings/power/rk3399-power.h>
>> + cdn_dp: dp@fec00000 {
> Drop unused label
Will drop it in v2.
Thanks for you fast reply!
On Thu, 08 May 2025 14:43:04 +0800, Chaoyi Chen wrote: > From: Chaoyi Chen <chaoyi.chen@rock-chips.com> > > Convert cdn-dp-rockchip.txt to yaml. > > Tested with: > > 1. make ARCH=arm64 dt_binding_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml > > 2. make ARCH=arm64 dtbs_check DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml > > Signed-off-by: Chaoyi Chen <chaoyi.chen@rock-chips.com> > --- > .../display/rockchip/cdn-dp-rockchip.txt | 74 --------- > .../display/rockchip/rockchip,cdn-dp.yaml | 148 ++++++++++++++++++ > 2 files changed, 148 insertions(+), 74 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/display/rockchip/cdn-dp-rockchip.txt > create mode 100644 Documentation/devicetree/bindings/display/rockchip/rockchip,cdn-dp.yaml > My bot found errors running 'make dt_binding_check' on your patch: yamllint warnings/errors: dtschema/dtc warnings/errors: doc reference errors (make refcheckdocs): See https://patchwork.ozlabs.org/project/devicetree-bindings/patch/20250508064304.670-3-kernel@airkyi.com The base for the series is generally the latest rc1. A different dependency should be noted in *this* patch. If you already ran 'make dt_binding_check' and didn't see the above error(s), then make sure 'yamllint' is installed and dt-schema is up to date: pip3 install dtschema --upgrade Please check and re-submit after running the above command yourself. Note that DT_SCHEMA_FILES can be set to your schema file to speed up checking your schema. However, it must be unset to test all examples with your schema.
© 2016 - 2025 Red Hat, Inc.