18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0
28c2ecf20Sopenharmony_ci%YAML 1.2
38c2ecf20Sopenharmony_ci---
48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/display/panel/tpo,tpg110.yaml#
58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml#
68c2ecf20Sopenharmony_ci
78c2ecf20Sopenharmony_cititle: TPO TPG110 Panel
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_cimaintainers:
108c2ecf20Sopenharmony_ci  - Linus Walleij <linus.walleij@linaro.org>
118c2ecf20Sopenharmony_ci  - Thierry Reding <thierry.reding@gmail.com>
128c2ecf20Sopenharmony_ci
138c2ecf20Sopenharmony_cidescription: |+
148c2ecf20Sopenharmony_ci  This panel driver is a component that acts as an intermediary
158c2ecf20Sopenharmony_ci  between an RGB output and a variety of panels. The panel
168c2ecf20Sopenharmony_ci  driver is strapped up in electronics to the desired resolution
178c2ecf20Sopenharmony_ci  and other properties, and has a control interface over 3WIRE
188c2ecf20Sopenharmony_ci  SPI. By talking to the TPG110 over SPI, the strapped properties
198c2ecf20Sopenharmony_ci  can be discovered and the hardware is therefore mostly
208c2ecf20Sopenharmony_ci  self-describing.
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci         +--------+
238c2ecf20Sopenharmony_ci  SPI -> |  TPO   | -> physical display
248c2ecf20Sopenharmony_ci  RGB -> | TPG110 |
258c2ecf20Sopenharmony_ci         +--------+
268c2ecf20Sopenharmony_ci
278c2ecf20Sopenharmony_ci  If some electrical strap or alternate resolution is desired,
288c2ecf20Sopenharmony_ci  this can be set up by taking software control of the display
298c2ecf20Sopenharmony_ci  over the SPI interface. The interface can also adjust
308c2ecf20Sopenharmony_ci  for properties of the display such as gamma correction and
318c2ecf20Sopenharmony_ci  certain electrical driving levels.
328c2ecf20Sopenharmony_ci
338c2ecf20Sopenharmony_ci  The TPG110 does not know the physical dimensions of the panel
348c2ecf20Sopenharmony_ci  connected, so this needs to be specified in the device tree.
358c2ecf20Sopenharmony_ci
368c2ecf20Sopenharmony_ci  It requires a GPIO line for control of its reset line.
378c2ecf20Sopenharmony_ci
388c2ecf20Sopenharmony_ci  The serial protocol has line names that resemble I2C but the
398c2ecf20Sopenharmony_ci  protocol is not I2C but 3WIRE SPI.
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci
428c2ecf20Sopenharmony_ciallOf:
438c2ecf20Sopenharmony_ci  - $ref: panel-common.yaml#
448c2ecf20Sopenharmony_ci
458c2ecf20Sopenharmony_ciproperties:
468c2ecf20Sopenharmony_ci  compatible:
478c2ecf20Sopenharmony_ci    oneOf:
488c2ecf20Sopenharmony_ci      - items:
498c2ecf20Sopenharmony_ci          - enum:
508c2ecf20Sopenharmony_ci              - ste,nomadik-nhk15-display
518c2ecf20Sopenharmony_ci          - const: tpo,tpg110
528c2ecf20Sopenharmony_ci      - const: tpo,tpg110
538c2ecf20Sopenharmony_ci
548c2ecf20Sopenharmony_ci  reg: true
558c2ecf20Sopenharmony_ci
568c2ecf20Sopenharmony_ci  grestb-gpios:
578c2ecf20Sopenharmony_ci    maxItems: 1
588c2ecf20Sopenharmony_ci    description: panel reset GPIO
598c2ecf20Sopenharmony_ci
608c2ecf20Sopenharmony_ci  spi-3wire: true
618c2ecf20Sopenharmony_ci
628c2ecf20Sopenharmony_ci  spi-max-frequency:
638c2ecf20Sopenharmony_ci    const: 3000000
648c2ecf20Sopenharmony_ci
658c2ecf20Sopenharmony_cirequired:
668c2ecf20Sopenharmony_ci  - compatible
678c2ecf20Sopenharmony_ci  - reg
688c2ecf20Sopenharmony_ci  - grestb-gpios
698c2ecf20Sopenharmony_ci  - width-mm
708c2ecf20Sopenharmony_ci  - height-mm
718c2ecf20Sopenharmony_ci  - spi-3wire
728c2ecf20Sopenharmony_ci  - spi-max-frequency
738c2ecf20Sopenharmony_ci  - port
748c2ecf20Sopenharmony_ci
758c2ecf20Sopenharmony_ciunevaluatedProperties: false
768c2ecf20Sopenharmony_ci
778c2ecf20Sopenharmony_ciexamples:
788c2ecf20Sopenharmony_ci  - |+
798c2ecf20Sopenharmony_ci    spi {
808c2ecf20Sopenharmony_ci      #address-cells = <1>;
818c2ecf20Sopenharmony_ci      #size-cells = <0>;
828c2ecf20Sopenharmony_ci
838c2ecf20Sopenharmony_ci      panel: display@0 {
848c2ecf20Sopenharmony_ci        compatible = "tpo,tpg110";
858c2ecf20Sopenharmony_ci        reg = <0>;
868c2ecf20Sopenharmony_ci        spi-3wire;
878c2ecf20Sopenharmony_ci        /* 320 ns min period ~= 3 MHz */
888c2ecf20Sopenharmony_ci        spi-max-frequency = <3000000>;
898c2ecf20Sopenharmony_ci        /* Width and height from data sheet */
908c2ecf20Sopenharmony_ci        width-mm = <116>;
918c2ecf20Sopenharmony_ci        height-mm = <87>;
928c2ecf20Sopenharmony_ci        grestb-gpios = <&foo_gpio 5 1>;
938c2ecf20Sopenharmony_ci        backlight = <&bl>;
948c2ecf20Sopenharmony_ci
958c2ecf20Sopenharmony_ci        port {
968c2ecf20Sopenharmony_ci          nomadik_clcd_panel: endpoint {
978c2ecf20Sopenharmony_ci            remote-endpoint = <&foo>;
988c2ecf20Sopenharmony_ci          };
998c2ecf20Sopenharmony_ci        };
1008c2ecf20Sopenharmony_ci      };
1018c2ecf20Sopenharmony_ci    };
1028c2ecf20Sopenharmony_ci
1038c2ecf20Sopenharmony_ci...
104