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