Message ID | 20220427112528.4097815-10-andre.przywara@arm.com (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | None | expand |
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@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@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@arm.com> > + - Andre Przywara <andre.przywara@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@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 > >
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@arm.com> + - Andre Przywara <andre.przywara@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 + 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>; + }; + }; + }; + + }; + +...
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@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