18c2ecf20Sopenharmony_ci# SPDX-License-Identifier: GPL-2.0 28c2ecf20Sopenharmony_ci%YAML 1.2 38c2ecf20Sopenharmony_ci--- 48c2ecf20Sopenharmony_ci$id: http://devicetree.org/schemas/display/allwinner,sun4i-a10-tcon.yaml# 58c2ecf20Sopenharmony_ci$schema: http://devicetree.org/meta-schemas/core.yaml# 68c2ecf20Sopenharmony_ci 78c2ecf20Sopenharmony_cititle: Allwinner A10 Timings Controller (TCON) Device Tree Bindings 88c2ecf20Sopenharmony_ci 98c2ecf20Sopenharmony_cimaintainers: 108c2ecf20Sopenharmony_ci - Chen-Yu Tsai <wens@csie.org> 118c2ecf20Sopenharmony_ci - Maxime Ripard <mripard@kernel.org> 128c2ecf20Sopenharmony_ci 138c2ecf20Sopenharmony_cidescription: | 148c2ecf20Sopenharmony_ci The TCON acts as a timing controller for RGB, LVDS and TV 158c2ecf20Sopenharmony_ci interfaces. 168c2ecf20Sopenharmony_ci 178c2ecf20Sopenharmony_ciproperties: 188c2ecf20Sopenharmony_ci "#clock-cells": 198c2ecf20Sopenharmony_ci const: 0 208c2ecf20Sopenharmony_ci 218c2ecf20Sopenharmony_ci compatible: 228c2ecf20Sopenharmony_ci oneOf: 238c2ecf20Sopenharmony_ci - const: allwinner,sun4i-a10-tcon 248c2ecf20Sopenharmony_ci - const: allwinner,sun5i-a13-tcon 258c2ecf20Sopenharmony_ci - const: allwinner,sun6i-a31-tcon 268c2ecf20Sopenharmony_ci - const: allwinner,sun6i-a31s-tcon 278c2ecf20Sopenharmony_ci - const: allwinner,sun7i-a20-tcon 288c2ecf20Sopenharmony_ci - const: allwinner,sun8i-a23-tcon 298c2ecf20Sopenharmony_ci - const: allwinner,sun8i-a33-tcon 308c2ecf20Sopenharmony_ci - const: allwinner,sun8i-a83t-tcon-lcd 318c2ecf20Sopenharmony_ci - const: allwinner,sun8i-a83t-tcon-tv 328c2ecf20Sopenharmony_ci - const: allwinner,sun8i-r40-tcon-tv 338c2ecf20Sopenharmony_ci - const: allwinner,sun8i-v3s-tcon 348c2ecf20Sopenharmony_ci - const: allwinner,sun9i-a80-tcon-lcd 358c2ecf20Sopenharmony_ci - const: allwinner,sun9i-a80-tcon-tv 368c2ecf20Sopenharmony_ci 378c2ecf20Sopenharmony_ci - items: 388c2ecf20Sopenharmony_ci - enum: 398c2ecf20Sopenharmony_ci - allwinner,sun7i-a20-tcon0 408c2ecf20Sopenharmony_ci - allwinner,sun7i-a20-tcon1 418c2ecf20Sopenharmony_ci - const: allwinner,sun7i-a20-tcon 428c2ecf20Sopenharmony_ci 438c2ecf20Sopenharmony_ci - items: 448c2ecf20Sopenharmony_ci - enum: 458c2ecf20Sopenharmony_ci - allwinner,sun50i-a64-tcon-lcd 468c2ecf20Sopenharmony_ci - const: allwinner,sun8i-a83t-tcon-lcd 478c2ecf20Sopenharmony_ci 488c2ecf20Sopenharmony_ci - items: 498c2ecf20Sopenharmony_ci - enum: 508c2ecf20Sopenharmony_ci - allwinner,sun8i-h3-tcon-tv 518c2ecf20Sopenharmony_ci - allwinner,sun50i-a64-tcon-tv 528c2ecf20Sopenharmony_ci - const: allwinner,sun8i-a83t-tcon-tv 538c2ecf20Sopenharmony_ci 548c2ecf20Sopenharmony_ci - items: 558c2ecf20Sopenharmony_ci - enum: 568c2ecf20Sopenharmony_ci - allwinner,sun50i-h6-tcon-tv 578c2ecf20Sopenharmony_ci - const: allwinner,sun8i-r40-tcon-tv 588c2ecf20Sopenharmony_ci 598c2ecf20Sopenharmony_ci reg: 608c2ecf20Sopenharmony_ci maxItems: 1 618c2ecf20Sopenharmony_ci 628c2ecf20Sopenharmony_ci interrupts: 638c2ecf20Sopenharmony_ci maxItems: 1 648c2ecf20Sopenharmony_ci 658c2ecf20Sopenharmony_ci clocks: 668c2ecf20Sopenharmony_ci minItems: 1 678c2ecf20Sopenharmony_ci maxItems: 4 688c2ecf20Sopenharmony_ci 698c2ecf20Sopenharmony_ci clock-names: 708c2ecf20Sopenharmony_ci minItems: 1 718c2ecf20Sopenharmony_ci maxItems: 4 728c2ecf20Sopenharmony_ci 738c2ecf20Sopenharmony_ci clock-output-names: 748c2ecf20Sopenharmony_ci description: 758c2ecf20Sopenharmony_ci Name of the LCD pixel clock created. 768c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/string-array 778c2ecf20Sopenharmony_ci maxItems: 1 788c2ecf20Sopenharmony_ci 798c2ecf20Sopenharmony_ci dmas: 808c2ecf20Sopenharmony_ci maxItems: 1 818c2ecf20Sopenharmony_ci 828c2ecf20Sopenharmony_ci resets: 838c2ecf20Sopenharmony_ci anyOf: 848c2ecf20Sopenharmony_ci - items: 858c2ecf20Sopenharmony_ci - description: TCON Reset Line 868c2ecf20Sopenharmony_ci 878c2ecf20Sopenharmony_ci - items: 888c2ecf20Sopenharmony_ci - description: TCON Reset Line 898c2ecf20Sopenharmony_ci - description: TCON LVDS Reset Line 908c2ecf20Sopenharmony_ci 918c2ecf20Sopenharmony_ci - items: 928c2ecf20Sopenharmony_ci - description: TCON Reset Line 938c2ecf20Sopenharmony_ci - description: TCON eDP Reset Line 948c2ecf20Sopenharmony_ci 958c2ecf20Sopenharmony_ci - items: 968c2ecf20Sopenharmony_ci - description: TCON Reset Line 978c2ecf20Sopenharmony_ci - description: TCON eDP Reset Line 988c2ecf20Sopenharmony_ci - description: TCON LVDS Reset Line 998c2ecf20Sopenharmony_ci 1008c2ecf20Sopenharmony_ci reset-names: 1018c2ecf20Sopenharmony_ci oneOf: 1028c2ecf20Sopenharmony_ci - const: lcd 1038c2ecf20Sopenharmony_ci 1048c2ecf20Sopenharmony_ci - items: 1058c2ecf20Sopenharmony_ci - const: lcd 1068c2ecf20Sopenharmony_ci - const: lvds 1078c2ecf20Sopenharmony_ci 1088c2ecf20Sopenharmony_ci - items: 1098c2ecf20Sopenharmony_ci - const: lcd 1108c2ecf20Sopenharmony_ci - const: edp 1118c2ecf20Sopenharmony_ci 1128c2ecf20Sopenharmony_ci - items: 1138c2ecf20Sopenharmony_ci - const: lcd 1148c2ecf20Sopenharmony_ci - const: edp 1158c2ecf20Sopenharmony_ci - const: lvds 1168c2ecf20Sopenharmony_ci 1178c2ecf20Sopenharmony_ci ports: 1188c2ecf20Sopenharmony_ci type: object 1198c2ecf20Sopenharmony_ci description: | 1208c2ecf20Sopenharmony_ci A ports node with endpoint definitions as defined in 1218c2ecf20Sopenharmony_ci Documentation/devicetree/bindings/media/video-interfaces.txt. 1228c2ecf20Sopenharmony_ci 1238c2ecf20Sopenharmony_ci properties: 1248c2ecf20Sopenharmony_ci "#address-cells": 1258c2ecf20Sopenharmony_ci const: 1 1268c2ecf20Sopenharmony_ci 1278c2ecf20Sopenharmony_ci "#size-cells": 1288c2ecf20Sopenharmony_ci const: 0 1298c2ecf20Sopenharmony_ci 1308c2ecf20Sopenharmony_ci port@0: 1318c2ecf20Sopenharmony_ci type: object 1328c2ecf20Sopenharmony_ci description: | 1338c2ecf20Sopenharmony_ci Input endpoints of the controller. 1348c2ecf20Sopenharmony_ci 1358c2ecf20Sopenharmony_ci port@1: 1368c2ecf20Sopenharmony_ci type: object 1378c2ecf20Sopenharmony_ci description: | 1388c2ecf20Sopenharmony_ci Output endpoints of the controller. 1398c2ecf20Sopenharmony_ci 1408c2ecf20Sopenharmony_ci patternProperties: 1418c2ecf20Sopenharmony_ci "^endpoint(@[0-9])$": 1428c2ecf20Sopenharmony_ci type: object 1438c2ecf20Sopenharmony_ci 1448c2ecf20Sopenharmony_ci properties: 1458c2ecf20Sopenharmony_ci allwinner,tcon-channel: 1468c2ecf20Sopenharmony_ci $ref: /schemas/types.yaml#/definitions/uint32 1478c2ecf20Sopenharmony_ci description: | 1488c2ecf20Sopenharmony_ci TCON can have 1 or 2 channels, usually with the 1498c2ecf20Sopenharmony_ci first channel being used for the panels interfaces 1508c2ecf20Sopenharmony_ci (RGB, LVDS, etc.), and the second being used for the 1518c2ecf20Sopenharmony_ci outputs that require another controller (TV Encoder, 1528c2ecf20Sopenharmony_ci HDMI, etc.). 1538c2ecf20Sopenharmony_ci 1548c2ecf20Sopenharmony_ci If that property is present, specifies the TCON 1558c2ecf20Sopenharmony_ci channel the endpoint is associated to. If that 1568c2ecf20Sopenharmony_ci property is not present, the endpoint number will be 1578c2ecf20Sopenharmony_ci used as the channel number. 1588c2ecf20Sopenharmony_ci 1598c2ecf20Sopenharmony_ci unevaluatedProperties: true 1608c2ecf20Sopenharmony_ci 1618c2ecf20Sopenharmony_ci required: 1628c2ecf20Sopenharmony_ci - "#address-cells" 1638c2ecf20Sopenharmony_ci - "#size-cells" 1648c2ecf20Sopenharmony_ci - port@0 1658c2ecf20Sopenharmony_ci - port@1 1668c2ecf20Sopenharmony_ci 1678c2ecf20Sopenharmony_ci additionalProperties: false 1688c2ecf20Sopenharmony_ci 1698c2ecf20Sopenharmony_cirequired: 1708c2ecf20Sopenharmony_ci - compatible 1718c2ecf20Sopenharmony_ci - reg 1728c2ecf20Sopenharmony_ci - interrupts 1738c2ecf20Sopenharmony_ci - clocks 1748c2ecf20Sopenharmony_ci - clock-names 1758c2ecf20Sopenharmony_ci - resets 1768c2ecf20Sopenharmony_ci - ports 1778c2ecf20Sopenharmony_ci 1788c2ecf20Sopenharmony_ciadditionalProperties: false 1798c2ecf20Sopenharmony_ci 1808c2ecf20Sopenharmony_ciallOf: 1818c2ecf20Sopenharmony_ci - if: 1828c2ecf20Sopenharmony_ci properties: 1838c2ecf20Sopenharmony_ci compatible: 1848c2ecf20Sopenharmony_ci contains: 1858c2ecf20Sopenharmony_ci enum: 1868c2ecf20Sopenharmony_ci - allwinner,sun4i-a10-tcon 1878c2ecf20Sopenharmony_ci - allwinner,sun5i-a13-tcon 1888c2ecf20Sopenharmony_ci - allwinner,sun7i-a20-tcon 1898c2ecf20Sopenharmony_ci 1908c2ecf20Sopenharmony_ci then: 1918c2ecf20Sopenharmony_ci properties: 1928c2ecf20Sopenharmony_ci clocks: 1938c2ecf20Sopenharmony_ci minItems: 3 1948c2ecf20Sopenharmony_ci 1958c2ecf20Sopenharmony_ci clock-names: 1968c2ecf20Sopenharmony_ci items: 1978c2ecf20Sopenharmony_ci - const: ahb 1988c2ecf20Sopenharmony_ci - const: tcon-ch0 1998c2ecf20Sopenharmony_ci - const: tcon-ch1 2008c2ecf20Sopenharmony_ci 2018c2ecf20Sopenharmony_ci - if: 2028c2ecf20Sopenharmony_ci properties: 2038c2ecf20Sopenharmony_ci compatible: 2048c2ecf20Sopenharmony_ci contains: 2058c2ecf20Sopenharmony_ci enum: 2068c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-tcon 2078c2ecf20Sopenharmony_ci - allwinner,sun6i-a31s-tcon 2088c2ecf20Sopenharmony_ci 2098c2ecf20Sopenharmony_ci then: 2108c2ecf20Sopenharmony_ci properties: 2118c2ecf20Sopenharmony_ci clocks: 2128c2ecf20Sopenharmony_ci minItems: 4 2138c2ecf20Sopenharmony_ci 2148c2ecf20Sopenharmony_ci clock-names: 2158c2ecf20Sopenharmony_ci items: 2168c2ecf20Sopenharmony_ci - const: ahb 2178c2ecf20Sopenharmony_ci - const: tcon-ch0 2188c2ecf20Sopenharmony_ci - const: tcon-ch1 2198c2ecf20Sopenharmony_ci - const: lvds-alt 2208c2ecf20Sopenharmony_ci 2218c2ecf20Sopenharmony_ci - if: 2228c2ecf20Sopenharmony_ci properties: 2238c2ecf20Sopenharmony_ci compatible: 2248c2ecf20Sopenharmony_ci contains: 2258c2ecf20Sopenharmony_ci enum: 2268c2ecf20Sopenharmony_ci - allwinner,sun8i-a23-tcon 2278c2ecf20Sopenharmony_ci - allwinner,sun8i-a33-tcon 2288c2ecf20Sopenharmony_ci 2298c2ecf20Sopenharmony_ci then: 2308c2ecf20Sopenharmony_ci properties: 2318c2ecf20Sopenharmony_ci clocks: 2328c2ecf20Sopenharmony_ci minItems: 3 2338c2ecf20Sopenharmony_ci 2348c2ecf20Sopenharmony_ci clock-names: 2358c2ecf20Sopenharmony_ci items: 2368c2ecf20Sopenharmony_ci - const: ahb 2378c2ecf20Sopenharmony_ci - const: tcon-ch0 2388c2ecf20Sopenharmony_ci - const: lvds-alt 2398c2ecf20Sopenharmony_ci 2408c2ecf20Sopenharmony_ci - if: 2418c2ecf20Sopenharmony_ci properties: 2428c2ecf20Sopenharmony_ci compatible: 2438c2ecf20Sopenharmony_ci contains: 2448c2ecf20Sopenharmony_ci enum: 2458c2ecf20Sopenharmony_ci - allwinner,sun8i-a83t-tcon-lcd 2468c2ecf20Sopenharmony_ci - allwinner,sun8i-v3s-tcon 2478c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-tcon-lcd 2488c2ecf20Sopenharmony_ci 2498c2ecf20Sopenharmony_ci then: 2508c2ecf20Sopenharmony_ci properties: 2518c2ecf20Sopenharmony_ci clocks: 2528c2ecf20Sopenharmony_ci minItems: 2 2538c2ecf20Sopenharmony_ci 2548c2ecf20Sopenharmony_ci clock-names: 2558c2ecf20Sopenharmony_ci items: 2568c2ecf20Sopenharmony_ci - const: ahb 2578c2ecf20Sopenharmony_ci - const: tcon-ch0 2588c2ecf20Sopenharmony_ci 2598c2ecf20Sopenharmony_ci - if: 2608c2ecf20Sopenharmony_ci properties: 2618c2ecf20Sopenharmony_ci compatible: 2628c2ecf20Sopenharmony_ci contains: 2638c2ecf20Sopenharmony_ci enum: 2648c2ecf20Sopenharmony_ci - allwinner,sun8i-a83t-tcon-tv 2658c2ecf20Sopenharmony_ci - allwinner,sun8i-r40-tcon-tv 2668c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-tcon-tv 2678c2ecf20Sopenharmony_ci 2688c2ecf20Sopenharmony_ci then: 2698c2ecf20Sopenharmony_ci properties: 2708c2ecf20Sopenharmony_ci clocks: 2718c2ecf20Sopenharmony_ci minItems: 2 2728c2ecf20Sopenharmony_ci 2738c2ecf20Sopenharmony_ci clock-names: 2748c2ecf20Sopenharmony_ci items: 2758c2ecf20Sopenharmony_ci - const: ahb 2768c2ecf20Sopenharmony_ci - const: tcon-ch1 2778c2ecf20Sopenharmony_ci 2788c2ecf20Sopenharmony_ci - if: 2798c2ecf20Sopenharmony_ci properties: 2808c2ecf20Sopenharmony_ci compatible: 2818c2ecf20Sopenharmony_ci contains: 2828c2ecf20Sopenharmony_ci enum: 2838c2ecf20Sopenharmony_ci - allwinner,sun5i-a13-tcon 2848c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-tcon 2858c2ecf20Sopenharmony_ci - allwinner,sun6i-a31s-tcon 2868c2ecf20Sopenharmony_ci - allwinner,sun7i-a20-tcon 2878c2ecf20Sopenharmony_ci - allwinner,sun8i-a23-tcon 2888c2ecf20Sopenharmony_ci - allwinner,sun8i-a33-tcon 2898c2ecf20Sopenharmony_ci - allwinner,sun8i-v3s-tcon 2908c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-tcon-lcd 2918c2ecf20Sopenharmony_ci - allwinner,sun4i-a10-tcon 2928c2ecf20Sopenharmony_ci - allwinner,sun8i-a83t-tcon-lcd 2938c2ecf20Sopenharmony_ci 2948c2ecf20Sopenharmony_ci then: 2958c2ecf20Sopenharmony_ci required: 2968c2ecf20Sopenharmony_ci - "#clock-cells" 2978c2ecf20Sopenharmony_ci - clock-output-names 2988c2ecf20Sopenharmony_ci 2998c2ecf20Sopenharmony_ci - if: 3008c2ecf20Sopenharmony_ci properties: 3018c2ecf20Sopenharmony_ci compatible: 3028c2ecf20Sopenharmony_ci contains: 3038c2ecf20Sopenharmony_ci enum: 3048c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-tcon 3058c2ecf20Sopenharmony_ci - allwinner,sun6i-a31s-tcon 3068c2ecf20Sopenharmony_ci - allwinner,sun8i-a23-tcon 3078c2ecf20Sopenharmony_ci - allwinner,sun8i-a33-tcon 3088c2ecf20Sopenharmony_ci - allwinner,sun8i-a83t-tcon-lcd 3098c2ecf20Sopenharmony_ci 3108c2ecf20Sopenharmony_ci then: 3118c2ecf20Sopenharmony_ci properties: 3128c2ecf20Sopenharmony_ci resets: 3138c2ecf20Sopenharmony_ci minItems: 2 3148c2ecf20Sopenharmony_ci 3158c2ecf20Sopenharmony_ci reset-names: 3168c2ecf20Sopenharmony_ci items: 3178c2ecf20Sopenharmony_ci - const: lcd 3188c2ecf20Sopenharmony_ci - const: lvds 3198c2ecf20Sopenharmony_ci 3208c2ecf20Sopenharmony_ci - if: 3218c2ecf20Sopenharmony_ci properties: 3228c2ecf20Sopenharmony_ci compatible: 3238c2ecf20Sopenharmony_ci contains: 3248c2ecf20Sopenharmony_ci enum: 3258c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-tcon-lcd 3268c2ecf20Sopenharmony_ci 3278c2ecf20Sopenharmony_ci then: 3288c2ecf20Sopenharmony_ci properties: 3298c2ecf20Sopenharmony_ci resets: 3308c2ecf20Sopenharmony_ci minItems: 3 3318c2ecf20Sopenharmony_ci 3328c2ecf20Sopenharmony_ci reset-names: 3338c2ecf20Sopenharmony_ci items: 3348c2ecf20Sopenharmony_ci - const: lcd 3358c2ecf20Sopenharmony_ci - const: edp 3368c2ecf20Sopenharmony_ci - const: lvds 3378c2ecf20Sopenharmony_ci 3388c2ecf20Sopenharmony_ci - if: 3398c2ecf20Sopenharmony_ci properties: 3408c2ecf20Sopenharmony_ci compatible: 3418c2ecf20Sopenharmony_ci contains: 3428c2ecf20Sopenharmony_ci enum: 3438c2ecf20Sopenharmony_ci - allwinner,sun9i-a80-tcon-tv 3448c2ecf20Sopenharmony_ci 3458c2ecf20Sopenharmony_ci then: 3468c2ecf20Sopenharmony_ci properties: 3478c2ecf20Sopenharmony_ci resets: 3488c2ecf20Sopenharmony_ci minItems: 2 3498c2ecf20Sopenharmony_ci 3508c2ecf20Sopenharmony_ci reset-names: 3518c2ecf20Sopenharmony_ci items: 3528c2ecf20Sopenharmony_ci - const: lcd 3538c2ecf20Sopenharmony_ci - const: edp 3548c2ecf20Sopenharmony_ci 3558c2ecf20Sopenharmony_ci - if: 3568c2ecf20Sopenharmony_ci properties: 3578c2ecf20Sopenharmony_ci compatible: 3588c2ecf20Sopenharmony_ci contains: 3598c2ecf20Sopenharmony_ci enum: 3608c2ecf20Sopenharmony_ci - allwinner,sun4i-a10-tcon 3618c2ecf20Sopenharmony_ci - allwinner,sun5i-a13-tcon 3628c2ecf20Sopenharmony_ci - allwinner,sun6i-a31-tcon 3638c2ecf20Sopenharmony_ci - allwinner,sun6i-a31s-tcon 3648c2ecf20Sopenharmony_ci - allwinner,sun7i-a20-tcon 3658c2ecf20Sopenharmony_ci - allwinner,sun8i-a23-tcon 3668c2ecf20Sopenharmony_ci - allwinner,sun8i-a33-tcon 3678c2ecf20Sopenharmony_ci 3688c2ecf20Sopenharmony_ci then: 3698c2ecf20Sopenharmony_ci required: 3708c2ecf20Sopenharmony_ci - dmas 3718c2ecf20Sopenharmony_ci 3728c2ecf20Sopenharmony_ciexamples: 3738c2ecf20Sopenharmony_ci - | 3748c2ecf20Sopenharmony_ci #include <dt-bindings/dma/sun4i-a10.h> 3758c2ecf20Sopenharmony_ci 3768c2ecf20Sopenharmony_ci /* 3778c2ecf20Sopenharmony_ci * This comes from the clock/sun4i-a10-ccu.h and 3788c2ecf20Sopenharmony_ci * reset/sun4i-a10-ccu.h headers, but we can't include them since 3798c2ecf20Sopenharmony_ci * it would trigger a bunch of warnings for redefinitions of 3808c2ecf20Sopenharmony_ci * symbols with the other example. 3818c2ecf20Sopenharmony_ci */ 3828c2ecf20Sopenharmony_ci 3838c2ecf20Sopenharmony_ci #define CLK_AHB_LCD0 56 3848c2ecf20Sopenharmony_ci #define CLK_TCON0_CH0 149 3858c2ecf20Sopenharmony_ci #define CLK_TCON0_CH1 155 3868c2ecf20Sopenharmony_ci #define RST_TCON0 11 3878c2ecf20Sopenharmony_ci 3888c2ecf20Sopenharmony_ci lcd-controller@1c0c000 { 3898c2ecf20Sopenharmony_ci compatible = "allwinner,sun4i-a10-tcon"; 3908c2ecf20Sopenharmony_ci reg = <0x01c0c000 0x1000>; 3918c2ecf20Sopenharmony_ci interrupts = <44>; 3928c2ecf20Sopenharmony_ci resets = <&ccu RST_TCON0>; 3938c2ecf20Sopenharmony_ci reset-names = "lcd"; 3948c2ecf20Sopenharmony_ci clocks = <&ccu CLK_AHB_LCD0>, 3958c2ecf20Sopenharmony_ci <&ccu CLK_TCON0_CH0>, 3968c2ecf20Sopenharmony_ci <&ccu CLK_TCON0_CH1>; 3978c2ecf20Sopenharmony_ci clock-names = "ahb", 3988c2ecf20Sopenharmony_ci "tcon-ch0", 3998c2ecf20Sopenharmony_ci "tcon-ch1"; 4008c2ecf20Sopenharmony_ci clock-output-names = "tcon0-pixel-clock"; 4018c2ecf20Sopenharmony_ci #clock-cells = <0>; 4028c2ecf20Sopenharmony_ci dmas = <&dma SUN4I_DMA_DEDICATED 14>; 4038c2ecf20Sopenharmony_ci 4048c2ecf20Sopenharmony_ci ports { 4058c2ecf20Sopenharmony_ci #address-cells = <1>; 4068c2ecf20Sopenharmony_ci #size-cells = <0>; 4078c2ecf20Sopenharmony_ci 4088c2ecf20Sopenharmony_ci port@0 { 4098c2ecf20Sopenharmony_ci #address-cells = <1>; 4108c2ecf20Sopenharmony_ci #size-cells = <0>; 4118c2ecf20Sopenharmony_ci reg = <0>; 4128c2ecf20Sopenharmony_ci 4138c2ecf20Sopenharmony_ci endpoint@0 { 4148c2ecf20Sopenharmony_ci reg = <0>; 4158c2ecf20Sopenharmony_ci remote-endpoint = <&be0_out_tcon0>; 4168c2ecf20Sopenharmony_ci }; 4178c2ecf20Sopenharmony_ci 4188c2ecf20Sopenharmony_ci endpoint@1 { 4198c2ecf20Sopenharmony_ci reg = <1>; 4208c2ecf20Sopenharmony_ci remote-endpoint = <&be1_out_tcon0>; 4218c2ecf20Sopenharmony_ci }; 4228c2ecf20Sopenharmony_ci }; 4238c2ecf20Sopenharmony_ci 4248c2ecf20Sopenharmony_ci port@1 { 4258c2ecf20Sopenharmony_ci #address-cells = <1>; 4268c2ecf20Sopenharmony_ci #size-cells = <0>; 4278c2ecf20Sopenharmony_ci reg = <1>; 4288c2ecf20Sopenharmony_ci 4298c2ecf20Sopenharmony_ci endpoint@1 { 4308c2ecf20Sopenharmony_ci reg = <1>; 4318c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_in_tcon0>; 4328c2ecf20Sopenharmony_ci allwinner,tcon-channel = <1>; 4338c2ecf20Sopenharmony_ci }; 4348c2ecf20Sopenharmony_ci }; 4358c2ecf20Sopenharmony_ci }; 4368c2ecf20Sopenharmony_ci }; 4378c2ecf20Sopenharmony_ci 4388c2ecf20Sopenharmony_ci #undef CLK_AHB_LCD0 4398c2ecf20Sopenharmony_ci #undef CLK_TCON0_CH0 4408c2ecf20Sopenharmony_ci #undef CLK_TCON0_CH1 4418c2ecf20Sopenharmony_ci #undef RST_TCON0 4428c2ecf20Sopenharmony_ci 4438c2ecf20Sopenharmony_ci - | 4448c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 4458c2ecf20Sopenharmony_ci 4468c2ecf20Sopenharmony_ci /* 4478c2ecf20Sopenharmony_ci * This comes from the clock/sun6i-a31-ccu.h and 4488c2ecf20Sopenharmony_ci * reset/sun6i-a31-ccu.h headers, but we can't include them since 4498c2ecf20Sopenharmony_ci * it would trigger a bunch of warnings for redefinitions of 4508c2ecf20Sopenharmony_ci * symbols with the other example. 4518c2ecf20Sopenharmony_ci */ 4528c2ecf20Sopenharmony_ci 4538c2ecf20Sopenharmony_ci #define CLK_PLL_MIPI 15 4548c2ecf20Sopenharmony_ci #define CLK_AHB1_LCD0 47 4558c2ecf20Sopenharmony_ci #define CLK_LCD0_CH0 127 4568c2ecf20Sopenharmony_ci #define CLK_LCD0_CH1 129 4578c2ecf20Sopenharmony_ci #define RST_AHB1_LCD0 27 4588c2ecf20Sopenharmony_ci #define RST_AHB1_LVDS 41 4598c2ecf20Sopenharmony_ci 4608c2ecf20Sopenharmony_ci lcd-controller@1c0c000 { 4618c2ecf20Sopenharmony_ci compatible = "allwinner,sun6i-a31-tcon"; 4628c2ecf20Sopenharmony_ci reg = <0x01c0c000 0x1000>; 4638c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 4648c2ecf20Sopenharmony_ci dmas = <&dma 11>; 4658c2ecf20Sopenharmony_ci resets = <&ccu RST_AHB1_LCD0>, <&ccu RST_AHB1_LVDS>; 4668c2ecf20Sopenharmony_ci reset-names = "lcd", "lvds"; 4678c2ecf20Sopenharmony_ci clocks = <&ccu CLK_AHB1_LCD0>, 4688c2ecf20Sopenharmony_ci <&ccu CLK_LCD0_CH0>, 4698c2ecf20Sopenharmony_ci <&ccu CLK_LCD0_CH1>, 4708c2ecf20Sopenharmony_ci <&ccu CLK_PLL_MIPI>; 4718c2ecf20Sopenharmony_ci clock-names = "ahb", 4728c2ecf20Sopenharmony_ci "tcon-ch0", 4738c2ecf20Sopenharmony_ci "tcon-ch1", 4748c2ecf20Sopenharmony_ci "lvds-alt"; 4758c2ecf20Sopenharmony_ci clock-output-names = "tcon0-pixel-clock"; 4768c2ecf20Sopenharmony_ci #clock-cells = <0>; 4778c2ecf20Sopenharmony_ci 4788c2ecf20Sopenharmony_ci ports { 4798c2ecf20Sopenharmony_ci #address-cells = <1>; 4808c2ecf20Sopenharmony_ci #size-cells = <0>; 4818c2ecf20Sopenharmony_ci 4828c2ecf20Sopenharmony_ci port@0 { 4838c2ecf20Sopenharmony_ci #address-cells = <1>; 4848c2ecf20Sopenharmony_ci #size-cells = <0>; 4858c2ecf20Sopenharmony_ci reg = <0>; 4868c2ecf20Sopenharmony_ci 4878c2ecf20Sopenharmony_ci endpoint@0 { 4888c2ecf20Sopenharmony_ci reg = <0>; 4898c2ecf20Sopenharmony_ci remote-endpoint = <&drc0_out_tcon0>; 4908c2ecf20Sopenharmony_ci }; 4918c2ecf20Sopenharmony_ci 4928c2ecf20Sopenharmony_ci endpoint@1 { 4938c2ecf20Sopenharmony_ci reg = <1>; 4948c2ecf20Sopenharmony_ci remote-endpoint = <&drc1_out_tcon0>; 4958c2ecf20Sopenharmony_ci }; 4968c2ecf20Sopenharmony_ci }; 4978c2ecf20Sopenharmony_ci 4988c2ecf20Sopenharmony_ci port@1 { 4998c2ecf20Sopenharmony_ci #address-cells = <1>; 5008c2ecf20Sopenharmony_ci #size-cells = <0>; 5018c2ecf20Sopenharmony_ci reg = <1>; 5028c2ecf20Sopenharmony_ci 5038c2ecf20Sopenharmony_ci endpoint@1 { 5048c2ecf20Sopenharmony_ci reg = <1>; 5058c2ecf20Sopenharmony_ci remote-endpoint = <&hdmi_in_tcon0>; 5068c2ecf20Sopenharmony_ci allwinner,tcon-channel = <1>; 5078c2ecf20Sopenharmony_ci }; 5088c2ecf20Sopenharmony_ci }; 5098c2ecf20Sopenharmony_ci }; 5108c2ecf20Sopenharmony_ci }; 5118c2ecf20Sopenharmony_ci 5128c2ecf20Sopenharmony_ci #undef CLK_PLL_MIPI 5138c2ecf20Sopenharmony_ci #undef CLK_AHB1_LCD0 5148c2ecf20Sopenharmony_ci #undef CLK_LCD0_CH0 5158c2ecf20Sopenharmony_ci #undef CLK_LCD0_CH1 5168c2ecf20Sopenharmony_ci #undef RST_AHB1_LCD0 5178c2ecf20Sopenharmony_ci #undef RST_AHB1_LVDS 5188c2ecf20Sopenharmony_ci 5198c2ecf20Sopenharmony_ci - | 5208c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 5218c2ecf20Sopenharmony_ci 5228c2ecf20Sopenharmony_ci /* 5238c2ecf20Sopenharmony_ci * This comes from the clock/sun9i-a80-ccu.h and 5248c2ecf20Sopenharmony_ci * reset/sun9i-a80-ccu.h headers, but we can't include them since 5258c2ecf20Sopenharmony_ci * it would trigger a bunch of warnings for redefinitions of 5268c2ecf20Sopenharmony_ci * symbols with the other example. 5278c2ecf20Sopenharmony_ci */ 5288c2ecf20Sopenharmony_ci 5298c2ecf20Sopenharmony_ci #define CLK_BUS_LCD0 102 5308c2ecf20Sopenharmony_ci #define CLK_LCD0 58 5318c2ecf20Sopenharmony_ci #define RST_BUS_LCD0 22 5328c2ecf20Sopenharmony_ci #define RST_BUS_EDP 24 5338c2ecf20Sopenharmony_ci #define RST_BUS_LVDS 25 5348c2ecf20Sopenharmony_ci 5358c2ecf20Sopenharmony_ci lcd-controller@3c00000 { 5368c2ecf20Sopenharmony_ci compatible = "allwinner,sun9i-a80-tcon-lcd"; 5378c2ecf20Sopenharmony_ci reg = <0x03c00000 0x10000>; 5388c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 5398c2ecf20Sopenharmony_ci clocks = <&ccu CLK_BUS_LCD0>, <&ccu CLK_LCD0>; 5408c2ecf20Sopenharmony_ci clock-names = "ahb", "tcon-ch0"; 5418c2ecf20Sopenharmony_ci resets = <&ccu RST_BUS_LCD0>, <&ccu RST_BUS_EDP>, <&ccu RST_BUS_LVDS>; 5428c2ecf20Sopenharmony_ci reset-names = "lcd", "edp", "lvds"; 5438c2ecf20Sopenharmony_ci clock-output-names = "tcon0-pixel-clock"; 5448c2ecf20Sopenharmony_ci #clock-cells = <0>; 5458c2ecf20Sopenharmony_ci 5468c2ecf20Sopenharmony_ci ports { 5478c2ecf20Sopenharmony_ci #address-cells = <1>; 5488c2ecf20Sopenharmony_ci #size-cells = <0>; 5498c2ecf20Sopenharmony_ci 5508c2ecf20Sopenharmony_ci port@0 { 5518c2ecf20Sopenharmony_ci reg = <0>; 5528c2ecf20Sopenharmony_ci 5538c2ecf20Sopenharmony_ci endpoint { 5548c2ecf20Sopenharmony_ci remote-endpoint = <&drc0_out_tcon0>; 5558c2ecf20Sopenharmony_ci }; 5568c2ecf20Sopenharmony_ci }; 5578c2ecf20Sopenharmony_ci 5588c2ecf20Sopenharmony_ci port@1 { 5598c2ecf20Sopenharmony_ci reg = <1>; 5608c2ecf20Sopenharmony_ci }; 5618c2ecf20Sopenharmony_ci }; 5628c2ecf20Sopenharmony_ci }; 5638c2ecf20Sopenharmony_ci 5648c2ecf20Sopenharmony_ci #undef CLK_BUS_TCON0 5658c2ecf20Sopenharmony_ci #undef CLK_TCON0 5668c2ecf20Sopenharmony_ci #undef RST_BUS_TCON0 5678c2ecf20Sopenharmony_ci #undef RST_BUS_EDP 5688c2ecf20Sopenharmony_ci #undef RST_BUS_LVDS 5698c2ecf20Sopenharmony_ci 5708c2ecf20Sopenharmony_ci - | 5718c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 5728c2ecf20Sopenharmony_ci 5738c2ecf20Sopenharmony_ci /* 5748c2ecf20Sopenharmony_ci * This comes from the clock/sun8i-a83t-ccu.h and 5758c2ecf20Sopenharmony_ci * reset/sun8i-a83t-ccu.h headers, but we can't include them since 5768c2ecf20Sopenharmony_ci * it would trigger a bunch of warnings for redefinitions of 5778c2ecf20Sopenharmony_ci * symbols with the other example. 5788c2ecf20Sopenharmony_ci */ 5798c2ecf20Sopenharmony_ci 5808c2ecf20Sopenharmony_ci #define CLK_BUS_TCON0 36 5818c2ecf20Sopenharmony_ci #define CLK_TCON0 85 5828c2ecf20Sopenharmony_ci #define RST_BUS_TCON0 22 5838c2ecf20Sopenharmony_ci #define RST_BUS_LVDS 31 5848c2ecf20Sopenharmony_ci 5858c2ecf20Sopenharmony_ci lcd-controller@1c0c000 { 5868c2ecf20Sopenharmony_ci compatible = "allwinner,sun8i-a83t-tcon-lcd"; 5878c2ecf20Sopenharmony_ci reg = <0x01c0c000 0x1000>; 5888c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 5898c2ecf20Sopenharmony_ci clocks = <&ccu CLK_BUS_TCON0>, <&ccu CLK_TCON0>; 5908c2ecf20Sopenharmony_ci clock-names = "ahb", "tcon-ch0"; 5918c2ecf20Sopenharmony_ci clock-output-names = "tcon-pixel-clock"; 5928c2ecf20Sopenharmony_ci #clock-cells = <0>; 5938c2ecf20Sopenharmony_ci resets = <&ccu RST_BUS_TCON0>, <&ccu RST_BUS_LVDS>; 5948c2ecf20Sopenharmony_ci reset-names = "lcd", "lvds"; 5958c2ecf20Sopenharmony_ci 5968c2ecf20Sopenharmony_ci ports { 5978c2ecf20Sopenharmony_ci #address-cells = <1>; 5988c2ecf20Sopenharmony_ci #size-cells = <0>; 5998c2ecf20Sopenharmony_ci 6008c2ecf20Sopenharmony_ci port@0 { 6018c2ecf20Sopenharmony_ci #address-cells = <1>; 6028c2ecf20Sopenharmony_ci #size-cells = <0>; 6038c2ecf20Sopenharmony_ci reg = <0>; 6048c2ecf20Sopenharmony_ci 6058c2ecf20Sopenharmony_ci endpoint@0 { 6068c2ecf20Sopenharmony_ci reg = <0>; 6078c2ecf20Sopenharmony_ci remote-endpoint = <&mixer0_out_tcon0>; 6088c2ecf20Sopenharmony_ci }; 6098c2ecf20Sopenharmony_ci 6108c2ecf20Sopenharmony_ci endpoint@1 { 6118c2ecf20Sopenharmony_ci reg = <1>; 6128c2ecf20Sopenharmony_ci remote-endpoint = <&mixer1_out_tcon0>; 6138c2ecf20Sopenharmony_ci }; 6148c2ecf20Sopenharmony_ci }; 6158c2ecf20Sopenharmony_ci 6168c2ecf20Sopenharmony_ci port@1 { 6178c2ecf20Sopenharmony_ci reg = <1>; 6188c2ecf20Sopenharmony_ci }; 6198c2ecf20Sopenharmony_ci }; 6208c2ecf20Sopenharmony_ci }; 6218c2ecf20Sopenharmony_ci 6228c2ecf20Sopenharmony_ci #undef CLK_BUS_TCON0 6238c2ecf20Sopenharmony_ci #undef CLK_TCON0 6248c2ecf20Sopenharmony_ci #undef RST_BUS_TCON0 6258c2ecf20Sopenharmony_ci #undef RST_BUS_LVDS 6268c2ecf20Sopenharmony_ci 6278c2ecf20Sopenharmony_ci - | 6288c2ecf20Sopenharmony_ci #include <dt-bindings/interrupt-controller/arm-gic.h> 6298c2ecf20Sopenharmony_ci 6308c2ecf20Sopenharmony_ci /* 6318c2ecf20Sopenharmony_ci * This comes from the clock/sun8i-r40-ccu.h and 6328c2ecf20Sopenharmony_ci * reset/sun8i-r40-ccu.h headers, but we can't include them since 6338c2ecf20Sopenharmony_ci * it would trigger a bunch of warnings for redefinitions of 6348c2ecf20Sopenharmony_ci * symbols with the other example. 6358c2ecf20Sopenharmony_ci */ 6368c2ecf20Sopenharmony_ci 6378c2ecf20Sopenharmony_ci #define CLK_BUS_TCON_TV0 73 6388c2ecf20Sopenharmony_ci #define RST_BUS_TCON_TV0 49 6398c2ecf20Sopenharmony_ci 6408c2ecf20Sopenharmony_ci tcon_tv0: lcd-controller@1c73000 { 6418c2ecf20Sopenharmony_ci compatible = "allwinner,sun8i-r40-tcon-tv"; 6428c2ecf20Sopenharmony_ci reg = <0x01c73000 0x1000>; 6438c2ecf20Sopenharmony_ci interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_HIGH>; 6448c2ecf20Sopenharmony_ci clocks = <&ccu CLK_BUS_TCON_TV0>, <&tcon_top 0>; 6458c2ecf20Sopenharmony_ci clock-names = "ahb", "tcon-ch1"; 6468c2ecf20Sopenharmony_ci resets = <&ccu RST_BUS_TCON_TV0>; 6478c2ecf20Sopenharmony_ci reset-names = "lcd"; 6488c2ecf20Sopenharmony_ci 6498c2ecf20Sopenharmony_ci ports { 6508c2ecf20Sopenharmony_ci #address-cells = <1>; 6518c2ecf20Sopenharmony_ci #size-cells = <0>; 6528c2ecf20Sopenharmony_ci 6538c2ecf20Sopenharmony_ci port@0 { 6548c2ecf20Sopenharmony_ci #address-cells = <1>; 6558c2ecf20Sopenharmony_ci #size-cells = <0>; 6568c2ecf20Sopenharmony_ci reg = <0>; 6578c2ecf20Sopenharmony_ci 6588c2ecf20Sopenharmony_ci endpoint@0 { 6598c2ecf20Sopenharmony_ci reg = <0>; 6608c2ecf20Sopenharmony_ci remote-endpoint = <&tcon_top_mixer0_out_tcon_tv0>; 6618c2ecf20Sopenharmony_ci }; 6628c2ecf20Sopenharmony_ci 6638c2ecf20Sopenharmony_ci endpoint@1 { 6648c2ecf20Sopenharmony_ci reg = <1>; 6658c2ecf20Sopenharmony_ci remote-endpoint = <&tcon_top_mixer1_out_tcon_tv0>; 6668c2ecf20Sopenharmony_ci }; 6678c2ecf20Sopenharmony_ci }; 6688c2ecf20Sopenharmony_ci 6698c2ecf20Sopenharmony_ci tcon_tv0_out: port@1 { 6708c2ecf20Sopenharmony_ci #address-cells = <1>; 6718c2ecf20Sopenharmony_ci #size-cells = <0>; 6728c2ecf20Sopenharmony_ci reg = <1>; 6738c2ecf20Sopenharmony_ci 6748c2ecf20Sopenharmony_ci endpoint@1 { 6758c2ecf20Sopenharmony_ci reg = <1>; 6768c2ecf20Sopenharmony_ci remote-endpoint = <&tcon_top_hdmi_in_tcon_tv0>; 6778c2ecf20Sopenharmony_ci }; 6788c2ecf20Sopenharmony_ci }; 6798c2ecf20Sopenharmony_ci }; 6808c2ecf20Sopenharmony_ci }; 6818c2ecf20Sopenharmony_ci 6828c2ecf20Sopenharmony_ci #undef CLK_BUS_TCON_TV0 6838c2ecf20Sopenharmony_ci #undef RST_BUS_TCON_TV0 6848c2ecf20Sopenharmony_ci 6858c2ecf20Sopenharmony_ci... 686