xref: /linux/arch/arm64/boot/dts/amlogic/meson-gxl-s905x-p212.dtsi (revision 9ded9b0fa8dc3d039ded0f5a0bdc3f82eb4b9259)
1*9ded9b0fSMartin Blumenstingl/*
2*9ded9b0fSMartin Blumenstingl * Copyright (c) 2016 Martin Blumenstingl <martin.blumenstingl@googlemail.com>.
3*9ded9b0fSMartin Blumenstingl * Based on meson-gx-p23x-q20x.dtsi:
4*9ded9b0fSMartin Blumenstingl * - Copyright (c) 2016 Endless Computers, Inc.
5*9ded9b0fSMartin Blumenstingl *   Author: Carlo Caione <carlo@endlessm.com>
6*9ded9b0fSMartin Blumenstingl * - Copyright (c) 2016 BayLibre, SAS.
7*9ded9b0fSMartin Blumenstingl *   Author: Neil Armstrong <narmstrong@baylibre.com>
8*9ded9b0fSMartin Blumenstingl *
9*9ded9b0fSMartin Blumenstingl * SPDX-License-Identifier: (GPL-2.0+ OR MIT)
10*9ded9b0fSMartin Blumenstingl */
11*9ded9b0fSMartin Blumenstingl
12*9ded9b0fSMartin Blumenstingl/* Common DTSI for devices which are based on the P212 reference board. */
13*9ded9b0fSMartin Blumenstingl
14*9ded9b0fSMartin Blumenstingl#include "meson-gxl-s905x.dtsi"
15*9ded9b0fSMartin Blumenstingl
16*9ded9b0fSMartin Blumenstingl/ {
17*9ded9b0fSMartin Blumenstingl	aliases {
18*9ded9b0fSMartin Blumenstingl		serial0 = &uart_AO;
19*9ded9b0fSMartin Blumenstingl		serial1 = &uart_A;
20*9ded9b0fSMartin Blumenstingl	};
21*9ded9b0fSMartin Blumenstingl
22*9ded9b0fSMartin Blumenstingl	chosen {
23*9ded9b0fSMartin Blumenstingl		stdout-path = "serial0:115200n8";
24*9ded9b0fSMartin Blumenstingl	};
25*9ded9b0fSMartin Blumenstingl
26*9ded9b0fSMartin Blumenstingl	memory@0 {
27*9ded9b0fSMartin Blumenstingl		device_type = "memory";
28*9ded9b0fSMartin Blumenstingl		reg = <0x0 0x0 0x0 0x80000000>;
29*9ded9b0fSMartin Blumenstingl	};
30*9ded9b0fSMartin Blumenstingl
31*9ded9b0fSMartin Blumenstingl	vddio_boot: regulator-vddio_boot {
32*9ded9b0fSMartin Blumenstingl		compatible = "regulator-fixed";
33*9ded9b0fSMartin Blumenstingl		regulator-name = "VDDIO_BOOT";
34*9ded9b0fSMartin Blumenstingl		regulator-min-microvolt = <1800000>;
35*9ded9b0fSMartin Blumenstingl		regulator-max-microvolt = <1800000>;
36*9ded9b0fSMartin Blumenstingl	};
37*9ded9b0fSMartin Blumenstingl
38*9ded9b0fSMartin Blumenstingl	vddao_3v3: regulator-vddao_3v3 {
39*9ded9b0fSMartin Blumenstingl		compatible = "regulator-fixed";
40*9ded9b0fSMartin Blumenstingl		regulator-name = "VDDAO_3V3";
41*9ded9b0fSMartin Blumenstingl		regulator-min-microvolt = <3300000>;
42*9ded9b0fSMartin Blumenstingl		regulator-max-microvolt = <3300000>;
43*9ded9b0fSMartin Blumenstingl	};
44*9ded9b0fSMartin Blumenstingl
45*9ded9b0fSMartin Blumenstingl	vddio_ao18: regulator-vddio_ao18 {
46*9ded9b0fSMartin Blumenstingl		compatible = "regulator-fixed";
47*9ded9b0fSMartin Blumenstingl		regulator-name = "VDDIO_AO18";
48*9ded9b0fSMartin Blumenstingl		regulator-min-microvolt = <1800000>;
49*9ded9b0fSMartin Blumenstingl		regulator-max-microvolt = <1800000>;
50*9ded9b0fSMartin Blumenstingl	};
51*9ded9b0fSMartin Blumenstingl
52*9ded9b0fSMartin Blumenstingl	vcc_3v3: regulator-vcc_3v3 {
53*9ded9b0fSMartin Blumenstingl		compatible = "regulator-fixed";
54*9ded9b0fSMartin Blumenstingl		regulator-name = "VCC_3V3";
55*9ded9b0fSMartin Blumenstingl		regulator-min-microvolt = <3300000>;
56*9ded9b0fSMartin Blumenstingl		regulator-max-microvolt = <3300000>;
57*9ded9b0fSMartin Blumenstingl	};
58*9ded9b0fSMartin Blumenstingl
59*9ded9b0fSMartin Blumenstingl	emmc_pwrseq: emmc-pwrseq {
60*9ded9b0fSMartin Blumenstingl		compatible = "mmc-pwrseq-emmc";
61*9ded9b0fSMartin Blumenstingl		reset-gpios = <&gpio BOOT_9 GPIO_ACTIVE_LOW>;
62*9ded9b0fSMartin Blumenstingl	};
63*9ded9b0fSMartin Blumenstingl
64*9ded9b0fSMartin Blumenstingl	wifi32k: wifi32k {
65*9ded9b0fSMartin Blumenstingl		compatible = "pwm-clock";
66*9ded9b0fSMartin Blumenstingl		#clock-cells = <0>;
67*9ded9b0fSMartin Blumenstingl		clock-frequency = <32768>;
68*9ded9b0fSMartin Blumenstingl		pwms = <&pwm_ef 0 30518 0>; /* PWM_E at 32.768KHz */
69*9ded9b0fSMartin Blumenstingl	};
70*9ded9b0fSMartin Blumenstingl
71*9ded9b0fSMartin Blumenstingl	sdio_pwrseq: sdio-pwrseq {
72*9ded9b0fSMartin Blumenstingl		compatible = "mmc-pwrseq-simple";
73*9ded9b0fSMartin Blumenstingl		reset-gpios = <&gpio GPIOX_6 GPIO_ACTIVE_LOW>;
74*9ded9b0fSMartin Blumenstingl		clocks = <&wifi32k>;
75*9ded9b0fSMartin Blumenstingl		clock-names = "ext_clock";
76*9ded9b0fSMartin Blumenstingl	};
77*9ded9b0fSMartin Blumenstingl};
78*9ded9b0fSMartin Blumenstingl
79*9ded9b0fSMartin Blumenstingl&ethmac {
80*9ded9b0fSMartin Blumenstingl	status = "okay";
81*9ded9b0fSMartin Blumenstingl};
82*9ded9b0fSMartin Blumenstingl
83*9ded9b0fSMartin Blumenstingl&ir {
84*9ded9b0fSMartin Blumenstingl	status = "okay";
85*9ded9b0fSMartin Blumenstingl	pinctrl-0 = <&remote_input_ao_pins>;
86*9ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
87*9ded9b0fSMartin Blumenstingl};
88*9ded9b0fSMartin Blumenstingl
89*9ded9b0fSMartin Blumenstingl&saradc {
90*9ded9b0fSMartin Blumenstingl	status = "okay";
91*9ded9b0fSMartin Blumenstingl	vref-supply = <&vddio_ao18>;
92*9ded9b0fSMartin Blumenstingl};
93*9ded9b0fSMartin Blumenstingl
94*9ded9b0fSMartin Blumenstingl/* Wireless SDIO Module */
95*9ded9b0fSMartin Blumenstingl&sd_emmc_a {
96*9ded9b0fSMartin Blumenstingl	status = "okay";
97*9ded9b0fSMartin Blumenstingl	pinctrl-0 = <&sdio_pins>;
98*9ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
99*9ded9b0fSMartin Blumenstingl	#address-cells = <1>;
100*9ded9b0fSMartin Blumenstingl	#size-cells = <0>;
101*9ded9b0fSMartin Blumenstingl
102*9ded9b0fSMartin Blumenstingl	bus-width = <4>;
103*9ded9b0fSMartin Blumenstingl	cap-sd-highspeed;
104*9ded9b0fSMartin Blumenstingl	max-frequency = <100000000>;
105*9ded9b0fSMartin Blumenstingl
106*9ded9b0fSMartin Blumenstingl	non-removable;
107*9ded9b0fSMartin Blumenstingl	disable-wp;
108*9ded9b0fSMartin Blumenstingl
109*9ded9b0fSMartin Blumenstingl	mmc-pwrseq = <&sdio_pwrseq>;
110*9ded9b0fSMartin Blumenstingl
111*9ded9b0fSMartin Blumenstingl	vmmc-supply = <&vddao_3v3>;
112*9ded9b0fSMartin Blumenstingl	vqmmc-supply = <&vddio_boot>;
113*9ded9b0fSMartin Blumenstingl};
114*9ded9b0fSMartin Blumenstingl
115*9ded9b0fSMartin Blumenstingl/* SD card */
116*9ded9b0fSMartin Blumenstingl&sd_emmc_b {
117*9ded9b0fSMartin Blumenstingl	status = "okay";
118*9ded9b0fSMartin Blumenstingl	pinctrl-0 = <&sdcard_pins>;
119*9ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
120*9ded9b0fSMartin Blumenstingl
121*9ded9b0fSMartin Blumenstingl	bus-width = <4>;
122*9ded9b0fSMartin Blumenstingl	cap-sd-highspeed;
123*9ded9b0fSMartin Blumenstingl	max-frequency = <100000000>;
124*9ded9b0fSMartin Blumenstingl	disable-wp;
125*9ded9b0fSMartin Blumenstingl
126*9ded9b0fSMartin Blumenstingl	cd-gpios = <&gpio CARD_6 GPIO_ACTIVE_HIGH>;
127*9ded9b0fSMartin Blumenstingl	cd-inverted;
128*9ded9b0fSMartin Blumenstingl
129*9ded9b0fSMartin Blumenstingl	vmmc-supply = <&vddao_3v3>;
130*9ded9b0fSMartin Blumenstingl	vqmmc-supply = <&vddio_boot>;
131*9ded9b0fSMartin Blumenstingl};
132*9ded9b0fSMartin Blumenstingl
133*9ded9b0fSMartin Blumenstingl/* eMMC */
134*9ded9b0fSMartin Blumenstingl&sd_emmc_c {
135*9ded9b0fSMartin Blumenstingl	status = "okay";
136*9ded9b0fSMartin Blumenstingl	pinctrl-0 = <&emmc_pins>;
137*9ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
138*9ded9b0fSMartin Blumenstingl
139*9ded9b0fSMartin Blumenstingl	bus-width = <8>;
140*9ded9b0fSMartin Blumenstingl	cap-sd-highspeed;
141*9ded9b0fSMartin Blumenstingl	cap-mmc-highspeed;
142*9ded9b0fSMartin Blumenstingl	max-frequency = <200000000>;
143*9ded9b0fSMartin Blumenstingl	non-removable;
144*9ded9b0fSMartin Blumenstingl	disable-wp;
145*9ded9b0fSMartin Blumenstingl	mmc-ddr-1_8v;
146*9ded9b0fSMartin Blumenstingl	mmc-hs200-1_8v;
147*9ded9b0fSMartin Blumenstingl
148*9ded9b0fSMartin Blumenstingl	mmc-pwrseq = <&emmc_pwrseq>;
149*9ded9b0fSMartin Blumenstingl	vmmc-supply = <&vcc_3v3>;
150*9ded9b0fSMartin Blumenstingl	vqmmc-supply = <&vddio_boot>;
151*9ded9b0fSMartin Blumenstingl};
152*9ded9b0fSMartin Blumenstingl
153*9ded9b0fSMartin Blumenstingl&pwm_ef {
154*9ded9b0fSMartin Blumenstingl	status = "okay";
155*9ded9b0fSMartin Blumenstingl	pinctrl-0 = <&pwm_e_pins>;
156*9ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
157*9ded9b0fSMartin Blumenstingl	clocks = <&clkc CLKID_FCLK_DIV4>;
158*9ded9b0fSMartin Blumenstingl	clock-names = "clkin0";
159*9ded9b0fSMartin Blumenstingl};
160*9ded9b0fSMartin Blumenstingl
161*9ded9b0fSMartin Blumenstingl/* This is connected to the Bluetooth module: */
162*9ded9b0fSMartin Blumenstingl&uart_A {
163*9ded9b0fSMartin Blumenstingl	status = "okay";
164*9ded9b0fSMartin Blumenstingl	pinctrl-0 = <&uart_a_pins>, <&uart_a_cts_rts_pins>;
165*9ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
166*9ded9b0fSMartin Blumenstingl	uart-has-rtscts;
167*9ded9b0fSMartin Blumenstingl};
168*9ded9b0fSMartin Blumenstingl
169*9ded9b0fSMartin Blumenstingl&uart_AO {
170*9ded9b0fSMartin Blumenstingl	status = "okay";
171*9ded9b0fSMartin Blumenstingl	pinctrl-0 = <&uart_ao_a_pins>;
172*9ded9b0fSMartin Blumenstingl	pinctrl-names = "default";
173*9ded9b0fSMartin Blumenstingl};
174