ste-snowball.dts 12.7 KB
Newer Older
1 2 3 4 5 6 7 8 9 10 11 12
/*
 * Copyright 2011 ST-Ericsson AB
 *
 * The code contained herein is licensed under the GNU General Public
 * License. You may obtain a copy of the GNU General Public License
 * Version 2 or later at the following locations:
 *
 * http://www.opensource.org/licenses/gpl-license.html
 * http://www.gnu.org/copyleft/gpl.html
 */

/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 22 23 24 25 26 27
	/* This stablilizes the serial port enumeration */
	aliases {
		serial0 = &ux500_serial0;
		serial1 = &ux500_serial1;
		serial2 = &ux500_serial2;
	};

28 29 30 31
	memory {
		reg = <0x00000000 0x20000000>;
	};

32 33
	en_3v3_reg: en_3v3 {
		compatible = "regulator-fixed";
34 35 36 37 38 39 40
		regulator-name = "en-3v3-fixed-supply";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		/* AB8500 GPIOs start from 1 - offset 25 is GPIO26. */
		gpio = <&ab8500_gpio 25 0x4>;
		startup-delay-us = <5000>;
		enable-active-high;
41 42
	};

43 44 45 46 47 48 49 50 51 52
	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

		button@1 {
			debounce_interval = <50>;
			wakeup = <1>;
			linux,code = <2>;
			label = "userpb";
53
			gpios = <&gpio1 0 0x4>;
54 55 56 57 58
		};
		button@2 {
			debounce_interval = <50>;
			wakeup = <1>;
			linux,code = <3>;
59
			label = "extkb1";
60
			gpios = <&gpio4 23 0x4>;
61 62 63 64 65
		};
		button@3 {
			debounce_interval = <50>;
			wakeup = <1>;
			linux,code = <4>;
66
			label = "extkb2";
67
			gpios = <&gpio4 24 0x4>;
68 69 70 71 72
		};
		button@4 {
			debounce_interval = <50>;
			wakeup = <1>;
			linux,code = <5>;
73
			label = "extkb3";
74
			gpios = <&gpio5 1 0x4>;
75 76 77 78 79
		};
		button@5 {
			debounce_interval = <50>;
			wakeup = <1>;
			linux,code = <6>;
80
			label = "extkb4";
81
			gpios = <&gpio5 2 0x4>;
82 83 84 85 86
		};
	};

	leds {
		compatible = "gpio-leds";
87 88
		pinctrl-names = "default";
		pinctrl-0 = <&gpioled_snowball_mode>;
89 90
		used-led {
			label = "user_led";
91
			gpios = <&gpio4 14 0x4>;
92
			default-state = "on";
93
			linux,default-trigger = "heartbeat";
94 95 96
		};
	};

97
	soc {
98 99 100 101 102
		usb_per5@a03e0000 {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&musb_default_mode>;
			pinctrl-1 = <&musb_sleep_mode>;
		};
103 104 105 106 107 108 109 110

		sound {
			compatible = "stericsson,snd-soc-mop500";

			stericsson,cpu-dai = <&msp1 &msp3>;
			stericsson,audio-codec = <&codec>;
		};

111 112 113 114 115 116
		msp0: msp@80123000 {
			pinctrl-names = "default";
			pinctrl-0 = <&msp0_default_mode>;
			status = "okay";
		};

117
		msp1: msp@80124000 {
118 119 120 121 122 123 124 125
			pinctrl-names = "default";
			pinctrl-0 = <&msp1_default_mode>;
			status = "okay";
		};

		msp2: msp@80117000 {
			pinctrl-names = "default";
			pinctrl-0 = <&msp2_default_mode>;
126 127 128 129 130 131
		};

		msp3: msp@80125000 {
			status = "okay";
		};

132
		external-bus@50000000 {
133 134 135 136 137
			status = "okay";

			ethernet@0 {
				compatible = "smsc,lan9115";
				reg = <0 0x10000>;
138
				interrupts = <12 IRQ_TYPE_EDGE_RISING>;
139
				interrupt-parent = <&gpio4>;
140 141
				vdd33a-supply = <&en_3v3_reg>;
				vddvario-supply = <&db8500_vape_reg>;
142 143
				pinctrl-names = "default";
				pinctrl-0 = <&eth_snowball_mode>;
144

145 146 147 148 149
				reg-shift = <1>;
				reg-io-width = <2>;
				smsc,force-internal-phy;
				smsc,irq-active-high;
				smsc,irq-push-pull;
150 151

				clocks = <&prcc_pclk 3 0>;
152 153 154
			};
		};

155
		vmmci: regulator-gpio {
156 157
			compatible = "regulator-gpio";

158 159
			gpios = <&gpio7 4 0x4>;
			enable-gpio = <&gpio6 25 0x4>;
160 161 162 163 164 165 166 167 168 169 170

			regulator-min-microvolt = <1800000>;
			regulator-max-microvolt = <2900000>;
			regulator-name = "mmci-reg";
			regulator-type = "voltage";

			startup-delay-us = <100>;
			enable-active-high;

			states = <1800000 0x1
				  2900000 0x0>;
171 172
		};

173
		// External Micro SD slot
174
		sdi0_per1@80126000 {
175
			arm,primecell-periphid = <0x10480180>;
176
			max-frequency = <100000000>;
177
			bus-width = <4>;
178
			cap-mmc-highspeed;
179
			vmmc-supply = <&ab8500_ldo_aux3_reg>;
180
			vqmmc-supply = <&vmmci>;
181 182 183
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&sdi0_default_mode>;
			pinctrl-1 = <&sdi0_sleep_mode>;
184

185
			cd-gpios  = <&gpio6 26 0x4>; // 218
186 187 188
			cd-inverted;

			status = "okay";
189 190
		};

191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211
		// WLAN SDIO channel
		sdi1_per2@80118000 {
			arm,primecell-periphid = <0x10480180>;
			max-frequency = <100000000>;
			bus-width = <4>;
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&sdi1_default_mode>;
			pinctrl-1 = <&sdi1_sleep_mode>;

			status = "okay";
		};

		// Unused PoP eMMC - register and put it to sleep by default */
		sdi2_per3@80005000 {
			arm,primecell-periphid = <0x10480180>;
			pinctrl-names = "default";
			pinctrl-0 = <&sdi2_sleep_mode>;

			status = "okay";
		};

212
		// On-board eMMC
213
		sdi4_per2@80114000 {
214
			arm,primecell-periphid = <0x10480180>;
215
		        max-frequency = <100000000>;
216
			bus-width = <8>;
217
			cap-mmc-highspeed;
218
			vmmc-supply = <&ab8500_ldo_aux2_reg>;
219 220 221
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&sdi4_default_mode>;
			pinctrl-1 = <&sdi4_sleep_mode>;
222 223

			status = "okay";
224 225
		};

226
		uart@80120000 {
227 228 229
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart0_default_mode>;
			pinctrl-1 = <&uart0_sleep_mode>;
230 231 232
			status = "okay";
		};

233
		/* This UART is unused and thus left disabled */
234
		uart@80121000 {
235 236 237
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart1_default_mode>;
			pinctrl-1 = <&uart1_sleep_mode>;
238 239 240
		};

		uart@80007000 {
241 242 243
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart2_default_mode>;
			pinctrl-1 = <&uart2_sleep_mode>;
244 245 246
			status = "okay";
		};

247 248 249 250 251 252 253 254 255 256 257 258 259 260 261 262
		i2c@80004000 {
			pinctrl-names = "default","sleep";
			pinctrl-0 = <&i2c0_default_mode>;
			pinctrl-1 = <&i2c0_sleep_mode>;
		};

		i2c@80122000 {
			pinctrl-names = "default","sleep";
			pinctrl-0 = <&i2c1_default_mode>;
			pinctrl-1 = <&i2c1_sleep_mode>;
		};

		i2c@80128000 {
			pinctrl-names = "default","sleep";
			pinctrl-0 = <&i2c2_default_mode>;
			pinctrl-1 = <&i2c2_sleep_mode>;
263 264 265 266 267 268 269 270 271
			lsm303dlh@18 {
				/* Accelerometer */
				compatible = "st,lsm303dlh-accel";
				st,drdy-int-pin = <1>;
				reg = <0x18>;
				vdd-supply = <&ab8500_ldo_aux1_reg>;
				vddio-supply = <&db8500_vsmps2_reg>;
				pinctrl-names = "default";
				pinctrl-0 = <&accel_snowball_mode>;
272 273 274
				interrupt-parent = <&gpio5>;
				interrupts = <3 IRQ_TYPE_EDGE_RISING>, /* INT1 */
					     <4 IRQ_TYPE_EDGE_RISING>; /* INT2 */
275
			};
276
			lsm303dlh@1e {
277
				/* Magnetometer */
278
				compatible = "st,lsm303dlh-magn";
279 280 281 282 283
				reg = <0x1e>;
				vdd-supply = <&ab8500_ldo_aux1_reg>;
				vddio-supply = <&db8500_vsmps2_reg>;
				pinctrl-names = "default";
				pinctrl-0 = <&magneto_snowball_mode>;
284
				gpios = <&gpio5 5 0x4>; /* DRDY line */
285 286 287 288 289 290 291 292
			};
			l3g4200d@68 {
				/* Gyroscope */
				compatible = "st,l3g4200d-gyro";
				st,drdy-int-pin = <2>;
				reg = <0x68>;
				vdd-supply = <&ab8500_ldo_aux1_reg>;
				vddio-supply = <&db8500_vsmps2_reg>;
293 294 295 296 297
				pinctrl-names = "default";
				pinctrl-0 = <&gyro_snowball_mode>;
				gpios = <&gpio5 6 0x4>; /* DRDY line */
				interrupt-parent = <&gpio5>;
				interrupts = <9 IRQ_TYPE_EDGE_RISING>; /* INT1 */
298 299 300 301 302 303 304 305
			};
			lsp001wm@5c {
				/* Barometer/pressure sensor */
				compatible = "st,lps001wp-press";
				reg = <0x5c>;
				vdd-supply = <&ab8500_ldo_aux1_reg>;
				vddio-supply = <&db8500_vsmps2_reg>;
			};
306 307 308 309 310 311 312 313
		};

		i2c@80110000 {
			pinctrl-names = "default","sleep";
			pinctrl-0 = <&i2c3_default_mode>;
			pinctrl-1 = <&i2c3_sleep_mode>;
		};

314 315 316 317 318
		ssp@80002000 {
			pinctrl-names = "default";
			pinctrl-0 = <&ssp0_snowball_mode>;
		};

319 320 321
		cpufreq-cooling {
			status = "okay";
		};
322

323
		prcmu@80157000 {
324 325 326 327
			cpufreq {
				status = "okay";
			};

328 329 330 331 332 333 334 335 336 337 338 339 340 341 342 343 344 345 346 347 348 349 350 351 352
			thermal@801573c0 {
				num-trips = <4>;

				trip0-temp = <70000>;
				trip0-type = "active";
				trip0-cdev-num = <1>;
				trip0-cdev-name0 = "thermal-cpufreq-0";

				trip1-temp = <75000>;
				trip1-type = "active";
				trip1-cdev-num = <1>;
				trip1-cdev-name0 = "thermal-cpufreq-0";

				trip2-temp = <80000>;
				trip2-type = "active";
				trip2-cdev-num = <1>;
				trip2-cdev-name0 = "thermal-cpufreq-0";

				trip3-temp = <85000>;
				trip3-type = "critical";
				trip3-cdev-num = <0>;

				status = "okay";
			};

353
			ab8500 {
354 355 356 357
				ab8500-gpio {
					compatible = "stericsson,ab8500-gpio";
				};

358 359 360 361 362 363 364 365 366 367 368 369 370 371
				ext_regulators: ab8500-ext-regulators {
					ab8500_ext1_reg: ab8500_ext1 {
						regulator-name = "ab8500-ext-supply1";
					};

					ab8500_ext2_reg_reg: ab8500_ext2 {
						regulator-name = "ab8500-ext-supply2";
					};

					ab8500_ext3_reg_reg: ab8500_ext3 {
						regulator-name = "ab8500-ext-supply3";
					};
				};

372 373 374 375 376 377 378 379 380 381 382 383 384
				ab8500-regulators {
					ab8500_ldo_aux1_reg: ab8500_ldo_aux1 {
						regulator-name = "V-DISPLAY";
					};

					ab8500_ldo_aux2_reg: ab8500_ldo_aux2 {
						regulator-name = "V-eMMC1";
					};

					ab8500_ldo_aux3_reg: ab8500_ldo_aux3 {
						regulator-name = "V-MMC-SD";
					};

385
					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
386 387 388 389 390 391 392 393 394 395 396 397 398 399 400 401 402 403 404
						regulator-name = "V-INTCORE";
					};

					ab8500_ldo_tvout_reg: ab8500_ldo_tvout {
						regulator-name = "V-TVOUT";
					};

					ab8500_ldo_usb_reg: ab8500_ldo_usb {
						regulator-name = "dummy";
					};

					ab8500_ldo_audio_reg: ab8500_ldo_audio {
						regulator-name = "V-AUD";
					};

					ab8500_ldo_anamic1_reg: ab8500_ldo_anamic1 {
						regulator-name = "V-AMIC1";
					};

405
					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
406 407 408 409 410 411 412 413 414 415 416 417 418
						regulator-name = "V-AMIC2";
					};

					ab8500_ldo_dmic_reg: ab8500_ldo_dmic {
						regulator-name = "V-DMIC";
					};

					ab8500_ldo_ana_reg: ab8500_ldo_ana {
						regulator-name = "V-CSI/DSI";
					};
				};
			};
		};
419 420

		pinctrl {
421 422 423 424 425
			/*
			 * Set this up using hogs, as time goes by and as seems fit, these
			 * can be moved over to being controlled by respective device.
			 */
			pinctrl-names = "default";
426
			pinctrl-0 = <&gbf_snowball_mode>,
427 428
				  <&wlan_snowball_mode>;

429 430 431 432 433 434 435
			ethernet {
				/*
				 * Mux in "SM" which is used for the
				 * SMSC911x Ethernet adapter
				 */
				eth_snowball_mode: eth_snowball {
					snowball_mux {
436 437
						function = "sm";
						groups = "sm_b_1";
438 439 440
					};
					/* LAN IRQ pin */
					snowball_cfg1 {
441
						pins = "GPIO140_B11";
442 443 444 445
						ste,config = <&in_nopull>;
					};
					/* LAN reset pin */
					snowball_cfg2 {
446
						pins = "GPIO141_C12";
447 448 449 450 451
						ste,config = <&gpio_out_hi>;
					};

				};
			};
452 453 454
			sdi0 {
				sdi0_default_mode: sdi0_default {
					snowball_mux {
455 456
						function = "mc0";
						groups = "mc0dat31dir_a_1";
457 458
					};
					snowball_cfg1 {
459
						pins = "GPIO21_AB3"; /* DAT31DIR */
460 461
						ste,config = <&out_hi>;
					};
462 463 464 465 466 467 468 469 470 471 472 473 474 475 476
					/* SD card detect GPIO pin, extend default state */
					snowball_cfg2 {
						pins = "GPIO218_AH11";
						ste,config = <&gpio_in_pu>;
					};
					/* VMMCI level-shifter enable */
					snowball_cfg3 {
						pins = "GPIO217_AH12";
						ste,config = <&gpio_out_lo>;
					};
					/* VMMCI level-shifter voltage select */
					snowball_cfg4 {
						pins = "GPIO228_AJ6";
						ste,config = <&gpio_out_hi>;
					};
477 478
				};
			};
479 480 481
			ssp0 {
				ssp0_snowball_mode: ssp0_snowball_default {
					snowball_mux {
482 483
						function = "ssp0";
						groups = "ssp0_a_1";
484 485
					};
					snowball_cfg1 {
486
						pins = "GPIO144_B13"; /* FRM */
487 488 489
						ste,config = <&gpio_out_hi>;
					};
					snowball_cfg2 {
490
						pins = "GPIO145_C13"; /* RXD */
491 492 493
						ste,config = <&in_pd>;
					};
					snowball_cfg3 {
494
						pins =
495 496 497 498 499 500 501
						"GPIO146_D13", /* TXD */
						"GPIO143_D12"; /* CLK */
						ste,config = <&out_lo>;
					};

				};
			};
502 503 504
			gpio_led {
				gpioled_snowball_mode: gpioled_default {
					snowball_cfg1 {
505
						pins = "GPIO142_C11";
506 507 508 509 510
						ste,config = <&gpio_out_hi>;
					};

				};
			};
511 512 513 514
			accelerometer {
				accel_snowball_mode: accel_snowball {
					/* Accelerometer lines */
					snowball_cfg1 {
515
						pins =
516 517 518 519 520 521
						"GPIO163_C20", /* ACCEL_IRQ1 */
						"GPIO164_B21"; /* ACCEL_IRQ2 */
						ste,config = <&gpio_in_pu>;
					};
				};
			};
522 523 524 525 526 527 528 529 530 531
			gyro {
				gyro_snowball_mode: gyro_snowball {
					snowball_cfg1 {
						pins =
						"GPIO166_A22", /* DRDY */
						"GPIO169_D22"; /* INT */
						ste,config = <&gpio_in_pu>;
					};
				};
			};
532 533 534
			magnetometer {
				magneto_snowball_mode: magneto_snowball {
					snowball_cfg1 {
535
						pins = "GPIO165_C21"; /* MAG_DRDY */
536 537 538 539 540 541 542 543 544 545 546
						ste,config = <&gpio_in_pu>;
					};
				};
			};
			gbf {
				gbf_snowball_mode: gbf_snowball {
					/*
					 * GBF (GPS, Bluetooth, FM-radio) interface,
					 * pull low to reset state
					 */
					snowball_cfg1 {
547
						pins = "GPIO171_D23"; /* GBF_ENA_RESET */
548 549 550 551 552 553 554 555 556 557 558
						ste,config = <&gpio_out_lo>;
					};
				 };
			};
			wlan {
				wlan_snowball_mode: wlan_snowball {
					/*
					 * Activate this mode with the WLAN chip.
					 * These are plain GPIO pins used by WLAN
					 */
					snowball_cfg1 {
559
						pins =
560 561 562 563 564
						"GPIO161_D21", /* WLAN_PMU_EN */
						"GPIO215_AH13"; /* WLAN_ENA */
						ste,config = <&gpio_out_lo>;
					};
					snowball_cfg2 {
565
						pins = "GPIO216_AG12"; /* WLAN_IRQ */
566 567 568 569
						ste,config = <&gpio_in_pu>;
					};
				};
			};
570
		};
571 572 573 574 575 576

		mcde@a0350000 {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&lcd_default_mode>;
			pinctrl-1 = <&lcd_sleep_mode>;
		};
577 578
	};
};