1ea43d9b8SJagan Teki/*
2ea43d9b8SJagan Teki * Copyright (C) 2017 Jagan Teki <jteki@openedev.com>
3ea43d9b8SJagan Teki *
4ea43d9b8SJagan Teki * This file is dual-licensed: you can use it either under the terms
5ea43d9b8SJagan Teki * of the GPL or the X11 license, at your option. Note that this dual
6ea43d9b8SJagan Teki * licensing only applies to this file, and not this project as a
7ea43d9b8SJagan Teki * whole.
8ea43d9b8SJagan Teki *
9ea43d9b8SJagan Teki *  a) This library is free software; you can redistribute it and/or
10ea43d9b8SJagan Teki *     modify it under the terms of the GNU General Public License as
11ea43d9b8SJagan Teki *     published by the Free Software Foundation; either version 2 of the
12ea43d9b8SJagan Teki *     License, or (at your option) any later version.
13ea43d9b8SJagan Teki *
14ea43d9b8SJagan Teki *     This library is distributed in the hope that it will be useful,
15ea43d9b8SJagan Teki *     but WITHOUT ANY WARRANTY; without even the implied warranty of
16ea43d9b8SJagan Teki *     MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17ea43d9b8SJagan Teki *     GNU General Public License for more details.
18ea43d9b8SJagan Teki *
19ea43d9b8SJagan Teki * Or, alternatively,
20ea43d9b8SJagan Teki *
21ea43d9b8SJagan Teki *  b) Permission is hereby granted, free of charge, to any person
22ea43d9b8SJagan Teki *     obtaining a copy of this software and associated documentation
23ea43d9b8SJagan Teki *     files (the "Software"), to deal in the Software without
24ea43d9b8SJagan Teki *     restriction, including without limitation the rights to use,
25ea43d9b8SJagan Teki *     copy, modify, merge, publish, distribute, sublicense, and/or
26ea43d9b8SJagan Teki *     sell copies of the Software, and to permit persons to whom the
27ea43d9b8SJagan Teki *     Software is furnished to do so, subject to the following
28ea43d9b8SJagan Teki *     conditions:
29ea43d9b8SJagan Teki *
30ea43d9b8SJagan Teki *     The above copyright notice and this permission notice shall be
31ea43d9b8SJagan Teki *     included in all copies or substantial portions of the Software.
32ea43d9b8SJagan Teki *
33ea43d9b8SJagan Teki *     THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND,
34ea43d9b8SJagan Teki *     EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES
35ea43d9b8SJagan Teki *     OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND
36ea43d9b8SJagan Teki *     NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT
37ea43d9b8SJagan Teki *     HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY,
38ea43d9b8SJagan Teki *     WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING
39ea43d9b8SJagan Teki *     FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR
40ea43d9b8SJagan Teki *     OTHER DEALINGS IN THE SOFTWARE.
41ea43d9b8SJagan Teki */
42ea43d9b8SJagan Teki
43ea43d9b8SJagan Teki/dts-v1/;
44ea43d9b8SJagan Teki
45ea43d9b8SJagan Teki#include "sun50i-h5.dtsi"
46ea43d9b8SJagan Teki
47ea43d9b8SJagan Teki#include <dt-bindings/gpio/gpio.h>
48ea43d9b8SJagan Teki
49ea43d9b8SJagan Teki/ {
50ea43d9b8SJagan Teki	model = "OrangePi Zero Plus2";
51ea43d9b8SJagan Teki	compatible = "xunlong,orangepi-zero-plus2", "allwinner,sun50i-h5";
52ea43d9b8SJagan Teki
53ea43d9b8SJagan Teki	aliases {
54ea43d9b8SJagan Teki		serial0 = &uart0;
55ea43d9b8SJagan Teki	};
56ea43d9b8SJagan Teki
57ea43d9b8SJagan Teki	chosen {
58ea43d9b8SJagan Teki		stdout-path = "serial0:115200n8";
59ea43d9b8SJagan Teki	};
60ea43d9b8SJagan Teki
6122821975SJernej Skrabec	connector {
6222821975SJernej Skrabec		compatible = "hdmi-connector";
6322821975SJernej Skrabec		type = "a";
6422821975SJernej Skrabec
6522821975SJernej Skrabec		port {
6622821975SJernej Skrabec			hdmi_con_in: endpoint {
6722821975SJernej Skrabec				remote-endpoint = <&hdmi_out_con>;
6822821975SJernej Skrabec			};
6922821975SJernej Skrabec		};
7022821975SJernej Skrabec	};
7122821975SJernej Skrabec
72ea43d9b8SJagan Teki	reg_vcc3v3: vcc3v3 {
73ea43d9b8SJagan Teki		compatible = "regulator-fixed";
74ea43d9b8SJagan Teki		regulator-name = "vcc3v3";
75ea43d9b8SJagan Teki		regulator-min-microvolt = <3300000>;
76ea43d9b8SJagan Teki		regulator-max-microvolt = <3300000>;
77ea43d9b8SJagan Teki	};
78cf8e19e1SSergey Matyukevich
79cf8e19e1SSergey Matyukevich	wifi_pwrseq: wifi_pwrseq {
80cf8e19e1SSergey Matyukevich		compatible = "mmc-pwrseq-simple";
81cf8e19e1SSergey Matyukevich		reset-gpios = <&pio 0 9 GPIO_ACTIVE_LOW>; /* PA9 */
82cf8e19e1SSergey Matyukevich		post-power-on-delay-ms = <200>;
83cf8e19e1SSergey Matyukevich	};
84ea43d9b8SJagan Teki};
85ea43d9b8SJagan Teki
8622821975SJernej Skrabec&de {
8722821975SJernej Skrabec	status = "okay";
8822821975SJernej Skrabec};
8922821975SJernej Skrabec
9022821975SJernej Skrabec&hdmi {
9122821975SJernej Skrabec	status = "okay";
9222821975SJernej Skrabec};
9322821975SJernej Skrabec
9422821975SJernej Skrabec&hdmi_out {
9522821975SJernej Skrabec	hdmi_out_con: endpoint {
9622821975SJernej Skrabec		remote-endpoint = <&hdmi_con_in>;
9722821975SJernej Skrabec	};
9822821975SJernej Skrabec};
9922821975SJernej Skrabec
100ea43d9b8SJagan Teki&mmc0 {
101ea43d9b8SJagan Teki	vmmc-supply = <&reg_vcc3v3>;
102ea43d9b8SJagan Teki	bus-width = <4>;
103f88e9301SSergey Matyukevich	cd-gpios = <&pio 5 6 GPIO_ACTIVE_LOW>;
104ea43d9b8SJagan Teki	status = "okay";
105ea43d9b8SJagan Teki};
106ea43d9b8SJagan Teki
107cf8e19e1SSergey Matyukevich&mmc1 {
108cf8e19e1SSergey Matyukevich	vmmc-supply = <&reg_vcc3v3>;
109cf8e19e1SSergey Matyukevich	vqmmc-supply = <&reg_vcc3v3>;
110cf8e19e1SSergey Matyukevich	mmc-pwrseq = <&wifi_pwrseq>;
111cf8e19e1SSergey Matyukevich	bus-width = <4>;
112cf8e19e1SSergey Matyukevich	non-removable;
113cf8e19e1SSergey Matyukevich	status = "okay";
114cf8e19e1SSergey Matyukevich
115cf8e19e1SSergey Matyukevich	brcmf: wifi@1 {
116cf8e19e1SSergey Matyukevich		reg = <1>;
117cf8e19e1SSergey Matyukevich		compatible = "brcm,bcm4329-fmac";
118cf8e19e1SSergey Matyukevich		interrupt-parent = <&r_pio>;
119cf8e19e1SSergey Matyukevich		interrupts = <0 7 IRQ_TYPE_LEVEL_LOW>;	/* PL7 */
120cf8e19e1SSergey Matyukevich		interrupt-names = "host-wake";
121cf8e19e1SSergey Matyukevich	};
122cf8e19e1SSergey Matyukevich};
123cf8e19e1SSergey Matyukevich
124ea43d9b8SJagan Teki&mmc2 {
125ea43d9b8SJagan Teki	pinctrl-names = "default";
126ea43d9b8SJagan Teki	pinctrl-0 = <&mmc2_8bit_pins>;
127ea43d9b8SJagan Teki	vmmc-supply = <&reg_vcc3v3>;
128ea43d9b8SJagan Teki	bus-width = <8>;
129ea43d9b8SJagan Teki	non-removable;
130ea43d9b8SJagan Teki	cap-mmc-hw-reset;
131ea43d9b8SJagan Teki	status = "okay";
132ea43d9b8SJagan Teki};
133ea43d9b8SJagan Teki
134ea43d9b8SJagan Teki&uart0 {
135ea43d9b8SJagan Teki	pinctrl-names = "default";
136a4dc7919SMaxime Ripard	pinctrl-0 = <&uart0_pa_pins>;
137ea43d9b8SJagan Teki	status = "okay";
138ea43d9b8SJagan Teki};
139cf8e19e1SSergey Matyukevich
140cf8e19e1SSergey Matyukevich&uart1 {
141cf8e19e1SSergey Matyukevich	pinctrl-names = "default";
142cf8e19e1SSergey Matyukevich	pinctrl-0 = <&uart1_pins>, <&uart1_rts_cts_pins>;
143cf8e19e1SSergey Matyukevich	status = "okay";
144cf8e19e1SSergey Matyukevich};
145