hc
2024-10-12 a5969cabbb4660eab42b6ef0412cbbd1200cf14d
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
# SPDX-License-Identifier: GPL-2.0
%YAML 1.2
---
$id: http://devicetree.org/schemas/display/panel/tpo,tpg110.yaml#
$schema: http://devicetree.org/meta-schemas/core.yaml#
 
title: TPO TPG110 Panel
 
maintainers:
  - Linus Walleij <linus.walleij@linaro.org>
  - Thierry Reding <thierry.reding@gmail.com>
 
description: |+
  This panel driver is a component that acts as an intermediary
  between an RGB output and a variety of panels. The panel
  driver is strapped up in electronics to the desired resolution
  and other properties, and has a control interface over 3WIRE
  SPI. By talking to the TPG110 over SPI, the strapped properties
  can be discovered and the hardware is therefore mostly
  self-describing.
 
         +--------+
  SPI -> |  TPO   | -> physical display
  RGB -> | TPG110 |
         +--------+
 
  If some electrical strap or alternate resolution is desired,
  this can be set up by taking software control of the display
  over the SPI interface. The interface can also adjust
  for properties of the display such as gamma correction and
  certain electrical driving levels.
 
  The TPG110 does not know the physical dimensions of the panel
  connected, so this needs to be specified in the device tree.
 
  It requires a GPIO line for control of its reset line.
 
  The serial protocol has line names that resemble I2C but the
  protocol is not I2C but 3WIRE SPI.
 
 
allOf:
  - $ref: panel-common.yaml#
 
properties:
  compatible:
    oneOf:
      - items:
          - enum:
              - ste,nomadik-nhk15-display
          - const: tpo,tpg110
      - const: tpo,tpg110
 
  reg: true
 
  grestb-gpios:
    maxItems: 1
    description: panel reset GPIO
 
  spi-3wire: true
 
  spi-max-frequency:
    const: 3000000
 
required:
  - compatible
  - reg
  - grestb-gpios
  - width-mm
  - height-mm
  - spi-3wire
  - spi-max-frequency
  - port
 
unevaluatedProperties: false
 
examples:
  - |+
    spi {
      #address-cells = <1>;
      #size-cells = <0>;
 
      panel: display@0 {
        compatible = "tpo,tpg110";
        reg = <0>;
        spi-3wire;
        /* 320 ns min period ~= 3 MHz */
        spi-max-frequency = <3000000>;
        /* Width and height from data sheet */
        width-mm = <116>;
        height-mm = <87>;
        grestb-gpios = <&foo_gpio 5 1>;
        backlight = <&bl>;
 
        port {
          nomadik_clcd_panel: endpoint {
            remote-endpoint = <&foo>;
          };
        };
      };
    };
 
...