196219b00SIcenowy Zheng/*
296219b00SIcenowy Zheng * Copyright (c) 2017 Icenowy Zheng <icenowy@aosc.xyz>
396219b00SIcenowy Zheng *
496219b00SIcenowy Zheng * Based on sun50i-a64-pine64.dts, which is:
596219b00SIcenowy Zheng *   Copyright (c) 2016 ARM Ltd.
696219b00SIcenowy Zheng *
796219b00SIcenowy Zheng * This file is dual-licensed: you can use it either under the terms
896219b00SIcenowy Zheng * of the GPL or the X11 license, at your option. Note that this dual
996219b00SIcenowy Zheng * licensing only applies to this file, and not this project as a
1096219b00SIcenowy Zheng * whole.
1196219b00SIcenowy Zheng *
1296219b00SIcenowy Zheng *  a) This library is free software; you can redistribute it and/or
1396219b00SIcenowy Zheng *     modify it under the terms of the GNU General Public License as
1496219b00SIcenowy Zheng *     published by the Free Software Foundation; either version 2 of the
1596219b00SIcenowy Zheng *     License, or (at your option) any later version.
1696219b00SIcenowy Zheng *
1796219b00SIcenowy Zheng *     This library is distributed in the hope that it will be useful,
1896219b00SIcenowy Zheng *     but WITHOUT ANY WARRANTY; without even the implied warranty of
1996219b00SIcenowy Zheng *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
2096219b00SIcenowy Zheng *     GNU General Public License for more details.
2196219b00SIcenowy Zheng *
2296219b00SIcenowy Zheng * Or, alternatively,
2396219b00SIcenowy Zheng *
2496219b00SIcenowy Zheng *  b) Permission is hereby granted, free of charge, to any person
2596219b00SIcenowy Zheng *     obtaining a copy of this software and associated documentation
2696219b00SIcenowy Zheng *     files (the "Software"), to deal in the Software without
2796219b00SIcenowy Zheng *     restriction, including without limitation the rights to use,
2896219b00SIcenowy Zheng *     copy, modify, merge, publish, distribute, sublicense, and/or
2996219b00SIcenowy Zheng *     sell copies of the Software, and to permit persons to whom the
3096219b00SIcenowy Zheng *     Software is furnished to do so, subject to the following
3196219b00SIcenowy Zheng *     conditions:
3296219b00SIcenowy Zheng *
3396219b00SIcenowy Zheng *     The above copyright notice and this permission notice shall be
3496219b00SIcenowy Zheng *     included in all copies or substantial portions of the Software.
3596219b00SIcenowy Zheng *
3696219b00SIcenowy Zheng *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
3796219b00SIcenowy Zheng *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
3896219b00SIcenowy Zheng *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
3996219b00SIcenowy Zheng *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
4096219b00SIcenowy Zheng *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
4196219b00SIcenowy Zheng *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
4296219b00SIcenowy Zheng *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
4396219b00SIcenowy Zheng *     OTHER DEALINGS IN THE SOFTWARE.
4496219b00SIcenowy Zheng */
4596219b00SIcenowy Zheng
4696219b00SIcenowy Zheng/dts-v1/;
4796219b00SIcenowy Zheng
4896219b00SIcenowy Zheng#include "sun50i-a64-sopine.dtsi"
4996219b00SIcenowy Zheng
5096219b00SIcenowy Zheng/ {
5196219b00SIcenowy Zheng	model = "SoPine with baseboard";
5296219b00SIcenowy Zheng	compatible = "pine64,sopine-baseboard", "pine64,sopine",
5396219b00SIcenowy Zheng		     "allwinner,sun50i-a64";
5496219b00SIcenowy Zheng
5596219b00SIcenowy Zheng	aliases {
5694f44288SCorentin Labbe		ethernet0 = &emac;
5796219b00SIcenowy Zheng		serial0 = &uart0;
5896219b00SIcenowy Zheng	};
5996219b00SIcenowy Zheng
6096219b00SIcenowy Zheng	chosen {
6196219b00SIcenowy Zheng		stdout-path = "serial0:115200n8";
6296219b00SIcenowy Zheng	};
6396219b00SIcenowy Zheng
64f4e4453aSJagan Teki	hdmi-connector {
65f4e4453aSJagan Teki		compatible = "hdmi-connector";
66f4e4453aSJagan Teki		type = "a";
67f4e4453aSJagan Teki
68f4e4453aSJagan Teki		port {
69f4e4453aSJagan Teki			hdmi_con_in: endpoint {
70f4e4453aSJagan Teki				remote-endpoint = <&hdmi_out_con>;
71f4e4453aSJagan Teki			};
72f4e4453aSJagan Teki		};
73f4e4453aSJagan Teki	};
74f4e4453aSJagan Teki
7596219b00SIcenowy Zheng	reg_vcc1v8: vcc1v8 {
7696219b00SIcenowy Zheng		compatible = "regulator-fixed";
7796219b00SIcenowy Zheng		regulator-name = "vcc1v8";
7896219b00SIcenowy Zheng		regulator-min-microvolt = <1800000>;
7996219b00SIcenowy Zheng		regulator-max-microvolt = <1800000>;
8096219b00SIcenowy Zheng	};
8196219b00SIcenowy Zheng};
8296219b00SIcenowy Zheng
835e99c99aSOskari Lemmela&ac_power_supply {
845e99c99aSOskari Lemmela	status = "okay";
855e99c99aSOskari Lemmela};
865e99c99aSOskari Lemmela
875e99c99aSOskari Lemmela&battery_power_supply {
885e99c99aSOskari Lemmela	status = "okay";
895e99c99aSOskari Lemmela};
905e99c99aSOskari Lemmela
91498c21f2SVasily Khoruzhick&codec {
92498c21f2SVasily Khoruzhick	status = "okay";
93498c21f2SVasily Khoruzhick};
94498c21f2SVasily Khoruzhick
95498c21f2SVasily Khoruzhick&codec_analog {
96498c21f2SVasily Khoruzhick	status = "okay";
97498c21f2SVasily Khoruzhick};
98498c21f2SVasily Khoruzhick
99498c21f2SVasily Khoruzhick&dai {
100498c21f2SVasily Khoruzhick	status = "okay";
101498c21f2SVasily Khoruzhick};
102498c21f2SVasily Khoruzhick
103f4e4453aSJagan Teki&de {
104f4e4453aSJagan Teki	status = "okay";
105f4e4453aSJagan Teki};
106f4e4453aSJagan Teki
10796219b00SIcenowy Zheng&ehci0 {
10896219b00SIcenowy Zheng	status = "okay";
10996219b00SIcenowy Zheng};
11096219b00SIcenowy Zheng
11196219b00SIcenowy Zheng&ehci1 {
11296219b00SIcenowy Zheng	status = "okay";
11396219b00SIcenowy Zheng};
11496219b00SIcenowy Zheng
11594f44288SCorentin Labbe&emac {
11694f44288SCorentin Labbe	pinctrl-names = "default";
11794f44288SCorentin Labbe	pinctrl-0 = <&rgmii_pins>;
11894f44288SCorentin Labbe	phy-mode = "rgmii";
11994f44288SCorentin Labbe	phy-handle = <&ext_rgmii_phy>;
120bdfe4cebSIcenowy Zheng	phy-supply = <&reg_dc1sw>;
12194f44288SCorentin Labbe	status = "okay";
12294f44288SCorentin Labbe};
12394f44288SCorentin Labbe
124f4e4453aSJagan Teki&hdmi {
125f4e4453aSJagan Teki	hvcc-supply = <&reg_dldo1>;
126f4e4453aSJagan Teki	status = "okay";
127f4e4453aSJagan Teki};
128f4e4453aSJagan Teki
129f4e4453aSJagan Teki&hdmi_out {
130f4e4453aSJagan Teki	hdmi_out_con: endpoint {
131f4e4453aSJagan Teki		remote-endpoint = <&hdmi_con_in>;
132f4e4453aSJagan Teki	};
133f4e4453aSJagan Teki};
134f4e4453aSJagan Teki
13594f44288SCorentin Labbe&mdio {
13694f44288SCorentin Labbe	ext_rgmii_phy: ethernet-phy@1 {
13794f44288SCorentin Labbe		compatible = "ethernet-phy-ieee802.3-c22";
13894f44288SCorentin Labbe		reg = <1>;
13994f44288SCorentin Labbe	};
14094f44288SCorentin Labbe};
14194f44288SCorentin Labbe
14296219b00SIcenowy Zheng&mmc2 {
14396219b00SIcenowy Zheng	pinctrl-names = "default";
14496219b00SIcenowy Zheng	pinctrl-0 = <&mmc2_pins>;
1457d556bfcSJagan Teki	vmmc-supply = <&reg_dcdc1>;
14696219b00SIcenowy Zheng	vqmmc-supply = <&reg_vcc1v8>;
14796219b00SIcenowy Zheng	bus-width = <8>;
14896219b00SIcenowy Zheng	non-removable;
14996219b00SIcenowy Zheng	cap-mmc-hw-reset;
15096219b00SIcenowy Zheng	status = "okay";
15196219b00SIcenowy Zheng};
15296219b00SIcenowy Zheng
15396219b00SIcenowy Zheng&ohci0 {
15496219b00SIcenowy Zheng	status = "okay";
15596219b00SIcenowy Zheng};
15696219b00SIcenowy Zheng
15796219b00SIcenowy Zheng&ohci1 {
15896219b00SIcenowy Zheng	status = "okay";
15996219b00SIcenowy Zheng};
16096219b00SIcenowy Zheng
16178c3cbc8SIcenowy Zheng&reg_dc1sw {
162ccdf3aaaSJernej Skrabec	/*
163ccdf3aaaSJernej Skrabec	 * Ethernet PHY needs 30ms to properly power up and some more
164ccdf3aaaSJernej Skrabec	 * to initialize. 100ms should be plenty of time to finish
165ccdf3aaaSJernej Skrabec	 * whole process.
166ccdf3aaaSJernej Skrabec	 */
167ccdf3aaaSJernej Skrabec	regulator-enable-ramp-delay = <100000>;
16878c3cbc8SIcenowy Zheng	regulator-name = "vcc-phy";
16978c3cbc8SIcenowy Zheng};
17078c3cbc8SIcenowy Zheng
17178c3cbc8SIcenowy Zheng&reg_dldo1 {
17278c3cbc8SIcenowy Zheng	regulator-min-microvolt = <3300000>;
17378c3cbc8SIcenowy Zheng	regulator-max-microvolt = <3300000>;
17478c3cbc8SIcenowy Zheng	regulator-name = "vcc-hdmi";
17578c3cbc8SIcenowy Zheng};
17678c3cbc8SIcenowy Zheng
17778c3cbc8SIcenowy Zheng&reg_dldo2 {
17878c3cbc8SIcenowy Zheng	regulator-min-microvolt = <3300000>;
17978c3cbc8SIcenowy Zheng	regulator-max-microvolt = <3300000>;
18078c3cbc8SIcenowy Zheng	regulator-name = "vcc-mipi";
18178c3cbc8SIcenowy Zheng};
18278c3cbc8SIcenowy Zheng
18378c3cbc8SIcenowy Zheng&reg_dldo4 {
18478c3cbc8SIcenowy Zheng	regulator-min-microvolt = <3300000>;
18578c3cbc8SIcenowy Zheng	regulator-max-microvolt = <3300000>;
18678c3cbc8SIcenowy Zheng	regulator-name = "vcc-wifi";
18778c3cbc8SIcenowy Zheng};
18878c3cbc8SIcenowy Zheng
1895cbef9f9SIcenowy Zheng&simplefb_hdmi {
1905cbef9f9SIcenowy Zheng	vcc-hdmi-supply = <&reg_dldo1>;
1915cbef9f9SIcenowy Zheng};
1925cbef9f9SIcenowy Zheng
193498c21f2SVasily Khoruzhick&sound {
194498c21f2SVasily Khoruzhick	simple-audio-card,aux-devs = <&codec_analog>;
195498c21f2SVasily Khoruzhick	simple-audio-card,widgets = "Microphone", "Microphone Jack",
196498c21f2SVasily Khoruzhick				    "Headphone", "Headphone Jack";
197498c21f2SVasily Khoruzhick	simple-audio-card,routing =
198498c21f2SVasily Khoruzhick			"Left DAC", "AIF1 Slot 0 Left",
199498c21f2SVasily Khoruzhick			"Right DAC", "AIF1 Slot 0 Right",
200498c21f2SVasily Khoruzhick			"Headphone Jack", "HP",
201498c21f2SVasily Khoruzhick			"AIF1 Slot 0 Left ADC", "Left ADC",
202498c21f2SVasily Khoruzhick			"AIF1 Slot 0 Right ADC", "Right ADC",
203498c21f2SVasily Khoruzhick			"MIC2", "Microphone Jack";
204498c21f2SVasily Khoruzhick	status = "okay";
205498c21f2SVasily Khoruzhick};
206498c21f2SVasily Khoruzhick
20796219b00SIcenowy Zheng&uart0 {
20896219b00SIcenowy Zheng	pinctrl-names = "default";
209d91ebb95SChen-Yu Tsai	pinctrl-0 = <&uart0_pb_pins>;
21096219b00SIcenowy Zheng	status = "okay";
21196219b00SIcenowy Zheng};
21296219b00SIcenowy Zheng
21396219b00SIcenowy Zheng&usb_otg {
21496219b00SIcenowy Zheng	dr_mode = "host";
21596219b00SIcenowy Zheng	status = "okay";
21696219b00SIcenowy Zheng};
21796219b00SIcenowy Zheng
21896219b00SIcenowy Zheng&usbphy {
21996219b00SIcenowy Zheng	status = "okay";
22096219b00SIcenowy Zheng};
221