xref: /linux/scripts/dtc/include-prefixes/arm/qcom/msm8226-motorola-titan.dts (revision 67f8bc848ee31831336bd478e57d2f993551902e)
1*28236bb8SDavid Wales// SPDX-License-Identifier: BSD-3-Clause
2*28236bb8SDavid Wales/*
3*28236bb8SDavid Wales * Copyright (c) 2026, David Wales <daviewales@disroot.org>
4*28236bb8SDavid Wales */
5*28236bb8SDavid Wales
6*28236bb8SDavid Wales/dts-v1/;
7*28236bb8SDavid Wales
8*28236bb8SDavid Wales#include "qcom-msm8226.dtsi"
9*28236bb8SDavid Wales#include "pm8226.dtsi"
10*28236bb8SDavid Wales
11*28236bb8SDavid Wales/delete-node/ &smem_region;
12*28236bb8SDavid Wales
13*28236bb8SDavid Wales/ {
14*28236bb8SDavid Wales	model = "Motorola Moto G2 (2014)";
15*28236bb8SDavid Wales	compatible = "motorola,titan", "qcom,msm8226";
16*28236bb8SDavid Wales	chassis-type = "handset";
17*28236bb8SDavid Wales
18*28236bb8SDavid Wales	aliases {
19*28236bb8SDavid Wales		mmc0 = &sdhc_1; /* eMMC */
20*28236bb8SDavid Wales	};
21*28236bb8SDavid Wales
22*28236bb8SDavid Wales	chosen {
23*28236bb8SDavid Wales		#address-cells = <1>;
24*28236bb8SDavid Wales		#size-cells = <1>;
25*28236bb8SDavid Wales		ranges;
26*28236bb8SDavid Wales
27*28236bb8SDavid Wales		framebuffer@3200000 {
28*28236bb8SDavid Wales			compatible = "simple-framebuffer";
29*28236bb8SDavid Wales			reg = <0x03200000 0x800000>;
30*28236bb8SDavid Wales			width = <720>;
31*28236bb8SDavid Wales			height = <1280>;
32*28236bb8SDavid Wales			stride = <(720 * 3)>;
33*28236bb8SDavid Wales			format = "r8g8b8";
34*28236bb8SDavid Wales			vsp-supply = <&reg_lcd_pos>;
35*28236bb8SDavid Wales			vsn-supply = <&reg_lcd_neg>;
36*28236bb8SDavid Wales			vddio-supply = <&vddio_disp_vreg>;
37*28236bb8SDavid Wales
38*28236bb8SDavid Wales			clocks = <&mmcc MDSS_AHB_CLK>,
39*28236bb8SDavid Wales				 <&mmcc MDSS_AXI_CLK>,
40*28236bb8SDavid Wales				 <&mmcc MDSS_BYTE0_CLK>,
41*28236bb8SDavid Wales				 <&mmcc MDSS_ESC0_CLK>,
42*28236bb8SDavid Wales				 <&mmcc MDSS_MDP_CLK>,
43*28236bb8SDavid Wales				 <&mmcc MMSS_MISC_AHB_CLK>,
44*28236bb8SDavid Wales				 <&mmcc MDSS_PCLK0_CLK>,
45*28236bb8SDavid Wales				 <&mmcc MDSS_VSYNC_CLK>;
46*28236bb8SDavid Wales			power-domains = <&mmcc MDSS_GDSC>;
47*28236bb8SDavid Wales		};
48*28236bb8SDavid Wales	};
49*28236bb8SDavid Wales
50*28236bb8SDavid Wales	gpio-keys {
51*28236bb8SDavid Wales		compatible = "gpio-keys";
52*28236bb8SDavid Wales
53*28236bb8SDavid Wales		event-hall-sensor {
54*28236bb8SDavid Wales			label = "Hall Effect Sensor";
55*28236bb8SDavid Wales			gpios = <&tlmm 109 GPIO_ACTIVE_LOW>;
56*28236bb8SDavid Wales			linux,input-type = <EV_SW>;
57*28236bb8SDavid Wales			linux,code = <SW_LID>;
58*28236bb8SDavid Wales			linux,can-disable;
59*28236bb8SDavid Wales		};
60*28236bb8SDavid Wales
61*28236bb8SDavid Wales		key-volume-down {
62*28236bb8SDavid Wales			label = "Volume Down";
63*28236bb8SDavid Wales			gpios = <&tlmm 107 GPIO_ACTIVE_LOW>;
64*28236bb8SDavid Wales			linux,code = <KEY_VOLUMEDOWN>;
65*28236bb8SDavid Wales			debounce-interval = <15>;
66*28236bb8SDavid Wales		};
67*28236bb8SDavid Wales
68*28236bb8SDavid Wales		key-volume-up {
69*28236bb8SDavid Wales			label = "Volume Up";
70*28236bb8SDavid Wales			gpios = <&tlmm 106 GPIO_ACTIVE_LOW>;
71*28236bb8SDavid Wales			linux,code = <KEY_VOLUMEUP>;
72*28236bb8SDavid Wales			debounce-interval = <15>;
73*28236bb8SDavid Wales		};
74*28236bb8SDavid Wales	};
75*28236bb8SDavid Wales
76*28236bb8SDavid Wales	vddio_disp_vreg: regulator-vddio-disp {
77*28236bb8SDavid Wales		compatible = "regulator-fixed";
78*28236bb8SDavid Wales		regulator-name = "vddio_disp";
79*28236bb8SDavid Wales
80*28236bb8SDavid Wales		gpio = <&tlmm 10 GPIO_ACTIVE_HIGH>;
81*28236bb8SDavid Wales		startup-delay-us = <300>;
82*28236bb8SDavid Wales		enable-active-high;
83*28236bb8SDavid Wales		regulator-boot-on;
84*28236bb8SDavid Wales	};
85*28236bb8SDavid Wales
86*28236bb8SDavid Wales	reserved-memory {
87*28236bb8SDavid Wales		#address-cells = <1>;
88*28236bb8SDavid Wales		#size-cells = <1>;
89*28236bb8SDavid Wales		ranges;
90*28236bb8SDavid Wales
91*28236bb8SDavid Wales		framebuffer@3200000 {
92*28236bb8SDavid Wales			reg = <0x03200000 0xfa0000>;
93*28236bb8SDavid Wales			no-map;
94*28236bb8SDavid Wales		};
95*28236bb8SDavid Wales
96*28236bb8SDavid Wales		dhob@f500000 {
97*28236bb8SDavid Wales			reg = <0x0f500000 0x40000>;
98*28236bb8SDavid Wales			no-map;
99*28236bb8SDavid Wales		};
100*28236bb8SDavid Wales
101*28236bb8SDavid Wales		shob@f540000 {
102*28236bb8SDavid Wales			reg = <0x0f540000 0x2000>;
103*28236bb8SDavid Wales			no-map;
104*28236bb8SDavid Wales		};
105*28236bb8SDavid Wales
106*28236bb8SDavid Wales		smem_region: smem@fa00000 {
107*28236bb8SDavid Wales			reg = <0x0fa00000 0x100000>;
108*28236bb8SDavid Wales			no-map;
109*28236bb8SDavid Wales		};
110*28236bb8SDavid Wales
111*28236bb8SDavid Wales		reserved@fb00000 {
112*28236bb8SDavid Wales			reg = <0x0fb00000 0x400000>;
113*28236bb8SDavid Wales			no-map;
114*28236bb8SDavid Wales		};
115*28236bb8SDavid Wales	};
116*28236bb8SDavid Wales};
117*28236bb8SDavid Wales
118*28236bb8SDavid Wales&blsp1_i2c4 {
119*28236bb8SDavid Wales	status = "okay";
120*28236bb8SDavid Wales
121*28236bb8SDavid Wales	regulator@3e {
122*28236bb8SDavid Wales		compatible = "ti,tps65132";
123*28236bb8SDavid Wales		reg = <0x3e>;
124*28236bb8SDavid Wales
125*28236bb8SDavid Wales		pinctrl-0 = <&reg_lcd_default>;
126*28236bb8SDavid Wales		pinctrl-names = "default";
127*28236bb8SDavid Wales
128*28236bb8SDavid Wales		reg_lcd_pos: outp {
129*28236bb8SDavid Wales			regulator-name = "outp";
130*28236bb8SDavid Wales			regulator-min-microvolt = <5400000>;
131*28236bb8SDavid Wales			regulator-max-microvolt = <5600000>;
132*28236bb8SDavid Wales			regulator-active-discharge = <1>;
133*28236bb8SDavid Wales			regulator-boot-on;
134*28236bb8SDavid Wales			enable-gpios = <&tlmm 12 GPIO_ACTIVE_HIGH>;
135*28236bb8SDavid Wales		};
136*28236bb8SDavid Wales
137*28236bb8SDavid Wales		reg_lcd_neg: outn {
138*28236bb8SDavid Wales			regulator-name = "outn";
139*28236bb8SDavid Wales			regulator-min-microvolt = <5400000>;
140*28236bb8SDavid Wales			regulator-max-microvolt = <5600000>;
141*28236bb8SDavid Wales			regulator-active-discharge = <1>;
142*28236bb8SDavid Wales			regulator-boot-on;
143*28236bb8SDavid Wales			enable-gpios = <&tlmm 13 GPIO_ACTIVE_HIGH>;
144*28236bb8SDavid Wales		};
145*28236bb8SDavid Wales	};
146*28236bb8SDavid Wales};
147*28236bb8SDavid Wales
148*28236bb8SDavid Wales&pm8226_vib {
149*28236bb8SDavid Wales	status = "okay";
150*28236bb8SDavid Wales};
151*28236bb8SDavid Wales
152*28236bb8SDavid Wales&rpm_requests {
153*28236bb8SDavid Wales	regulators {
154*28236bb8SDavid Wales		compatible = "qcom,rpm-pm8226-regulators";
155*28236bb8SDavid Wales
156*28236bb8SDavid Wales		pm8226_s3: s3 {
157*28236bb8SDavid Wales			regulator-min-microvolt = <1200000>;
158*28236bb8SDavid Wales			regulator-max-microvolt = <1300000>;
159*28236bb8SDavid Wales		};
160*28236bb8SDavid Wales
161*28236bb8SDavid Wales		pm8226_s4: s4 {
162*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
163*28236bb8SDavid Wales			regulator-max-microvolt = <2200000>;
164*28236bb8SDavid Wales		};
165*28236bb8SDavid Wales
166*28236bb8SDavid Wales		pm8226_s5: s5 {
167*28236bb8SDavid Wales			regulator-min-microvolt = <1150000>;
168*28236bb8SDavid Wales			regulator-max-microvolt = <1150000>;
169*28236bb8SDavid Wales		};
170*28236bb8SDavid Wales
171*28236bb8SDavid Wales		pm8226_l1: l1 {
172*28236bb8SDavid Wales			regulator-min-microvolt = <1225000>;
173*28236bb8SDavid Wales			regulator-max-microvolt = <1225000>;
174*28236bb8SDavid Wales		};
175*28236bb8SDavid Wales
176*28236bb8SDavid Wales		pm8226_l2: l2 {
177*28236bb8SDavid Wales			regulator-min-microvolt = <1200000>;
178*28236bb8SDavid Wales			regulator-max-microvolt = <1200000>;
179*28236bb8SDavid Wales		};
180*28236bb8SDavid Wales
181*28236bb8SDavid Wales		pm8226_l3: l3 {
182*28236bb8SDavid Wales			regulator-min-microvolt = <750000>;
183*28236bb8SDavid Wales			regulator-max-microvolt = <1337500>;
184*28236bb8SDavid Wales		};
185*28236bb8SDavid Wales
186*28236bb8SDavid Wales		pm8226_l4: l4 {
187*28236bb8SDavid Wales			regulator-min-microvolt = <1200000>;
188*28236bb8SDavid Wales			regulator-max-microvolt = <1200000>;
189*28236bb8SDavid Wales		};
190*28236bb8SDavid Wales
191*28236bb8SDavid Wales		pm8226_l5: l5 {
192*28236bb8SDavid Wales			regulator-min-microvolt = <1200000>;
193*28236bb8SDavid Wales			regulator-max-microvolt = <1200000>;
194*28236bb8SDavid Wales		};
195*28236bb8SDavid Wales
196*28236bb8SDavid Wales		pm8226_l6: l6 {
197*28236bb8SDavid Wales			/* Hall effect sensor */
198*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
199*28236bb8SDavid Wales			regulator-max-microvolt = <1800000>;
200*28236bb8SDavid Wales			regulator-always-on;
201*28236bb8SDavid Wales		};
202*28236bb8SDavid Wales
203*28236bb8SDavid Wales		pm8226_l7: l7 {
204*28236bb8SDavid Wales			regulator-min-microvolt = <1850000>;
205*28236bb8SDavid Wales			regulator-max-microvolt = <1850000>;
206*28236bb8SDavid Wales		};
207*28236bb8SDavid Wales
208*28236bb8SDavid Wales		pm8226_l8: l8 {
209*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
210*28236bb8SDavid Wales			regulator-max-microvolt = <1800000>;
211*28236bb8SDavid Wales		};
212*28236bb8SDavid Wales
213*28236bb8SDavid Wales		pm8226_l9: l9 {
214*28236bb8SDavid Wales			regulator-min-microvolt = <2050000>;
215*28236bb8SDavid Wales			regulator-max-microvolt = <2050000>;
216*28236bb8SDavid Wales		};
217*28236bb8SDavid Wales
218*28236bb8SDavid Wales		pm8226_l10: l10 {
219*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
220*28236bb8SDavid Wales			regulator-max-microvolt = <1800000>;
221*28236bb8SDavid Wales		};
222*28236bb8SDavid Wales
223*28236bb8SDavid Wales		pm8226_l12: l12 {
224*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
225*28236bb8SDavid Wales			regulator-max-microvolt = <1800000>;
226*28236bb8SDavid Wales		};
227*28236bb8SDavid Wales
228*28236bb8SDavid Wales		pm8226_l14: l14 {
229*28236bb8SDavid Wales			regulator-min-microvolt = <2750000>;
230*28236bb8SDavid Wales			regulator-max-microvolt = <2750000>;
231*28236bb8SDavid Wales		};
232*28236bb8SDavid Wales
233*28236bb8SDavid Wales		pm8226_l15: l15 {
234*28236bb8SDavid Wales			regulator-min-microvolt = <2800000>;
235*28236bb8SDavid Wales			regulator-max-microvolt = <2800000>;
236*28236bb8SDavid Wales		};
237*28236bb8SDavid Wales
238*28236bb8SDavid Wales		pm8226_l16: l16 {
239*28236bb8SDavid Wales			regulator-min-microvolt = <3000000>;
240*28236bb8SDavid Wales			regulator-max-microvolt = <3350000>;
241*28236bb8SDavid Wales		};
242*28236bb8SDavid Wales
243*28236bb8SDavid Wales		pm8226_l17: l17 {
244*28236bb8SDavid Wales			regulator-min-microvolt = <2950000>;
245*28236bb8SDavid Wales			regulator-max-microvolt = <2950000>;
246*28236bb8SDavid Wales		};
247*28236bb8SDavid Wales
248*28236bb8SDavid Wales		pm8226_l18: l18 {
249*28236bb8SDavid Wales			regulator-min-microvolt = <2950000>;
250*28236bb8SDavid Wales			regulator-max-microvolt = <2950000>;
251*28236bb8SDavid Wales		};
252*28236bb8SDavid Wales
253*28236bb8SDavid Wales		pm8226_l19: l19 {
254*28236bb8SDavid Wales			regulator-min-microvolt = <2850000>;
255*28236bb8SDavid Wales			regulator-max-microvolt = <2850000>;
256*28236bb8SDavid Wales		};
257*28236bb8SDavid Wales
258*28236bb8SDavid Wales		pm8226_l20: l20 {
259*28236bb8SDavid Wales			regulator-min-microvolt = <3075000>;
260*28236bb8SDavid Wales			regulator-max-microvolt = <3075000>;
261*28236bb8SDavid Wales		};
262*28236bb8SDavid Wales
263*28236bb8SDavid Wales		pm8226_l21: l21 {
264*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
265*28236bb8SDavid Wales			regulator-max-microvolt = <2950000>;
266*28236bb8SDavid Wales			regulator-allow-set-load;
267*28236bb8SDavid Wales		};
268*28236bb8SDavid Wales
269*28236bb8SDavid Wales		pm8226_l22: l22 {
270*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
271*28236bb8SDavid Wales			regulator-max-microvolt = <2950000>;
272*28236bb8SDavid Wales		};
273*28236bb8SDavid Wales
274*28236bb8SDavid Wales		pm8226_l23: l23 {
275*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
276*28236bb8SDavid Wales			regulator-max-microvolt = <2950000>;
277*28236bb8SDavid Wales		};
278*28236bb8SDavid Wales
279*28236bb8SDavid Wales		pm8226_l24: l24 {
280*28236bb8SDavid Wales			regulator-min-microvolt = <1300000>;
281*28236bb8SDavid Wales			regulator-max-microvolt = <1350000>;
282*28236bb8SDavid Wales		};
283*28236bb8SDavid Wales
284*28236bb8SDavid Wales		pm8226_l25: l25 {
285*28236bb8SDavid Wales			regulator-min-microvolt = <1775000>;
286*28236bb8SDavid Wales			regulator-max-microvolt = <2125000>;
287*28236bb8SDavid Wales		};
288*28236bb8SDavid Wales
289*28236bb8SDavid Wales		pm8226_l26: l26 {
290*28236bb8SDavid Wales			regulator-min-microvolt = <1225000>;
291*28236bb8SDavid Wales			regulator-max-microvolt = <1225000>;
292*28236bb8SDavid Wales		};
293*28236bb8SDavid Wales
294*28236bb8SDavid Wales		pm8226_l27: l27 {
295*28236bb8SDavid Wales			regulator-min-microvolt = <2050000>;
296*28236bb8SDavid Wales			regulator-max-microvolt = <2050000>;
297*28236bb8SDavid Wales		};
298*28236bb8SDavid Wales
299*28236bb8SDavid Wales		pm8226_l28: l28 {
300*28236bb8SDavid Wales			regulator-min-microvolt = <1800000>;
301*28236bb8SDavid Wales			regulator-max-microvolt = <3400000>;
302*28236bb8SDavid Wales			regulator-boot-on;
303*28236bb8SDavid Wales		};
304*28236bb8SDavid Wales
305*28236bb8SDavid Wales		pm8226_lvs1: lvs1 {
306*28236bb8SDavid Wales			/* Pull-up for I2C lines */
307*28236bb8SDavid Wales			regulator-always-on;
308*28236bb8SDavid Wales		};
309*28236bb8SDavid Wales	};
310*28236bb8SDavid Wales};
311*28236bb8SDavid Wales
312*28236bb8SDavid Wales&sdhc_1 {
313*28236bb8SDavid Wales	vmmc-supply = <&pm8226_l17>;
314*28236bb8SDavid Wales	vqmmc-supply = <&pm8226_l6>;
315*28236bb8SDavid Wales	bus-width = <8>;
316*28236bb8SDavid Wales	non-removable;
317*28236bb8SDavid Wales
318*28236bb8SDavid Wales	status = "okay";
319*28236bb8SDavid Wales};
320*28236bb8SDavid Wales
321*28236bb8SDavid Wales&smbb {
322*28236bb8SDavid Wales	qcom,fast-charge-safe-current = <2000000>;
323*28236bb8SDavid Wales	qcom,fast-charge-current-limit = <1900000>;
324*28236bb8SDavid Wales	qcom,fast-charge-safe-voltage = <4400000>;
325*28236bb8SDavid Wales	qcom,minimum-input-voltage = <4300000>;
326*28236bb8SDavid Wales
327*28236bb8SDavid Wales	status = "okay";
328*28236bb8SDavid Wales};
329*28236bb8SDavid Wales
330*28236bb8SDavid Wales&usb {
331*28236bb8SDavid Wales	extcon = <&smbb>;
332*28236bb8SDavid Wales	dr_mode = "peripheral";
333*28236bb8SDavid Wales
334*28236bb8SDavid Wales	status = "okay";
335*28236bb8SDavid Wales};
336*28236bb8SDavid Wales
337*28236bb8SDavid Wales&usb_hs_phy {
338*28236bb8SDavid Wales	extcon = <&smbb>;
339*28236bb8SDavid Wales	v1p8-supply = <&pm8226_l10>;
340*28236bb8SDavid Wales	v3p3-supply = <&pm8226_l20>;
341*28236bb8SDavid Wales};
342*28236bb8SDavid Wales
343*28236bb8SDavid Wales&tlmm {
344*28236bb8SDavid Wales	reg_lcd_default: reg-lcd-default-state {
345*28236bb8SDavid Wales		pins = "gpio12", "gpio13";
346*28236bb8SDavid Wales		function = "gpio";
347*28236bb8SDavid Wales		drive-strength = <2>;
348*28236bb8SDavid Wales		bias-disable;
349*28236bb8SDavid Wales	};
350*28236bb8SDavid Wales};
351