xref: /OK3568_Linux_fs/kernel/Documentation/devicetree/bindings/display/dsi-controller.yaml (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyun# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2*4882a593Smuzhiyun%YAML 1.2
3*4882a593Smuzhiyun---
4*4882a593Smuzhiyun$id: http://devicetree.org/schemas/display/dsi-controller.yaml#
5*4882a593Smuzhiyun$schema: http://devicetree.org/meta-schemas/core.yaml#
6*4882a593Smuzhiyun
7*4882a593Smuzhiyuntitle: Common Properties for DSI Display Panels
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunmaintainers:
10*4882a593Smuzhiyun  - Linus Walleij <linus.walleij@linaro.org>
11*4882a593Smuzhiyun
12*4882a593Smuzhiyundescription: |
13*4882a593Smuzhiyun  This document defines device tree properties common to DSI, Display
14*4882a593Smuzhiyun  Serial Interface controllers and attached panels. It doesn't constitute
15*4882a593Smuzhiyun  a device tree binding specification by itself but is meant to be referenced
16*4882a593Smuzhiyun  by device tree bindings.
17*4882a593Smuzhiyun
18*4882a593Smuzhiyun  When referenced from panel device tree bindings the properties defined in
19*4882a593Smuzhiyun  this 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*4882a593Smuzhiyun  Notice: this binding concerns DSI panels connected directly to a master
23*4882a593Smuzhiyun  without any intermediate port graph to the panel. Each DSI master
24*4882a593Smuzhiyun  can control one to four virtual channels to one panel. Each virtual
25*4882a593Smuzhiyun  channel should have a node "panel" for their virtual channel with their
26*4882a593Smuzhiyun  reg-property set to the virtual channel number, usually there is just
27*4882a593Smuzhiyun  one virtual channel, number 0.
28*4882a593Smuzhiyun
29*4882a593Smuzhiyunproperties:
30*4882a593Smuzhiyun  $nodename:
31*4882a593Smuzhiyun    pattern: "^dsi(@.*)?$"
32*4882a593Smuzhiyun
33*4882a593Smuzhiyun  "#address-cells":
34*4882a593Smuzhiyun    const: 1
35*4882a593Smuzhiyun
36*4882a593Smuzhiyun  "#size-cells":
37*4882a593Smuzhiyun    const: 0
38*4882a593Smuzhiyun
39*4882a593SmuzhiyunpatternProperties:
40*4882a593Smuzhiyun  "^panel@[0-3]$":
41*4882a593Smuzhiyun    description: Panels connected to the DSI link
42*4882a593Smuzhiyun    type: object
43*4882a593Smuzhiyun
44*4882a593Smuzhiyun    properties:
45*4882a593Smuzhiyun      reg:
46*4882a593Smuzhiyun        minimum: 0
47*4882a593Smuzhiyun        maximum: 3
48*4882a593Smuzhiyun        description:
49*4882a593Smuzhiyun          The virtual channel number of a DSI peripheral. Must be in the range
50*4882a593Smuzhiyun          from 0 to 3, as DSI uses a 2-bit addressing scheme. Some DSI
51*4882a593Smuzhiyun          peripherals respond to more than a single virtual channel. In that
52*4882a593Smuzhiyun          case the reg property can take multiple entries, one for each virtual
53*4882a593Smuzhiyun          channel that the peripheral responds to.
54*4882a593Smuzhiyun
55*4882a593Smuzhiyun      clock-master:
56*4882a593Smuzhiyun        type: boolean
57*4882a593Smuzhiyun        description:
58*4882a593Smuzhiyun          Should be enabled if the host is being used in conjunction with
59*4882a593Smuzhiyun          another DSI host to drive the same peripheral. Hardware supporting
60*4882a593Smuzhiyun          such a configuration generally requires the data on both the busses
61*4882a593Smuzhiyun          to be driven by the same clock. Only the DSI host instance
62*4882a593Smuzhiyun          controlling this clock should contain this property.
63*4882a593Smuzhiyun
64*4882a593Smuzhiyun      enforce-video-mode:
65*4882a593Smuzhiyun        type: boolean
66*4882a593Smuzhiyun        description:
67*4882a593Smuzhiyun          The best option is usually to run a panel in command mode, as this
68*4882a593Smuzhiyun          gives better control over the panel hardware. However for different
69*4882a593Smuzhiyun          reasons like broken hardware, missing features or testing, it may be
70*4882a593Smuzhiyun          useful to be able to force a command mode-capable panel into video
71*4882a593Smuzhiyun          mode.
72*4882a593Smuzhiyun
73*4882a593Smuzhiyun    required:
74*4882a593Smuzhiyun      - reg
75*4882a593Smuzhiyun
76*4882a593SmuzhiyunadditionalProperties: true
77*4882a593Smuzhiyun
78*4882a593Smuzhiyunexamples:
79*4882a593Smuzhiyun  - |
80*4882a593Smuzhiyun    #include <dt-bindings/gpio/gpio.h>
81*4882a593Smuzhiyun    dsi@a0351000 {
82*4882a593Smuzhiyun        reg = <0xa0351000 0x1000>;
83*4882a593Smuzhiyun        #address-cells = <1>;
84*4882a593Smuzhiyun        #size-cells = <0>;
85*4882a593Smuzhiyun        panel@0 {
86*4882a593Smuzhiyun            compatible = "sony,acx424akp";
87*4882a593Smuzhiyun            reg = <0>;
88*4882a593Smuzhiyun            vddi-supply = <&ab8500_ldo_aux1_reg>;
89*4882a593Smuzhiyun            reset-gpios = <&gpio2 1 GPIO_ACTIVE_LOW>;
90*4882a593Smuzhiyun        };
91*4882a593Smuzhiyun    };
92*4882a593Smuzhiyun
93*4882a593Smuzhiyun...
94