1 # SPDX-License-Identifier: GPL-2.0
4 $id: http://devicetree.org/schemas/display/allwinner,sun8i-r40-tcon-top.yaml#
5 $schema: http://devicetree.org/meta-schemas/core.yaml#
7 title: Allwinner R40 TCON TOP Device Tree Bindings
10 - Chen-Yu Tsai <wens@csie.org>
11 - Maxime Ripard <mripard@kernel.org>
14 TCON TOPs main purpose is to configure whole display pipeline. It
15 determines relationships between mixers and TCONs, selects source
16 TCON for HDMI, muxes LCD and TV encoder GPIO output, selects TV
17 encoder clock source and contains additional TV TCON and DSI gates.
19 It allows display pipeline to be configured in very different ways:
25 \ / [1] TCON-LCD1 - LCD1/LVDS1
27 / \ [2] TCON-TV0 [0] - TVE0/RGB
31 \ [3] TCON-TV1 [1] - TVE1/RGB
33 Note that both TCON TOP references same physical unit. Both mixers
34 can be connected to any TCON. Not all TCON TOP variants support all
43 - allwinner,sun8i-r40-tcon-top
44 - allwinner,sun50i-h6-tcon-top
53 - description: The TCON TOP interface clock
54 - description: The TCON TOP TV0 clock
55 - description: The TCON TOP TVE0 clock
56 - description: The TCON TOP TV1 clock
57 - description: The TCON TOP TVE1 clock
58 - description: The TCON TOP MIPI DSI clock
75 The first item is the name of the clock created for the TV0
76 channel, the second item is the name of the TCON TV1 channel
77 clock and the third one is the name of the DSI channel clock.
85 A ports node with endpoint definitions as defined in
86 Documentation/devicetree/bindings/media/video-interfaces.txt.
87 All ports should have only one endpoint connected to
100 Input endpoint for Mixer 0 mux.
105 Output endpoint for Mixer 0 mux
123 ID of the target TCON
132 additionalProperties: false
137 Input endpoint for Mixer 1 mux.
142 Output endpoint for Mixer 1 mux
160 ID of the target TCON
169 additionalProperties: false
174 Input endpoint for HDMI mux.
192 ID of the target TCON
201 additionalProperties: false
206 Output endpoint for HDMI mux
216 additionalProperties: false
228 additionalProperties: false
234 const: allwinner,sun50i-h6-tcon-top
259 #include <dt-bindings/interrupt-controller/arm-gic.h>
261 #include <dt-bindings/clock/sun8i-r40-ccu.h>
262 #include <dt-bindings/reset/sun8i-r40-ccu.h>
264 tcon_top: tcon-top@1c70000 {
265 compatible = "allwinner,sun8i-r40-tcon-top";
266 reg = <0x01c70000 0x1000>;
267 clocks = <&ccu CLK_BUS_TCON_TOP>,
279 clock-output-names = "tcon-top-tv0",
282 resets = <&ccu RST_BUS_TCON_TOP>;
286 #address-cells = <1>;
289 tcon_top_mixer0_in: port@0 {
292 tcon_top_mixer0_in_mixer0: endpoint {
293 remote-endpoint = <&mixer0_out_tcon_top>;
297 tcon_top_mixer0_out: port@1 {
298 #address-cells = <1>;
302 tcon_top_mixer0_out_tcon_lcd0: endpoint@0 {
306 tcon_top_mixer0_out_tcon_lcd1: endpoint@1 {
310 tcon_top_mixer0_out_tcon_tv0: endpoint@2 {
312 remote-endpoint = <&tcon_tv0_in_tcon_top_mixer0>;
315 tcon_top_mixer0_out_tcon_tv1: endpoint@3 {
317 remote-endpoint = <&tcon_tv1_in_tcon_top_mixer0>;
321 tcon_top_mixer1_in: port@2 {
322 #address-cells = <1>;
326 tcon_top_mixer1_in_mixer1: endpoint@1 {
328 remote-endpoint = <&mixer1_out_tcon_top>;
332 tcon_top_mixer1_out: port@3 {
333 #address-cells = <1>;
337 tcon_top_mixer1_out_tcon_lcd0: endpoint@0 {
341 tcon_top_mixer1_out_tcon_lcd1: endpoint@1 {
345 tcon_top_mixer1_out_tcon_tv0: endpoint@2 {
347 remote-endpoint = <&tcon_tv0_in_tcon_top_mixer1>;
350 tcon_top_mixer1_out_tcon_tv1: endpoint@3 {
352 remote-endpoint = <&tcon_tv1_in_tcon_top_mixer1>;
356 tcon_top_hdmi_in: port@4 {
357 #address-cells = <1>;
361 tcon_top_hdmi_in_tcon_tv0: endpoint@0 {
363 remote-endpoint = <&tcon_tv0_out_tcon_top>;
366 tcon_top_hdmi_in_tcon_tv1: endpoint@1 {
368 remote-endpoint = <&tcon_tv1_out_tcon_top>;
372 tcon_top_hdmi_out: port@5 {
375 tcon_top_hdmi_out_hdmi: endpoint {
376 remote-endpoint = <&hdmi_in_tcon_top>;