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