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