Message ID | 20210511165448.422987-1-clabbe@baylibre.com |
---|---|
State | Changes Requested, archived |
Headers | show |
Series | dt-bindings: display: convert faraday,tve200 to YAML | expand |
Context | Check | Description |
---|---|---|
robh/checkpatch | warning | total: 0 errors, 2 warnings, 92 lines checked |
robh/dt-meta-schema | success | |
robh/dtbs-check | success |
On Tue, May 11, 2021 at 04:54:48PM +0000, Corentin Labbe wrote: > Converts display/faraday,tve200.txt to yaml. > > Signed-off-by: Corentin Labbe <clabbe@baylibre.com> > --- > .../bindings/display/faraday,tve200.txt | 54 ----------- > .../bindings/display/faraday,tve200.yaml | 92 +++++++++++++++++++ > 2 files changed, 92 insertions(+), 54 deletions(-) > delete mode 100644 Documentation/devicetree/bindings/display/faraday,tve200.txt > create mode 100644 Documentation/devicetree/bindings/display/faraday,tve200.yaml > > diff --git a/Documentation/devicetree/bindings/display/faraday,tve200.txt b/Documentation/devicetree/bindings/display/faraday,tve200.txt > deleted file mode 100644 > index 82e3bc0b7485..000000000000 > --- a/Documentation/devicetree/bindings/display/faraday,tve200.txt > +++ /dev/null > @@ -1,54 +0,0 @@ > -* Faraday TV Encoder TVE200 > - > -Required properties: > - > -- compatible: must be one of: > - "faraday,tve200" > - "cortina,gemini-tvc", "faraday,tve200" > - > -- reg: base address and size of the control registers block > - > -- interrupts: contains an interrupt specifier for the interrupt > - line from the TVE200 > - > -- clock-names: should contain "PCLK" for the clock line clocking the > - silicon and "TVE" for the 27MHz clock to the video driver > - > -- clocks: contains phandle and clock specifier pairs for the entries > - in the clock-names property. See > - Documentation/devicetree/bindings/clock/clock-bindings.txt > - > -Optional properties: > - > -- resets: contains the reset line phandle for the block > - > -Required sub-nodes: > - > -- port: describes LCD panel signals, following the common binding > - for video transmitter interfaces; see > - Documentation/devicetree/bindings/media/video-interfaces.txt > - This port should have the properties: > - reg = <0>; > - It should have one endpoint connected to a remote endpoint where > - the display is connected. > - > -Example: > - > -display-controller@6a000000 { > - #address-cells = <1>; > - #size-cells = <0>; > - compatible = "faraday,tve200"; > - reg = <0x6a000000 0x1000>; > - interrupts = <13 IRQ_TYPE_EDGE_RISING>; > - resets = <&syscon GEMINI_RESET_TVC>; > - clocks = <&syscon GEMINI_CLK_GATE_TVC>, > - <&syscon GEMINI_CLK_TVC>; > - clock-names = "PCLK", "TVE"; > - > - port@0 { > - reg = <0>; > - display_out: endpoint { > - remote-endpoint = <&panel_in>; > - }; > - }; > -}; > diff --git a/Documentation/devicetree/bindings/display/faraday,tve200.yaml b/Documentation/devicetree/bindings/display/faraday,tve200.yaml > new file mode 100644 > index 000000000000..3ab51e7e72af > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/faraday,tve200.yaml > @@ -0,0 +1,92 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/faraday,tve200.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Faraday TV Encoder TVE200 > + > +maintainers: > + - Linus Walleij <linus.walleij@linaro.org> > + > +properties: > + compatible: > + oneOf: > + - const: faraday,tve200 > + - items: > + - const: cortina,gemini-tvc > + - const: faraday,tve200 > + > + reg: > + minItems: 1 maxItems: 1 They evaluate the same, but maxItems seems a bit more logical. > + > + interrupts: > + minItems: 1 > + > + clock-names: > + items: > + - const: PCLK > + - const: TVE > + > + clocks: > + minItems: 2 > + > + resets: > + minItems: 1 > + > + "#address-cells": > + const: 1 > + > + "#size-cells": > + const: 0 > + > +patternProperties: > + "^port@[0-9]+$": Should be just 'port' or 'port@0', but really the former is preferred when only 1. Use the graph binding: $ref: /schemas/graph.yaml#/properties/port > + type: object > + description: describes LCD panel signals, following the common binding But this is not an LCD panel... > + for video transmitter interfaces; see > + Documentation/devicetree/bindings/media/video-interfaces.txt Drop this reference. It's now a schema, but this isn't using anything from it. > + It should have one endpoint connected to a remote endpoint where > + the display is connected. > + > + properties: > + reg: > + const: 0 > + > + required: > + - reg > + > +required: > + - compatible > + - reg > + - interrupts > + - clock-names > + - clocks > + - "#address-cells" > + - "#size-cells" > + > +additionalProperties: false > + > +examples: > + - | > + #include <dt-bindings/clock/cortina,gemini-clock.h> > + #include <dt-bindings/interrupt-controller/irq.h> > + #include <dt-bindings/reset/cortina,gemini-reset.h> > + display-controller@6a000000 { > + #address-cells = <1>; > + #size-cells = <0>; > + compatible = "faraday,tve200"; > + reg = <0x6a000000 0x1000>; > + interrupts = <13 IRQ_TYPE_EDGE_RISING>; > + resets = <&syscon GEMINI_RESET_TVC>; > + clocks = <&syscon GEMINI_CLK_GATE_TVC>, > + <&syscon GEMINI_CLK_TVC>; > + clock-names = "PCLK", "TVE"; > + > + port@0 { > + reg = <0>; > + display_out: endpoint { > + remote-endpoint = <&panel_in>; > + }; > + }; > + }; > -- > 2.26.3 >
Le Mon, May 17, 2021 at 07:26:24PM -0500, Rob Herring a écrit : > On Tue, May 11, 2021 at 04:54:48PM +0000, Corentin Labbe wrote: > > Converts display/faraday,tve200.txt to yaml. > > > > Signed-off-by: Corentin Labbe <clabbe@baylibre.com> > > --- > > .../bindings/display/faraday,tve200.txt | 54 ----------- > > .../bindings/display/faraday,tve200.yaml | 92 +++++++++++++++++++ > > 2 files changed, 92 insertions(+), 54 deletions(-) > > delete mode 100644 Documentation/devicetree/bindings/display/faraday,tve200.txt > > create mode 100644 Documentation/devicetree/bindings/display/faraday,tve200.yaml > > > > diff --git a/Documentation/devicetree/bindings/display/faraday,tve200.txt b/Documentation/devicetree/bindings/display/faraday,tve200.txt > > deleted file mode 100644 > > index 82e3bc0b7485..000000000000 > > --- a/Documentation/devicetree/bindings/display/faraday,tve200.txt > > +++ /dev/null > > @@ -1,54 +0,0 @@ > > -* Faraday TV Encoder TVE200 > > - > > -Required properties: > > - > > -- compatible: must be one of: > > - "faraday,tve200" > > - "cortina,gemini-tvc", "faraday,tve200" > > - > > -- reg: base address and size of the control registers block > > - > > -- interrupts: contains an interrupt specifier for the interrupt > > - line from the TVE200 > > - > > -- clock-names: should contain "PCLK" for the clock line clocking the > > - silicon and "TVE" for the 27MHz clock to the video driver > > - > > -- clocks: contains phandle and clock specifier pairs for the entries > > - in the clock-names property. See > > - Documentation/devicetree/bindings/clock/clock-bindings.txt > > - > > -Optional properties: > > - > > -- resets: contains the reset line phandle for the block > > - > > -Required sub-nodes: > > - > > -- port: describes LCD panel signals, following the common binding > > - for video transmitter interfaces; see > > - Documentation/devicetree/bindings/media/video-interfaces.txt > > - This port should have the properties: > > - reg = <0>; > > - It should have one endpoint connected to a remote endpoint where > > - the display is connected. > > - > > -Example: > > - > > -display-controller@6a000000 { > > - #address-cells = <1>; > > - #size-cells = <0>; > > - compatible = "faraday,tve200"; > > - reg = <0x6a000000 0x1000>; > > - interrupts = <13 IRQ_TYPE_EDGE_RISING>; > > - resets = <&syscon GEMINI_RESET_TVC>; > > - clocks = <&syscon GEMINI_CLK_GATE_TVC>, > > - <&syscon GEMINI_CLK_TVC>; > > - clock-names = "PCLK", "TVE"; > > - > > - port@0 { > > - reg = <0>; > > - display_out: endpoint { > > - remote-endpoint = <&panel_in>; > > - }; > > - }; > > -}; > > diff --git a/Documentation/devicetree/bindings/display/faraday,tve200.yaml b/Documentation/devicetree/bindings/display/faraday,tve200.yaml > > new file mode 100644 > > index 000000000000..3ab51e7e72af > > --- /dev/null > > +++ b/Documentation/devicetree/bindings/display/faraday,tve200.yaml > > @@ -0,0 +1,92 @@ > > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > > +%YAML 1.2 > > +--- > > +$id: http://devicetree.org/schemas/display/faraday,tve200.yaml# > > +$schema: http://devicetree.org/meta-schemas/core.yaml# > > + > > +title: Faraday TV Encoder TVE200 > > + > > +maintainers: > > + - Linus Walleij <linus.walleij@linaro.org> > > + > > +properties: > > + compatible: > > + oneOf: > > + - const: faraday,tve200 > > + - items: > > + - const: cortina,gemini-tvc > > + - const: faraday,tve200 > > + > > + reg: > > + minItems: 1 > > maxItems: 1 > > They evaluate the same, but maxItems seems a bit more logical. > > > + > > + interrupts: > > + minItems: 1 > > + > > + clock-names: > > + items: > > + - const: PCLK > > + - const: TVE > > + > > + clocks: > > + minItems: 2 > > + > > + resets: > > + minItems: 1 > > + > > + "#address-cells": > > + const: 1 > > + > > + "#size-cells": > > + const: 0 > > + > > +patternProperties: > > + "^port@[0-9]+$": > > Should be just 'port' or 'port@0', but really the former is preferred > when only 1. > > Use the graph binding: > > $ref: /schemas/graph.yaml#/properties/port > I have a problem: I get the following warning: /usr/src/linux-next/arch/arm/boot/dts/gemini.dtsi:410.31-423.5: Warning (graph_child_address): /soc/display-controller@6a000000: graph node has single child node 'port@0', #address-cells/#size-cells are not necessary also defined at /usr/src/linux-next/arch/arm/boot/dts/gemini-dlink-dir-685.dts:492.31-501.5 But if I remove them! /usr/src/linux-next/arch/arm/boot/dts/gemini-dlink-dir-685.dts:496.5-15: Warning (reg_format): /soc/display-controller@6a000000/port@0:reg: property has invalid length (4 bytes) (#address-cells == 2, #size-cells == 1) arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml: Warning (pci_device_reg): Failed prerequisite 'reg_format' arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml: Warning (pci_device_bus_num): Failed prerequisite 'reg_format' arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml: Warning (simple_bus_reg): Failed prerequisite 'reg_format' arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml: Warning (i2c_bus_reg): Failed prerequisite 'reg_format' arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml: Warning (spi_bus_reg): Failed prerequisite 'reg_format' /usr/src/linux-next/arch/arm/boot/dts/gemini-dlink-dir-685.dts:495.11-500.6: Warning (avoid_default_addr_size): /soc/display-controller@6a000000/port@0: Relying on default #address-cells value /usr/src/linux-next/arch/arm/boot/dts/gemini-dlink-dir-685.dts:495.11-500.6: Warning (avoid_default_addr_size): /soc/display-controller@6a000000/port@0: Relying on default #size-cells value arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml: Warning (avoid_unnecessary_addr_size): Failed prerequisite 'avoid_default_addr_size' arch/arm/boot/dts/gemini-dlink-dir-685.dt.yaml: Warning (unique_unit_address): Failed prerequisite 'avoid_default_addr_size' /usr/src/linux-next/arch/arm/boot/dts/gemini-dlink-dir-685.dts:495.11-500.6: Warning (graph_port): /soc/display-controller@6a000000/port@0: graph node '#address-cells' is -1, must be 1 /usr/src/linux-next/arch/arm/boot/dts/gemini-dlink-dir-685.dts:495.11-500.6: Warning (graph_port): /soc/display-controller@6a000000/port@0: graph node '#size-cells' is -1, must be 0 The only solution is to remove "reg = <0>;" and calling the node "port". Does it is acceptable ?
On Tue, May 18, 2021 at 8:38 PM LABBE Corentin <clabbe@baylibre.com> wrote: > The only solution is to remove "reg = <0>;" and calling the node "port". > Does it is acceptable ? It's what I've done in the past at least so looks like the right thing to me. It is only used in this device tree: arch/arm/boot/dts/gemini-dlink-dir-685.dts if you send me a patch to change port@0 to just port then I'll merge it pronto. (I can apply this patch to the DRM misc tree as well when Rob thing it's fine.) Yours, Linus Walleij
diff --git a/Documentation/devicetree/bindings/display/faraday,tve200.txt b/Documentation/devicetree/bindings/display/faraday,tve200.txt deleted file mode 100644 index 82e3bc0b7485..000000000000 --- a/Documentation/devicetree/bindings/display/faraday,tve200.txt +++ /dev/null @@ -1,54 +0,0 @@ -* Faraday TV Encoder TVE200 - -Required properties: - -- compatible: must be one of: - "faraday,tve200" - "cortina,gemini-tvc", "faraday,tve200" - -- reg: base address and size of the control registers block - -- interrupts: contains an interrupt specifier for the interrupt - line from the TVE200 - -- clock-names: should contain "PCLK" for the clock line clocking the - silicon and "TVE" for the 27MHz clock to the video driver - -- clocks: contains phandle and clock specifier pairs for the entries - in the clock-names property. See - Documentation/devicetree/bindings/clock/clock-bindings.txt - -Optional properties: - -- resets: contains the reset line phandle for the block - -Required sub-nodes: - -- port: describes LCD panel signals, following the common binding - for video transmitter interfaces; see - Documentation/devicetree/bindings/media/video-interfaces.txt - This port should have the properties: - reg = <0>; - It should have one endpoint connected to a remote endpoint where - the display is connected. - -Example: - -display-controller@6a000000 { - #address-cells = <1>; - #size-cells = <0>; - compatible = "faraday,tve200"; - reg = <0x6a000000 0x1000>; - interrupts = <13 IRQ_TYPE_EDGE_RISING>; - resets = <&syscon GEMINI_RESET_TVC>; - clocks = <&syscon GEMINI_CLK_GATE_TVC>, - <&syscon GEMINI_CLK_TVC>; - clock-names = "PCLK", "TVE"; - - port@0 { - reg = <0>; - display_out: endpoint { - remote-endpoint = <&panel_in>; - }; - }; -}; diff --git a/Documentation/devicetree/bindings/display/faraday,tve200.yaml b/Documentation/devicetree/bindings/display/faraday,tve200.yaml new file mode 100644 index 000000000000..3ab51e7e72af --- /dev/null +++ b/Documentation/devicetree/bindings/display/faraday,tve200.yaml @@ -0,0 +1,92 @@ +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) +%YAML 1.2 +--- +$id: http://devicetree.org/schemas/display/faraday,tve200.yaml# +$schema: http://devicetree.org/meta-schemas/core.yaml# + +title: Faraday TV Encoder TVE200 + +maintainers: + - Linus Walleij <linus.walleij@linaro.org> + +properties: + compatible: + oneOf: + - const: faraday,tve200 + - items: + - const: cortina,gemini-tvc + - const: faraday,tve200 + + reg: + minItems: 1 + + interrupts: + minItems: 1 + + clock-names: + items: + - const: PCLK + - const: TVE + + clocks: + minItems: 2 + + resets: + minItems: 1 + + "#address-cells": + const: 1 + + "#size-cells": + const: 0 + +patternProperties: + "^port@[0-9]+$": + type: object + description: describes LCD panel signals, following the common binding + for video transmitter interfaces; see + Documentation/devicetree/bindings/media/video-interfaces.txt + It should have one endpoint connected to a remote endpoint where + the display is connected. + + properties: + reg: + const: 0 + + required: + - reg + +required: + - compatible + - reg + - interrupts + - clock-names + - clocks + - "#address-cells" + - "#size-cells" + +additionalProperties: false + +examples: + - | + #include <dt-bindings/clock/cortina,gemini-clock.h> + #include <dt-bindings/interrupt-controller/irq.h> + #include <dt-bindings/reset/cortina,gemini-reset.h> + display-controller@6a000000 { + #address-cells = <1>; + #size-cells = <0>; + compatible = "faraday,tve200"; + reg = <0x6a000000 0x1000>; + interrupts = <13 IRQ_TYPE_EDGE_RISING>; + resets = <&syscon GEMINI_RESET_TVC>; + clocks = <&syscon GEMINI_CLK_GATE_TVC>, + <&syscon GEMINI_CLK_TVC>; + clock-names = "PCLK", "TVE"; + + port@0 { + reg = <0>; + display_out: endpoint { + remote-endpoint = <&panel_in>; + }; + }; + };
Converts display/faraday,tve200.txt to yaml. Signed-off-by: Corentin Labbe <clabbe@baylibre.com> --- .../bindings/display/faraday,tve200.txt | 54 ----------- .../bindings/display/faraday,tve200.yaml | 92 +++++++++++++++++++ 2 files changed, 92 insertions(+), 54 deletions(-) delete mode 100644 Documentation/devicetree/bindings/display/faraday,tve200.txt create mode 100644 Documentation/devicetree/bindings/display/faraday,tve200.yaml