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@xxxxxxxxxxxx> > > --- > > .../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@xxxxxxxxxx> > > + > > +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 ?