1*724ba675SRob Herring// SPDX-License-Identifier: GPL-2.0
2*724ba675SRob Herring/*
3*724ba675SRob Herring * Copyright (c) 2015 MediaTek Inc.
4*724ba675SRob Herring * Author: Erin Lo <erin.lo@mediatek.com>
5*724ba675SRob Herring *
6*724ba675SRob Herring */
7*724ba675SRob Herring
8*724ba675SRob Herring/dts-v1/;
9*724ba675SRob Herring#include <dt-bindings/gpio/gpio.h>
10*724ba675SRob Herring#include "mt2701.dtsi"
11*724ba675SRob Herring
12*724ba675SRob Herring/ {
13*724ba675SRob Herring	model = "MediaTek MT2701 evaluation board";
14*724ba675SRob Herring	compatible = "mediatek,mt2701-evb", "mediatek,mt2701";
15*724ba675SRob Herring
16*724ba675SRob Herring	memory {
17*724ba675SRob Herring		device_type = "memory";
18*724ba675SRob Herring		reg = <0 0x80000000 0 0x40000000>;
19*724ba675SRob Herring	};
20*724ba675SRob Herring
21*724ba675SRob Herring	sound:sound {
22*724ba675SRob Herring		compatible = "mediatek,mt2701-cs42448-machine";
23*724ba675SRob Herring		mediatek,platform = <&afe>;
24*724ba675SRob Herring		/* CS42448 Machine name */
25*724ba675SRob Herring		audio-routing =
26*724ba675SRob Herring		"Line Out Jack", "AOUT1L",
27*724ba675SRob Herring		"Line Out Jack", "AOUT1R",
28*724ba675SRob Herring		"Line Out Jack", "AOUT2L",
29*724ba675SRob Herring		"Line Out Jack", "AOUT2R",
30*724ba675SRob Herring		"Line Out Jack", "AOUT3L",
31*724ba675SRob Herring		"Line Out Jack", "AOUT3R",
32*724ba675SRob Herring		"Line Out Jack", "AOUT4L",
33*724ba675SRob Herring		"Line Out Jack", "AOUT4R",
34*724ba675SRob Herring		"AIN1L", "AMIC",
35*724ba675SRob Herring		"AIN1R", "AMIC",
36*724ba675SRob Herring		"AIN2L", "Tuner In",
37*724ba675SRob Herring		"AIN2R", "Tuner In",
38*724ba675SRob Herring		"AIN3L", "Satellite Tuner In",
39*724ba675SRob Herring		"AIN3R", "Satellite Tuner In",
40*724ba675SRob Herring		"AIN3L", "AUX In",
41*724ba675SRob Herring		"AIN3R", "AUX In";
42*724ba675SRob Herring		mediatek,audio-codec = <&cs42448>;
43*724ba675SRob Herring		mediatek,audio-codec-bt-mrg = <&bt_sco_codec>;
44*724ba675SRob Herring		pinctrl-names = "default";
45*724ba675SRob Herring		pinctrl-0 = <&aud_pins_default>;
46*724ba675SRob Herring		i2s1-in-sel-gpio1 = <&pio 53 0>;
47*724ba675SRob Herring		i2s1-in-sel-gpio2 = <&pio 54 0>;
48*724ba675SRob Herring		status = "okay";
49*724ba675SRob Herring	};
50*724ba675SRob Herring
51*724ba675SRob Herring	bt_sco_codec:bt_sco_codec {
52*724ba675SRob Herring		compatible = "linux,bt-sco";
53*724ba675SRob Herring	};
54*724ba675SRob Herring
55*724ba675SRob Herring	backlight_lcd: backlight_lcd {
56*724ba675SRob Herring		compatible = "pwm-backlight";
57*724ba675SRob Herring		pwms = <&bls 0 100000>;
58*724ba675SRob Herring		brightness-levels = <
59*724ba675SRob Herring			  0  16  32  48  64  80  96 112
60*724ba675SRob Herring			128 144 160 176 192 208 224 240
61*724ba675SRob Herring			255
62*724ba675SRob Herring		>;
63*724ba675SRob Herring		default-brightness-level = <9>;
64*724ba675SRob Herring	};
65*724ba675SRob Herring
66*724ba675SRob Herring	usb_vbus: regulator@0 {
67*724ba675SRob Herring		compatible = "regulator-fixed";
68*724ba675SRob Herring		regulator-name = "usb_vbus";
69*724ba675SRob Herring		regulator-min-microvolt = <5000000>;
70*724ba675SRob Herring		regulator-max-microvolt = <5000000>;
71*724ba675SRob Herring		gpio = <&pio 45 GPIO_ACTIVE_HIGH>;
72*724ba675SRob Herring		enable-active-high;
73*724ba675SRob Herring	};
74*724ba675SRob Herring};
75*724ba675SRob Herring
76*724ba675SRob Herring&auxadc {
77*724ba675SRob Herring	status = "okay";
78*724ba675SRob Herring};
79*724ba675SRob Herring
80*724ba675SRob Herring&bls {
81*724ba675SRob Herring	status = "okay";
82*724ba675SRob Herring	pinctrl-names = "default";
83*724ba675SRob Herring	pinctrl-0 = <&pwm_bls_gpio>;
84*724ba675SRob Herring};
85*724ba675SRob Herring
86*724ba675SRob Herring&i2c0 {
87*724ba675SRob Herring	pinctrl-names = "default";
88*724ba675SRob Herring	pinctrl-0 = <&i2c0_pins_a>;
89*724ba675SRob Herring	status = "okay";
90*724ba675SRob Herring};
91*724ba675SRob Herring
92*724ba675SRob Herring&i2c1 {
93*724ba675SRob Herring	pinctrl-names = "default";
94*724ba675SRob Herring	pinctrl-0 = <&i2c1_pins_a>;
95*724ba675SRob Herring	status = "okay";
96*724ba675SRob Herring};
97*724ba675SRob Herring
98*724ba675SRob Herring&i2c2 {
99*724ba675SRob Herring	pinctrl-names = "default";
100*724ba675SRob Herring	pinctrl-0 = <&i2c2_pins_a>;
101*724ba675SRob Herring	status = "okay";
102*724ba675SRob Herring	cs42448: cs42448@48 {
103*724ba675SRob Herring		compatible = "cirrus,cs42448";
104*724ba675SRob Herring		reg = <0x48>;
105*724ba675SRob Herring		clocks = <&topckgen CLK_TOP_AUD_I2S1_MCLK>;
106*724ba675SRob Herring		clock-names = "mclk";
107*724ba675SRob Herring	};
108*724ba675SRob Herring};
109*724ba675SRob Herring
110*724ba675SRob Herring&pio {
111*724ba675SRob Herring	i2c0_pins_a: i2c0@0 {
112*724ba675SRob Herring		pins1 {
113*724ba675SRob Herring			pinmux = <MT2701_PIN_75_SDA0__FUNC_SDA0>,
114*724ba675SRob Herring				 <MT2701_PIN_76_SCL0__FUNC_SCL0>;
115*724ba675SRob Herring			bias-disable;
116*724ba675SRob Herring		};
117*724ba675SRob Herring	};
118*724ba675SRob Herring
119*724ba675SRob Herring	i2c1_pins_a: i2c1@0 {
120*724ba675SRob Herring		pins1 {
121*724ba675SRob Herring			pinmux = <MT2701_PIN_57_SDA1__FUNC_SDA1>,
122*724ba675SRob Herring				 <MT2701_PIN_58_SCL1__FUNC_SCL1>;
123*724ba675SRob Herring			bias-disable;
124*724ba675SRob Herring		};
125*724ba675SRob Herring	};
126*724ba675SRob Herring
127*724ba675SRob Herring	i2c2_pins_a: i2c2@0 {
128*724ba675SRob Herring		pins1 {
129*724ba675SRob Herring			pinmux = <MT2701_PIN_77_SDA2__FUNC_SDA2>,
130*724ba675SRob Herring				 <MT2701_PIN_78_SCL2__FUNC_SCL2>;
131*724ba675SRob Herring			bias-disable;
132*724ba675SRob Herring		};
133*724ba675SRob Herring	};
134*724ba675SRob Herring
135*724ba675SRob Herring	pwm_bls_gpio: pwm_bls_gpio {
136*724ba675SRob Herring		pins_cmd_dat {
137*724ba675SRob Herring			pinmux = <MT2701_PIN_208_AUD_EXT_CK1__FUNC_DISP_PWM>;
138*724ba675SRob Herring		};
139*724ba675SRob Herring	};
140*724ba675SRob Herring
141*724ba675SRob Herring	spi_pins_a: spi0@0 {
142*724ba675SRob Herring		pins_spi {
143*724ba675SRob Herring			pinmux = <MT2701_PIN_53_SPI0_CSN__FUNC_SPI0_CS>,
144*724ba675SRob Herring				 <MT2701_PIN_54_SPI0_CK__FUNC_SPI0_CK>,
145*724ba675SRob Herring				 <MT2701_PIN_55_SPI0_MI__FUNC_SPI0_MI>,
146*724ba675SRob Herring				 <MT2701_PIN_56_SPI0_MO__FUNC_SPI0_MO>;
147*724ba675SRob Herring			bias-disable;
148*724ba675SRob Herring		};
149*724ba675SRob Herring	};
150*724ba675SRob Herring
151*724ba675SRob Herring	aud_pins_default: audiodefault {
152*724ba675SRob Herring		pins_cmd_dat {
153*724ba675SRob Herring			pinmux = <MT2701_PIN_49_I2S0_DATA__FUNC_I2S0_DATA>,
154*724ba675SRob Herring				 <MT2701_PIN_72_I2S0_DATA_IN__FUNC_I2S0_DATA_IN>,
155*724ba675SRob Herring				 <MT2701_PIN_73_I2S0_LRCK__FUNC_I2S0_LRCK>,
156*724ba675SRob Herring				 <MT2701_PIN_74_I2S0_BCK__FUNC_I2S0_BCK>,
157*724ba675SRob Herring				 <MT2701_PIN_126_I2S0_MCLK__FUNC_I2S0_MCLK>,
158*724ba675SRob Herring				 <MT2701_PIN_33_I2S1_DATA__FUNC_I2S1_DATA>,
159*724ba675SRob Herring				 <MT2701_PIN_34_I2S1_DATA_IN__FUNC_I2S1_DATA_IN>,
160*724ba675SRob Herring				 <MT2701_PIN_35_I2S1_BCK__FUNC_I2S1_BCK>,
161*724ba675SRob Herring				 <MT2701_PIN_36_I2S1_LRCK__FUNC_I2S1_LRCK>,
162*724ba675SRob Herring				 <MT2701_PIN_37_I2S1_MCLK__FUNC_I2S1_MCLK>,
163*724ba675SRob Herring				 <MT2701_PIN_203_PWM0__FUNC_I2S2_DATA>,
164*724ba675SRob Herring				 <MT2701_PIN_204_PWM1__FUNC_I2S3_DATA>,
165*724ba675SRob Herring				 <MT2701_PIN_53_SPI0_CSN__FUNC_GPIO53>,
166*724ba675SRob Herring				 <MT2701_PIN_54_SPI0_CK__FUNC_GPIO54>,
167*724ba675SRob Herring				 <MT2701_PIN_18_PCM_CLK__FUNC_MRG_CLK>,
168*724ba675SRob Herring				 <MT2701_PIN_19_PCM_SYNC__FUNC_MRG_SYNC>,
169*724ba675SRob Herring				 <MT2701_PIN_20_PCM_RX__FUNC_MRG_TX>,
170*724ba675SRob Herring				 <MT2701_PIN_21_PCM_TX__FUNC_MRG_RX>;
171*724ba675SRob Herring			drive-strength = <MTK_DRIVE_12mA>;
172*724ba675SRob Herring			bias-pull-down;
173*724ba675SRob Herring		};
174*724ba675SRob Herring	};
175*724ba675SRob Herring
176*724ba675SRob Herring	spi_pins_b: spi1@0 {
177*724ba675SRob Herring		pins_spi {
178*724ba675SRob Herring			pinmux = <MT2701_PIN_7_SPI1_CSN__FUNC_SPI1_CS>,
179*724ba675SRob Herring				 <MT2701_PIN_8_SPI1_MI__FUNC_SPI1_MI>,
180*724ba675SRob Herring				 <MT2701_PIN_9_SPI1_MO__FUNC_SPI1_MO>,
181*724ba675SRob Herring				 <MT2701_PIN_199_SPI1_CLK__FUNC_SPI1_CK>;
182*724ba675SRob Herring			bias-disable;
183*724ba675SRob Herring		};
184*724ba675SRob Herring	};
185*724ba675SRob Herring
186*724ba675SRob Herring	spi_pins_c: spi2@0 {
187*724ba675SRob Herring		pins_spi {
188*724ba675SRob Herring			pinmux = <MT2701_PIN_101_SPI2_CSN__FUNC_SPI2_CS>,
189*724ba675SRob Herring				 <MT2701_PIN_102_SPI2_MI__FUNC_SPI2_MI>,
190*724ba675SRob Herring				 <MT2701_PIN_103_SPI2_MO__FUNC_SPI2_MO>,
191*724ba675SRob Herring				 <MT2701_PIN_104_SPI2_CLK__FUNC_SPI2_CK>;
192*724ba675SRob Herring			bias-disable;
193*724ba675SRob Herring		};
194*724ba675SRob Herring	};
195*724ba675SRob Herring};
196*724ba675SRob Herring
197*724ba675SRob Herring&spi0 {
198*724ba675SRob Herring	pinctrl-names = "default";
199*724ba675SRob Herring	pinctrl-0 = <&spi_pins_a>;
200*724ba675SRob Herring	status = "disabled";
201*724ba675SRob Herring};
202*724ba675SRob Herring
203*724ba675SRob Herring&spi1 {
204*724ba675SRob Herring	pinctrl-names = "default";
205*724ba675SRob Herring	pinctrl-0 = <&spi_pins_b>;
206*724ba675SRob Herring	status = "disabled";
207*724ba675SRob Herring};
208*724ba675SRob Herring
209*724ba675SRob Herring&spi2 {
210*724ba675SRob Herring	pinctrl-names = "default";
211*724ba675SRob Herring	pinctrl-0 = <&spi_pins_c>;
212*724ba675SRob Herring	status = "disabled";
213*724ba675SRob Herring};
214*724ba675SRob Herring
215*724ba675SRob Herring&nor_flash {
216*724ba675SRob Herring	pinctrl-names = "default";
217*724ba675SRob Herring	pinctrl-0 = <&nor_pins_default>;
218*724ba675SRob Herring	status = "okay";
219*724ba675SRob Herring	flash@0 {
220*724ba675SRob Herring		compatible = "jedec,spi-nor";
221*724ba675SRob Herring		reg = <0>;
222*724ba675SRob Herring	};
223*724ba675SRob Herring};
224*724ba675SRob Herring
225*724ba675SRob Herring&pio {
226*724ba675SRob Herring	nor_pins_default: nor {
227*724ba675SRob Herring		pins1 {
228*724ba675SRob Herring			pinmux = <MT2701_PIN_240_EXT_XCS__FUNC_EXT_XCS>,
229*724ba675SRob Herring				 <MT2701_PIN_241_EXT_SCK__FUNC_EXT_SCK>,
230*724ba675SRob Herring				 <MT2701_PIN_239_EXT_SDIO0__FUNC_EXT_SDIO0>,
231*724ba675SRob Herring				 <MT2701_PIN_238_EXT_SDIO1__FUNC_EXT_SDIO1>,
232*724ba675SRob Herring				 <MT2701_PIN_237_EXT_SDIO2__FUNC_EXT_SDIO2>,
233*724ba675SRob Herring				 <MT2701_PIN_236_EXT_SDIO3__FUNC_EXT_SDIO3>;
234*724ba675SRob Herring			drive-strength = <MTK_DRIVE_4mA>;
235*724ba675SRob Herring			bias-pull-up;
236*724ba675SRob Herring		};
237*724ba675SRob Herring	};
238*724ba675SRob Herring};
239*724ba675SRob Herring
240*724ba675SRob Herring&uart0 {
241*724ba675SRob Herring	status = "okay";
242*724ba675SRob Herring};
243*724ba675SRob Herring
244*724ba675SRob Herring&usb2 {
245*724ba675SRob Herring	status = "okay";
246*724ba675SRob Herring	usb-role-switch;
247*724ba675SRob Herring	connector{
248*724ba675SRob Herring		compatible = "gpio-usb-b-connector", "usb-b-connector";
249*724ba675SRob Herring		type = "micro";
250*724ba675SRob Herring		id-gpios = <&pio 44 GPIO_ACTIVE_HIGH>;
251*724ba675SRob Herring		vbus-supply = <&usb_vbus>;
252*724ba675SRob Herring	};
253*724ba675SRob Herring};
254