Linux Audio

Check our new training course

Open-source upstreaming

Need help get the support for your hardware in upstream Linux?
Loading...
  1// SPDX-License-Identifier: GPL-2.0-only
  2
  3#include "msm8916.dtsi"
  4#include "pm8916.dtsi"
  5#include <dt-bindings/gpio/gpio.h>
  6#include <dt-bindings/input/input.h>
  7#include <dt-bindings/interrupt-controller/irq.h>
  8
  9/ {
 10	aliases {
 11		serial0 = &blsp1_uart2;
 12	};
 13
 14	chosen {
 15		stdout-path = "serial0";
 16	};
 17
 18	reserved-memory {
 19		/* Additional memory used by Samsung firmware modifications */
 20		tz-apps@85500000 {
 21			reg = <0x0 0x85500000 0x0 0xb00000>;
 22			no-map;
 23		};
 24	};
 25
 26	soc {
 27		sdhci@7824000 {
 28			status = "okay";
 29
 30			vmmc-supply = <&pm8916_l8>;
 31			vqmmc-supply = <&pm8916_l5>;
 32
 33			pinctrl-names = "default", "sleep";
 34			pinctrl-0 = <&sdc1_clk_on &sdc1_cmd_on &sdc1_data_on>;
 35			pinctrl-1 = <&sdc1_clk_off &sdc1_cmd_off &sdc1_data_off>;
 36		};
 37
 38		sdhci@7864000 {
 39			status = "okay";
 40
 41			vmmc-supply = <&pm8916_l11>;
 42			vqmmc-supply = <&pm8916_l12>;
 43
 44			pinctrl-names = "default", "sleep";
 45			pinctrl-0 = <&sdc2_clk_on &sdc2_cmd_on &sdc2_data_on &sdc2_cd_on>;
 46			pinctrl-1 = <&sdc2_clk_off &sdc2_cmd_off &sdc2_data_off &sdc2_cd_off>;
 47
 48			cd-gpios = <&msmgpio 38 GPIO_ACTIVE_LOW>;
 49		};
 50
 51		serial@78b0000 {
 52			status = "okay";
 53			pinctrl-names = "default", "sleep";
 54			pinctrl-0 = <&blsp1_uart2_default>;
 55			pinctrl-1 = <&blsp1_uart2_sleep>;
 56		};
 57
 58		usb@78d9000 {
 59			status = "okay";
 60			extcon = <&muic>, <&muic>;
 61
 62			hnp-disable;
 63			srp-disable;
 64			adp-disable;
 65
 66			ulpi {
 67				phy {
 68					extcon = <&muic>;
 69					v1p8-supply = <&pm8916_l7>;
 70					v3p3-supply = <&pm8916_l13>;
 71				};
 72			};
 73		};
 74
 75		mdss@1a00000 {
 76			dsi@1a98000 {
 77				#address-cells = <1>;
 78				#size-cells = <0>;
 79
 80				vdda-supply = <&pm8916_l2>;
 81				vddio-supply = <&pm8916_l6>;
 82
 83				pinctrl-names = "default", "sleep";
 84				pinctrl-0 = <&mdss_default>;
 85				pinctrl-1 = <&mdss_sleep>;
 86			};
 87
 88			dsi-phy@1a98300 {
 89				vddio-supply = <&pm8916_l6>;
 90			};
 91		};
 92
 93		wcnss@a21b000 {
 94			status = "okay";
 95		};
 96	};
 97
 98	gpio-keys {
 99		compatible = "gpio-keys";
100
101		pinctrl-names = "default";
102		pinctrl-0 = <&gpio_keys_default>;
103
104		label = "GPIO Buttons";
105
106		volume-up {
107			label = "Volume Up";
108			gpios = <&msmgpio 107 GPIO_ACTIVE_LOW>;
109			linux,code = <KEY_VOLUMEUP>;
110		};
111
112		home {
113			label = "Home";
114			gpios = <&msmgpio 109 GPIO_ACTIVE_LOW>;
115			linux,code = <KEY_HOMEPAGE>;
116		};
117	};
118
119	gpio-hall-sensor {
120		compatible = "gpio-keys";
121
122		pinctrl-names = "default";
123		pinctrl-0 = <&gpio_hall_sensor_default>;
124
125		label = "GPIO Hall Effect Sensor";
126
127		hall-sensor {
128			label = "Hall Effect Sensor";
129			gpios = <&msmgpio 52 GPIO_ACTIVE_LOW>;
130			linux,input-type = <EV_SW>;
131			linux,code = <SW_LID>;
132			linux,can-disable;
133		};
134	};
135
136	reg_vdd_tsp: regulator-vdd-tsp {
137		compatible = "regulator-fixed";
138		regulator-name = "vdd_tsp";
139		regulator-min-microvolt = <3300000>;
140		regulator-max-microvolt = <3300000>;
141
142		gpio = <&msmgpio 73 GPIO_ACTIVE_HIGH>;
143		enable-active-high;
144
145		pinctrl-names = "default";
146		pinctrl-0 = <&tsp_en_default>;
147	};
148
149	i2c-muic {
150		compatible = "i2c-gpio";
151		sda-gpios = <&msmgpio 105 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
152		scl-gpios = <&msmgpio 106 (GPIO_ACTIVE_HIGH|GPIO_OPEN_DRAIN)>;
153
154		#address-cells = <1>;
155		#size-cells = <0>;
156
157		muic: sm5502@25 {
158			compatible = "siliconmitus,sm5502-muic";
159
160			reg = <0x25>;
161			interrupt-parent = <&msmgpio>;
162			interrupts = <12 IRQ_TYPE_EDGE_FALLING>;
163
164			pinctrl-names = "default";
165			pinctrl-0 = <&muic_int_default>;
166		};
167	};
168};
169
170&blsp_i2c2 {
171	status = "okay";
172
173	accelerometer: accelerometer@10 {
174		compatible = "bosch,bmc150_accel";
175		reg = <0x10>;
176		interrupt-parent = <&msmgpio>;
177		interrupts = <115 IRQ_TYPE_EDGE_RISING>;
178
179		pinctrl-names = "default";
180		pinctrl-0 = <&accel_int_default>;
181	};
182
183	magnetometer@12 {
184		compatible = "bosch,bmc150_magn";
185		reg = <0x12>;
186	};
187};
188
189&spmi_bus {
190	pm8916@0 {
191		pon@800 {
192			volume-down {
193				compatible = "qcom,pm8941-resin";
194				interrupts = <0x0 0x8 1 IRQ_TYPE_EDGE_BOTH>;
195				bias-pull-up;
196				linux,code = <KEY_VOLUMEDOWN>;
197			};
198		};
199	};
200};
201
202&smd_rpm_regulators {
203	vdd_l1_l2_l3-supply = <&pm8916_s3>;
204	vdd_l4_l5_l6-supply = <&pm8916_s4>;
205	vdd_l7-supply = <&pm8916_s4>;
206
207	s1 {
208		regulator-min-microvolt = <500000>;
209		regulator-max-microvolt = <1300000>;
210	};
211
212	s3 {
213		regulator-min-microvolt = <1200000>;
214		regulator-max-microvolt = <1300000>;
215	};
216
217	s4 {
218		regulator-min-microvolt = <1800000>;
219		regulator-max-microvolt = <2100000>;
220	};
221
222	l1 {
223		regulator-min-microvolt = <1225000>;
224		regulator-max-microvolt = <1225000>;
225	};
226
227	l2 {
228		regulator-min-microvolt = <1200000>;
229		regulator-max-microvolt = <1200000>;
230	};
231
232	l3 {
233		regulator-min-microvolt = <500000>;
234		regulator-max-microvolt = <1287500>;
235	};
236
237	l4 {
238		regulator-min-microvolt = <2050000>;
239		regulator-max-microvolt = <2050000>;
240	};
241
242	l5 {
243		regulator-min-microvolt = <1800000>;
244		regulator-max-microvolt = <1800000>;
245	};
246
247	l6 {
248		regulator-min-microvolt = <1800000>;
249		regulator-max-microvolt = <1800000>;
250	};
251
252	l7 {
253		regulator-min-microvolt = <1800000>;
254		regulator-max-microvolt = <1800000>;
255	};
256
257	l8 {
258		regulator-min-microvolt = <2850000>;
259		regulator-max-microvolt = <2900000>;
260	};
261
262	l9 {
263		regulator-min-microvolt = <3300000>;
264		regulator-max-microvolt = <3300000>;
265	};
266
267	l10 {
268		regulator-min-microvolt = <2700000>;
269		regulator-max-microvolt = <2800000>;
270	};
271
272	l11 {
273		regulator-min-microvolt = <1800000>;
274		regulator-max-microvolt = <2950000>;
275		regulator-allow-set-load;
276		regulator-system-load = <200000>;
277	};
278
279	l12 {
280		regulator-min-microvolt = <1800000>;
281		regulator-max-microvolt = <2950000>;
282	};
283
284	l13 {
285		regulator-min-microvolt = <3075000>;
286		regulator-max-microvolt = <3075000>;
287	};
288
289	l14 {
290		regulator-min-microvolt = <1800000>;
291		regulator-max-microvolt = <3300000>;
292	};
293
294	l15 {
295		regulator-min-microvolt = <1800000>;
296		regulator-max-microvolt = <3300000>;
297	};
298
299	l16 {
300		regulator-min-microvolt = <1800000>;
301		regulator-max-microvolt = <3300000>;
302	};
303
304	l17 {
305		regulator-min-microvolt = <2850000>;
306		regulator-max-microvolt = <2850000>;
307	};
308
309	l18 {
310		regulator-min-microvolt = <2700000>;
311		regulator-max-microvolt = <2700000>;
312	};
313};
314
315&msmgpio {
316	accel_int_default: accel-int-default {
317		pins = "gpio115";
318		function = "gpio";
319
320		drive-strength = <2>;
321		bias-disable;
322	};
323
324	gpio_keys_default: gpio-keys-default {
325		pins = "gpio107", "gpio109";
326		function = "gpio";
327
328		drive-strength = <2>;
329		bias-pull-up;
330	};
331
332	gpio_hall_sensor_default: gpio-hall-sensor-default {
333		pins = "gpio52";
334		function = "gpio";
335
336		drive-strength = <2>;
337		bias-disable;
338	};
339
340	mdss {
341		mdss_default: mdss-default {
342			pins = "gpio25";
343			function = "gpio";
344
345			drive-strength = <8>;
346			bias-disable;
347		};
348		mdss_sleep: mdss-sleep {
349			pins = "gpio25";
350			function = "gpio";
351
352			drive-strength = <2>;
353			bias-pull-down;
354		};
355	};
356
357	muic_int_default: muic-int-default {
358		pins = "gpio12";
359		function = "gpio";
360
361		drive-strength = <2>;
362		bias-disable;
363	};
364
365	tsp_en_default: tsp-en-default {
366		pins = "gpio73";
367		function = "gpio";
368
369		drive-strength = <2>;
370		bias-disable;
371	};
372};