Commit 6ab2b3d9 authored by Sam Ravnborg's avatar Sam Ravnborg
Browse files

dt-bindings: one binding file for all simple panels

There is an increasing number of new simple panels.
Common for many of these simple panels are that they have one
mandatory power-supply and some of them have backlight and / or
an enable gpio.

The binding file to describe these panels adds overhead
that really do not add value.
The binding are known and there is nothing gained from a
dedicated binding file nor for any dedicated example.

The following patch introduces a single panel-simple.yaml
and converts two ampire bindings over to the new file.

The conversion - if applied will have following effects:

- The maintainer for the individual file will change
    There is no need for many different maintainers for a simple binding.
    We have the same situation with the panel-simple driver in the kernel.

- The license will change to (GPL-2.0-only OR BSD-2-Clause)
    There is usually only a single line copied from the original
    file, a line that is often copied from a datasheet.
    This license change should be acceptable considered what little
    is copied.
    If the license change is not OK we can use a dedicated binding
    file in these cases.

This is a follow-up on Rob's big patch converting a lot of panel bindings
to individual files:

"dt-bindings: display: Convert a bunch of panels to DT schema"
https://patchwork.ozlabs.org/patch/1197683/



The objectives with one file for the relevant simple panels are:
- Make it simpler to add bindings for simple panels
- Keep the number of bindings file lower and thus easier to find a
  relevant file to copy from when adding new panels.
- Keep the binding documentation for simple panels more consistent
- Make it simpler to add support for new panels

v3:
  - Whitespace fix (checkpatch)
  - Indent compatible (Rob h)
  - Indent comments to give compatible more visibility (Rob h)

v2:
  - spelling fixes (imirkin via irc, Rob)
  - updated description (Rob)
  - list properires in alphabetical order
  - added power-supply to example (Rob)
  - updated title
  - reworded changelog a little

Signed-off-by: default avatarSam Ravnborg <sam@ravnborg.org>
Reviewed-by: default avatarRob Herring <robh@kernel.org>
Benjamin Gaignard <benjamin.gaignard@linaro.org>
Cc: Thierry Reding <thierry.reding@gmail.com>
Cc: Maxime Ripard <mripard@kernel.org>
Cc: Yannick Fertre <yannick.fertre@st.com>
Cc: Mark Rutland <mark.rutland@arm.com>
Cc: Daniel Vetter <daniel@ffwll.ch>
Cc: dri-devel@lists.freedesktop.org
Cc: devicetree@vger.kernel.org
Link: https://patchwork.freedesktop.org/patch/msgid/20200102101712.5085-2-sam@ravnborg.org
parent 5b99cad6
Loading
Loading
Loading
Loading
+0 −42
Original line number Diff line number Diff line
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/ampire,am-480272h3tmqw-t01h.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Ampire AM-480272H3TMQW-T01H 4.3" WQVGA TFT LCD panel

maintainers:
  - Yannick Fertre <yannick.fertre@st.com>
  - Thierry Reding <treding@nvidia.com>

allOf:
  - $ref: panel-common.yaml#

properties:
  compatible:
    const: ampire,am-480272h3tmqw-t01h

  power-supply: true
  enable-gpios: true
  backlight: true
  port: true

required:
  - compatible

additionalProperties: false

examples:
  - |
    panel_rgb: panel {
      compatible = "ampire,am-480272h3tmqw-t01h";
      enable-gpios = <&gpioa 8 1>;
      port {
        panel_in_rgb: endpoint {
          remote-endpoint = <&controller_out_rgb>;
        };
      };
    };

...
+0 −7
Original line number Diff line number Diff line
Ampire AM-800480R3TMQW-A1H 7.0" WVGA TFT LCD panel

Required properties:
- compatible: should be "ampire,am800480r3tmqwa1h"

This binding is compatible with the simple-panel binding, which is specified
in simple-panel.txt in this directory.
+59 −0
Original line number Diff line number Diff line
# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/panel-simple.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#

title: Simple panels with one power supply

maintainers:
  - Thierry Reding <thierry.reding@gmail.com>
  - Sam Ravnborg <sam@ravnborg.org>

description: |
  This binding file is a collection of the simple (dumb) panels that
  requires only a single power-supply.
  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.

        # Ampire AM-480272H3TMQW-T01H 4.3" WQVGA TFT LCD panel
      - ampire,am-480272h3tmqw-t01h
        # Ampire AM-800480R3TMQW-A1H 7.0" WVGA TFT LCD panel
      - ampire,am800480r3tmqwa1h

  backlight: true
  enable-gpios: true
  port: true
  power-supply: true

additionalProperties: false

required:
  - compatible
  - power-supply

examples:
  - |
    panel_rgb: panel-rgb {
      compatible = "ampire,am-480272h3tmqw-t01h";
      power-supply = <&vcc_lcd_reg>;

      port {
        panel_in_rgb: endpoint {
          remote-endpoint = <&ltdc_out_rgb>;
        };
      };
    };