GNU Linux-libre 6.1.90-gnu
[releases.git] / Documentation / devicetree / bindings / display / st,stm32-dsi.yaml
1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
2 %YAML 1.2
3 ---
4 $id: http://devicetree.org/schemas/display/st,stm32-dsi.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
6
7 title: STMicroelectronics STM32 DSI host controller
8
9 maintainers:
10   - Philippe Cornu <philippe.cornu@foss.st.com>
11   - Yannick Fertre <yannick.fertre@foss.st.com>
12
13 description:
14   The STMicroelectronics STM32 DSI controller uses the Synopsys DesignWare MIPI-DSI host controller.
15
16 allOf:
17   - $ref: dsi-controller.yaml#
18
19 properties:
20   compatible:
21     const: st,stm32-dsi
22
23   reg:
24     maxItems: 1
25
26   clocks:
27     items:
28       - description: Module Clock
29       - description: DSI bus clock
30       - description: Pixel clock
31     minItems: 2
32
33   clock-names:
34     items:
35       - const: pclk
36       - const: ref
37       - const: px_clk
38     minItems: 2
39
40   resets:
41     maxItems: 1
42
43   reset-names:
44     items:
45       - const: apb
46
47   phy-dsi-supply:
48     description:
49       Phandle of the regulator that provides the supply voltage.
50
51   ports:
52     $ref: /schemas/graph.yaml#/properties/ports
53
54     properties:
55       port@0:
56         $ref: /schemas/graph.yaml#/properties/port
57         description:
58           DSI input port node, connected to the ltdc rgb output port.
59
60       port@1:
61         $ref: /schemas/graph.yaml#/$defs/port-base
62         unevaluatedProperties: false
63         description: |
64           DSI output port node, connected to a panel or a bridge input port.
65         properties:
66           endpoint:
67             $ref: /schemas/media/video-interfaces.yaml#
68             unevaluatedProperties: false
69             properties:
70               data-lanes:
71                 minItems: 1
72                 items:
73                   - const: 1
74                   - const: 2
75
76 required:
77   - "#address-cells"
78   - "#size-cells"
79   - compatible
80   - reg
81   - clocks
82   - clock-names
83   - ports
84
85 unevaluatedProperties: false
86
87 examples:
88   - |
89     #include <dt-bindings/interrupt-controller/arm-gic.h>
90     #include <dt-bindings/clock/stm32mp1-clks.h>
91     #include <dt-bindings/reset/stm32mp1-resets.h>
92     #include <dt-bindings/gpio/gpio.h>
93     dsi: dsi@5a000000 {
94         compatible = "st,stm32-dsi";
95         reg = <0x5a000000 0x800>;
96         clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
97         clock-names = "pclk", "ref", "px_clk";
98         resets = <&rcc DSI_R>;
99         reset-names = "apb";
100         phy-dsi-supply = <&reg18>;
101
102         #address-cells = <1>;
103         #size-cells = <0>;
104
105         ports {
106               #address-cells = <1>;
107               #size-cells = <0>;
108
109               port@0 {
110                     reg = <0>;
111                     dsi_in: endpoint {
112                         remote-endpoint = <&ltdc_ep1_out>;
113                     };
114               };
115
116               port@1 {
117                     reg = <1>;
118                     dsi_out: endpoint {
119                         remote-endpoint = <&panel_in>;
120                     };
121               };
122         };
123
124         panel@0 {
125               compatible = "orisetech,otm8009a";
126               reg = <0>;
127               reset-gpios = <&gpioe 4 GPIO_ACTIVE_LOW>;
128               power-supply = <&v3v3>;
129
130               port {
131                     panel_in: endpoint {
132                         remote-endpoint = <&dsi_out>;
133                     };
134               };
135         };
136     };
137
138 ...