[PATCH 09/11] dt-bindings: display: convert Arm HDLCD to DT schema

Rob Herring robh at kernel.org
Wed Apr 27 12:39:02 PDT 2022


On Wed, Apr 27, 2022 at 12:25:26PM +0100, Andre Przywara wrote:
> The Arm HDLCD is a display controller that scans out a framebuffer and
> hands a signal to a digital encoder to generate a DVI or HDMI signal.
> 
> Convert the existing DT binding to DT schema.
> 
> Signed-off-by: Andre Przywara <andre.przywara at arm.com>
> ---
>  .../devicetree/bindings/display/arm,hdlcd.txt | 79 ----------------
>  .../bindings/display/arm,hdlcd.yaml           | 91 +++++++++++++++++++
>  2 files changed, 91 insertions(+), 79 deletions(-)
>  delete mode 100644 Documentation/devicetree/bindings/display/arm,hdlcd.txt
>  create mode 100644 Documentation/devicetree/bindings/display/arm,hdlcd.yaml
> 
> diff --git a/Documentation/devicetree/bindings/display/arm,hdlcd.txt b/Documentation/devicetree/bindings/display/arm,hdlcd.txt
> deleted file mode 100644
> index 78bc24296f3e4..0000000000000
> --- a/Documentation/devicetree/bindings/display/arm,hdlcd.txt
> +++ /dev/null
> @@ -1,79 +0,0 @@
> -ARM HDLCD
> -
> -This is a display controller found on several development platforms produced
> -by ARM Ltd and in more modern of its' Fast Models. The HDLCD is an RGB
> -streamer that reads the data from a framebuffer and sends it to a single
> -digital encoder (DVI or HDMI).
> -
> -Required properties:
> -  - compatible: "arm,hdlcd"
> -  - reg: Physical base address and length of the controller's registers.
> -  - interrupts: One interrupt used by the display controller to notify the
> -    interrupt controller when any of the interrupt sources programmed in
> -    the interrupt mask register have activated.
> -  - clocks: A list of phandle + clock-specifier pairs, one for each
> -    entry in 'clock-names'.
> -  - clock-names: A list of clock names. For HDLCD it should contain:
> -      - "pxlclk" for the clock feeding the output PLL of the controller.
> -
> -Required sub-nodes:
> -  - port: The HDLCD connection to an encoder chip. The connection is modeled
> -    using the OF graph bindings specified in
> -    Documentation/devicetree/bindings/graph.txt.
> -
> -Optional properties:
> -  - memory-region: phandle to a node describing memory (see
> -    Documentation/devicetree/bindings/reserved-memory/reserved-memory.txt) to be
> -    used for the framebuffer; if not present, the framebuffer may be located
> -    anywhere in memory.
> -
> -
> -Example:
> -
> -/ {
> -	...
> -
> -	hdlcd at 2b000000 {
> -		compatible = "arm,hdlcd";
> -		reg = <0 0x2b000000 0 0x1000>;
> -		interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
> -		clocks = <&oscclk5>;
> -		clock-names = "pxlclk";
> -		port {
> -			hdlcd_output: endpoint at 0 {
> -				remote-endpoint = <&hdmi_enc_input>;
> -			};
> -		};
> -	};
> -
> -	/* HDMI encoder on I2C bus */
> -	i2c at 7ffa0000 {
> -		....
> -		hdmi-transmitter at 70 {
> -			compatible = ".....";
> -			reg = <0x70>;
> -			port at 0 {
> -				hdmi_enc_input: endpoint {
> -					remote-endpoint = <&hdlcd_output>;
> -				};
> -
> -				hdmi_enc_output: endpoint {
> -					remote-endpoint = <&hdmi_1_port>;
> -				};
> -			};
> -		};
> -
> -	};
> -
> -	hdmi1: connector at 1 {
> -		compatible = "hdmi-connector";
> -		type = "a";
> -		port {
> -			hdmi_1_port: endpoint {
> -				remote-endpoint = <&hdmi_enc_output>;
> -			};
> -		};
> -	};
> -
> -	...
> -};
> diff --git a/Documentation/devicetree/bindings/display/arm,hdlcd.yaml b/Documentation/devicetree/bindings/display/arm,hdlcd.yaml
> new file mode 100644
> index 0000000000000..1fe8e07334152
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/display/arm,hdlcd.yaml
> @@ -0,0 +1,91 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/display/arm,hdlcd.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: Arm HDLCD display controller binding
> +
> +maintainers:
> +  - Liviu Dudau <Liviu.Dudau at arm.com>
> +  - Andre Przywara <andre.przywara at arm.com>
> +
> +description: |+
> +  The Arm HDLCD is a display controller found on several development platforms
> +  produced by ARM Ltd and in more modern of its Fast Models. The HDLCD is an
> +  RGB streamer that reads the data from a framebuffer and sends it to a single
> +  digital encoder (DVI or HDMI).
> +
> +properties:
> +  compatible:
> +    const: arm,hdlcd
> +
> +  reg:
> +    maxItems: 1
> +
> +  interrupts:
> +    maxItems: 1
> +
> +  clock-names:
> +    const: pxlclk
> +
> +  clocks:
> +    maxItems: 1
> +    description: The input reference for the pixel clock.
> +
> +  memory-region:
> +    maxItems: 1
> +    description:
> +      Phandle to a node describing memory to be used for the framebuffer.
> +      If not present, the framebuffer may be located anywhere in memory.
> +
> +  iommus:
> +    maxItems: 1
> +
> +  port:
> +    $ref: /schemas/graph.yaml#/$defs/port-base

If no custom properties in port or endpoint:

$ref: /schemas/graph.yaml#/properties/port

> +    unevaluatedProperties: false
> +    description:
> +      Output endpoint of the controller, connecting the LCD panel signals.
> +
> +additionalProperties: false
> +
> +required:
> +  - compatible
> +  - reg
> +  - interrupts
> +  - clocks
> +  - port
> +
> +examples:
> +  - |
> +    hdlcd at 2b000000 {
> +            compatible = "arm,hdlcd";
> +            reg = <0x2b000000 0x1000>;
> +            interrupts = <0 85 4>;
> +            clocks = <&oscclk5>;
> +            clock-names = "pxlclk";
> +            port {
> +                    hdlcd_output: endpoint {
> +                            remote-endpoint = <&hdmi_enc_input>;
> +                    };
> +            };
> +    };
> +
> +    /* HDMI encoder on I2C bus */
> +    i2c {
> +            #address-cells = <1>;
> +            #size-cells = <0>;
> +            hdmi-transmitter at 70 {
> +                    compatible = "nxp,tda998x";
> +                    reg = <0x70>;
> +                    port {
> +                            hdmi_enc_input: endpoint {
> +                                    remote-endpoint = <&hdlcd_output>;
> +                            };
> +                    };
> +            };
> +
> +    };
> +
> +...
> -- 
> 2.25.1
> 
> 



More information about the linux-arm-kernel mailing list