xref: /freebsd/sys/contrib/device-tree/Bindings/display/st,stm32-dsi.yaml (revision c66ec88fed842fbaad62c30d510644ceb7bd2d71)
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
7title: STMicroelectronics STM32 DSI host controller
8
9maintainers:
10  - Philippe Cornu <philippe.cornu@st.com>
11  - Yannick Fertre <yannick.fertre@st.com>
12
13description:
14  The STMicroelectronics STM32 DSI controller uses the Synopsys DesignWare MIPI-DSI host controller.
15
16properties:
17  compatible:
18    const: st,stm32-dsi
19
20  reg:
21    maxItems: 1
22
23  clocks:
24    items:
25      - description: Module Clock
26      - description: DSI bus clock
27      - description: Pixel clock
28    minItems: 2
29    maxItems: 3
30
31  clock-names:
32    items:
33      - const: pclk
34      - const: ref
35      - const: px_clk
36    minItems: 2
37    maxItems: 3
38
39  resets:
40    maxItems: 1
41
42  reset-names:
43    items:
44      - const: apb
45
46  phy-dsi-supply:
47    description:
48      Phandle of the regulator that provides the supply voltage.
49
50  ports:
51    type: object
52    description:
53      A node containing DSI input & output port nodes with endpoint
54      definitions as documented in
55      Documentation/devicetree/bindings/media/video-interfaces.txt
56      Documentation/devicetree/bindings/graph.txt
57    properties:
58      port@0:
59        type: object
60        description:
61          DSI input port node, connected to the ltdc rgb output port.
62
63      port@1:
64        type: object
65        description:
66          DSI output port node, connected to a panel or a bridge input port"
67
68patternProperties:
69  "^(panel|panel-dsi)@[0-9]$":
70    type: object
71    description:
72      A node containing the panel or bridge description as documented in
73      Documentation/devicetree/bindings/display/mipi-dsi-bus.txt
74    properties:
75      port:
76        type: object
77        description:
78          Panel or bridge port node, connected to the DSI output port (port@1)
79
80  "#address-cells":
81    const: 1
82
83  "#size-cells":
84    const: 0
85
86required:
87  - "#address-cells"
88  - "#size-cells"
89  - compatible
90  - reg
91  - clocks
92  - clock-names
93  - ports
94
95additionalProperties: false
96
97examples:
98  - |
99    #include <dt-bindings/interrupt-controller/arm-gic.h>
100    #include <dt-bindings/clock/stm32mp1-clks.h>
101    #include <dt-bindings/reset/stm32mp1-resets.h>
102    #include <dt-bindings/gpio/gpio.h>
103    dsi: dsi@5a000000 {
104        compatible = "st,stm32-dsi";
105        reg = <0x5a000000 0x800>;
106        clocks = <&rcc DSI_K>, <&clk_hse>, <&rcc DSI_PX>;
107        clock-names = "pclk", "ref", "px_clk";
108        resets = <&rcc DSI_R>;
109        reset-names = "apb";
110        phy-dsi-supply = <&reg18>;
111
112        #address-cells = <1>;
113        #size-cells = <0>;
114
115        ports {
116              #address-cells = <1>;
117              #size-cells = <0>;
118
119              port@0 {
120                    reg = <0>;
121                    dsi_in: endpoint {
122                        remote-endpoint = <&ltdc_ep1_out>;
123                    };
124              };
125
126              port@1 {
127                    reg = <1>;
128                    dsi_out: endpoint {
129                        remote-endpoint = <&panel_in>;
130                    };
131              };
132        };
133
134        panel-dsi@0 {
135              compatible = "orisetech,otm8009a";
136              reg = <0>;
137              reset-gpios = <&gpioe 4 GPIO_ACTIVE_LOW>;
138              power-supply = <&v3v3>;
139
140              port {
141                    panel_in: endpoint {
142                        remote-endpoint = <&dsi_out>;
143                    };
144              };
145        };
146    };
147
148...
149
150