xref: /freebsd/sys/contrib/device-tree/src/arm64/qcom/sdm450-lenovo-tbx605f.dts (revision 0e8011faf58b743cc652e3b2ad0f7671227610df)
1*0e8011faSEmmanuel Vadot// SPDX-License-Identifier: BSD-3-Clause
2*0e8011faSEmmanuel Vadot/*
3*0e8011faSEmmanuel Vadot * Copyright (c) 2024, Neil Armstrong <neil.armstrong@linaro.org>
4*0e8011faSEmmanuel Vadot */
5*0e8011faSEmmanuel Vadot/dts-v1/;
6*0e8011faSEmmanuel Vadot
7*0e8011faSEmmanuel Vadot#include "sdm450.dtsi"
8*0e8011faSEmmanuel Vadot#include "pm8953.dtsi"
9*0e8011faSEmmanuel Vadot#include "pmi8950.dtsi"
10*0e8011faSEmmanuel Vadot
11*0e8011faSEmmanuel Vadot/ {
12*0e8011faSEmmanuel Vadot	model = "Lenovo Smart Tab M10";
13*0e8011faSEmmanuel Vadot	compatible = "lenovo,tbx605f", "qcom,sdm450";
14*0e8011faSEmmanuel Vadot	chassis-type = "tablet";
15*0e8011faSEmmanuel Vadot
16*0e8011faSEmmanuel Vadot	chosen {
17*0e8011faSEmmanuel Vadot		#address-cells = <2>;
18*0e8011faSEmmanuel Vadot		#size-cells = <2>;
19*0e8011faSEmmanuel Vadot		ranges;
20*0e8011faSEmmanuel Vadot
21*0e8011faSEmmanuel Vadot		framebuffer@90001000 {
22*0e8011faSEmmanuel Vadot			compatible = "simple-framebuffer";
23*0e8011faSEmmanuel Vadot			reg = <0 0x90001000 0 (1200 * 1920 * 3)>;
24*0e8011faSEmmanuel Vadot
25*0e8011faSEmmanuel Vadot			width = <1200>;
26*0e8011faSEmmanuel Vadot			height = <1920>;
27*0e8011faSEmmanuel Vadot			stride = <(1200 * 3)>;
28*0e8011faSEmmanuel Vadot			format = "r8g8b8";
29*0e8011faSEmmanuel Vadot
30*0e8011faSEmmanuel Vadot			power-domains = <&gcc MDSS_GDSC>;
31*0e8011faSEmmanuel Vadot
32*0e8011faSEmmanuel Vadot			clocks = <&gcc GCC_MDSS_AHB_CLK>,
33*0e8011faSEmmanuel Vadot				 <&gcc GCC_MDSS_AXI_CLK>,
34*0e8011faSEmmanuel Vadot				 <&gcc GCC_MDSS_VSYNC_CLK>,
35*0e8011faSEmmanuel Vadot				 <&gcc GCC_MDSS_MDP_CLK>,
36*0e8011faSEmmanuel Vadot				 <&gcc GCC_MDSS_BYTE0_CLK>,
37*0e8011faSEmmanuel Vadot				 <&gcc GCC_MDSS_PCLK0_CLK>,
38*0e8011faSEmmanuel Vadot				 <&gcc GCC_MDSS_ESC0_CLK>;
39*0e8011faSEmmanuel Vadot		};
40*0e8011faSEmmanuel Vadot	};
41*0e8011faSEmmanuel Vadot
42*0e8011faSEmmanuel Vadot	reserved-memory {
43*0e8011faSEmmanuel Vadot		other_ext_region@0 {
44*0e8011faSEmmanuel Vadot			no-map;
45*0e8011faSEmmanuel Vadot			reg = <0x00 0x84500000 0x00 0x2300000>;
46*0e8011faSEmmanuel Vadot		};
47*0e8011faSEmmanuel Vadot	};
48*0e8011faSEmmanuel Vadot
49*0e8011faSEmmanuel Vadot	gpio-keys {
50*0e8011faSEmmanuel Vadot		compatible = "gpio-keys";
51*0e8011faSEmmanuel Vadot		key-volume-up {
52*0e8011faSEmmanuel Vadot			label = "volume_up";
53*0e8011faSEmmanuel Vadot			gpios = <&tlmm 85 GPIO_ACTIVE_LOW>;
54*0e8011faSEmmanuel Vadot			linux,code = <KEY_VOLUMEUP>;
55*0e8011faSEmmanuel Vadot		};
56*0e8011faSEmmanuel Vadot	};
57*0e8011faSEmmanuel Vadot
58*0e8011faSEmmanuel Vadot	vph_pwr: vph-pwr-regulator {
59*0e8011faSEmmanuel Vadot		compatible = "regulator-fixed";
60*0e8011faSEmmanuel Vadot		regulator-name = "vph_pwr";
61*0e8011faSEmmanuel Vadot		regulator-always-on;
62*0e8011faSEmmanuel Vadot		regulator-boot-on;
63*0e8011faSEmmanuel Vadot	};
64*0e8011faSEmmanuel Vadot};
65*0e8011faSEmmanuel Vadot
66*0e8011faSEmmanuel Vadot&hsusb_phy {
67*0e8011faSEmmanuel Vadot	vdd-supply = <&pm8953_l3>;
68*0e8011faSEmmanuel Vadot	vdda-pll-supply = <&pm8953_l7>;
69*0e8011faSEmmanuel Vadot	vdda-phy-dpdm-supply = <&pm8953_l13>;
70*0e8011faSEmmanuel Vadot
71*0e8011faSEmmanuel Vadot	status = "okay";
72*0e8011faSEmmanuel Vadot};
73*0e8011faSEmmanuel Vadot
74*0e8011faSEmmanuel Vadot&i2c_3 {
75*0e8011faSEmmanuel Vadot	status = "okay";
76*0e8011faSEmmanuel Vadot
77*0e8011faSEmmanuel Vadot	touchscreen@38 {
78*0e8011faSEmmanuel Vadot		compatible = "edt,edt-ft5506";
79*0e8011faSEmmanuel Vadot		reg = <0x38>;
80*0e8011faSEmmanuel Vadot		interrupt-parent = <&tlmm>;
81*0e8011faSEmmanuel Vadot		interrupts = <65 IRQ_TYPE_EDGE_FALLING>;
82*0e8011faSEmmanuel Vadot		vcc-supply = <&pm8953_l10>;
83*0e8011faSEmmanuel Vadot
84*0e8011faSEmmanuel Vadot		pinctrl-names = "default";
85*0e8011faSEmmanuel Vadot		pinctrl-0 = <&ts_int_active &ts_reset_active>;
86*0e8011faSEmmanuel Vadot
87*0e8011faSEmmanuel Vadot		reset-gpios = <&tlmm 64 GPIO_ACTIVE_LOW>;
88*0e8011faSEmmanuel Vadot		touchscreen-size-x = <1200>;
89*0e8011faSEmmanuel Vadot		touchscreen-size-y = <1920>;
90*0e8011faSEmmanuel Vadot	};
91*0e8011faSEmmanuel Vadot};
92*0e8011faSEmmanuel Vadot
93*0e8011faSEmmanuel Vadot&pm8953_resin {
94*0e8011faSEmmanuel Vadot	linux,code = <KEY_VOLUMEDOWN>;
95*0e8011faSEmmanuel Vadot	status = "okay";
96*0e8011faSEmmanuel Vadot};
97*0e8011faSEmmanuel Vadot
98*0e8011faSEmmanuel Vadot&rpm_requests {
99*0e8011faSEmmanuel Vadot	regulators {
100*0e8011faSEmmanuel Vadot		compatible = "qcom,rpm-pm8953-regulators";
101*0e8011faSEmmanuel Vadot
102*0e8011faSEmmanuel Vadot		vdd_s1-supply = <&vph_pwr>;
103*0e8011faSEmmanuel Vadot		vdd_s2-supply = <&vph_pwr>;
104*0e8011faSEmmanuel Vadot		vdd_s3-supply = <&vph_pwr>;
105*0e8011faSEmmanuel Vadot		vdd_s4-supply = <&vph_pwr>;
106*0e8011faSEmmanuel Vadot		vdd_s5-supply = <&vph_pwr>;
107*0e8011faSEmmanuel Vadot		vdd_s6-supply = <&vph_pwr>;
108*0e8011faSEmmanuel Vadot		vdd_s7-supply = <&vph_pwr>;
109*0e8011faSEmmanuel Vadot		vdd_l1-supply = <&pm8953_s3>;
110*0e8011faSEmmanuel Vadot		vdd_l2_l3-supply = <&pm8953_s3>;
111*0e8011faSEmmanuel Vadot		vdd_l4_l5_l6_l7_l16_l19-supply = <&pm8953_s4>;
112*0e8011faSEmmanuel Vadot		vdd_l8_l11_l12_l13_l14_l15-supply = <&vph_pwr>;
113*0e8011faSEmmanuel Vadot		vdd_l9_l10_l17_l18_l22-supply = <&vph_pwr>;
114*0e8011faSEmmanuel Vadot
115*0e8011faSEmmanuel Vadot		pm8953_s1: s1 {
116*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <870000>;
117*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1156000>;
118*0e8011faSEmmanuel Vadot		};
119*0e8011faSEmmanuel Vadot
120*0e8011faSEmmanuel Vadot		pm8953_s3: s3 {
121*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <1224000>;
122*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1224000>;
123*0e8011faSEmmanuel Vadot		};
124*0e8011faSEmmanuel Vadot
125*0e8011faSEmmanuel Vadot		pm8953_s4: s4 {
126*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <1900000>;
127*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <2050000>;
128*0e8011faSEmmanuel Vadot		};
129*0e8011faSEmmanuel Vadot
130*0e8011faSEmmanuel Vadot		pm8953_l1: l1 {
131*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <1000000>;
132*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1100000>;
133*0e8011faSEmmanuel Vadot		};
134*0e8011faSEmmanuel Vadot
135*0e8011faSEmmanuel Vadot		pm8953_l2: l2 {
136*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <975000>;
137*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1225000>;
138*0e8011faSEmmanuel Vadot		};
139*0e8011faSEmmanuel Vadot
140*0e8011faSEmmanuel Vadot		pm8953_l3: l3 {
141*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <925000>;
142*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <925000>;
143*0e8011faSEmmanuel Vadot		};
144*0e8011faSEmmanuel Vadot
145*0e8011faSEmmanuel Vadot		pm8953_l5: l5 {
146*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
147*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
148*0e8011faSEmmanuel Vadot		};
149*0e8011faSEmmanuel Vadot
150*0e8011faSEmmanuel Vadot		pm8953_l6: l6 {
151*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
152*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
153*0e8011faSEmmanuel Vadot		};
154*0e8011faSEmmanuel Vadot
155*0e8011faSEmmanuel Vadot		pm8953_l7: l7 {
156*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
157*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1900000>;
158*0e8011faSEmmanuel Vadot		};
159*0e8011faSEmmanuel Vadot
160*0e8011faSEmmanuel Vadot		pm8953_l8: l8 {
161*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <2900000>;
162*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <2900000>;
163*0e8011faSEmmanuel Vadot		};
164*0e8011faSEmmanuel Vadot
165*0e8011faSEmmanuel Vadot		pm8953_l9: l9 {
166*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <3000000>;
167*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <3300000>;
168*0e8011faSEmmanuel Vadot		};
169*0e8011faSEmmanuel Vadot
170*0e8011faSEmmanuel Vadot		pm8953_l10: l10 {
171*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <2850000>;
172*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <2850000>;
173*0e8011faSEmmanuel Vadot		};
174*0e8011faSEmmanuel Vadot
175*0e8011faSEmmanuel Vadot		pm8953_l11: l11 {
176*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <3300000>;
177*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <3300000>;
178*0e8011faSEmmanuel Vadot		};
179*0e8011faSEmmanuel Vadot
180*0e8011faSEmmanuel Vadot		pm8953_l12: l12 {
181*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <2950000>;
182*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <2950000>;
183*0e8011faSEmmanuel Vadot		};
184*0e8011faSEmmanuel Vadot
185*0e8011faSEmmanuel Vadot		pm8953_l13: l13 {
186*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <3125000>;
187*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <3125000>;
188*0e8011faSEmmanuel Vadot		};
189*0e8011faSEmmanuel Vadot
190*0e8011faSEmmanuel Vadot		pm8953_l16: l16 {
191*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <1800000>;
192*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1800000>;
193*0e8011faSEmmanuel Vadot		};
194*0e8011faSEmmanuel Vadot
195*0e8011faSEmmanuel Vadot		pm8953_l17: l17 {
196*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <2850000>;
197*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <2850000>;
198*0e8011faSEmmanuel Vadot		};
199*0e8011faSEmmanuel Vadot
200*0e8011faSEmmanuel Vadot		pm8953_l19: l19 {
201*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <1200000>;
202*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1350000>;
203*0e8011faSEmmanuel Vadot		};
204*0e8011faSEmmanuel Vadot
205*0e8011faSEmmanuel Vadot		pm8953_l22: l22 {
206*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <2800000>;
207*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <2850000>;
208*0e8011faSEmmanuel Vadot		};
209*0e8011faSEmmanuel Vadot
210*0e8011faSEmmanuel Vadot		pm8953_l23: l23 {
211*0e8011faSEmmanuel Vadot			regulator-min-microvolt = <975000>;
212*0e8011faSEmmanuel Vadot			regulator-max-microvolt = <1225000>;
213*0e8011faSEmmanuel Vadot		};
214*0e8011faSEmmanuel Vadot	};
215*0e8011faSEmmanuel Vadot};
216*0e8011faSEmmanuel Vadot
217*0e8011faSEmmanuel Vadot&sdhc_1 {
218*0e8011faSEmmanuel Vadot	vmmc-supply = <&pm8953_l8>;
219*0e8011faSEmmanuel Vadot	vqmmc-supply = <&pm8953_l5>;
220*0e8011faSEmmanuel Vadot
221*0e8011faSEmmanuel Vadot	status = "okay";
222*0e8011faSEmmanuel Vadot};
223*0e8011faSEmmanuel Vadot
224*0e8011faSEmmanuel Vadot&sdhc_2 {
225*0e8011faSEmmanuel Vadot	vmmc-supply = <&pm8953_l11>;
226*0e8011faSEmmanuel Vadot	vqmmc-supply = <&pm8953_l12>;
227*0e8011faSEmmanuel Vadot
228*0e8011faSEmmanuel Vadot	cd-gpios = <&tlmm 133 GPIO_ACTIVE_LOW>;
229*0e8011faSEmmanuel Vadot
230*0e8011faSEmmanuel Vadot	pinctrl-names = "default", "sleep";
231*0e8011faSEmmanuel Vadot	pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_off>;
232*0e8011faSEmmanuel Vadot	pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
233*0e8011faSEmmanuel Vadot
234*0e8011faSEmmanuel Vadot	status = "okay";
235*0e8011faSEmmanuel Vadot};
236*0e8011faSEmmanuel Vadot
237*0e8011faSEmmanuel Vadot&tlmm {
238*0e8011faSEmmanuel Vadot	gpio-reserved-ranges = <0 4>, <135 4>;
239*0e8011faSEmmanuel Vadot
240*0e8011faSEmmanuel Vadot	ts_int_active: ts-int-active-state {
241*0e8011faSEmmanuel Vadot		pins = "gpio65";
242*0e8011faSEmmanuel Vadot		function = "gpio";
243*0e8011faSEmmanuel Vadot		drive-strength = <8>;
244*0e8011faSEmmanuel Vadot		bias-pull-up;
245*0e8011faSEmmanuel Vadot	};
246*0e8011faSEmmanuel Vadot
247*0e8011faSEmmanuel Vadot	ts_reset_active: ts-reset-active-state {
248*0e8011faSEmmanuel Vadot		pins = "gpio64";
249*0e8011faSEmmanuel Vadot		function = "gpio";
250*0e8011faSEmmanuel Vadot		drive-strength = <0x08>;
251*0e8011faSEmmanuel Vadot		bias-pull-up;
252*0e8011faSEmmanuel Vadot	};
253*0e8011faSEmmanuel Vadot};
254*0e8011faSEmmanuel Vadot
255*0e8011faSEmmanuel Vadot&usb3 {
256*0e8011faSEmmanuel Vadot	status = "okay";
257*0e8011faSEmmanuel Vadot};
258*0e8011faSEmmanuel Vadot
259*0e8011faSEmmanuel Vadot&usb3_dwc3 {
260*0e8011faSEmmanuel Vadot	dr_mode = "peripheral";
261*0e8011faSEmmanuel Vadot};
262*0e8011faSEmmanuel Vadot
263*0e8011faSEmmanuel Vadot&wcnss {
264*0e8011faSEmmanuel Vadot	vddpx-supply = <&pm8953_l5>;
265*0e8011faSEmmanuel Vadot
266*0e8011faSEmmanuel Vadot	status = "okay";
267*0e8011faSEmmanuel Vadot};
268*0e8011faSEmmanuel Vadot
269*0e8011faSEmmanuel Vadot&wcnss_iris {
270*0e8011faSEmmanuel Vadot	compatible = "qcom,wcn3660b";
271*0e8011faSEmmanuel Vadot
272*0e8011faSEmmanuel Vadot	vddxo-supply = <&pm8953_l7>;
273*0e8011faSEmmanuel Vadot	vddrfa-supply = <&pm8953_l19>;
274*0e8011faSEmmanuel Vadot	vddpa-supply = <&pm8953_l9>;
275*0e8011faSEmmanuel Vadot	vdddig-supply = <&pm8953_l5>;
276*0e8011faSEmmanuel Vadot};
277