On Tue, Nov 17, 2020 at 09:47:25AM +0800, Liu Ying wrote: > To complement panel-simple.yaml, create panel-simple-lvds-dual-ports.yaml. > panel-simple-lvds-dual-ports.yaml is for all simple LVDS panels that > have dual LVDS ports and require only a single power-supply. > The first port receives odd pixels, and the second port receives even pixels. > Optionally, a backlight and an enable GPIO can be specified as properties. > > Panels with swapped pixel order, if any, need dedicated bindings. > > Migrate 'auo,g133han01', 'auo,g185han01', 'auo,g190ean01', > 'koe,tx26d202vm0bwa' and 'nlt,nl192108ac18-02d' over to the new file. > > The objectives with one file for all the simple LVDS panels with dual ports are: > - Make it simpler to add bindings for this kind of LVDS panels > - Keep the number of bindings file lower > - Keep the binding documentation for this kind of LVDS panels more consistent > - Make it possible for drivers to get pixel order via > drm_of_lvds_get_dual_link_pixel_order(), as the optional 'ports' property is > allowed > > Suggested-by: Sam Ravnborg <sam@xxxxxxxxxxxx> > Cc: Thierry Reding <thierry.reding@xxxxxxxxx> > Cc: Sam Ravnborg <sam@xxxxxxxxxxxx> > Cc: David Airlie <airlied@xxxxxxxx> > Cc: Daniel Vetter <daniel@xxxxxxxx> > Cc: Rob Herring <robh+dt@xxxxxxxxxx> > Cc: Lucas Stach <l.stach@xxxxxxxxxxxxxx> > Cc: Sebastian Reichel <sebastian.reichel@xxxxxxxxxxxxx> > Signed-off-by: Liu Ying <victor.liu@xxxxxxx> > --- > v3->v4: > * Add type and descriptions for dual-lvds-{odd,even}-pixels properties. > Also, update descriptions for port@0 and port@1 properties accordingly. (Rob) > > v2->v3: > * Do not allow 'port' property. (Rob) > * Define port number. (Rob) > * Specify 'dual-lvds-odd-pixels' and 'dual-lvds-even-pixels' properties. (Rob) > > v1->v2: > * Correct pixel order in example LVDS panel node. > > .../panel/panel-simple-lvds-dual-ports.yaml | 130 +++++++++++++++++++++ > .../bindings/display/panel/panel-simple.yaml | 10 -- > 2 files changed, 130 insertions(+), 10 deletions(-) > create mode 100644 Documentation/devicetree/bindings/display/panel/panel-simple-lvds-dual-ports.yaml > > diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple-lvds-dual-ports.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple-lvds-dual-ports.yaml > new file mode 100644 > index 00000000..38a789b > --- /dev/null > +++ b/Documentation/devicetree/bindings/display/panel/panel-simple-lvds-dual-ports.yaml > @@ -0,0 +1,130 @@ > +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) > +%YAML 1.2 > +--- > +$id: http://devicetree.org/schemas/display/panel/panel-simple-lvds-dual-ports.yaml# > +$schema: http://devicetree.org/meta-schemas/core.yaml# > + > +title: Simple LVDS panels with one power supply and dual LVDS ports > + > +maintainers: > + - Liu Ying <victor.liu@xxxxxxx> > + - Thierry Reding <thierry.reding@xxxxxxxxx> > + - Sam Ravnborg <sam@xxxxxxxxxxxx> > + > +description: | > + This binding file is a collection of the LVDS panels that > + has dual LVDS ports and requires only a single power-supply. > + The first port receives odd pixels, and the second port receives even pixels. > + There are optionally a backlight and an enable GPIO. > + The panel may use an OF graph binding for the association to the display, > + or it may be a direct child node of the display. > + > + If the panel is more advanced a dedicated binding file is required. > + > +allOf: > + - $ref: panel-common.yaml# > + > +properties: > + > + compatible: > + enum: > + # compatible must be listed in alphabetical order, ordered by compatible. > + # The description in the comment is mandatory for each compatible. > + > + # AU Optronics Corporation 13.3" FHD (1920x1080) TFT LCD panel > + - auo,g133han01 > + # AU Optronics Corporation 18.5" FHD (1920x1080) TFT LCD panel > + - auo,g185han01 > + # AU Optronics Corporation 19.0" (1280x1024) TFT LCD panel > + - auo,g190ean01 > + # Kaohsiung Opto-Electronics Inc. 10.1" WUXGA (1920 x 1200) LVDS TFT LCD panel > + - koe,tx26d202vm0bwa > + # NLT Technologies, Ltd. 15.6" FHD (1920x1080) LVDS TFT LCD panel > + - nlt,nl192108ac18-02d > + > + ports: > + type: object > + properties: > + '#address-cells': > + const: 1 > + > + '#size-cells': > + const: 0 > + > + port@0: > + type: object > + description: The first sink port. > + properties: > + reg: > + const: 0 > + > + dual-lvds-odd-pixels: > + type: boolean > + description: The first sink port for odd pixels. > + > + required: > + - reg > + - dual-lvds-odd-pixels > + > + port@1: > + type: object > + description: The second sink port. > + properties: > + reg: > + const: 1 > + > + dual-lvds-even-pixels: > + type: boolean > + description: The second sink port for even pixels. > + > + required: > + - reg > + - dual-lvds-even-pixels > + > + required: > + - "#address-cells" > + - "#size-cells" > + - port@0 > + - port@1 > + > + additionalProperties: false > + > + backlight: true > + enable-gpios: true > + power-supply: true > + > +additionalProperties: false > + > +required: > + - compatible > + - power-supply ports should be required. With that, Reviewed-by: Rob Herring <robh@xxxxxxxxxx> > + > +examples: > + - | > + panel: panel-lvds { > + compatible = "koe,tx26d202vm0bwa"; > + power-supply = <&vdd_lcd_reg>; > + > + ports { > + #address-cells = <1>; > + #size-cells = <0>; > + > + port@0 { > + dual-lvds-odd-pixels; > + reg = <0>; > + > + panel_lvds0_in: endpoint { > + remote-endpoint = <&lvds0_out>; > + }; > + }; > + > + port@1 { > + dual-lvds-even-pixels; > + reg = <1>; > + > + panel_lvds1_in: endpoint { > + remote-endpoint = <&lvds1_out>; > + }; > + }; > + }; > + }; > diff --git a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > index f9750b0..62618e4 100644 > --- a/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > +++ b/Documentation/devicetree/bindings/display/panel/panel-simple.yaml > @@ -57,14 +57,8 @@ properties: > - auo,g104sn02 > # AU Optronics Corporation 12.1" (1280x800) TFT LCD panel > - auo,g121ean01 > - # AU Optronics Corporation 13.3" FHD (1920x1080) TFT LCD panel > - - auo,g133han01 > # AU Optronics Corporation 15.6" (1366x768) TFT LCD panel > - auo,g156xtn01 > - # AU Optronics Corporation 18.5" FHD (1920x1080) TFT LCD panel > - - auo,g185han01 > - # AU Optronics Corporation 19.0" (1280x1024) TFT LCD panel > - - auo,g190ean01 > # AU Optronics Corporation 31.5" FHD (1920x1080) TFT LCD panel > - auo,p320hvn03 > # AU Optronics Corporation 21.5" FHD (1920x1080) color TFT LCD panel > @@ -167,8 +161,6 @@ properties: > - kingdisplay,kd116n21-30nv-a010 > # Kaohsiung Opto-Electronics Inc. 5.7" QVGA (320 x 240) TFT LCD panel > - koe,tx14d24vm1bpa > - # Kaohsiung Opto-Electronics Inc. 10.1" WUXGA (1920 x 1200) LVDS TFT LCD panel > - - koe,tx26d202vm0bwa > # Kaohsiung Opto-Electronics. TX31D200VM0BAA 12.3" HSXGA LVDS panel > - koe,tx31d200vm0baa > # Kyocera Corporation 12.1" XGA (1024x768) TFT LCD panel > @@ -205,8 +197,6 @@ properties: > - neweast,wjfh116008a > # Newhaven Display International 480 x 272 TFT LCD panel > - newhaven,nhd-4.3-480272ef-atxl > - # NLT Technologies, Ltd. 15.6" FHD (1920x1080) LVDS TFT LCD panel > - - nlt,nl192108ac18-02d > # New Vision Display 7.0" 800 RGB x 480 TFT LCD panel > - nvd,9128 > # OKAYA Electric America, Inc. RS800480T-7X0GP 7" WVGA LCD panel > -- > 2.7.4 >