Linux Audio

Check our new training course

Loading...
v4.17
  1#include "qcom-msm8974.dtsi"
  2#include "qcom-pm8841.dtsi"
  3#include "qcom-pm8941.dtsi"
  4#include <dt-bindings/gpio/gpio.h>
  5#include <dt-bindings/input/input.h>
  6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
  7
  8
  9/ {
 10	model = "Fairphone 2";
 11	compatible = "fairphone,fp2", "qcom,msm8974";
 12
 13	aliases {
 14		serial0 = &blsp1_uart2;
 15	};
 16
 17	chosen {
 18		stdout-path = "serial0:115200n8";
 19	};
 20
 21	gpio-keys {
 22		compatible = "gpio-keys";
 23		input-name = "gpio-keys";
 24
 25		pinctrl-names = "default";
 26		pinctrl-0 = <&gpio_keys_pin_a>;
 27
 28		camera-snapshot {
 29			label = "camera_snapshot";
 30			gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
 31			linux,code = <KEY_CAMERA>;
 32			wakeup-source;
 33			debounce-interval = <15>;
 34		};
 35
 36		volume-down {
 37			label = "volume_down";
 38			gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
 39			linux,code = <KEY_VOLUMEDOWN>;
 40			wakeup-source;
 41			debounce-interval = <15>;
 42		};
 43
 44		volume-up {
 45			label = "volume_up";
 46			gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
 47			linux,code = <KEY_VOLUMEUP>;
 48			wakeup-source;
 49			debounce-interval = <15>;
 50		};
 51	};
 52
 
 
 
 
 
 
 53	smd {
 54		rpm {
 55			rpm_requests {
 56				pm8841-regulators {
 57					s1 {
 58						regulator-min-microvolt = <675000>;
 59						regulator-max-microvolt = <1050000>;
 60					};
 61
 62					s2 {
 63						regulator-min-microvolt = <500000>;
 64						regulator-max-microvolt = <1050000>;
 65					};
 66
 67					s3 {
 68						regulator-min-microvolt = <1050000>;
 69						regulator-max-microvolt = <1050000>;
 70					};
 71				};
 72
 73				pm8941-regulators {
 74					vdd_l1_l3-supply = <&pm8941_s1>;
 75					vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
 76					vdd_l4_l11-supply = <&pm8941_s1>;
 77					vdd_l5_l7-supply = <&pm8941_s2>;
 78					vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
 79					vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
 80					vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
 81					vdd_l21-supply = <&vreg_boost>;
 82
 83					s1 {
 84						regulator-min-microvolt = <1300000>;
 85						regulator-max-microvolt = <1300000>;
 86
 87						regulator-always-on;
 88						regulator-boot-on;
 89					};
 90
 91					s2 {
 92						regulator-min-microvolt = <2150000>;
 93						regulator-max-microvolt = <2150000>;
 94
 95						regulator-boot-on;
 96					};
 97
 98					s3 {
 99						regulator-min-microvolt = <1800000>;
100						regulator-max-microvolt = <1800000>;
101
102						regulator-always-on;
103						regulator-boot-on;
104					};
105
106					l1 {
107						regulator-min-microvolt = <1225000>;
108						regulator-max-microvolt = <1225000>;
109
110						regulator-always-on;
111						regulator-boot-on;
112					};
113
114					l2 {
115						regulator-min-microvolt = <1200000>;
116						regulator-max-microvolt = <1200000>;
117					};
118
119					l3 {
120						regulator-min-microvolt = <1225000>;
121						regulator-max-microvolt = <1225000>;
122					};
123
124					l4 {
125						regulator-min-microvolt = <1225000>;
126						regulator-max-microvolt = <1225000>;
127					};
128
129					l5 {
130						regulator-min-microvolt = <1800000>;
131						regulator-max-microvolt = <1800000>;
132					};
133
134					l6 {
135						regulator-min-microvolt = <1800000>;
136						regulator-max-microvolt = <1800000>;
137
138						regulator-boot-on;
139					};
140
141					l7 {
142						regulator-min-microvolt = <1800000>;
143						regulator-max-microvolt = <1800000>;
144
145						regulator-boot-on;
146					};
147
148					l8 {
149						regulator-min-microvolt = <1800000>;
150						regulator-max-microvolt = <1800000>;
151					};
152
153					l9 {
154						regulator-min-microvolt = <1800000>;
155						regulator-max-microvolt = <2950000>;
156					};
157
158					l10 {
159						regulator-min-microvolt = <1800000>;
160						regulator-max-microvolt = <2950000>;
161					};
162
163					l11 {
164						regulator-min-microvolt = <1225000>;
165						regulator-max-microvolt = <1350000>;
166					};
167
168					l12 {
169						regulator-min-microvolt = <1800000>;
170						regulator-max-microvolt = <1800000>;
171
172						regulator-always-on;
173						regulator-boot-on;
174					};
175
176					l13 {
177						regulator-min-microvolt = <1800000>;
178						regulator-max-microvolt = <2950000>;
179
180						regulator-boot-on;
181					};
182
183					l14 {
184						regulator-min-microvolt = <1800000>;
185						regulator-max-microvolt = <1800000>;
186					};
187
188					l15 {
189						regulator-min-microvolt = <2050000>;
190						regulator-max-microvolt = <2050000>;
191					};
192
193					l16 {
194						regulator-min-microvolt = <2700000>;
195						regulator-max-microvolt = <2700000>;
196					};
197
198					l17 {
199						regulator-min-microvolt = <2850000>;
200						regulator-max-microvolt = <2850000>;
201					};
202
203					l18 {
204						regulator-min-microvolt = <2850000>;
205						regulator-max-microvolt = <2850000>;
206					};
207
208					l19 {
209						regulator-min-microvolt = <2900000>;
210						regulator-max-microvolt = <3350000>;
211					};
212
213					l20 {
214						regulator-min-microvolt = <2950000>;
215						regulator-max-microvolt = <2950000>;
216
217						regulator-boot-on;
 
 
218					};
219
220					l21 {
221						regulator-min-microvolt = <2950000>;
222						regulator-max-microvolt = <2950000>;
223
224						regulator-boot-on;
225					};
226
227					l22 {
228						regulator-min-microvolt = <3000000>;
229						regulator-max-microvolt = <3300000>;
230					};
231
232					l23 {
233						regulator-min-microvolt = <3000000>;
234						regulator-max-microvolt = <3000000>;
235					};
236
237					l24 {
238						regulator-min-microvolt = <3075000>;
239						regulator-max-microvolt = <3075000>;
240
241						regulator-boot-on;
242					};
243				};
244			};
245		};
246	};
247};
248
249&soc {
250	serial@f991e000 {
251		status = "ok";
252	};
253
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
254	pinctrl@fd510000 {
255		sdhc1_pin_a: sdhc1-pin-active {
256			clk {
257				pins = "sdc1_clk";
258				drive-strength = <16>;
259				bias-disable;
260			};
261
262			cmd-data {
263				pins = "sdc1_cmd", "sdc1_data";
264				drive-strength = <10>;
265				bias-pull-up;
266			};
267		};
268
269		sdhc2_cd_pin_a: sdhc2-cd-pin-active {
270			pins = "gpio62";
271			function = "gpio";
272
273			drive-strength = <2>;
274			bias-disable;
275		};
276
277		sdhc2_pin_a: sdhc2-pin-active {
278			clk {
279				pins = "sdc2_clk";
280				drive-strength = <10>;
281				bias-disable;
282			};
283
284			cmd-data {
285				pins = "sdc2_cmd", "sdc2_data";
286				drive-strength = <6>;
287				bias-pull-up;
288			};
289		};
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
290	};
291
292	sdhci@f9824900 {
293		status = "ok";
294
295		vmmc-supply = <&pm8941_l20>;
296		vqmmc-supply = <&pm8941_s3>;
297
298		bus-width = <8>;
299		non-removable;
300
301		pinctrl-names = "default";
302		pinctrl-0 = <&sdhc1_pin_a>;
303	};
304
305	sdhci@f98a4900 {
306		status = "ok";
307
308		vmmc-supply = <&pm8941_l21>;
309		vqmmc-supply = <&pm8941_l13>;
310
311		bus-width = <4>;
312
313		pinctrl-names = "default";
314		pinctrl-0 = <&sdhc2_pin_a>, <&sdhc2_cd_pin_a>;
315	};
316
317	usb@f9a55000 {
318		status = "ok";
319
320		phys = <&usb_hs1_phy>;
321		phy-select = <&tcsr 0xb000 0>;
322		extcon = <&smbb>, <&usb_id>;
323		vbus-supply = <&chg_otg>;
324
325		hnp-disable;
326		srp-disable;
327		adp-disable;
328
329		ulpi {
330			phy@a {
331				status = "ok";
332
333				v1p8-supply = <&pm8941_l6>;
334				v3p3-supply = <&pm8941_l24>;
335
336				extcon = <&smbb>;
337				qcom,init-seq = /bits/ 8 <0x1 0x64>;
338			};
 
 
 
 
 
 
 
 
 
 
339		};
340	};
341};
342
343&spmi_bus {
344	pm8941@0 {
345		gpios@c000 {
346			gpio_keys_pin_a: gpio-keys-active {
347				pins = "gpio1", "gpio2", "gpio5";
348				function = "normal";
349
350				bias-pull-up;
351				power-source = <PM8941_GPIO_S3>;
352			};
353		};
354	};
355};
v5.9
  1#include "qcom-msm8974.dtsi"
  2#include "qcom-pm8841.dtsi"
  3#include "qcom-pm8941.dtsi"
  4#include <dt-bindings/gpio/gpio.h>
  5#include <dt-bindings/input/input.h>
  6#include <dt-bindings/pinctrl/qcom,pmic-gpio.h>
  7
  8
  9/ {
 10	model = "Fairphone 2";
 11	compatible = "fairphone,fp2", "qcom,msm8974";
 12
 13	aliases {
 14		serial0 = &blsp1_uart2;
 15	};
 16
 17	chosen {
 18		stdout-path = "serial0:115200n8";
 19	};
 20
 21	gpio-keys {
 22		compatible = "gpio-keys";
 23		input-name = "gpio-keys";
 24
 25		pinctrl-names = "default";
 26		pinctrl-0 = <&gpio_keys_pin_a>;
 27
 28		camera-snapshot {
 29			label = "camera_snapshot";
 30			gpios = <&pm8941_gpios 1 GPIO_ACTIVE_LOW>;
 31			linux,code = <KEY_CAMERA>;
 32			wakeup-source;
 33			debounce-interval = <15>;
 34		};
 35
 36		volume-down {
 37			label = "volume_down";
 38			gpios = <&pm8941_gpios 2 GPIO_ACTIVE_LOW>;
 39			linux,code = <KEY_VOLUMEDOWN>;
 40			wakeup-source;
 41			debounce-interval = <15>;
 42		};
 43
 44		volume-up {
 45			label = "volume_up";
 46			gpios = <&pm8941_gpios 5 GPIO_ACTIVE_LOW>;
 47			linux,code = <KEY_VOLUMEUP>;
 48			wakeup-source;
 49			debounce-interval = <15>;
 50		};
 51	};
 52
 53	vibrator {
 54		compatible = "gpio-vibrator";
 55		enable-gpios = <&msmgpio 86 GPIO_ACTIVE_HIGH>;
 56		vcc-supply = <&pm8941_l18>;
 57	};
 58
 59	smd {
 60		rpm {
 61			rpm_requests {
 62				pm8841-regulators {
 63					s1 {
 64						regulator-min-microvolt = <675000>;
 65						regulator-max-microvolt = <1050000>;
 66					};
 67
 68					s2 {
 69						regulator-min-microvolt = <500000>;
 70						regulator-max-microvolt = <1050000>;
 71					};
 72
 73					s3 {
 74						regulator-min-microvolt = <1050000>;
 75						regulator-max-microvolt = <1050000>;
 76					};
 77				};
 78
 79				pm8941-regulators {
 80					vdd_l1_l3-supply = <&pm8941_s1>;
 81					vdd_l2_lvs1_2_3-supply = <&pm8941_s3>;
 82					vdd_l4_l11-supply = <&pm8941_s1>;
 83					vdd_l5_l7-supply = <&pm8941_s2>;
 84					vdd_l6_l12_l14_l15-supply = <&pm8941_s2>;
 85					vdd_l9_l10_l17_l22-supply = <&vreg_boost>;
 86					vdd_l13_l20_l23_l24-supply = <&vreg_boost>;
 87					vdd_l21-supply = <&vreg_boost>;
 88
 89					s1 {
 90						regulator-min-microvolt = <1300000>;
 91						regulator-max-microvolt = <1300000>;
 92
 93						regulator-always-on;
 94						regulator-boot-on;
 95					};
 96
 97					s2 {
 98						regulator-min-microvolt = <2150000>;
 99						regulator-max-microvolt = <2150000>;
100
101						regulator-boot-on;
102					};
103
104					s3 {
105						regulator-min-microvolt = <1800000>;
106						regulator-max-microvolt = <1800000>;
107
108						regulator-always-on;
109						regulator-boot-on;
110					};
111
112					l1 {
113						regulator-min-microvolt = <1225000>;
114						regulator-max-microvolt = <1225000>;
115
116						regulator-always-on;
117						regulator-boot-on;
118					};
119
120					l2 {
121						regulator-min-microvolt = <1200000>;
122						regulator-max-microvolt = <1200000>;
123					};
124
125					l3 {
126						regulator-min-microvolt = <1225000>;
127						regulator-max-microvolt = <1225000>;
128					};
129
130					l4 {
131						regulator-min-microvolt = <1225000>;
132						regulator-max-microvolt = <1225000>;
133					};
134
135					l5 {
136						regulator-min-microvolt = <1800000>;
137						regulator-max-microvolt = <1800000>;
138					};
139
140					l6 {
141						regulator-min-microvolt = <1800000>;
142						regulator-max-microvolt = <1800000>;
143
144						regulator-boot-on;
145					};
146
147					l7 {
148						regulator-min-microvolt = <1800000>;
149						regulator-max-microvolt = <1800000>;
150
151						regulator-boot-on;
152					};
153
154					l8 {
155						regulator-min-microvolt = <1800000>;
156						regulator-max-microvolt = <1800000>;
157					};
158
159					l9 {
160						regulator-min-microvolt = <1800000>;
161						regulator-max-microvolt = <2950000>;
162					};
163
164					l10 {
165						regulator-min-microvolt = <1800000>;
166						regulator-max-microvolt = <2950000>;
167					};
168
169					l11 {
170						regulator-min-microvolt = <1225000>;
171						regulator-max-microvolt = <1350000>;
172					};
173
174					l12 {
175						regulator-min-microvolt = <1800000>;
176						regulator-max-microvolt = <1800000>;
177
178						regulator-always-on;
179						regulator-boot-on;
180					};
181
182					l13 {
183						regulator-min-microvolt = <1800000>;
184						regulator-max-microvolt = <2950000>;
185
186						regulator-boot-on;
187					};
188
189					l14 {
190						regulator-min-microvolt = <1800000>;
191						regulator-max-microvolt = <1800000>;
192					};
193
194					l15 {
195						regulator-min-microvolt = <2050000>;
196						regulator-max-microvolt = <2050000>;
197					};
198
199					l16 {
200						regulator-min-microvolt = <2700000>;
201						regulator-max-microvolt = <2700000>;
202					};
203
204					l17 {
205						regulator-min-microvolt = <2850000>;
206						regulator-max-microvolt = <2850000>;
207					};
208
209					l18 {
210						regulator-min-microvolt = <2850000>;
211						regulator-max-microvolt = <2850000>;
212					};
213
214					l19 {
215						regulator-min-microvolt = <2900000>;
216						regulator-max-microvolt = <3350000>;
217					};
218
219					l20 {
220						regulator-min-microvolt = <2950000>;
221						regulator-max-microvolt = <2950000>;
222
223						regulator-boot-on;
224						regulator-system-load = <200000>;
225						regulator-allow-set-load;
226					};
227
228					l21 {
229						regulator-min-microvolt = <2950000>;
230						regulator-max-microvolt = <2950000>;
231
232						regulator-boot-on;
233					};
234
235					l22 {
236						regulator-min-microvolt = <3000000>;
237						regulator-max-microvolt = <3300000>;
238					};
239
240					l23 {
241						regulator-min-microvolt = <3000000>;
242						regulator-max-microvolt = <3000000>;
243					};
244
245					l24 {
246						regulator-min-microvolt = <3075000>;
247						regulator-max-microvolt = <3075000>;
248
249						regulator-boot-on;
250					};
251				};
252			};
253		};
254	};
255};
256
257&soc {
258	serial@f991e000 {
259		status = "ok";
260	};
261
262	remoteproc@fb21b000 {
263		status = "ok";
264
265		vddmx-supply = <&pm8841_s1>;
266		vddcx-supply = <&pm8841_s2>;
267
268		pinctrl-names = "default";
269		pinctrl-0 = <&wcnss_pin_a>;
270
271		smd-edge {
272			qcom,remote-pid = <4>;
273			label = "pronto";
274
275			wcnss {
276				status = "ok";
277			};
278		};
279	};
280
281	pinctrl@fd510000 {
282		sdhc1_pin_a: sdhc1-pin-active {
283			clk {
284				pins = "sdc1_clk";
285				drive-strength = <16>;
286				bias-disable;
287			};
288
289			cmd-data {
290				pins = "sdc1_cmd", "sdc1_data";
291				drive-strength = <10>;
292				bias-pull-up;
293			};
294		};
295
 
 
 
 
 
 
 
 
296		sdhc2_pin_a: sdhc2-pin-active {
297			clk {
298				pins = "sdc2_clk";
299				drive-strength = <10>;
300				bias-disable;
301			};
302
303			cmd-data {
304				pins = "sdc2_cmd", "sdc2_data";
305				drive-strength = <6>;
306				bias-pull-up;
307			};
308		};
309
310		wcnss_pin_a: wcnss-pin-active {
311			wlan {
312				pins =  "gpio36", "gpio37", "gpio38", "gpio39", "gpio40";
313				function = "wlan";
314
315				drive-strength = <6>;
316				bias-pull-down;
317			};
318
319			bt {
320				pins = "gpio35", "gpio43", "gpio44";
321				function = "bt";
322
323				drive-strength = <2>;
324				bias-pull-down;
325			};
326
327			fm {
328				pins = "gpio41", "gpio42";
329				function = "fm";
330
331				drive-strength = <2>;
332				bias-pull-down;
333			};
334		};
335	};
336
337	sdhci@f9824900 {
338		status = "ok";
339
340		vmmc-supply = <&pm8941_l20>;
341		vqmmc-supply = <&pm8941_s3>;
342
343		bus-width = <8>;
344		non-removable;
345
346		pinctrl-names = "default";
347		pinctrl-0 = <&sdhc1_pin_a>;
348	};
349
350	sdhci@f98a4900 {
351		status = "ok";
352
353		vmmc-supply = <&pm8941_l21>;
354		vqmmc-supply = <&pm8941_l13>;
355
356		bus-width = <4>;
357
358		pinctrl-names = "default";
359		pinctrl-0 = <&sdhc2_pin_a>;
360	};
361
362	usb@f9a55000 {
363		status = "ok";
364
365		phys = <&usb_hs1_phy>;
366		phy-select = <&tcsr 0xb000 0>;
367		extcon = <&smbb>, <&usb_id>;
368		vbus-supply = <&chg_otg>;
369
370		hnp-disable;
371		srp-disable;
372		adp-disable;
373
374		ulpi {
375			phy@a {
376				status = "ok";
377
378				v1p8-supply = <&pm8941_l6>;
379				v3p3-supply = <&pm8941_l24>;
380
381				extcon = <&smbb>;
382				qcom,init-seq = /bits/ 8 <0x1 0x64>;
383			};
384		};
385	};
386
387	imem@fe805000 {
388		status = "okay";
389
390		reboot-mode {
391			mode-normal	= <0x77665501>;
392			mode-bootloader	= <0x77665500>;
393			mode-recovery	= <0x77665502>;
394		};
395	};
396};
397
398&spmi_bus {
399	pm8941@0 {
400		gpios@c000 {
401			gpio_keys_pin_a: gpio-keys-active {
402				pins = "gpio1", "gpio2", "gpio5";
403				function = "normal";
404
405				bias-pull-up;
406				power-source = <PM8941_GPIO_S3>;
407			};
408		};
409	};
410};