162306a36Sopenharmony_ci/*
262306a36Sopenharmony_ci * Copyright 2013 Maxime Ripard
362306a36Sopenharmony_ci *
462306a36Sopenharmony_ci * Maxime Ripard <maxime.ripard@free-electrons.com>
562306a36Sopenharmony_ci *
662306a36Sopenharmony_ci * This file is dual-licensed: you can use it either under the terms
762306a36Sopenharmony_ci * of the GPL or the X11 license, at your option. Note that this dual
862306a36Sopenharmony_ci * licensing only applies to this file, and not this project as a
962306a36Sopenharmony_ci * whole.
1062306a36Sopenharmony_ci *
1162306a36Sopenharmony_ci *  a) This library is free software; you can redistribute it and/or
1262306a36Sopenharmony_ci *     modify it under the terms of the GNU General Public License as
1362306a36Sopenharmony_ci *     published by the Free Software Foundation; either version 2 of the
1462306a36Sopenharmony_ci *     License, or (at your option) any later version.
1562306a36Sopenharmony_ci *
1662306a36Sopenharmony_ci *     This library is distributed in the hope that it will be useful,
1762306a36Sopenharmony_ci *     but WITHOUT ANY WARRANTY; without even the implied warranty of
1862306a36Sopenharmony_ci *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
1962306a36Sopenharmony_ci *     GNU General Public License for more details.
2062306a36Sopenharmony_ci *
2162306a36Sopenharmony_ci * Or, alternatively,
2262306a36Sopenharmony_ci *
2362306a36Sopenharmony_ci *  b) Permission is hereby granted, free of charge, to any person
2462306a36Sopenharmony_ci *     obtaining a copy of this software and associated documentation
2562306a36Sopenharmony_ci *     files (the "Software"), to deal in the Software without
2662306a36Sopenharmony_ci *     restriction, including without limitation the rights to use,
2762306a36Sopenharmony_ci *     copy, modify, merge, publish, distribute, sublicense, and/or
2862306a36Sopenharmony_ci *     sell copies of the Software, and to permit persons to whom the
2962306a36Sopenharmony_ci *     Software is furnished to do so, subject to the following
3062306a36Sopenharmony_ci *     conditions:
3162306a36Sopenharmony_ci *
3262306a36Sopenharmony_ci *     The above copyright notice and this permission notice shall be
3362306a36Sopenharmony_ci *     included in all copies or substantial portions of the Software.
3462306a36Sopenharmony_ci *
3562306a36Sopenharmony_ci *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
3662306a36Sopenharmony_ci *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
3762306a36Sopenharmony_ci *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
3862306a36Sopenharmony_ci *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
3962306a36Sopenharmony_ci *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
4062306a36Sopenharmony_ci *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4162306a36Sopenharmony_ci *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4262306a36Sopenharmony_ci *     OTHER DEALINGS IN THE SOFTWARE.
4362306a36Sopenharmony_ci */
4462306a36Sopenharmony_ci
4562306a36Sopenharmony_ci#include "sun5i.dtsi"
4662306a36Sopenharmony_ci
4762306a36Sopenharmony_ci#include <dt-bindings/dma/sun4i-a10.h>
4862306a36Sopenharmony_ci
4962306a36Sopenharmony_ci/ {
5062306a36Sopenharmony_ci	aliases {
5162306a36Sopenharmony_ci		ethernet0 = &emac;
5262306a36Sopenharmony_ci	};
5362306a36Sopenharmony_ci
5462306a36Sopenharmony_ci	chosen {
5562306a36Sopenharmony_ci		#address-cells = <1>;
5662306a36Sopenharmony_ci		#size-cells = <1>;
5762306a36Sopenharmony_ci		ranges;
5862306a36Sopenharmony_ci
5962306a36Sopenharmony_ci		framebuffer-lcd0-hdmi {
6062306a36Sopenharmony_ci			compatible = "allwinner,simple-framebuffer",
6162306a36Sopenharmony_ci				     "simple-framebuffer";
6262306a36Sopenharmony_ci			allwinner,pipeline = "de_be0-lcd0-hdmi";
6362306a36Sopenharmony_ci			clocks = <&ccu CLK_AHB_LCD>, <&ccu CLK_AHB_HDMI>,
6462306a36Sopenharmony_ci				 <&ccu CLK_AHB_DE_BE>, <&ccu CLK_DRAM_DE_BE>,
6562306a36Sopenharmony_ci				 <&ccu CLK_DE_BE>, <&ccu CLK_HDMI>;
6662306a36Sopenharmony_ci			status = "disabled";
6762306a36Sopenharmony_ci		};
6862306a36Sopenharmony_ci	};
6962306a36Sopenharmony_ci
7062306a36Sopenharmony_ci	display-engine {
7162306a36Sopenharmony_ci		compatible = "allwinner,sun5i-a10s-display-engine";
7262306a36Sopenharmony_ci		allwinner,pipelines = <&fe0>;
7362306a36Sopenharmony_ci	};
7462306a36Sopenharmony_ci
7562306a36Sopenharmony_ci	soc {
7662306a36Sopenharmony_ci		hdmi: hdmi@1c16000 {
7762306a36Sopenharmony_ci			compatible = "allwinner,sun5i-a10s-hdmi";
7862306a36Sopenharmony_ci			reg = <0x01c16000 0x1000>;
7962306a36Sopenharmony_ci			interrupts = <58>;
8062306a36Sopenharmony_ci			clocks = <&ccu CLK_AHB_HDMI>, <&ccu CLK_HDMI>,
8162306a36Sopenharmony_ci				 <&ccu CLK_PLL_VIDEO0_2X>,
8262306a36Sopenharmony_ci				 <&ccu CLK_PLL_VIDEO1_2X>;
8362306a36Sopenharmony_ci			clock-names = "ahb", "mod", "pll-0", "pll-1";
8462306a36Sopenharmony_ci			dmas = <&dma SUN4I_DMA_NORMAL 16>,
8562306a36Sopenharmony_ci			       <&dma SUN4I_DMA_NORMAL 16>,
8662306a36Sopenharmony_ci			       <&dma SUN4I_DMA_DEDICATED 24>;
8762306a36Sopenharmony_ci			dma-names = "ddc-tx", "ddc-rx", "audio-tx";
8862306a36Sopenharmony_ci			status = "disabled";
8962306a36Sopenharmony_ci
9062306a36Sopenharmony_ci			ports {
9162306a36Sopenharmony_ci				#address-cells = <1>;
9262306a36Sopenharmony_ci				#size-cells = <0>;
9362306a36Sopenharmony_ci
9462306a36Sopenharmony_ci				hdmi_in: port@0 {
9562306a36Sopenharmony_ci					reg = <0>;
9662306a36Sopenharmony_ci
9762306a36Sopenharmony_ci					hdmi_in_tcon0: endpoint {
9862306a36Sopenharmony_ci						remote-endpoint = <&tcon0_out_hdmi>;
9962306a36Sopenharmony_ci					};
10062306a36Sopenharmony_ci				};
10162306a36Sopenharmony_ci
10262306a36Sopenharmony_ci				hdmi_out: port@1 {
10362306a36Sopenharmony_ci					reg = <1>;
10462306a36Sopenharmony_ci				};
10562306a36Sopenharmony_ci			};
10662306a36Sopenharmony_ci		};
10762306a36Sopenharmony_ci
10862306a36Sopenharmony_ci		pwm: pwm@1c20e00 {
10962306a36Sopenharmony_ci			compatible = "allwinner,sun5i-a10s-pwm";
11062306a36Sopenharmony_ci			reg = <0x01c20e00 0xc>;
11162306a36Sopenharmony_ci			clocks = <&ccu CLK_HOSC>;
11262306a36Sopenharmony_ci			#pwm-cells = <3>;
11362306a36Sopenharmony_ci			status = "disabled";
11462306a36Sopenharmony_ci		};
11562306a36Sopenharmony_ci	};
11662306a36Sopenharmony_ci};
11762306a36Sopenharmony_ci
11862306a36Sopenharmony_ci&ccu {
11962306a36Sopenharmony_ci	compatible = "allwinner,sun5i-a10s-ccu";
12062306a36Sopenharmony_ci};
12162306a36Sopenharmony_ci
12262306a36Sopenharmony_ci&mmc1 {
12362306a36Sopenharmony_ci	pinctrl-names = "default";
12462306a36Sopenharmony_ci	pinctrl-0 = <&mmc1_pins>;
12562306a36Sopenharmony_ci};
12662306a36Sopenharmony_ci
12762306a36Sopenharmony_ci&pio {
12862306a36Sopenharmony_ci	compatible = "allwinner,sun5i-a10s-pinctrl";
12962306a36Sopenharmony_ci
13062306a36Sopenharmony_ci	uart0_pb_pins: uart0-pb-pins {
13162306a36Sopenharmony_ci		pins = "PB19", "PB20";
13262306a36Sopenharmony_ci		function = "uart0";
13362306a36Sopenharmony_ci	};
13462306a36Sopenharmony_ci
13562306a36Sopenharmony_ci	uart2_pc_pins: uart2-pc-pins {
13662306a36Sopenharmony_ci		pins = "PC18", "PC19";
13762306a36Sopenharmony_ci		function = "uart2";
13862306a36Sopenharmony_ci	};
13962306a36Sopenharmony_ci
14062306a36Sopenharmony_ci	emac_pa_pins: emac-pa-pins {
14162306a36Sopenharmony_ci		pins = "PA0", "PA1", "PA2",
14262306a36Sopenharmony_ci				"PA3", "PA4", "PA5", "PA6",
14362306a36Sopenharmony_ci				"PA7", "PA8", "PA9", "PA10",
14462306a36Sopenharmony_ci				"PA11", "PA12", "PA13", "PA14",
14562306a36Sopenharmony_ci				"PA15", "PA16";
14662306a36Sopenharmony_ci		function = "emac";
14762306a36Sopenharmony_ci	};
14862306a36Sopenharmony_ci
14962306a36Sopenharmony_ci	mmc1_pins: mmc1-pins {
15062306a36Sopenharmony_ci		pins = "PG3", "PG4", "PG5",
15162306a36Sopenharmony_ci				 "PG6", "PG7", "PG8";
15262306a36Sopenharmony_ci		function = "mmc1";
15362306a36Sopenharmony_ci		drive-strength = <30>;
15462306a36Sopenharmony_ci	};
15562306a36Sopenharmony_ci
15662306a36Sopenharmony_ci	spi2_pb_pins: spi2-pb-pins {
15762306a36Sopenharmony_ci		pins = "PB12", "PB13", "PB14";
15862306a36Sopenharmony_ci		function = "spi2";
15962306a36Sopenharmony_ci	};
16062306a36Sopenharmony_ci
16162306a36Sopenharmony_ci	spi2_cs0_pb_pin: spi2-cs0-pb-pin {
16262306a36Sopenharmony_ci		pins = "PB11";
16362306a36Sopenharmony_ci		function = "spi2";
16462306a36Sopenharmony_ci	};
16562306a36Sopenharmony_ci};
16662306a36Sopenharmony_ci
16762306a36Sopenharmony_ci&tcon0_out {
16862306a36Sopenharmony_ci	tcon0_out_hdmi: endpoint@2 {
16962306a36Sopenharmony_ci		reg = <2>;
17062306a36Sopenharmony_ci		remote-endpoint = <&hdmi_in_tcon0>;
17162306a36Sopenharmony_ci		allwinner,tcon-channel = <1>;
17262306a36Sopenharmony_ci	};
17362306a36Sopenharmony_ci};
174