xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/panel/panel-common.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: GPL-2.0
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/display/panel/panel-common.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: Common Properties for Display Panels
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Thierry Reding <thierry.reding@gmail.com>
11*4882a593Smuzhiyun  - Laurent Pinchart <laurent.pinchart+renesas@ideasonboard.com>
12*4882a593Smuzhiyun
13*4882a593Smuzhiyundescription: |
14*4882a593Smuzhiyun  This document defines device tree properties common to several classes of
15*4882a593Smuzhiyun  display panels. It doesn't constitue a device tree binding specification by
16*4882a593Smuzhiyun  itself but is meant to be referenced by device tree bindings.
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun  When referenced from panel device tree bindings the properties defined in this
19*4882a593Smuzhiyun  document are defined as follows. The panel device tree bindings are
20*4882a593Smuzhiyun  responsible for defining whether each property is required or optional.
21*4882a593Smuzhiyun
22*4882a593Smuzhiyunproperties:
23*4882a593Smuzhiyun  # Descriptive Properties
24*4882a593Smuzhiyun  width-mm:
25*4882a593Smuzhiyun    description:
26*4882a593Smuzhiyun      Specifies the width of the physical area where images are displayed. This
27*4882a593Smuzhiyun      property is expressed in millimeters and rounded to the closest unit.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyun  height-mm:
30*4882a593Smuzhiyun    description:
31*4882a593Smuzhiyun      Specifies the height of the physical area where images are displayed. This
32*4882a593Smuzhiyun      property is expressed in millimeters and rounded to the closest unit.
33*4882a593Smuzhiyun
34*4882a593Smuzhiyun  label:
35*4882a593Smuzhiyun    description: |
36*4882a593Smuzhiyun      The label property specifies a symbolic name for the panel as a
37*4882a593Smuzhiyun      string suitable for use by humans. It typically contains a name inscribed
38*4882a593Smuzhiyun      on the system (e.g. as an affixed label) or specified in the system's
39*4882a593Smuzhiyun      documentation (e.g. in the user's manual).
40*4882a593Smuzhiyun
41*4882a593Smuzhiyun      If no such name exists, and unless the property is mandatory according to
42*4882a593Smuzhiyun      device tree bindings, it shall rather be omitted than constructed of
43*4882a593Smuzhiyun      non-descriptive information. For instance an LCD panel in a system that
44*4882a593Smuzhiyun      contains a single panel shall not be labelled "LCD" if that name is not
45*4882a593Smuzhiyun      inscribed on the system or used in a descriptive fashion in system
46*4882a593Smuzhiyun      documentation.
47*4882a593Smuzhiyun
48*4882a593Smuzhiyun  rotation:
49*4882a593Smuzhiyun    description:
50*4882a593Smuzhiyun      Display rotation in degrees counter clockwise (0,90,180,270)
51*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/uint32
52*4882a593Smuzhiyun    enum: [0, 90, 180, 270]
53*4882a593Smuzhiyun
54*4882a593Smuzhiyun  # Display Timings
55*4882a593Smuzhiyun  panel-timing:
56*4882a593Smuzhiyun    description:
57*4882a593Smuzhiyun      Most display panels are restricted to a single resolution and
58*4882a593Smuzhiyun      require specific display timings. The panel-timing subnode expresses those
59*4882a593Smuzhiyun      timings.
60*4882a593Smuzhiyun    $ref: panel-timing.yaml#
61*4882a593Smuzhiyun
62*4882a593Smuzhiyun  display-timings:
63*4882a593Smuzhiyun    description:
64*4882a593Smuzhiyun      Some display panels support several resolutions with different timings.
65*4882a593Smuzhiyun      The display-timings bindings supports specifying several timings and
66*4882a593Smuzhiyun      optionally specifying which is the native mode.
67*4882a593Smuzhiyun    $ref: display-timings.yaml#
68*4882a593Smuzhiyun
69*4882a593Smuzhiyun  # Connectivity
70*4882a593Smuzhiyun  port:
71*4882a593Smuzhiyun    type: object
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun  ports:
74*4882a593Smuzhiyun    type: object
75*4882a593Smuzhiyun    description:
76*4882a593Smuzhiyun      Panels receive video data through one or multiple connections. While
77*4882a593Smuzhiyun      the nature of those connections is specific to the panel type, the
78*4882a593Smuzhiyun      connectivity is expressed in a standard fashion using ports as specified
79*4882a593Smuzhiyun      in the device graph bindings defined in
80*4882a593Smuzhiyun      Documentation/devicetree/bindings/graph.txt.
81*4882a593Smuzhiyun
82*4882a593Smuzhiyun  ddc-i2c-bus:
83*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/phandle
84*4882a593Smuzhiyun    description:
85*4882a593Smuzhiyun      Some panels expose EDID information through an I2C-compatible
86*4882a593Smuzhiyun      bus such as DDC2 or E-DDC. For such panels the ddc-i2c-bus contains a
87*4882a593Smuzhiyun      phandle to the system I2C controller connected to that bus.
88*4882a593Smuzhiyun
89*4882a593Smuzhiyun  no-hpd:
90*4882a593Smuzhiyun    type: boolean
91*4882a593Smuzhiyun    description:
92*4882a593Smuzhiyun      This panel is supposed to communicate that it's ready via HPD
93*4882a593Smuzhiyun      (hot plug detect) signal, but the signal isn't hooked up so we should
94*4882a593Smuzhiyun      hardcode the max delay from the panel spec when powering up the panel.
95*4882a593Smuzhiyun
96*4882a593Smuzhiyun  hpd-gpios:
97*4882a593Smuzhiyun    maxItems: 1
98*4882a593Smuzhiyun    description:
99*4882a593Smuzhiyun      If Hot Plug Detect (HPD) is connected to a GPIO in the system rather
100*4882a593Smuzhiyun      than a dedicated HPD pin the pin can be specified here.
101*4882a593Smuzhiyun
102*4882a593Smuzhiyun  # Control I/Os
103*4882a593Smuzhiyun
104*4882a593Smuzhiyun  # Many display panels can be controlled through pins driven by GPIOs. The nature
105*4882a593Smuzhiyun  # and timing of those control signals are device-specific and left for panel
106*4882a593Smuzhiyun  # device tree bindings to specify. The following GPIO specifiers can however be
107*4882a593Smuzhiyun  # used for panels that implement compatible control signals.
108*4882a593Smuzhiyun
109*4882a593Smuzhiyun  enable-gpios:
110*4882a593Smuzhiyun    maxItems: 1
111*4882a593Smuzhiyun    description: |
112*4882a593Smuzhiyun      Specifier for a GPIO connected to the panel enable control signal. The
113*4882a593Smuzhiyun      enable signal is active high and enables operation of the panel. This
114*4882a593Smuzhiyun      property can also be used for panels implementing an active low power down
115*4882a593Smuzhiyun      signal, which is a negated version of the enable signal. Active low enable
116*4882a593Smuzhiyun      signals (or active high power down signals) can be supported by inverting
117*4882a593Smuzhiyun      the GPIO specifier polarity flag.
118*4882a593Smuzhiyun
119*4882a593Smuzhiyun      Note that the enable signal control panel operation only and must not be
120*4882a593Smuzhiyun      confused with a backlight enable signal.
121*4882a593Smuzhiyun
122*4882a593Smuzhiyun  reset-gpios:
123*4882a593Smuzhiyun    maxItems: 1
124*4882a593Smuzhiyun    description:
125*4882a593Smuzhiyun      Specifier for a GPIO connected to the panel reset control signal.
126*4882a593Smuzhiyun      The reset signal is active low and resets the panel internal logic
127*4882a593Smuzhiyun      while active. Active high reset signals can be supported by inverting the
128*4882a593Smuzhiyun      GPIO specifier polarity flag.
129*4882a593Smuzhiyun
130*4882a593Smuzhiyun  te-gpios:
131*4882a593Smuzhiyun    maxItems: 1
132*4882a593Smuzhiyun    description:
133*4882a593Smuzhiyun      GPIO spec for the tearing effect synchronization signal.
134*4882a593Smuzhiyun      The tearing effect signal is active high. Active low signals can be
135*4882a593Smuzhiyun      supported by inverting the GPIO specifier polarity flag.
136*4882a593Smuzhiyun
137*4882a593Smuzhiyun  # Power
138*4882a593Smuzhiyun  power-supply:
139*4882a593Smuzhiyun    description:
140*4882a593Smuzhiyun      Display panels require power to be supplied. While several panels need
141*4882a593Smuzhiyun      more than one power supply with panel-specific constraints governing the
142*4882a593Smuzhiyun      order and timings of the power supplies, in many cases a single power
143*4882a593Smuzhiyun      supply is sufficient, either because the panel has a single power rail, or
144*4882a593Smuzhiyun      because all its power rails can be driven by the same supply. In that case
145*4882a593Smuzhiyun      the power-supply property specifies the supply powering the panel as a
146*4882a593Smuzhiyun      phandle to a regulator.
147*4882a593Smuzhiyun
148*4882a593Smuzhiyun  # Backlight
149*4882a593Smuzhiyun
150*4882a593Smuzhiyun  # Most display panels include a backlight. Some of them also include a backlight
151*4882a593Smuzhiyun  # controller exposed through a control bus such as I2C or DSI. Others expose
152*4882a593Smuzhiyun  # backlight control through GPIO, PWM or other signals connected to an external
153*4882a593Smuzhiyun  # backlight controller.
154*4882a593Smuzhiyun
155*4882a593Smuzhiyun  backlight:
156*4882a593Smuzhiyun    $ref: /schemas/types.yaml#/definitions/phandle
157*4882a593Smuzhiyun    description:
158*4882a593Smuzhiyun      For panels whose backlight is controlled by an external backlight
159*4882a593Smuzhiyun      controller, this property contains a phandle that references the
160*4882a593Smuzhiyun      controller.
161*4882a593Smuzhiyun
162*4882a593Smuzhiyundependencies:
163*4882a593Smuzhiyun  width-mm: [ height-mm ]
164*4882a593Smuzhiyun  height-mm: [ width-mm ]
165*4882a593Smuzhiyun
166*4882a593SmuzhiyunadditionalProperties: true
167*4882a593Smuzhiyun
168*4882a593Smuzhiyun...
169