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