1// SPDX-License-Identifier: GPL-2.0
2#include "qcom-apq8064-v2.0.dtsi"
3#include <dt-bindings/gpio/gpio.h>
4#include <dt-bindings/input/input.h>
5#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
6/ {
7	model = "Asus Nexus7(flo)";
8	compatible = "asus,nexus7-flo", "qcom,apq8064";
9	chassis-type = "tablet";
10
11	aliases {
12		serial0 = &gsbi7_serial;
13		serial1 = &gsbi6_serial;
14	};
15
16	chosen {
17		stdout-path = "serial0:115200n8";
18	};
19
20	reserved-memory {
21		#address-cells = <1>;
22		#size-cells = <1>;
23		ranges;
24
25		ramoops@88d00000 {
26			compatible = "ramoops";
27			reg = <0x88d00000 0x100000>;
28			record-size = <0x00020000>;
29			console-size = <0x00020000>;
30			ftrace-size = <0x00020000>;
31		};
32	};
33
34	ext_3p3v: regulator-ext-3p3v {
35		compatible = "regulator-fixed";
36		regulator-min-microvolt = <3300000>;
37		regulator-max-microvolt = <3300000>;
38		regulator-name = "ext_3p3v";
39		startup-delay-us = <0>;
40		gpio = <&tlmm_pinmux 77 GPIO_ACTIVE_HIGH>;
41		enable-active-high;
42		regulator-boot-on;
43	};
44
45	gpio-keys {
46		compatible = "gpio-keys";
47		key-volume-up {
48			label = "Volume Up";
49			gpios = <&pm8921_gpio 4 GPIO_ACTIVE_HIGH>;
50			linux,code = <KEY_VOLUMEUP>;
51		};
52		key-volume-down {
53			label = "Volume Down";
54			gpios = <&pm8921_gpio 38 GPIO_ACTIVE_HIGH>;
55			linux,code = <KEY_VOLUMEDOWN>;
56		};
57	};
58
59	soc {
60		sram@2a03f000 {
61			compatible = "qcom,apq8064-imem", "syscon", "simple-mfd";
62			reg = <0x2a03f000 0x1000>;
63
64			reboot-mode {
65				compatible = "syscon-reboot-mode";
66				offset = <0x65c>;
67
68				mode-normal = <0x77665501>;
69				mode-bootloader = <0x77665500>;
70				mode-recovery = <0x77665502>;
71			};
72		};
73	};
74};
75
76&dsi0 {
77	vdda-supply = <&pm8921_l2>;/*VDD_MIPI1 to 4*/
78	vdd-supply = <&pm8921_l8>;
79	vddio-supply = <&pm8921_lvs7>;
80	avdd-supply = <&pm8921_l11>;
81	status = "okay";
82
83	panel@0 {
84		reg = <0>;
85		compatible = "jdi,lt070me05000";
86
87		vddp-supply = <&pm8921_l17>;
88		iovcc-supply = <&pm8921_lvs7>;
89
90		enable-gpios = <&pm8921_gpio 36 GPIO_ACTIVE_HIGH>;
91		reset-gpios = <&tlmm_pinmux 54 GPIO_ACTIVE_LOW>;
92		dcdc-en-gpios = <&pm8921_gpio 23 GPIO_ACTIVE_HIGH>;
93
94		port {
95			panel_in: endpoint {
96				remote-endpoint = <&dsi0_out>;
97			};
98		};
99	};
100};
101
102&dsi0_in {
103	remote-endpoint = <&mdp_dsi1_out>;
104};
105
106&dsi0_out {
107	remote-endpoint = <&panel_in>;
108	data-lanes = <0 1 2 3>;
109};
110
111&dsi0_phy {
112	vddio-supply = <&pm8921_lvs7>;/*VDD_PLL2_1 to 7*/
113	status = "okay";
114};
115
116&gsbi1 {
117	qcom,mode = <GSBI_PROT_I2C>;
118	status = "okay";
119};
120
121&gsbi1_i2c {
122	status = "okay";
123	clock-frequency = <200000>;
124	pinctrl-0 = <&i2c1_pins>;
125	pinctrl-names = "default";
126
127	eeprom@52 {
128		compatible = "atmel,24c128";
129		reg = <0x52>;
130		pagesize = <32>;
131	};
132
133	bq27541@55 {
134		compatible = "ti,bq27541";
135		reg = <0x55>;
136	};
137
138};
139
140&gsbi3 {
141	qcom,mode = <GSBI_PROT_I2C>;
142	status = "okay";
143};
144
145&gsbi3_i2c {
146	clock-frequency = <200000>;
147	pinctrl-0 = <&i2c3_pins>;
148	pinctrl-names = "default";
149	status = "okay";
150
151	trackpad@10 {
152		compatible = "elan,ekth3500";
153		reg = <0x10>;
154		interrupt-parent = <&tlmm_pinmux>;
155		interrupts = <6 IRQ_TYPE_EDGE_FALLING>;
156	};
157};
158
159&gsbi6 {
160	qcom,mode = <GSBI_PROT_I2C_UART>;
161	status = "okay";
162};
163
164&gsbi6_serial {
165	pinctrl-names = "default";
166	pinctrl-0 = <&gsbi6_uart_4pins>;
167	status = "okay";
168};
169
170&gsbi7 {
171	qcom,mode = <GSBI_PROT_I2C_UART>;
172	status = "okay";
173};
174
175&gsbi7_serial {
176	status = "okay";
177};
178
179&mdp {
180	status = "okay";
181};
182
183/* eMMC */
184&sdcc1 {
185	vmmc-supply = <&pm8921_l5>;
186	vqmmc-supply = <&pm8921_s4>;
187	status = "okay";
188};
189
190&mdp_dsi1_out {
191	remote-endpoint = <&dsi0_in>;
192};
193
194&rpm {
195	regulators {
196		vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
197		vin_lvs1_3_6-supply = <&pm8921_s4>;
198		vin_lvs4_5_7-supply = <&pm8921_s4>;
199
200
201		vdd_l24-supply = <&pm8921_s1>;
202		vdd_l25-supply = <&pm8921_s1>;
203		vin_lvs2-supply = <&pm8921_s1>;
204
205		vdd_l26-supply = <&pm8921_s7>;
206		vdd_l27-supply = <&pm8921_s7>;
207		vdd_l28-supply = <&pm8921_s7>;
208
209		vdd_ncp-supply = <&pm8921_l6>;
210
211		/* Buck SMPS */
212		s1 {
213			regulator-always-on;
214			regulator-min-microvolt = <1225000>;
215			regulator-max-microvolt = <1225000>;
216			qcom,switch-mode-frequency = <3200000>;
217			bias-pull-down;
218		};
219
220		/* msm otg HSUSB_VDDCX */
221		s3 {
222			regulator-min-microvolt = <500000>;
223			regulator-max-microvolt = <1150000>;
224			qcom,switch-mode-frequency = <4800000>;
225		};
226
227		/*
228		 * msm_sdcc.1-sdc-vdd_io
229		 * tabla2x-slim-CDC_VDDA_RX
230		 * tabla2x-slim-CDC_VDDA_TX
231		 * tabla2x-slim-CDC_VDD_CP
232		 * tabla2x-slim-VDDIO_CDC
233		 */
234		s4 {
235			regulator-min-microvolt = <1800000>;
236			regulator-max-microvolt = <1800000>;
237			qcom,switch-mode-frequency = <3200000>;
238			regulator-always-on;
239		};
240
241		s7 {
242			regulator-min-microvolt = <1300000>;
243			regulator-max-microvolt = <1300000>;
244			qcom,switch-mode-frequency = <3200000>;
245		};
246
247		/* mipi_dsi.1-dsi1_pll_vdda */
248		l2 {
249			regulator-min-microvolt = <1200000>;
250			regulator-max-microvolt = <1200000>;
251			regulator-always-on;
252		};
253
254		/* msm_otg-HSUSB_3p3 */
255		l3 {
256			regulator-min-microvolt = <3075000>;
257			regulator-max-microvolt = <3075000>;
258			bias-pull-down;
259		};
260
261		/* msm_otg-HSUSB_1p8 */
262		l4 {
263			regulator-min-microvolt = <1800000>;
264			regulator-max-microvolt = <1800000>;
265			bias-pull-down;
266		};
267
268		/* msm_sdcc.1-sdc_vdd */
269		l5 {
270			regulator-min-microvolt = <2950000>;
271			regulator-max-microvolt = <2950000>;
272			regulator-always-on;
273			bias-pull-down;
274		};
275
276		l6 {
277			regulator-min-microvolt = <2950000>;
278			regulator-max-microvolt = <2950000>;
279		};
280
281		/* mipi_dsi.1-dsi1_avdd */
282		l11 {
283			regulator-min-microvolt = <3000000>;
284			regulator-max-microvolt = <3000000>;
285			bias-pull-down;
286			regulator-always-on;
287		};
288
289		/* pwm_power for backlight */
290		l17 {
291			regulator-min-microvolt = <3000000>;
292			regulator-max-microvolt = <3000000>;
293			regulator-always-on;
294		};
295
296		/* camera, qdsp6 */
297		l23 {
298			regulator-min-microvolt = <1800000>;
299			regulator-max-microvolt = <1800000>;
300			bias-pull-down;
301		};
302
303		/*
304		 * tabla2x-slim-CDC_VDDA_A_1P2V
305		 * tabla2x-slim-VDDD_CDC_D
306		 */
307		l25 {
308			regulator-min-microvolt = <1250000>;
309			regulator-max-microvolt = <1250000>;
310			bias-pull-down;
311		};
312
313		lvs1 {
314			bias-pull-down;
315		};
316
317		lvs4 {
318			bias-pull-down;
319		};
320
321		lvs5 {
322			bias-pull-down;
323		};
324
325		lvs6 {
326			bias-pull-down;
327		};
328		/*
329		 * mipi_dsi.1-dsi1_vddio
330		 * pil_riva-pll_vdd
331		 */
332		lvs7 {
333			bias-pull-down;
334		};
335	};
336};
337
338&usb_hs1_phy {
339	v3p3-supply = <&pm8921_l3>;
340	v1p8-supply = <&pm8921_l4>;
341};
342
343/* OTG */
344&usb1 {
345	dr_mode = "otg";
346	status = "okay";
347};
348