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