1// SPDX-License-Identifier: BSD-3-Clause
2/*
3 * Copyright (c) 2022, Matti Lehtimäki <matti.lehtimaki@gmail.com>
4 */
5
6/dts-v1/;
7
8#include <dt-bindings/input/input.h>
9#include "qcom-msm8226.dtsi"
10#include "pm8226.dtsi"
11
12/delete-node/ &adsp_region;
13/delete-node/ &smem_region;
14
15/ {
16	model = "Samsung Galaxy Tab 4 10.1";
17	compatible = "samsung,matisse-wifi", "qcom,apq8026";
18	chassis-type = "tablet";
19
20	aliases {
21		mmc0 = &sdhc_1; /* SDC1 eMMC slot */
22		mmc1 = &sdhc_2; /* SDC2 SD card slot */
23		display0 = &framebuffer0;
24	};
25
26	chosen {
27		#address-cells = <1>;
28		#size-cells = <1>;
29		ranges;
30
31		stdout-path = "display0";
32
33		framebuffer0: framebuffer@3200000 {
34			compatible = "simple-framebuffer";
35			reg = <0x03200000 0x800000>;
36			width = <1280>;
37			height = <800>;
38			stride = <(1280 * 3)>;
39			format = "r8g8b8";
40		};
41	};
42
43	gpio-hall-sensor {
44		compatible = "gpio-keys";
45
46		event-hall-sensor {
47			label = "Hall Effect Sensor";
48			gpios = <&tlmm 110 GPIO_ACTIVE_LOW>;
49			linux,input-type = <EV_SW>;
50			linux,code = <SW_LID>;
51			debounce-interval = <15>;
52			linux,can-disable;
53			wakeup-source;
54		};
55	};
56
57	gpio-keys {
58		compatible = "gpio-keys";
59		autorepeat;
60
61		key-home {
62			label = "Home";
63			gpios = <&tlmm 108 GPIO_ACTIVE_LOW>;
64			linux,code = <KEY_HOMEPAGE>;
65			debounce-interval = <15>;
66		};
67
68		key-volume-down {
69			label = "Volume Down";
70			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
71			linux,code = <KEY_VOLUMEDOWN>;
72			debounce-interval = <15>;
73		};
74
75		key-volume-up {
76			label = "Volume Up";
77			gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
78			linux,code = <KEY_VOLUMEUP>;
79			debounce-interval = <15>;
80		};
81	};
82
83	i2c-backlight {
84		compatible = "i2c-gpio";
85		sda-gpios = <&tlmm 20 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
86		scl-gpios = <&tlmm 21 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
87
88		pinctrl-0 = <&backlight_i2c_default_state>;
89		pinctrl-names = "default";
90
91		i2c-gpio,delay-us = <4>;
92
93		#address-cells = <1>;
94		#size-cells = <0>;
95
96		backlight@2c {
97			compatible = "ti,lp8556";
98			reg = <0x2c>;
99
100			dev-ctrl = /bits/ 8 <0x80>;
101			init-brt = /bits/ 8 <0x3f>;
102
103			pwms = <&backlight_pwm 0 100000>;
104			pwm-names = "lp8556";
105
106			rom-a0h {
107				rom-addr = /bits/ 8 <0xa0>;
108				rom-val = /bits/ 8 <0x44>;
109			};
110
111			rom-a1h {
112				rom-addr = /bits/ 8 <0xa1>;
113				rom-val = /bits/ 8 <0x6c>;
114			};
115
116			rom-a5h {
117				rom-addr = /bits/ 8 <0xa5>;
118				rom-val = /bits/ 8 <0x24>;
119			};
120		};
121	};
122
123	backlight_pwm: pwm {
124		compatible = "clk-pwm";
125		#pwm-cells = <2>;
126		clocks = <&mmcc CAMSS_GP0_CLK>;
127		pinctrl-0 = <&backlight_pwm_default_state>;
128		pinctrl-names = "default";
129	};
130
131	reg_tsp_1p8v: regulator-tsp-1p8v {
132		compatible = "regulator-fixed";
133		regulator-name = "tsp_1p8v";
134		regulator-min-microvolt = <1800000>;
135		regulator-max-microvolt = <1800000>;
136
137		gpio = <&tlmm 31 GPIO_ACTIVE_HIGH>;
138		enable-active-high;
139
140		pinctrl-names = "default";
141		pinctrl-0 = <&tsp_en_default_state>;
142	};
143
144	reg_tsp_3p3v: regulator-tsp-3p3v {
145		compatible = "regulator-fixed";
146		regulator-name = "tsp_3p3v";
147		regulator-min-microvolt = <3300000>;
148		regulator-max-microvolt = <3300000>;
149
150		gpio = <&tlmm 73 GPIO_ACTIVE_HIGH>;
151		enable-active-high;
152
153		pinctrl-names = "default";
154		pinctrl-0 = <&tsp_en1_default_state>;
155	};
156
157	reserved-memory {
158		#address-cells = <1>;
159		#size-cells = <1>;
160		ranges;
161
162		framebuffer@3200000 {
163			reg = <0x03200000 0x800000>;
164			no-map;
165		};
166
167		mpss@8400000 {
168			reg = <0x08400000 0x1f00000>;
169			no-map;
170		};
171
172		mba@a300000 {
173			reg = <0x0a300000 0x100000>;
174			no-map;
175		};
176
177		reserved@cb00000 {
178			reg = <0x0cb00000 0x700000>;
179			no-map;
180		};
181
182		wcnss@d200000 {
183			reg = <0x0d200000 0x700000>;
184			no-map;
185		};
186
187		adsp_region: adsp@d900000 {
188			reg = <0x0d900000 0x1800000>;
189			no-map;
190		};
191
192		venus@f100000 {
193			reg = <0x0f100000 0x500000>;
194			no-map;
195		};
196
197		smem_region: smem@fa00000 {
198			reg = <0x0fa00000 0x100000>;
199			no-map;
200		};
201
202		reserved@fb00000 {
203			reg = <0x0fb00000 0x260000>;
204			no-map;
205		};
206
207		rfsa@fd60000 {
208			reg = <0x0fd60000 0x20000>;
209			no-map;
210		};
211
212		rmtfs@fd80000 {
213			compatible = "qcom,rmtfs-mem";
214			reg = <0x0fd80000 0x180000>;
215			no-map;
216
217			qcom,client-id = <1>;
218		};
219	};
220};
221
222&adsp {
223	status = "okay";
224};
225
226&blsp1_i2c2 {
227	status = "okay";
228
229	accelerometer@1d {
230		compatible = "st,lis2hh12";
231		reg = <0x1d>;
232
233		interrupt-parent = <&tlmm>;
234		interrupts = <54 IRQ_TYPE_LEVEL_HIGH>;
235
236		pinctrl-names = "default";
237		pinctrl-0 = <&accel_int_default_state>;
238
239		st,drdy-int-pin = <1>;
240
241		vdd-supply = <&pm8226_l19>;
242		vddio-supply = <&pm8226_lvs1>;
243	};
244};
245
246&blsp1_i2c4 {
247	status = "okay";
248
249	muic: usb-switch@25 {
250		compatible = "siliconmitus,sm5502-muic";
251		reg = <0x25>;
252
253		interrupt-parent = <&tlmm>;
254		interrupts = <67 IRQ_TYPE_EDGE_FALLING>;
255
256		pinctrl-names = "default";
257		pinctrl-0 = <&muic_int_default_state>;
258	};
259};
260
261&blsp1_i2c5 {
262	status = "okay";
263
264	touchscreen@4a {
265		compatible = "atmel,maxtouch";
266		reg = <0x4a>;
267
268		interrupt-parent = <&tlmm>;
269		interrupts = <17 IRQ_TYPE_LEVEL_LOW>;
270
271		pinctrl-names = "default";
272		pinctrl-0 = <&tsp_int_rst_default_state>;
273
274		reset-gpios = <&pm8226_gpios 6 GPIO_ACTIVE_LOW>;
275
276		vdd-supply = <&reg_tsp_1p8v>;
277		vdda-supply = <&reg_tsp_3p3v>;
278	};
279};
280
281&rpm_requests {
282	regulators {
283		compatible = "qcom,rpm-pm8226-regulators";
284
285		pm8226_s3: s3 {
286			regulator-min-microvolt = <1200000>;
287			regulator-max-microvolt = <1300000>;
288		};
289
290		pm8226_s4: s4 {
291			regulator-min-microvolt = <1800000>;
292			regulator-max-microvolt = <1800000>;
293		};
294
295		pm8226_s5: s5 {
296			regulator-min-microvolt = <1150000>;
297			regulator-max-microvolt = <1150000>;
298		};
299
300		pm8226_l1: l1 {
301			regulator-min-microvolt = <1225000>;
302			regulator-max-microvolt = <1225000>;
303		};
304
305		pm8226_l2: l2 {
306			regulator-min-microvolt = <1200000>;
307			regulator-max-microvolt = <1200000>;
308		};
309
310		pm8226_l3: l3 {
311			regulator-min-microvolt = <750000>;
312			regulator-max-microvolt = <1337500>;
313			regulator-always-on;
314		};
315
316		pm8226_l4: l4 {
317			regulator-min-microvolt = <1200000>;
318			regulator-max-microvolt = <1200000>;
319		};
320
321		pm8226_l5: l5 {
322			regulator-min-microvolt = <1200000>;
323			regulator-max-microvolt = <1200000>;
324		};
325
326		pm8226_l6: l6 {
327			regulator-min-microvolt = <1800000>;
328			regulator-max-microvolt = <1800000>;
329			regulator-always-on;
330		};
331
332		pm8226_l7: l7 {
333			regulator-min-microvolt = <1850000>;
334			regulator-max-microvolt = <1850000>;
335		};
336
337		pm8226_l8: l8 {
338			regulator-min-microvolt = <1800000>;
339			regulator-max-microvolt = <1800000>;
340			regulator-always-on;
341		};
342
343		pm8226_l9: l9 {
344			regulator-min-microvolt = <2050000>;
345			regulator-max-microvolt = <2050000>;
346		};
347
348		pm8226_l10: l10 {
349			regulator-min-microvolt = <1800000>;
350			regulator-max-microvolt = <1800000>;
351		};
352
353		pm8226_l12: l12 {
354			regulator-min-microvolt = <1800000>;
355			regulator-max-microvolt = <1800000>;
356		};
357
358		pm8226_l14: l14 {
359			regulator-min-microvolt = <2750000>;
360			regulator-max-microvolt = <2750000>;
361		};
362
363		pm8226_l15: l15 {
364			regulator-min-microvolt = <1800000>;
365			regulator-max-microvolt = <3300000>;
366		};
367
368		pm8226_l16: l16 {
369			regulator-min-microvolt = <3000000>;
370			regulator-max-microvolt = <3350000>;
371		};
372
373		pm8226_l17: l17 {
374			regulator-min-microvolt = <2950000>;
375			regulator-max-microvolt = <2950000>;
376
377			regulator-system-load = <200000>;
378			regulator-allow-set-load;
379			regulator-always-on;
380		};
381
382		pm8226_l18: l18 {
383			regulator-min-microvolt = <2950000>;
384			regulator-max-microvolt = <2950000>;
385		};
386
387		pm8226_l19: l19 {
388			regulator-min-microvolt = <2850000>;
389			regulator-max-microvolt = <3000000>;
390		};
391
392		pm8226_l20: l20 {
393			regulator-min-microvolt = <3075000>;
394			regulator-max-microvolt = <3075000>;
395		};
396
397		pm8226_l21: l21 {
398			regulator-min-microvolt = <1800000>;
399			regulator-max-microvolt = <2950000>;
400		};
401
402		pm8226_l22: l22 {
403			regulator-min-microvolt = <1800000>;
404			regulator-max-microvolt = <3000000>;
405		};
406
407		pm8226_l23: l23 {
408			regulator-min-microvolt = <1800000>;
409			regulator-max-microvolt = <3300000>;
410		};
411
412		pm8226_l24: l24 {
413			regulator-min-microvolt = <1300000>;
414			regulator-max-microvolt = <1350000>;
415		};
416
417		pm8226_l25: l25 {
418			regulator-min-microvolt = <1775000>;
419			regulator-max-microvolt = <2125000>;
420		};
421
422		pm8226_l26: l26 {
423			regulator-min-microvolt = <1225000>;
424			regulator-max-microvolt = <1300000>;
425		};
426
427		pm8226_l27: l27 {
428			regulator-min-microvolt = <1800000>;
429			regulator-max-microvolt = <1800000>;
430		};
431
432		pm8226_l28: l28 {
433			regulator-min-microvolt = <1800000>;
434			regulator-max-microvolt = <2950000>;
435		};
436
437		pm8226_lvs1: lvs1 {};
438	};
439};
440
441&sdhc_1 {
442	vmmc-supply = <&pm8226_l17>;
443	vqmmc-supply = <&pm8226_l6>;
444
445	bus-width = <8>;
446	non-removable;
447
448	status = "okay";
449};
450
451&sdhc_2 {
452	vmmc-supply = <&pm8226_l18>;
453	vqmmc-supply = <&pm8226_l21>;
454
455	bus-width = <4>;
456	cd-gpios = <&tlmm 38 GPIO_ACTIVE_LOW>;
457
458	status = "okay";
459};
460
461&tlmm {
462	accel_int_default_state: accel-int-default-state {
463		pins = "gpio54";
464		function = "gpio";
465		drive-strength = <2>;
466		bias-disable;
467	};
468
469	backlight_i2c_default_state: backlight-i2c-default-state {
470		pins = "gpio20", "gpio21";
471		function = "gpio";
472		drive-strength = <2>;
473		bias-disable;
474	};
475
476	backlight_pwm_default_state: backlight-pwm-default-state {
477		pins = "gpio33";
478		function = "gp0_clk";
479	};
480
481	muic_int_default_state: muic-int-default-state {
482		pins = "gpio67";
483		function = "gpio";
484		drive-strength = <2>;
485		bias-disable;
486	};
487
488	tsp_en_default_state: tsp-en-default-state {
489		pins = "gpio31";
490		function = "gpio";
491		drive-strength = <2>;
492		bias-disable;
493	};
494
495	tsp_en1_default_state: tsp-en1-default-state {
496		pins = "gpio73";
497		function = "gpio";
498		drive-strength = <2>;
499		bias-disable;
500	};
501
502	tsp_int_rst_default_state: tsp-int-rst-default-state {
503		pins = "gpio17";
504		function = "gpio";
505		drive-strength = <10>;
506		bias-pull-up;
507	};
508};
509
510&usb {
511	extcon = <&muic>, <&muic>;
512	status = "okay";
513};
514
515&usb_hs_phy {
516	extcon = <&muic>;
517	v1p8-supply = <&pm8226_l10>;
518	v3p3-supply = <&pm8226_l20>;
519};
520