Linux Audio

Check our new training course

Loading...
Note: File does not exist in v6.13.7.
  1/*
  2 * Copyright 2011 ST-Ericsson AB
  3 *
  4 * The code contained herein is licensed under the GNU General Public
  5 * License. You may obtain a copy of the GNU General Public License
  6 * Version 2 or later at the following locations:
  7 *
  8 * http://www.opensource.org/licenses/gpl-license.html
  9 * http://www.gnu.org/copyleft/gpl.html
 10 */
 11
 12/dts-v1/;
 13#include "ste-dbx5x0.dtsi"
 14#include "ste-href-ab8500.dtsi"
 15#include "ste-href-family-pinctrl.dtsi"
 16
 17/ {
 18	model = "Calao Systems Snowball platform with device tree";
 19	compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
 20
 21	memory {
 22		reg = <0x00000000 0x20000000>;
 23	};
 24
 25	en_3v3_reg: en_3v3 {
 26		compatible = "regulator-fixed";
 27		regulator-name = "en-3v3-fixed-supply";
 28		regulator-min-microvolt = <3300000>;
 29		regulator-max-microvolt = <3300000>;
 30		/* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
 31		gpio = <&ab8500_gpio 25 0x4>;
 32		startup-delay-us = <5000>;
 33		enable-active-high;
 34	};
 35
 36	gpio_keys {
 37		compatible = "gpio-keys";
 38		#address-cells = <1>;
 39		#size-cells = <0>;
 40
 41		button@1 {
 42			debounce_interval = <50>;
 43			wakeup = <1>;
 44			linux,code = <2>;
 45			label = "userpb";
 46			gpios = <&gpio1 0 0x4>;
 47		};
 48		button@2 {
 49			debounce_interval = <50>;
 50			wakeup = <1>;
 51			linux,code = <3>;
 52			label = "extkb1";
 53			gpios = <&gpio4 23 0x4>;
 54		};
 55		button@3 {
 56			debounce_interval = <50>;
 57			wakeup = <1>;
 58			linux,code = <4>;
 59			label = "extkb2";
 60			gpios = <&gpio4 24 0x4>;
 61		};
 62		button@4 {
 63			debounce_interval = <50>;
 64			wakeup = <1>;
 65			linux,code = <5>;
 66			label = "extkb3";
 67			gpios = <&gpio5 1 0x4>;
 68		};
 69		button@5 {
 70			debounce_interval = <50>;
 71			wakeup = <1>;
 72			linux,code = <6>;
 73			label = "extkb4";
 74			gpios = <&gpio5 2 0x4>;
 75		};
 76	};
 77
 78	leds {
 79		compatible = "gpio-leds";
 80		pinctrl-names = "default";
 81		pinctrl-0 = <&gpioled_snowball_mode>;
 82		used-led {
 83			label = "user_led";
 84			gpios = <&gpio4 14 0x4>;
 85			default-state = "on";
 86			linux,default-trigger = "heartbeat";
 87		};
 88	};
 89
 90	soc {
 91		usb_per5@a03e0000 {
 92			pinctrl-names = "default", "sleep";
 93			pinctrl-0 = <&musb_default_mode>;
 94			pinctrl-1 = <&musb_sleep_mode>;
 95		};
 96
 97		sound {
 98			compatible = "stericsson,snd-soc-mop500";
 99
100			stericsson,cpu-dai = <&msp1 &msp3>;
101			stericsson,audio-codec = <&codec>;
102		};
103
104		msp0: msp@80123000 {
105			pinctrl-names = "default";
106			pinctrl-0 = <&msp0_default_mode>;
107			status = "okay";
108		};
109
110		msp1: msp@80124000 {
111			pinctrl-names = "default";
112			pinctrl-0 = <&msp1_default_mode>;
113			status = "okay";
114		};
115
116		msp2: msp@80117000 {
117			pinctrl-names = "default";
118			pinctrl-0 = <&msp2_default_mode>;
119			status = "okay";
120		};
121
122		msp3: msp@80125000 {
123			status = "okay";
124		};
125
126		external-bus@50000000 {
127			status = "okay";
128
129			ethernet@0 {
130				compatible = "smsc,lan9115";
131				reg = <0 0x10000>;
132				interrupts = <12 IRQ_TYPE_EDGE_RISING>;
133				interrupt-parent = <&gpio4>;
134				vdd33a-supply = <&en_3v3_reg>;
135				vddvario-supply = <&db8500_vape_reg>;
136				pinctrl-names = "default";
137				pinctrl-0 = <&eth_snowball_mode>;
138
139				reg-shift = <1>;
140				reg-io-width = <2>;
141				smsc,force-internal-phy;
142				smsc,irq-active-high;
143				smsc,irq-push-pull;
144
145				clocks = <&prcc_pclk 3 0>;
146			};
147		};
148
149		vmmci: regulator-gpio {
150			gpios = <&gpio7 4 0x4>;
151			enable-gpio = <&gpio6 25 0x4>;
152		};
153
154		// External Micro SD slot
155		sdi0_per1@80126000 {
156			arm,primecell-periphid = <0x10480180>;
157			max-frequency = <100000000>;
158			bus-width = <4>;
159			mmc-cap-mmc-highspeed;
160			vmmc-supply = <&ab8500_ldo_aux3_reg>;
161			vqmmc-supply = <&vmmci>;
162			pinctrl-names = "default", "sleep";
163			pinctrl-0 = <&sdi0_default_mode>;
164			pinctrl-1 = <&sdi0_sleep_mode>;
165
166			cd-gpios  = <&gpio6 26 0x4>; // 218
167			cd-inverted;
168
169			status = "okay";
170		};
171
172		// WLAN SDIO channel
173		sdi1_per2@80118000 {
174			arm,primecell-periphid = <0x10480180>;
175			max-frequency = <100000000>;
176			bus-width = <4>;
177			pinctrl-names = "default", "sleep";
178			pinctrl-0 = <&sdi1_default_mode>;
179			pinctrl-1 = <&sdi1_sleep_mode>;
180
181			status = "okay";
182		};
183
184		// Unused PoP eMMC - register and put it to sleep by default */
185		sdi2_per3@80005000 {
186			arm,primecell-periphid = <0x10480180>;
187			pinctrl-names = "default";
188			pinctrl-0 = <&sdi2_sleep_mode>;
189
190			status = "okay";
191		};
192
193		// On-board eMMC
194		sdi4_per2@80114000 {
195			arm,primecell-periphid = <0x10480180>;
196		        max-frequency = <100000000>;
197			bus-width = <8>;
198			mmc-cap-mmc-highspeed;
199			vmmc-supply = <&ab8500_ldo_aux2_reg>;
200			pinctrl-names = "default", "sleep";
201			pinctrl-0 = <&sdi4_default_mode>;
202			pinctrl-1 = <&sdi4_sleep_mode>;
203
204			status = "okay";
205		};
206
207		uart@80120000 {
208			pinctrl-names = "default", "sleep";
209			pinctrl-0 = <&uart0_default_mode>;
210			pinctrl-1 = <&uart0_sleep_mode>;
211			status = "okay";
212		};
213
214		uart@80121000 {
215			pinctrl-names = "default", "sleep";
216			pinctrl-0 = <&uart1_default_mode>;
217			pinctrl-1 = <&uart1_sleep_mode>;
218			status = "okay";
219		};
220
221		uart@80007000 {
222			pinctrl-names = "default", "sleep";
223			pinctrl-0 = <&uart2_default_mode>;
224			pinctrl-1 = <&uart2_sleep_mode>;
225			status = "okay";
226		};
227
228		i2c@80004000 {
229			pinctrl-names = "default","sleep";
230			pinctrl-0 = <&i2c0_default_mode>;
231			pinctrl-1 = <&i2c0_sleep_mode>;
232		};
233
234		i2c@80122000 {
235			pinctrl-names = "default","sleep";
236			pinctrl-0 = <&i2c1_default_mode>;
237			pinctrl-1 = <&i2c1_sleep_mode>;
238		};
239
240		i2c@80128000 {
241			pinctrl-names = "default","sleep";
242			pinctrl-0 = <&i2c2_default_mode>;
243			pinctrl-1 = <&i2c2_sleep_mode>;
244		};
245
246		i2c@80110000 {
247			pinctrl-names = "default","sleep";
248			pinctrl-0 = <&i2c3_default_mode>;
249			pinctrl-1 = <&i2c3_sleep_mode>;
250		};
251
252		ssp@80002000 {
253			pinctrl-names = "default";
254			pinctrl-0 = <&ssp0_snowball_mode>;
255		};
256
257		cpufreq-cooling {
258			status = "okay";
259		};
260
261		prcmu@80157000 {
262			cpufreq {
263				status = "okay";
264			};
265
266			thermal@801573c0 {
267				num-trips = <4>;
268
269				trip0-temp = <70000>;
270				trip0-type = "active";
271				trip0-cdev-num = <1>;
272				trip0-cdev-name0 = "thermal-cpufreq-0";
273
274				trip1-temp = <75000>;
275				trip1-type = "active";
276				trip1-cdev-num = <1>;
277				trip1-cdev-name0 = "thermal-cpufreq-0";
278
279				trip2-temp = <80000>;
280				trip2-type = "active";
281				trip2-cdev-num = <1>;
282				trip2-cdev-name0 = "thermal-cpufreq-0";
283
284				trip3-temp = <85000>;
285				trip3-type = "critical";
286				trip3-cdev-num = <0>;
287
288				status = "okay";
289			};
290
291			ab8500 {
292				ab8500-gpio {
293					compatible = "stericsson,ab8500-gpio";
294				};
295
296				ext_regulators: ab8500-ext-regulators {
297					ab8500_ext1_reg: ab8500_ext1 {
298						regulator-name = "ab8500-ext-supply1";
299					};
300
301					ab8500_ext2_reg_reg: ab8500_ext2 {
302						regulator-name = "ab8500-ext-supply2";
303					};
304
305					ab8500_ext3_reg_reg: ab8500_ext3 {
306						regulator-name = "ab8500-ext-supply3";
307					};
308				};
309
310				ab8500-regulators {
311					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
312						regulator-name = "V-DISPLAY";
313					};
314
315					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
316						regulator-name = "V-eMMC1";
317					};
318
319					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
320						regulator-name = "V-MMC-SD";
321					};
322
323					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
324						regulator-name = "V-INTCORE";
325					};
326
327					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
328						regulator-name = "V-TVOUT";
329					};
330
331					ab8500_ldo_usb_reg: ab8500_ldo_usb {
332						regulator-name = "dummy";
333					};
334
335					ab8500_ldo_audio_reg: ab8500_ldo_audio {
336						regulator-name = "V-AUD";
337					};
338
339					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
340						regulator-name = "V-AMIC1";
341					};
342
343					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
344						regulator-name = "V-AMIC2";
345					};
346
347					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
348						regulator-name = "V-DMIC";
349					};
350
351					ab8500_ldo_ana_reg: ab8500_ldo_ana {
352						regulator-name = "V-CSI/DSI";
353					};
354				};
355			};
356		};
357
358		pinctrl {
359			/*
360			 * Set this up using hogs, as time goes by and as seems fit, these
361			 * can be moved over to being controlled by respective device.
362			 */
363			pinctrl-names = "default";
364			pinctrl-0 = <&accel_snowball_mode>,
365				  <&magneto_snowball_mode>,
366				  <&gbf_snowball_mode>,
367				  <&wlan_snowball_mode>;
368
369			ethernet {
370				/*
371				 * Mux in "SM" which is used for the
372				 * SMSC911x Ethernet adapter
373				 */
374				eth_snowball_mode: eth_snowball {
375					snowball_mux {
376						ste,function = "sm";
377						ste,pins = "sm_b_1";
378					};
379					/* LAN IRQ pin */
380					snowball_cfg1 {
381						ste,pins = "GPIO140_B11";
382						ste,config = <&in_nopull>;
383					};
384					/* LAN reset pin */
385					snowball_cfg2 {
386						ste,pins = "GPIO141_C12";
387						ste,config = <&gpio_out_hi>;
388					};
389
390				};
391			};
392			sdi0 {
393				sdi0_default_mode: sdi0_default {
394					snowball_mux {
395						ste,function = "mc0";
396						ste,pins = "mc0dat31dir_a_1";
397					};
398					snowball_cfg1 {
399						ste,pins = "GPIO21_AB3"; /* DAT31DIR */
400						ste,config = <&out_hi>;
401					};
402
403				};
404			};
405			ssp0 {
406				ssp0_snowball_mode: ssp0_snowball_default {
407					snowball_mux {
408						ste,function = "ssp0";
409						ste,pins = "ssp0_a_1";
410					};
411					snowball_cfg1 {
412						ste,pins = "GPIO144_B13"; /* FRM */
413						ste,config = <&gpio_out_hi>;
414					};
415					snowball_cfg2 {
416						ste,pins = "GPIO145_C13"; /* RXD */
417						ste,config = <&in_pd>;
418					};
419					snowball_cfg3 {
420						ste,pins =
421						"GPIO146_D13", /* TXD */
422						"GPIO143_D12"; /* CLK */
423						ste,config = <&out_lo>;
424					};
425
426				};
427			};
428			gpio_led {
429				gpioled_snowball_mode: gpioled_default {
430					snowball_cfg1 {
431						ste,pins = "GPIO142_C11";
432						ste,config = <&gpio_out_hi>;
433					};
434
435				};
436			};
437			accelerometer {
438				accel_snowball_mode: accel_snowball {
439					/* Accelerometer lines */
440					snowball_cfg1 {
441						ste,pins =
442						"GPIO163_C20", /* ACCEL_IRQ1 */
443						"GPIO164_B21"; /* ACCEL_IRQ2 */
444						ste,config = <&gpio_in_pu>;
445					};
446				};
447			};
448			magnetometer {
449				magneto_snowball_mode: magneto_snowball {
450					snowball_cfg1 {
451						ste,pins = "GPIO165_C21"; /* MAG_DRDY */
452						ste,config = <&gpio_in_pu>;
453					};
454				};
455			};
456			gbf {
457				gbf_snowball_mode: gbf_snowball {
458					/*
459					 * GBF (GPS, Bluetooth, FM-radio) interface,
460					 * pull low to reset state
461					 */
462					snowball_cfg1 {
463						ste,pins = "GPIO171_D23"; /* GBF_ENA_RESET */
464						ste,config = <&gpio_out_lo>;
465					};
466				 };
467			};
468			wlan {
469				wlan_snowball_mode: wlan_snowball {
470					/*
471					 * Activate this mode with the WLAN chip.
472					 * These are plain GPIO pins used by WLAN
473					 */
474					snowball_cfg1 {
475						ste,pins =
476						"GPIO161_D21", /* WLAN_PMU_EN */
477						"GPIO215_AH13"; /* WLAN_ENA */
478						ste,config = <&gpio_out_lo>;
479					};
480					snowball_cfg2 {
481						ste,pins = "GPIO216_AG12"; /* WLAN_IRQ */
482						ste,config = <&gpio_in_pu>;
483					};
484				};
485			};
486		};
487
488		mcde@a0350000 {
489			pinctrl-names = "default", "sleep";
490			pinctrl-0 = <&lcd_default_mode>;
491			pinctrl-1 = <&lcd_sleep_mode>;
492		};
493	};
494};