Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

ARM: dts: sun6i: Add device nodes for first display pipeline

The A31 has 2 parallel display pipelines, which can be intermixed.
However the driver currently only supports one of them.

Signed-off-by: Chen-Yu Tsai <wens@csie.org>
Signed-off-by: Maxime Ripard <maxime.ripard@free-electrons.com>

authored by

Chen-Yu Tsai and committed by
Maxime Ripard
6d0e5b70 f19802bd

+160
+152
arch/arm/boot/dts/sun6i-a31.dtsi
··· 231 231 }; 232 232 }; 233 233 234 + de: display-engine { 235 + compatible = "allwinner,sun6i-a31-display-engine"; 236 + allwinner,pipelines = <&fe0>; 237 + }; 238 + 234 239 soc@01c00000 { 235 240 compatible = "simple-bus"; 236 241 #address-cells = <1>; ··· 249 244 clocks = <&ccu CLK_AHB1_DMA>; 250 245 resets = <&ccu RST_AHB1_DMA>; 251 246 #dma-cells = <1>; 247 + }; 248 + 249 + tcon0: lcd-controller@01c0c000 { 250 + compatible = "allwinner,sun6i-a31-tcon"; 251 + reg = <0x01c0c000 0x1000>; 252 + interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>; 253 + resets = <&ccu RST_AHB1_LCD0>; 254 + reset-names = "lcd"; 255 + clocks = <&ccu CLK_AHB1_LCD0>, 256 + <&ccu CLK_LCD0_CH0>, 257 + <&ccu CLK_LCD0_CH1>; 258 + clock-names = "ahb", 259 + "tcon-ch0", 260 + "tcon-ch1"; 261 + clock-output-names = "tcon0-pixel-clock"; 262 + status = "disabled"; 263 + 264 + ports { 265 + #address-cells = <1>; 266 + #size-cells = <0>; 267 + 268 + tcon0_in: port@0 { 269 + #address-cells = <1>; 270 + #size-cells = <0>; 271 + reg = <0>; 272 + 273 + tcon0_in_drc0: endpoint@0 { 274 + reg = <0>; 275 + remote-endpoint = <&drc0_out_tcon0>; 276 + }; 277 + }; 278 + 279 + tcon0_out: port@1 { 280 + #address-cells = <1>; 281 + #size-cells = <0>; 282 + reg = <1>; 283 + }; 284 + }; 252 285 }; 253 286 254 287 mmc0: mmc@01c0f000 { ··· 840 797 interrupt-controller; 841 798 #interrupt-cells = <3>; 842 799 interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>; 800 + }; 801 + 802 + fe0: display-frontend@01e00000 { 803 + compatible = "allwinner,sun6i-a31-display-frontend"; 804 + reg = <0x01e00000 0x20000>; 805 + interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>; 806 + clocks = <&ccu CLK_AHB1_FE0>, <&ccu CLK_FE0>, 807 + <&ccu CLK_DRAM_FE0>; 808 + clock-names = "ahb", "mod", 809 + "ram"; 810 + resets = <&ccu RST_AHB1_FE0>; 811 + 812 + ports { 813 + #address-cells = <1>; 814 + #size-cells = <0>; 815 + 816 + fe0_out: port@1 { 817 + #address-cells = <1>; 818 + #size-cells = <0>; 819 + reg = <1>; 820 + 821 + fe0_out_be0: endpoint@0 { 822 + reg = <0>; 823 + remote-endpoint = <&be0_in_fe0>; 824 + }; 825 + }; 826 + }; 827 + }; 828 + 829 + be0: display-backend@01e60000 { 830 + compatible = "allwinner,sun6i-a31-display-backend"; 831 + reg = <0x01e60000 0x10000>; 832 + interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>; 833 + clocks = <&ccu CLK_AHB1_BE0>, <&ccu CLK_BE0>, 834 + <&ccu CLK_DRAM_BE0>; 835 + clock-names = "ahb", "mod", 836 + "ram"; 837 + resets = <&ccu RST_AHB1_BE0>; 838 + 839 + assigned-clocks = <&ccu CLK_BE0>; 840 + assigned-clock-rates = <300000000>; 841 + 842 + ports { 843 + #address-cells = <1>; 844 + #size-cells = <0>; 845 + 846 + be0_in: port@0 { 847 + #address-cells = <1>; 848 + #size-cells = <0>; 849 + reg = <0>; 850 + 851 + be0_in_fe0: endpoint@0 { 852 + reg = <0>; 853 + remote-endpoint = <&fe0_out_be0>; 854 + }; 855 + }; 856 + 857 + be0_out: port@1 { 858 + #address-cells = <1>; 859 + #size-cells = <0>; 860 + reg = <1>; 861 + 862 + be0_out_drc0: endpoint@0 { 863 + reg = <0>; 864 + remote-endpoint = <&drc0_in_be0>; 865 + }; 866 + }; 867 + }; 868 + }; 869 + 870 + drc0: drc@01e70000 { 871 + compatible = "allwinner,sun6i-a31-drc"; 872 + reg = <0x01e70000 0x10000>; 873 + interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>; 874 + clocks = <&ccu CLK_AHB1_DRC0>, <&ccu CLK_IEP_DRC0>, 875 + <&ccu CLK_DRAM_DRC0>; 876 + clock-names = "ahb", "mod", 877 + "ram"; 878 + resets = <&ccu RST_AHB1_DRC0>; 879 + 880 + assigned-clocks = <&ccu CLK_IEP_DRC0>; 881 + assigned-clock-rates = <300000000>; 882 + 883 + ports { 884 + #address-cells = <1>; 885 + #size-cells = <0>; 886 + 887 + drc0_in: port@0 { 888 + #address-cells = <1>; 889 + #size-cells = <0>; 890 + reg = <0>; 891 + 892 + drc0_in_be0: endpoint@0 { 893 + reg = <0>; 894 + remote-endpoint = <&be0_out_drc0>; 895 + }; 896 + }; 897 + 898 + drc0_out: port@1 { 899 + #address-cells = <1>; 900 + #size-cells = <0>; 901 + reg = <1>; 902 + 903 + drc0_out_tcon0: endpoint@0 { 904 + reg = <0>; 905 + remote-endpoint = <&tcon0_in_drc0>; 906 + }; 907 + }; 908 + }; 843 909 }; 844 910 845 911 rtc: rtc@01f00000 {
+8
arch/arm/boot/dts/sun6i-a31s.dtsi
··· 48 48 49 49 #include "sun6i-a31.dtsi" 50 50 51 + &de { 52 + compatible = "allwinner,sun6i-a31s-display-engine"; 53 + }; 54 + 51 55 &pio { 52 56 compatible = "allwinner,sun6i-a31s-pinctrl"; 57 + }; 58 + 59 + &tcon0 { 60 + compatible = "allwinner,sun6i-a31s-tcon"; 53 61 };