1// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
2/*
3 * Copyright (C) 2023 Martin Botka <martin.botka@somainline.org>.
4 */
5
6/dts-v1/;
7
8#include "sun50i-h616.dtsi"
9
10#include <dt-bindings/gpio/gpio.h>
11#include <dt-bindings/interrupt-controller/arm-gic.h>
12#include <dt-bindings/leds/common.h>
13
14/ {
15	aliases {
16		ethernet0 = &rtl8189ftv;
17	};
18
19	leds {
20		compatible = "gpio-leds";
21
22		led-0 {
23			function = LED_FUNCTION_STATUS;
24			color = <LED_COLOR_ID_GREEN>;
25			gpios = <&pio 7 5 GPIO_ACTIVE_HIGH>; /* PH5 */
26		};
27	};
28
29	reg_vcc5v: regulator-vcc5v {
30		/* board wide 5V supply from carrier boards */
31		compatible = "regulator-fixed";
32		regulator-name = "vcc-5v";
33		regulator-min-microvolt = <5000000>;
34		regulator-max-microvolt = <5000000>;
35		regulator-always-on;
36	};
37
38	reg_vcc33_wifi: vcc33-wifi {
39		compatible = "regulator-fixed";
40		regulator-name = "vcc33-wifi";
41		regulator-min-microvolt = <3300000>;
42		regulator-max-microvolt = <3300000>;
43		regulator-always-on;
44		vin-supply = <&reg_vcc5v>;
45	};
46
47	reg_vcc_wifi_io: vcc-wifi-io {
48		compatible = "regulator-fixed";
49		regulator-name = "vcc-wifi-io";
50		regulator-min-microvolt = <1800000>;
51		regulator-max-microvolt = <1800000>;
52		regulator-always-on;
53		vin-supply = <&reg_vcc33_wifi>;
54	};
55
56	wifi_pwrseq: wifi-pwrseq {
57		compatible = "mmc-pwrseq-simple";
58		clocks = <&rtc 1>;
59		clock-names = "ext_clock";
60		reset-gpios = <&pio 6 18 GPIO_ACTIVE_LOW>; /* PG18 */
61		post-power-on-delay-ms = <200>;
62	};
63};
64
65&mmc0 {
66	vmmc-supply = <&reg_dldo1>;
67	/* Card detection pin is not connected */
68	broken-cd;
69	bus-width = <4>;
70	status = "okay";
71};
72
73&mmc1 {
74	vmmc-supply = <&reg_vcc33_wifi>;
75	vqmmc-supply = <&reg_vcc_wifi_io>;
76	mmc-pwrseq = <&wifi_pwrseq>;
77	bus-width = <4>;
78	non-removable;
79	mmc-ddr-1_8v;
80	status = "okay";
81
82	rtl8189ftv: wifi@1 {
83		reg = <1>;
84	};
85};
86
87&r_i2c {
88	status = "okay";
89
90	axp313a: pmic@36 {
91		compatible = "x-powers,axp313a";
92		reg = <0x36>;
93		interrupt-controller;
94		#interrupt-cells = <1>;
95
96		regulators {
97			reg_dcdc1: dcdc1 {
98				regulator-name = "vdd-gpu-sys";
99				regulator-min-microvolt = <810000>;
100				regulator-max-microvolt = <990000>;
101				regulator-always-on;
102			};
103
104			reg_dcdc2: dcdc2 {
105				regulator-name = "vdd-cpu";
106				regulator-min-microvolt = <810000>;
107				regulator-max-microvolt = <1100000>;
108				regulator-ramp-delay = <200>;
109				regulator-always-on;
110			};
111
112			reg_dcdc3: dcdc3 {
113				regulator-name = "vcc-dram";
114				regulator-min-microvolt = <1350000>;
115				regulator-max-microvolt = <1500000>;
116				regulator-always-on;
117			};
118
119			reg_aldo1: aldo1 {
120				regulator-name = "vcc-1v8-pll";
121				regulator-min-microvolt = <1800000>;
122				regulator-max-microvolt = <1800000>;
123				regulator-always-on;
124			};
125
126			reg_dldo1: dldo1 {
127				regulator-name = "vcc-3v3-io";
128				regulator-min-microvolt = <3300000>;
129				regulator-max-microvolt = <3300000>;
130				regulator-always-on;
131			};
132		};
133	};
134};
135
136&usbphy {
137	status = "okay";
138};
139