sam,
This is my latest yaml file https://github.com/vinaysimhabn/kernel-msm/blob/5.6.0-rc3-d2l-wip/Documentat...
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@ravnborg.org 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@gmail.com
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>; }; }; }; }; };
...