xref: /linux/Documentation/devicetree/bindings/display/st,stm32-ltdc.yaml (revision b615879dbfea6cf1236acbc3f2fb25ae84e07071)
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-ltdc.yaml#
5$schema: http://devicetree.org/meta-schemas/core.yaml#
6
7title: STMicroelectronics STM32 lcd-tft display controller
8
9maintainers:
10  - Philippe Cornu <philippe.cornu@foss.st.com>
11  - Yannick Fertre <yannick.fertre@foss.st.com>
12
13properties:
14  compatible:
15    enum:
16      - st,stm32-ltdc
17      - st,stm32mp251-ltdc
18      - st,stm32mp255-ltdc
19
20  reg:
21    maxItems: 1
22
23  interrupts:
24    items:
25      - description: events interrupt line.
26      - description: errors interrupt line.
27    minItems: 1
28
29  clocks:
30    minItems: 1
31    maxItems: 4
32
33  clock-names:
34    items:
35      - const: lcd
36      - const: bus
37      - const: ref
38      - const: lvds
39    minItems: 1
40
41  resets:
42    maxItems: 1
43
44  access-controllers:
45    maxItems: 1
46
47  port:
48    $ref: /schemas/graph.yaml#/properties/port
49    description: |
50      Video port for DPI RGB output.
51      ltdc has one video port with up to 2 endpoints:
52      - for external dpi rgb panel or bridge, using gpios.
53      - for internal dpi input of the MIPI DSI host controller.
54      Note: These 2 endpoints cannot be activated simultaneously.
55
56required:
57  - compatible
58  - reg
59  - interrupts
60  - clocks
61  - clock-names
62  - resets
63  - port
64
65allOf:
66  - if:
67      properties:
68        compatible:
69          contains:
70            enum:
71              - st,stm32-ltdc
72    then:
73      properties:
74        clocks:
75          maxItems: 1
76        clock-names:
77          maxItems: 1
78  - if:
79      properties:
80        compatible:
81          contains:
82            enum:
83              - st,stm32mp251-ltdc
84    then:
85      properties:
86        clocks:
87          minItems: 2
88          maxItems: 2
89        clock-names:
90          minItems: 2
91          maxItems: 2
92  - if:
93      properties:
94        compatible:
95          contains:
96            enum:
97              - st,stm32mp255-ltdc
98    then:
99      properties:
100        clocks:
101          minItems: 4
102        clock-names:
103          minItems: 4
104
105additionalProperties: false
106
107examples:
108  - |
109    #include <dt-bindings/interrupt-controller/arm-gic.h>
110    #include <dt-bindings/clock/stm32mp1-clks.h>
111    #include <dt-bindings/reset/stm32mp1-resets.h>
112    ltdc: display-controller@40016800 {
113        compatible = "st,stm32-ltdc";
114        reg = <0x5a001000 0x400>;
115        interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>,
116                     <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
117        clocks = <&rcc LTDC_PX>;
118        clock-names = "lcd";
119        resets = <&rcc LTDC_R>;
120
121        port {
122             ltdc_out_dsi: endpoint {
123                     remote-endpoint = <&dsi_in>;
124             };
125        };
126    };
127
128...
129