Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.2.
  1// SPDX-License-Identifier: GPL-2.0
  2#include <dt-bindings/input/input.h>
  3#include <dt-bindings/reset/qcom,gcc-msm8960.h>
  4
  5#include "qcom-msm8960.dtsi"
  6#include "pm8921.dtsi"
  7#include <dt-bindings/gpio/gpio.h>
  8#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
  9#include <dt-bindings/input/gpio-keys.h>
 10
 11/ {
 12	model = "Samsung Galaxy Express SGH-I437";
 13	compatible = "samsung,expressatt", "qcom,msm8960";
 14	chassis-type = "handset";
 15
 16	aliases {
 17		serial0 = &gsbi5_serial;
 18		mmc0 = &sdcc1; /* SDCC1 eMMC slot */
 19		mmc1 = &sdcc3; /* SDCC3 SD card slot */
 20	};
 21
 22	chosen {
 23		stdout-path = "serial0:115200n8";
 24	};
 25
 26	gpio-keys {
 27		compatible = "gpio-keys";
 28
 29		pinctrl-names = "default";
 30		pinctrl-0 = <&gpio_keys_pin_a>;
 31
 32		key-home {
 33			label = "Home";
 34			gpios = <&msmgpio 40 GPIO_ACTIVE_LOW>;
 35			debounce-interval = <5>;
 36			linux,code = <KEY_HOMEPAGE>;
 37			wakeup-event-action = <EV_ACT_ASSERTED>;
 38			wakeup-source;
 39		};
 40
 41		key-volume-up {
 42			label = "Volume Up";
 43			gpios = <&msmgpio 50 GPIO_ACTIVE_LOW>;
 44			debounce-interval = <5>;
 45			linux,code = <KEY_VOLUMEUP>;
 46		};
 47
 48		key-volume-down {
 49			label = "Volume Down";
 50			gpios = <&msmgpio 81 GPIO_ACTIVE_LOW>;
 51			debounce-interval = <5>;
 52			linux,code = <KEY_VOLUMEDOWN>;
 53		};
 54	};
 55};
 56
 57&gsbi5 {
 58	qcom,mode = <GSBI_PROT_I2C_UART>;
 59	status = "okay";
 60};
 61
 62&gsbi5_serial {
 63	status = "okay";
 64};
 65
 66&sdcc1 {
 67	vmmc-supply = <&pm8921_l5>;
 68	status = "okay";
 69};
 70
 71&sdcc3 {
 72	vmmc-supply = <&pm8921_l6>;
 73	vqmmc-supply = <&pm8921_l7>;
 74	status = "okay";
 75};
 76
 77&gsbi1 {
 78	qcom,mode = <GSBI_PROT_SPI>;
 79	pinctrl-0 = <&spi1_default>;
 80	pinctrl-names = "default";
 81	status = "okay";
 82};
 83
 84&gsbi1_spi {
 85	status = "okay";
 86};
 87
 88&gsbi3 {
 89	qcom,mode = <GSBI_PROT_I2C>;
 90	status = "okay";
 91};
 92
 93&gsbi3_i2c {
 94	status = "okay";
 95
 96	// Atmel mXT224S touchscreen
 97	touchscreen@4a {
 98		compatible = "atmel,maxtouch";
 99		reg = <0x4a>;
100		interrupt-parent = <&msmgpio>;
101		interrupts = <11 IRQ_TYPE_EDGE_FALLING>;
102		vdda-supply = <&pm8921_lvs6>;
103		vdd-supply = <&pm8921_l17>;
104		pinctrl-names = "default";
105		pinctrl-0 = <&touchscreen>;
106	};
107};
108
109&msmgpio {
110	spi1_default: spi1-default-state {
111		mosi-pins {
112			pins = "gpio6";
113			function = "gsbi1";
114			drive-strength = <12>;
115			bias-disable;
116		};
117
118		miso-pins {
119			pins = "gpio7";
120			function = "gsbi1";
121			drive-strength = <12>;
122			bias-disable;
123		};
124
125		cs-pins {
126			pins = "gpio8";
127			function = "gsbi1";
128			drive-strength = <12>;
129			bias-disable;
130			output-low;
131		};
132
133		clk-pins {
134			pins = "gpio9";
135			function = "gsbi1";
136			drive-strength = <12>;
137			bias-disable;
138		};
139	};
140
141	gpio_keys_pin_a: gpio-keys-active-state {
142		pins = "gpio40", "gpio50", "gpio81";
143		function = "gpio";
144		drive-strength = <8>;
145		bias-disable;
146	};
147
148	touchscreen: touchscreen-int-state {
149		pins = "gpio11";
150		function = "gpio";
151		output-enable;
152		bias-disable;
153		drive-strength = <2>;
154	};
155};
156
157&pm8921 {
158	interrupts-extended = <&msmgpio 104 IRQ_TYPE_LEVEL_LOW>;
159};
160
161&rpm {
162	regulators {
163		compatible = "qcom,rpm-pm8921-regulators";
164		vin_lvs1_3_6-supply = <&pm8921_s4>;
165		vin_lvs2-supply = <&pm8921_s4>;
166		vin_lvs4_5_7-supply = <&pm8921_s4>;
167		vdd_ncp-supply = <&pm8921_l6>;
168		vdd_l1_l2_l12_l18-supply = <&pm8921_s4>;
169		vdd_l21_l23_l29-supply = <&pm8921_s8>;
170		vdd_l24-supply = <&pm8921_s1>;
171		vdd_l25-supply = <&pm8921_s1>;
172		vdd_l27-supply = <&pm8921_s7>;
173		vdd_l28-supply = <&pm8921_s7>;
174
175		/* Buck SMPS */
176		pm8921_s1: s1 {
177			regulator-always-on;
178			regulator-min-microvolt = <1225000>;
179			regulator-max-microvolt = <1225000>;
180			qcom,switch-mode-frequency = <3200000>;
181			bias-pull-down;
182		};
183
184		pm8921_s2: s2 {
185			regulator-min-microvolt = <1300000>;
186			regulator-max-microvolt = <1300000>;
187			qcom,switch-mode-frequency = <1600000>;
188			bias-pull-down;
189		};
190
191		pm8921_s3: s3 {
192			regulator-min-microvolt = <500000>;
193			regulator-max-microvolt = <1150000>;
194			qcom,switch-mode-frequency = <4800000>;
195			bias-pull-down;
196		};
197
198		pm8921_s4: s4 {
199			regulator-always-on;
200			regulator-min-microvolt = <1800000>;
201			regulator-max-microvolt = <1800000>;
202			qcom,switch-mode-frequency = <1600000>;
203			bias-pull-down;
204			qcom,force-mode = <QCOM_RPM_FORCE_MODE_AUTO>;
205		};
206
207		pm8921_s7: s7 {
208			regulator-min-microvolt = <1150000>;
209			regulator-max-microvolt = <1150000>;
210			qcom,switch-mode-frequency = <3200000>;
211			bias-pull-down;
212		};
213
214		pm8921_s8: s8 {
215			regulator-always-on;
216			regulator-min-microvolt = <2050000>;
217			regulator-max-microvolt = <2050000>;
218			qcom,switch-mode-frequency = <1600000>;
219			bias-pull-down;
220		};
221
222		/* PMOS LDO */
223		pm8921_l1: l1 {
224			regulator-always-on;
225			regulator-min-microvolt = <1050000>;
226			regulator-max-microvolt = <1050000>;
227			bias-pull-down;
228		};
229
230		pm8921_l2: l2 {
231			regulator-min-microvolt = <1200000>;
232			regulator-max-microvolt = <1200000>;
233			bias-pull-down;
234		};
235
236		pm8921_l3: l3 {
237			regulator-min-microvolt = <3075000>;
238			regulator-max-microvolt = <3300000>;
239			bias-pull-down;
240		};
241
242		pm8921_l4: l4 {
243			regulator-always-on;
244			regulator-min-microvolt = <1800000>;
245			regulator-max-microvolt = <1800000>;
246			bias-pull-down;
247		};
248
249		pm8921_l5: l5 {
250			regulator-min-microvolt = <2950000>;
251			regulator-max-microvolt = <2950000>;
252			bias-pull-down;
253		};
254
255		pm8921_l6: l6 {
256			regulator-min-microvolt = <2950000>;
257			regulator-max-microvolt = <2950000>;
258			bias-pull-down;
259		};
260
261		pm8921_l7: l7 {
262			regulator-always-on;
263			regulator-min-microvolt = <1850000>;
264			regulator-max-microvolt = <2950000>;
265			bias-pull-down;
266		};
267
268		pm8921_l8: l8 {
269			regulator-min-microvolt = <3000000>;
270			regulator-max-microvolt = <3100000>;
271			bias-pull-down;
272		};
273
274		pm8921_l9: l9 {
275			regulator-min-microvolt = <2850000>;
276			regulator-max-microvolt = <2850000>;
277			bias-pull-down;
278		};
279
280		pm8921_l10: l10 {
281			regulator-min-microvolt = <3000000>;
282			regulator-max-microvolt = <3000000>;
283			bias-pull-down;
284		};
285
286		pm8921_l11: l11 {
287			regulator-min-microvolt = <2800000>;
288			regulator-max-microvolt = <3300000>;
289			bias-pull-down;
290		};
291
292		pm8921_l12: l12 {
293			regulator-min-microvolt = <1200000>;
294			regulator-max-microvolt = <1200000>;
295			bias-pull-down;
296		};
297
298		pm8921_l14: l14 {
299			regulator-min-microvolt = <1800000>;
300			regulator-max-microvolt = <1800000>;
301			bias-pull-down;
302		};
303
304		pm8921_l15: l15 {
305			regulator-min-microvolt = <1800000>;
306			regulator-max-microvolt = <2950000>;
307			bias-pull-down;
308		};
309
310		pm8921_l16: l16 {
311			regulator-min-microvolt = <2800000>;
312			regulator-max-microvolt = <3000000>;
313			bias-pull-down;
314		};
315
316		pm8921_l17: l17 {
317			regulator-min-microvolt = <3300000>;
318			regulator-max-microvolt = <3300000>;
319			bias-pull-down;
320		};
321
322		pm8921_l18: l18 {
323			regulator-min-microvolt = <1200000>;
324			regulator-max-microvolt = <1500000>;
325			bias-pull-down;
326		};
327
328		pm8921_l21: l21 {
329			regulator-min-microvolt = <1900000>;
330			regulator-max-microvolt = <1900000>;
331			bias-pull-down;
332		};
333
334		pm8921_l22: l22 {
335			regulator-min-microvolt = <2750000>;
336			regulator-max-microvolt = <2750000>;
337			bias-pull-down;
338		};
339
340		pm8921_l23: l23 {
341			regulator-always-on;
342			regulator-min-microvolt = <1800000>;
343			regulator-max-microvolt = <1800000>;
344			bias-pull-down;
345		};
346
347		pm8921_l24: l24 {
348			regulator-min-microvolt = <750000>;
349			regulator-max-microvolt = <1150000>;
350			bias-pull-down;
351		};
352
353		pm8921_l25: l25 {
354			regulator-always-on;
355			regulator-min-microvolt = <1225000>;
356			regulator-max-microvolt = <1225000>;
357			bias-pull-down;
358		};
359
360		/* Low Voltage Switch */
361		pm8921_lvs1: lvs1 {
362			bias-pull-down;
363		};
364
365		pm8921_lvs2: lvs2 {
366			bias-pull-down;
367		};
368
369		pm8921_lvs3: lvs3 {
370			bias-pull-down;
371		};
372
373		pm8921_lvs4: lvs4 {
374			bias-pull-down;
375		};
376
377		pm8921_lvs5: lvs5 {
378			bias-pull-down;
379		};
380
381		pm8921_lvs6: lvs6 {
382			bias-pull-down;
383		};
384
385		pm8921_lvs7: lvs7 {
386			bias-pull-down;
387		};
388
389		pm8921_ncp: ncp {
390			regulator-min-microvolt = <1800000>;
391			regulator-max-microvolt = <1800000>;
392			qcom,switch-mode-frequency = <1600000>;
393		};
394	};
395};
396
397&usb_hs1_phy {
398	v3p3-supply = <&pm8921_l3>;
399	v1p8-supply = <&pm8921_l4>;
400};
401
402&usb1 {
403	dr_mode = "otg";
404	status = "okay";
405};