1114abfe1SNeil Armstrong// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
29d59b708SYixun Lan/*
39d59b708SYixun Lan * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
49d59b708SYixun Lan */
59d59b708SYixun Lan
69d59b708SYixun Lan/dts-v1/;
79d59b708SYixun Lan
89d59b708SYixun Lan#include "meson-axg.dtsi"
9aabe5d2dSJerome Brunet#include <dt-bindings/input/input.h>
109d59b708SYixun Lan
119d59b708SYixun Lan/ {
129d59b708SYixun Lan	compatible = "amlogic,s400", "amlogic,a113d", "amlogic,meson-axg";
139d59b708SYixun Lan	model = "Amlogic Meson AXG S400 Development Board";
149d59b708SYixun Lan
15aabe5d2dSJerome Brunet	adc_keys {
16aabe5d2dSJerome Brunet		compatible = "adc-keys";
17aabe5d2dSJerome Brunet		io-channels = <&saradc 0>;
18aabe5d2dSJerome Brunet		io-channel-names = "buttons";
19aabe5d2dSJerome Brunet		keyup-threshold-microvolt = <1800000>;
20aabe5d2dSJerome Brunet
21aabe5d2dSJerome Brunet		button-next {
22aabe5d2dSJerome Brunet			label = "Next";
23aabe5d2dSJerome Brunet			linux,code = <KEY_NEXT>;
24aabe5d2dSJerome Brunet			press-threshold-microvolt = <1116000>; /* 62% */
25aabe5d2dSJerome Brunet		};
26aabe5d2dSJerome Brunet
27aabe5d2dSJerome Brunet		button-prev {
28aabe5d2dSJerome Brunet			label = "Previous";
29aabe5d2dSJerome Brunet			linux,code = <KEY_PREVIOUS>;
30aabe5d2dSJerome Brunet			press-threshold-microvolt = <900000>; /* 50% */
31aabe5d2dSJerome Brunet		};
32aabe5d2dSJerome Brunet
33aabe5d2dSJerome Brunet		button-wifi {
34aabe5d2dSJerome Brunet			label = "Wifi";
35aabe5d2dSJerome Brunet			linux,code = <KEY_WLAN>;
36aabe5d2dSJerome Brunet			press-threshold-microvolt = <684000>; /* 38% */
37aabe5d2dSJerome Brunet		};
38aabe5d2dSJerome Brunet
39aabe5d2dSJerome Brunet		button-up {
40aabe5d2dSJerome Brunet			label = "Volume Up";
41aabe5d2dSJerome Brunet			linux,code = <KEY_VOLUMEUP>;
42aabe5d2dSJerome Brunet			press-threshold-microvolt = <468000>; /* 26% */
43aabe5d2dSJerome Brunet		};
44aabe5d2dSJerome Brunet
45aabe5d2dSJerome Brunet		button-down {
46aabe5d2dSJerome Brunet			label = "Volume Down";
47aabe5d2dSJerome Brunet			linux,code = <KEY_VOLUMEDOWN>;
48aabe5d2dSJerome Brunet			press-threshold-microvolt = <252000>; /* 14% */
49aabe5d2dSJerome Brunet		};
50aabe5d2dSJerome Brunet
51aabe5d2dSJerome Brunet		button-voice {
52aabe5d2dSJerome Brunet			label = "Voice";
53aabe5d2dSJerome Brunet			linux,code = <KEY_VOICECOMMAND>;
54aabe5d2dSJerome Brunet			press-threshold-microvolt = <0>; /* 0% */
55aabe5d2dSJerome Brunet		};
56aabe5d2dSJerome Brunet	};
57aabe5d2dSJerome Brunet
589d59b708SYixun Lan	aliases {
599d59b708SYixun Lan		serial0 = &uart_AO;
603e5925c6SYixun Lan		serial1 = &uart_A;
619d59b708SYixun Lan	};
62221cf34bSNan Li
63e120289cSJerome Brunet	main_12v: regulator-main_12v {
64e120289cSJerome Brunet		compatible = "regulator-fixed";
65e120289cSJerome Brunet		regulator-name = "12V";
66e120289cSJerome Brunet		regulator-min-microvolt = <12000000>;
67e120289cSJerome Brunet		regulator-max-microvolt = <12000000>;
689f2619d5SJerome Brunet		regulator-always-on;
69e120289cSJerome Brunet	};
70e120289cSJerome Brunet
71221cf34bSNan Li	vddio_boot: regulator-vddio_boot {
72221cf34bSNan Li		compatible = "regulator-fixed";
73221cf34bSNan Li		regulator-name = "VDDIO_BOOT";
74221cf34bSNan Li		regulator-min-microvolt = <1800000>;
75221cf34bSNan Li		regulator-max-microvolt = <1800000>;
769f2619d5SJerome Brunet		vin-supply = <&vddao_3v3>;
779f2619d5SJerome Brunet		regulator-always-on;
78221cf34bSNan Li	};
79221cf34bSNan Li
80221cf34bSNan Li	vddao_3v3: regulator-vddao_3v3 {
81221cf34bSNan Li		compatible = "regulator-fixed";
82221cf34bSNan Li		regulator-name = "VDDAO_3V3";
83221cf34bSNan Li		regulator-min-microvolt = <3300000>;
84221cf34bSNan Li		regulator-max-microvolt = <3300000>;
859f2619d5SJerome Brunet		vin-supply = <&main_12v>;
869f2619d5SJerome Brunet		regulator-always-on;
87221cf34bSNan Li	};
88221cf34bSNan Li
89221cf34bSNan Li	vddio_ao18: regulator-vddio_ao18 {
90221cf34bSNan Li		compatible = "regulator-fixed";
91221cf34bSNan Li		regulator-name = "VDDIO_AO18";
92221cf34bSNan Li		regulator-min-microvolt = <1800000>;
93221cf34bSNan Li		regulator-max-microvolt = <1800000>;
949f2619d5SJerome Brunet		vin-supply = <&vddao_3v3>;
959f2619d5SJerome Brunet		regulator-always-on;
96221cf34bSNan Li	};
97221cf34bSNan Li
98221cf34bSNan Li	vcc_3v3: regulator-vcc_3v3 {
99221cf34bSNan Li		compatible = "regulator-fixed";
100221cf34bSNan Li		regulator-name = "VCC_3V3";
101221cf34bSNan Li		regulator-min-microvolt = <3300000>;
102221cf34bSNan Li		regulator-max-microvolt = <3300000>;
1039f2619d5SJerome Brunet		vin-supply = <&vddao_3v3>;
1049f2619d5SJerome Brunet		regulator-always-on;
105221cf34bSNan Li	};
106221cf34bSNan Li
107ff36932eSJerome Brunet	vcc_5v: regulator-vcc_5v {
108ff36932eSJerome Brunet		compatible = "regulator-fixed";
109ff36932eSJerome Brunet		regulator-name = "VCC5V";
110ff36932eSJerome Brunet		regulator-min-microvolt = <5000000>;
111ff36932eSJerome Brunet		regulator-max-microvolt = <5000000>;
112ff36932eSJerome Brunet		vin-supply = <&main_12v>;
113ff36932eSJerome Brunet
114ff36932eSJerome Brunet		gpio = <&gpio_ao GPIOAO_13 GPIO_ACTIVE_HIGH>;
115ff36932eSJerome Brunet		enable-active-high;
116ff36932eSJerome Brunet	};
117ff36932eSJerome Brunet
118221cf34bSNan Li	emmc_pwrseq: emmc-pwrseq {
119221cf34bSNan Li		compatible = "mmc-pwrseq-emmc";
120221cf34bSNan Li		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
121221cf34bSNan Li	};
1225a8a2ed6SYixun Lan
1235a8a2ed6SYixun Lan	sdio_pwrseq: sdio-pwrseq {
1245a8a2ed6SYixun Lan		compatible = "mmc-pwrseq-simple";
1255a8a2ed6SYixun Lan		reset-gpios = <&gpio GPIOX_7 GPIO_ACTIVE_LOW>;
1265a8a2ed6SYixun Lan		clocks = <&wifi32k>;
1275a8a2ed6SYixun Lan		clock-names = "ext_clock";
1285a8a2ed6SYixun Lan	};
1295a8a2ed6SYixun Lan
1305a8a2ed6SYixun Lan	wifi32k: wifi32k {
1315a8a2ed6SYixun Lan		compatible = "pwm-clock";
1325a8a2ed6SYixun Lan		#clock-cells = <0>;
1335a8a2ed6SYixun Lan		clock-frequency = <32768>;
1345a8a2ed6SYixun Lan		pwms = <&pwm_ab 0 30518 0>; /* PWM_A at 32.768KHz */
1355a8a2ed6SYixun Lan	};
1366279f666SJerome Brunet
1376279f666SJerome Brunet	speaker-leds {
1386279f666SJerome Brunet		compatible = "gpio-leds";
1396279f666SJerome Brunet
1406279f666SJerome Brunet		aled1 {
1416279f666SJerome Brunet			label = "speaker:aled1";
1426279f666SJerome Brunet			gpios = <&gpio_speaker 7 0>;
1436279f666SJerome Brunet		};
1446279f666SJerome Brunet
1456279f666SJerome Brunet		aled2 {
1466279f666SJerome Brunet			label = "speaker:aled2";
1476279f666SJerome Brunet			gpios = <&gpio_speaker 6 0>;
1486279f666SJerome Brunet		};
1496279f666SJerome Brunet
1506279f666SJerome Brunet		aled3 {
1516279f666SJerome Brunet			label = "speaker:aled3";
1526279f666SJerome Brunet			gpios = <&gpio_speaker 5 0>;
1536279f666SJerome Brunet		};
1546279f666SJerome Brunet
1556279f666SJerome Brunet		aled4 {
1566279f666SJerome Brunet			label = "speaker:aled4";
1576279f666SJerome Brunet			gpios = <&gpio_speaker 4 0>;
1586279f666SJerome Brunet		};
1596279f666SJerome Brunet
1606279f666SJerome Brunet		aled5 {
1616279f666SJerome Brunet			label = "speaker:aled5";
1626279f666SJerome Brunet			gpios = <&gpio_speaker 3 0>;
1636279f666SJerome Brunet		};
1646279f666SJerome Brunet
1656279f666SJerome Brunet		aled6 {
1666279f666SJerome Brunet			label = "speaker:aled6";
1676279f666SJerome Brunet			gpios = <&gpio_speaker 2 0>;
1686279f666SJerome Brunet		};
1696279f666SJerome Brunet	};
1709d59b708SYixun Lan};
1719d59b708SYixun Lan
172f6f6ac91SYixun Lan&ethmac {
173f6f6ac91SYixun Lan	status = "okay";
174f6f6ac91SYixun Lan	phy-mode = "rgmii";
175f6f6ac91SYixun Lan	pinctrl-0 = <&eth_rgmii_y_pins>;
176f6f6ac91SYixun Lan	pinctrl-names = "default";
177f6f6ac91SYixun Lan};
178f6f6ac91SYixun Lan
1793e5925c6SYixun Lan&uart_A {
1803e5925c6SYixun Lan	status = "okay";
1813e5925c6SYixun Lan	pinctrl-0 = <&uart_a_pins>;
1823e5925c6SYixun Lan	pinctrl-names = "default";
1833e5925c6SYixun Lan};
1843e5925c6SYixun Lan
1859d59b708SYixun Lan&uart_AO {
1869d59b708SYixun Lan	status = "okay";
187e496c415SYixun Lan	pinctrl-0 = <&uart_ao_a_pins>;
188e496c415SYixun Lan	pinctrl-names = "default";
1899d59b708SYixun Lan};
1907bd46a79SYixun Lan
1917bd46a79SYixun Lan&ir {
1927bd46a79SYixun Lan	status = "okay";
1937bd46a79SYixun Lan	pinctrl-0 = <&remote_input_ao_pins>;
1947bd46a79SYixun Lan	pinctrl-names = "default";
1957bd46a79SYixun Lan};
1967d6d8a20SJian Hu
1977d6d8a20SJian Hu&i2c1 {
1987d6d8a20SJian Hu	status = "okay";
1997d6d8a20SJian Hu	pinctrl-0 = <&i2c1_z_pins>;
2007d6d8a20SJian Hu	pinctrl-names = "default";
201a90193b9SJerome Brunet
202a90193b9SJerome Brunet	speaker_amp1: audio-codec@1b {
203a90193b9SJerome Brunet		compatible = "ti,tas5707";
204a90193b9SJerome Brunet		reg = <0x1b>;
205a90193b9SJerome Brunet		reset-gpios = <&gpio_ao GPIOAO_4 GPIO_ACTIVE_LOW>;
206a90193b9SJerome Brunet		#sound-dai-cells = <0>;
207a90193b9SJerome Brunet		AVDD-supply = <&vcc_3v3>;
208a90193b9SJerome Brunet		DVDD-supply = <&vcc_3v3>;
209a90193b9SJerome Brunet		PVDD_A-supply = <&main_12v>;
210a90193b9SJerome Brunet		PVDD_B-supply = <&main_12v>;
211a90193b9SJerome Brunet		PVDD_C-supply = <&main_12v>;
212a90193b9SJerome Brunet		PVDD_D-supply = <&main_12v>;
213a90193b9SJerome Brunet	};
2147d6d8a20SJian Hu};
215221cf34bSNan Li
216ffe2f2a4SJerome Brunet&i2c_AO {
217ffe2f2a4SJerome Brunet	status = "okay";
218ffe2f2a4SJerome Brunet	pinctrl-0 = <&i2c_ao_sck_10_pins>, <&i2c_ao_sda_11_pins>;
219ffe2f2a4SJerome Brunet	pinctrl-names = "default";
2206279f666SJerome Brunet
2216279f666SJerome Brunet	gpio_speaker: gpio-controller@1f {
2226279f666SJerome Brunet		compatible = "nxp,pca9557";
2236279f666SJerome Brunet		reg = <0x1f>;
2246279f666SJerome Brunet		gpio-controller;
2256279f666SJerome Brunet		#gpio-cells = <2>;
2266279f666SJerome Brunet		vcc-supply = <&vddao_3v3>;
2276279f666SJerome Brunet	};
228ffe2f2a4SJerome Brunet};
229ffe2f2a4SJerome Brunet
2305a8a2ed6SYixun Lan&pwm_ab {
2315a8a2ed6SYixun Lan	status = "okay";
2325a8a2ed6SYixun Lan	pinctrl-0 = <&pwm_a_x20_pins>;
2335a8a2ed6SYixun Lan	pinctrl-names = "default";
2345a8a2ed6SYixun Lan};
2355a8a2ed6SYixun Lan
236221cf34bSNan Li/* emmc storage */
237221cf34bSNan Li&sd_emmc_c {
238221cf34bSNan Li	status = "okay";
239221cf34bSNan Li	pinctrl-0 = <&emmc_pins>;
240221cf34bSNan Li	pinctrl-1 = <&emmc_clk_gate_pins>;
241221cf34bSNan Li	pinctrl-names = "default", "clk-gate";
242221cf34bSNan Li
243221cf34bSNan Li	bus-width = <8>;
244221cf34bSNan Li	cap-sd-highspeed;
245221cf34bSNan Li	cap-mmc-highspeed;
246221cf34bSNan Li	max-frequency = <180000000>;
247221cf34bSNan Li	non-removable;
248221cf34bSNan Li	disable-wp;
249221cf34bSNan Li	mmc-ddr-1_8v;
250221cf34bSNan Li	mmc-hs200-1_8v;
251221cf34bSNan Li
252221cf34bSNan Li	vmmc-supply = <&vcc_3v3>;
253221cf34bSNan Li	vqmmc-supply = <&vddio_boot>;
254221cf34bSNan Li};
2555a8a2ed6SYixun Lan
2565a8a2ed6SYixun Lan/* wifi module */
2575a8a2ed6SYixun Lan&sd_emmc_b {
2585a8a2ed6SYixun Lan	status = "okay";
2595a8a2ed6SYixun Lan	#address-cells = <1>;
2605a8a2ed6SYixun Lan	#size-cells = <0>;
2615a8a2ed6SYixun Lan
2625a8a2ed6SYixun Lan	pinctrl-0 = <&sdio_pins>;
2635a8a2ed6SYixun Lan	pinctrl-1 = <&sdio_clk_gate_pins>;
2645a8a2ed6SYixun Lan	pinctrl-names = "default", "clk-gate";
2655a8a2ed6SYixun Lan
2665a8a2ed6SYixun Lan	bus-width = <4>;
2675a8a2ed6SYixun Lan	cap-sd-highspeed;
2685a8a2ed6SYixun Lan	max-frequency = <100000000>;
2695a8a2ed6SYixun Lan	non-removable;
2705a8a2ed6SYixun Lan	disable-wp;
2715a8a2ed6SYixun Lan
2725a8a2ed6SYixun Lan	mmc-pwrseq = <&sdio_pwrseq>;
2735a8a2ed6SYixun Lan
2745a8a2ed6SYixun Lan	vmmc-supply = <&vddao_3v3>;
2755a8a2ed6SYixun Lan	vqmmc-supply = <&vddio_boot>;
2765a8a2ed6SYixun Lan
2775a8a2ed6SYixun Lan	brcmf: wifi@1 {
2785a8a2ed6SYixun Lan		reg = <1>;
2795a8a2ed6SYixun Lan		compatible = "brcm,bcm4329-fmac";
2805a8a2ed6SYixun Lan	};
2815a8a2ed6SYixun Lan};
282a51b74eaSXingyu Chen
283a51b74eaSXingyu Chen&saradc {
284a51b74eaSXingyu Chen	status = "okay";
285a51b74eaSXingyu Chen	vref-supply = <&vddio_ao18>;
286a51b74eaSXingyu Chen};
287