Re: [PATCH 2/4] dt-bindings: media: Document bindings for HDMI RX Controller

From: Krzysztof Kozlowski
Date: Fri Feb 16 2024 - 05:02:09 EST


On 16/02/2024 10:49, Shreeya Patel wrote:
> Document bindings for the Synopsys DesignWare HDMI RX Controller.
>
> Reviewed-by: Dmitry Osipenko <dmitry.osipenko@xxxxxxxxxxxxx>
> Signed-off-by: Shreeya Patel <shreeya.patel@xxxxxxxxxxxxx>

A nit, subject: drop second/last, redundant "bindings for". The
"dt-bindings" prefix is already stating that these are bindings.
See also:
https://elixir.bootlin.com/linux/v6.7-rc8/source/Documentation/devicetree/bindings/submitting-patches.rst#L18

> ---
> .../bindings/media/snps,dw-hdmi-rx.yaml | 128 ++++++++++++++++++
> 1 file changed, 128 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/media/snps,dw-hdmi-rx.yaml
>
> diff --git a/Documentation/devicetree/bindings/media/snps,dw-hdmi-rx.yaml b/Documentation/devicetree/bindings/media/snps,dw-hdmi-rx.yaml
> new file mode 100644
> index 000000000000..a70d96b548ee
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/media/snps,dw-hdmi-rx.yaml
> @@ -0,0 +1,128 @@
> +# SPDX-License-Identifier: (GPL-3.0 OR BSD-2-Clause)

Use license checkpatch tells you.

> +# Device Tree bindings for Synopsys DesignWare HDMI RX Controller
> +
> +---
> +$id: http://devicetree.org/schemas/media/snps,dw-hdmi-rx.yaml#

Why this is a media, not display? Does RX means input? Lack of hardware
description does not help?


> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Synopsys DesignWare HDMI RX Controller
> +
> +maintainers:
> + - Shreeya Patel <shreeya.patel@xxxxxxxxxxxxx>
> +

description:

> +properties:
> + compatible:
> + items:
> + - const: rockchip,rk3588-hdmirx-ctrler
> + - const: snps,dw-hdmi-rx
> +
> + reg:
> + maxItems: 1
> +
> + interrupts:
> + maxItems: 3
> +
> + interrupt-names:
> + items:
> + - const: cec
> + - const: hdmi
> + - const: dma
> +
> + clocks:
> + maxItems: 7
> +
> + clock-names:
> + items:
> + - const: aclk
> + - const: audio
> + - const: cr_para
> + - const: pclk
> + - const: ref
> + - const: hclk_s_hdmirx
> + - const: hclk_vo1
> +
> + power-domains:
> + maxItems: 1
> +
> + resets:
> + maxItems: 4
> +
> + reset-names:
> + items:
> + - const: rst_a
> + - const: rst_p
> + - const: rst_ref
> + - const: rst_biu

Drop rest_ prefix

> +
> + pinctrl-names:
> + const: default

Drop

> +
> + memory-region:
> + maxItems: 1
> +
> + hdmirx-5v-detection-gpios:
> + description: GPIO specifier for 5V detection.

Detection of what? Isn't this HPD?

> + maxItems: 1
> +
> + rockchip,grf:
> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + The phandle of the syscon node for the GRF register.

Instead describe what for. Basically 80% of your description is
redundant and only "GRF register" brings some information.


> +
> + rockchip,vo1_grf:

No underscores.

> + $ref: /schemas/types.yaml#/definitions/phandle
> + description:
> + The phandle of the syscon node for the VO1 GRF register.

Same problem.

> +
> +required:
> + - compatible
> + - reg
> + - interrupts
> + - interrupt-names
> + - clocks
> + - clock-names
> + - power-domains
> + - resets
> + - pinctrl-0
> + - pinctrl-names

Why? Drop.

> + - hdmirx-5v-detection-gpios
> +
> +additionalProperties: false
> +
> +examples:
> + - |
> + #include <dt-bindings/clock/rockchip,rk3588-cru.h>
> + #include <dt-bindings/interrupt-controller/arm-gic.h>
> + #include <dt-bindings/interrupt-controller/irq.h>
> + #include <dt-bindings/power/rk3588-power.h>
> + #include <dt-bindings/reset/rockchip,rk3588-cru.h>
> + hdmirx_ctrler: hdmirx-controller@fdee0000 {

What is hdmirx-controller? Isn't this just hdmi@?

Node names should be generic. See also an explanation and list of
examples (not exhaustive) in DT specification:
https://devicetree-specification.readthedocs.io/en/latest/chapter2-devicetree-basics.html#generic-names-recommendation


> + compatible = "rockchip,rk3588-hdmirx-ctrler", "snps,dw-hdmi-rx";
> + reg = <0x0 0xfdee0000 0x0 0x6000>;
> + interrupts = <GIC_SPI 177 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 436 IRQ_TYPE_LEVEL_HIGH 0>,
> + <GIC_SPI 179 IRQ_TYPE_LEVEL_HIGH 0>;



Best regards,
Krzysztof