1/*
2 * Copyright 2013 Maxime Ripard
3 *
4 * Maxime Ripard <maxime.ripard@free-electrons.com>
5 *
6 * This file is dual-licensed: you can use it either under the terms
7 * of the GPL or the X11 license, at your option. Note that this dual
8 * licensing only applies to this file, and not this project as a
9 * whole.
10 *
11 *  a) This library is free software; you can redistribute it and/or
12 *     modify it under the terms of the GNU General Public License as
13 *     published by the Free Software Foundation; either version 2 of the
14 *     License, or (at your option) any later version.
15 *
16 *     This library is distributed in the hope that it will be useful,
17 *     but WITHOUT ANY WARRANTY; without even the implied warranty of
18 *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
19 *     GNU General Public License for more details.
20 *
21 * Or, alternatively,
22 *
23 *  b) Permission is hereby granted, free of charge, to any person
24 *     obtaining a copy of this software and associated documentation
25 *     files (the "Software"), to deal in the Software without
26 *     restriction, including without limitation the rights to use,
27 *     copy, modify, merge, publish, distribute, sublicense, and/or
28 *     sell copies of the Software, and to permit persons to whom the
29 *     Software is furnished to do so, subject to the following
30 *     conditions:
31 *
32 *     The above copyright notice and this permission notice shall be
33 *     included in all copies or substantial portions of the Software.
34 *
35 *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
36 *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
37 *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
38 *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
39 *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
40 *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
41 *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
42 *     OTHER DEALINGS IN THE SOFTWARE.
43 */
44
45#include "sun5i.dtsi"
46
47#include <dt-bindings/dma/sun4i-a10.h>
48
49/ {
50	aliases {
51		ethernet0 = &emac;
52	};
53
54	chosen {
55		#address-cells = <1>;
56		#size-cells = <1>;
57		ranges;
58
59		framebuffer-lcd0-hdmi {
60			compatible = "allwinner,simple-framebuffer",
61				     "simple-framebuffer";
62			allwinner,pipeline = "de_be0-lcd0-hdmi";
63			clocks = <&ccu CLK_AHB_LCD>, <&ccu CLK_AHB_HDMI>,
64				 <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DRAM_DE_BE>,
65				 <&ccu CLK_DE_BE>, <&ccu CLK_HDMI>;
66			status = "disabled";
67		};
68	};
69
70	display-engine {
71		compatible = "allwinner,sun5i-a10s-display-engine";
72		allwinner,pipelines = <&fe0>;
73	};
74
75	soc {
76		hdmi: hdmi@1c16000 {
77			compatible = "allwinner,sun5i-a10s-hdmi";
78			reg = <0x01c16000 0x1000>;
79			interrupts = <58>;
80			clocks = <&ccu CLK_AHB_HDMI>, <&ccu CLK_HDMI>,
81				 <&ccu CLK_PLL_VIDEO0_2X>,
82				 <&ccu CLK_PLL_VIDEO1_2X>;
83			clock-names = "ahb", "mod", "pll-0", "pll-1";
84			dmas = <&dma SUN4I_DMA_NORMAL 16>,
85			       <&dma SUN4I_DMA_NORMAL 16>,
86			       <&dma SUN4I_DMA_DEDICATED 24>;
87			dma-names = "ddc-tx", "ddc-rx", "audio-tx";
88			status = "disabled";
89
90			ports {
91				#address-cells = <1>;
92				#size-cells = <0>;
93
94				hdmi_in: port@0 {
95					reg = <0>;
96
97					hdmi_in_tcon0: endpoint {
98						remote-endpoint = <&tcon0_out_hdmi>;
99					};
100				};
101
102				hdmi_out: port@1 {
103					reg = <1>;
104				};
105			};
106		};
107
108		pwm: pwm@1c20e00 {
109			compatible = "allwinner,sun5i-a10s-pwm";
110			reg = <0x01c20e00 0xc>;
111			clocks = <&ccu CLK_HOSC>;
112			#pwm-cells = <3>;
113			status = "disabled";
114		};
115	};
116};
117
118&ccu {
119	compatible = "allwinner,sun5i-a10s-ccu";
120};
121
122&mmc1 {
123	pinctrl-names = "default";
124	pinctrl-0 = <&mmc1_pins>;
125};
126
127&pio {
128	compatible = "allwinner,sun5i-a10s-pinctrl";
129
130	uart0_pb_pins: uart0-pb-pins {
131		pins = "PB19", "PB20";
132		function = "uart0";
133	};
134
135	uart2_pc_pins: uart2-pc-pins {
136		pins = "PC18", "PC19";
137		function = "uart2";
138	};
139
140	emac_pa_pins: emac-pa-pins {
141		pins = "PA0", "PA1", "PA2",
142				"PA3", "PA4", "PA5", "PA6",
143				"PA7", "PA8", "PA9", "PA10",
144				"PA11", "PA12", "PA13", "PA14",
145				"PA15", "PA16";
146		function = "emac";
147	};
148
149	mmc1_pins: mmc1-pins {
150		pins = "PG3", "PG4", "PG5",
151				 "PG6", "PG7", "PG8";
152		function = "mmc1";
153		drive-strength = <30>;
154	};
155
156	spi2_pb_pins: spi2-pb-pins {
157		pins = "PB12", "PB13", "PB14";
158		function = "spi2";
159	};
160
161	spi2_cs0_pb_pin: spi2-cs0-pb-pin {
162		pins = "PB11";
163		function = "spi2";
164	};
165};
166
167&tcon0_out {
168	tcon0_out_hdmi: endpoint@2 {
169		reg = <2>;
170		remote-endpoint = <&hdmi_in_tcon0>;
171		allwinner,tcon-channel = <1>;
172	};
173};
174