sam, This is my latest yaml file https://github.com/vinaysimhabn/kernel-msm/blob/5.6.0-rc3-d2l-wip/Documentation/devicetree/bindings/display/bridge/toshiba%2Ctc358775.yaml make CROSS_COMPILE=$TC64 ARCH=arm64 DT_SCHEMA_FILES=Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.yaml dt_binding_check i am getting these errors Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.example.dt.yaml: lvds-out: 'data-mapping', 'height-mm', 'panel-timing', 'width-mm' do not match any of the regexes: 'pinctrl-[0-9]+' Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.example.dt.yaml: lvds-out: compatible: Additional items are not allowed ('panel-lvds' was unexpected) Documentation/devicetree/bindings/display/bridge/toshiba,tc358775.example.dt.yaml: lvds-out: compatible: ['auo,b101xtn01', 'panel-lvds'] is too long Please suggest how to add the references of panel/lvds.yaml or panel/panel-common.yaml and panel/advantech,idk-2121wr.yaml in my yaml file. On Tue, Mar 17, 2020 at 7:57 PM Sam Ravnborg <sam@xxxxxxxxxxxx> wrote: > > Hi Vinay. > > On Tue, Mar 17, 2020 at 12:25:42PM +0530, Vinay Simha B N wrote: > > sam, > > > > i need some inputs on the below error. I had created this file > > Documentation/devicetree/bindings/display/bridge/toshiba-tc358775.yaml > > by using vim editor. Do we have any tool to create yaml file? > > I use vim myself, but is careful to follow the right syntax. > > > > > i do not get the error when running 'make dt_binding_check' in my > > build environment > > Documentation/devicetree/bindings/display/bridge/toshiba-tc358775.yaml > > > > is there any tool available similar to scripts/checkpatch.pl -f > > <file> , for yaml files? > > Please read Documentation/devicetree/writing-schema. > Here you can find general info + instruction how to install the tools > required for "make dt_binding_check". > > I could reproduce the error reported by Rob. > I gave your binding file a shot - there were a lot of smaller issues: > > - do not use tabs in yaml files > - be consistent in indent > - vendor prefixed properties needed some extra care > - example was full of bugs > - "..." > - no need for status = "okay"; > - properties spelled wrong > > For the example I adjusted it to use indent of 4 spaces, which IMO > is more readable than the two spaces used in the other parts of the > file. > > I have attached the updated binding file - please review and fix. > This is just a quick shot, I did not do a proper review. > > Please rename the file, other files in same dir are named "toshiba,xxx", > so replace '-' with ','. > > And try to introduce bugs in the example - and check that the tooling > catches the bug. > > hint: > > make DT=.../foo.yaml dt_binding_check > > is a qucik way to check only your binding. > > And for new bindings the preferred license is: (GPL-2.0-only OR BSD-2-Clause) > > Sam > > # SPDX-License-Identifier: GPL-2.0 > %YAML 1.2 > --- > $id: http://devicetree.org/schemas/display/bridge/toshiba-tc358775.yaml# > $schema: http://devicetree.org/meta-schemas/core.yaml# > > > title: Toshiba TC358775 DSI to LVDS bridge bindings > > maintainers: > - Vinay Simha BN <simhavcs@xxxxxxxxx> > > description: | > This binding supports DSI to LVDS bridge TC358775 > > properties: > compatible: > const: toshiba,tc358775 > > reg: > maxItems: 1 > description: i2c address of the bridge, 0x0f > > toshiba,dsi-lanes: > allOf: > - $ref: /schemas/types.yaml#/definitions/uint32 > - minimum: 1 > maximum: 4 > default: 1 > description: bla bla > > toshiba,dual-link: > $ref: /schemas/types.yaml#definitions/flag > description: bla bla > > vdd-supply: > maxItems: 1 > description: 1.2V LVDS Power Supply > > vddio-supply: > maxItems: 1 > description: 1.8V IO Power Supply > > stby-gpios: > maxItems: 1 > description: Standby pin, Low active > > reset-gpios: > maxItems: 1 > description: Hardware reset, Low active > > ports: > type: object > > properties: > port@0: > type: object > description: | > DSI Input. The remote endpoint phandle should be a > reference to a valid mipi_dsi_host device node. > port@1: > type: object > description: | > Video port for LVDS output (panel or connector). > > required: > - port@0 > - port@1 > > required: > - compatible > - reg > - tc,dsi-lanes > - vdd-supply > - vddio-supply > - stby-gpios > - reset-gpios > - ports > > examples: > - |+ > #include <dt-bindings/gpio/gpio.h> > > i2c@78b8000 { > #address-cells = <1>; > #size-cells = <0>; > > /* On High speed expansion */ > label = "HS-I2C2"; > status = "okay"; > > tc_bridge: bridge@f { > compatible = "toshiba,tc358775"; > reg = <0x0f>; > > tc,dsi-lanes = <4>; > tc,dual-link = <0>; > > vdd-supply = <&pm8916_l2>; > vddio-supply = <&pm8916_l6>; > > stby-gpios = <&msmgpio 99 GPIO_ACTIVE_LOW>; > reset-gpios = <&msmgpio 72 GPIO_ACTIVE_LOW>; > > ports { > #address-cells = <1>; > #size-cells = <0>; > > port@0 { > reg = <0>; > d2l_in: endpoint { > remote-endpoint = <&dsi0_out>; > }; > }; > > port@1 { > reg = <1>; > d2l_out: endpoint { > remote-endpoint = <&panel_in>; > }; > }; > }; > }; > }; > > panel: auo,b101xtn01 { > status = "okay"; > compatible = "auo,b101xtn01", "panel-lvds"; > power-supply = <&pm8916_l14>; > > width-mm = <223>; > height-mm = <125>; > > data-mapping = "jeida-24"; > > panel-timing { > /* 1366x768 @60Hz */ > clock-frequency = <72000000>; > hactive = <1366>; > vactive = <768>; > hsync-len = <70>; > hfront-porch = <20>; > hback-porch = <0>; > vsync-len = <42>; > vfront-porch = <14>; > vback-porch = <0>; > }; > > port { > panel_in: endpoint { > remote-endpoint = <&d2l_out>; > }; > }; > }; > > mdss { > dsi@1a98000 { > ports { > port@1 { > dsi0_out: endpoint { > remote-endpoint = <&d2l_in>; > data-lanes = <0 1 2 3>; > }; > }; > }; > }; > }; > > ... -- regards, vinaysimha