xref: /freebsd/sys/contrib/device-tree/Bindings/display/dsi-controller.yaml (revision fac71e4e09885bb2afa3d984a0c239a52e1a7418)
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
33*fac71e4eSEmmanuel Vadot  clock-master:
34*fac71e4eSEmmanuel Vadot    type: boolean
35*fac71e4eSEmmanuel Vadot    description:
36*fac71e4eSEmmanuel Vadot      Should be enabled if the host is being used in conjunction with
37*fac71e4eSEmmanuel Vadot      another DSI host to drive the same peripheral. Hardware supporting
38*fac71e4eSEmmanuel Vadot      such a configuration generally requires the data on both the busses
39*fac71e4eSEmmanuel Vadot      to be driven by the same clock. Only the DSI host instance
40*fac71e4eSEmmanuel Vadot      controlling this clock should contain this property.
41*fac71e4eSEmmanuel Vadot
42c66ec88fSEmmanuel Vadot  "#address-cells":
43c66ec88fSEmmanuel Vadot    const: 1
44c66ec88fSEmmanuel Vadot
45c66ec88fSEmmanuel Vadot  "#size-cells":
46c66ec88fSEmmanuel Vadot    const: 0
47c66ec88fSEmmanuel Vadot
48c66ec88fSEmmanuel VadotpatternProperties:
49c66ec88fSEmmanuel Vadot  "^panel@[0-3]$":
50c66ec88fSEmmanuel Vadot    description: Panels connected to the DSI link
51c66ec88fSEmmanuel Vadot    type: object
52c66ec88fSEmmanuel Vadot
53c66ec88fSEmmanuel Vadot    properties:
54c66ec88fSEmmanuel Vadot      reg:
55c66ec88fSEmmanuel Vadot        minimum: 0
56c66ec88fSEmmanuel Vadot        maximum: 3
57c66ec88fSEmmanuel Vadot        description:
58c66ec88fSEmmanuel Vadot          The virtual channel number of a DSI peripheral. Must be in the range
59c66ec88fSEmmanuel Vadot          from 0 to 3, as DSI uses a 2-bit addressing scheme. Some DSI
60c66ec88fSEmmanuel Vadot          peripherals respond to more than a single virtual channel. In that
61c66ec88fSEmmanuel Vadot          case the reg property can take multiple entries, one for each virtual
62c66ec88fSEmmanuel Vadot          channel that the peripheral responds to.
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
766be33864SEmmanuel VadotadditionalProperties: true
776be33864SEmmanuel 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