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@xxxxxxx> > --- > .../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@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@0 { > - remote-endpoint = <&hdmi_enc_input>; > - }; > - }; > - }; > - > - /* HDMI encoder on I2C bus */ > - i2c@7ffa0000 { > - .... > - hdmi-transmitter@70 { > - compatible = "....."; > - reg = <0x70>; > - port@0 { > - hdmi_enc_input: endpoint { > - remote-endpoint = <&hdlcd_output>; > - }; > - > - hdmi_enc_output: endpoint { > - remote-endpoint = <&hdmi_1_port>; > - }; > - }; > - }; > - > - }; > - > - hdmi1: connector@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@xxxxxxx> > + - Andre Przywara <andre.przywara@xxxxxxx> > + > +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@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@70 { > + compatible = "nxp,tda998x"; > + reg = <0x70>; > + port { > + hdmi_enc_input: endpoint { > + remote-endpoint = <&hdlcd_output>; > + }; > + }; > + }; > + > + }; > + > +... > -- > 2.25.1 > >