ste-snowball.dts 8.2 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-family-pinctrl.dtsi"
15 16 17

/ {
	model = "Calao Systems Snowball platform with device tree";
18
	compatible = "calaosystems,snowball-a9500", "st-ericsson,u9500";
19 20 21 22 23

	memory {
		reg = <0x00000000 0x20000000>;
	};

24 25
	en_3v3_reg: en_3v3 {
		compatible = "regulator-fixed";
26 27 28 29 30 31 32
		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;
33 34
	};

35 36 37 38 39 40 41 42 43 44
	gpio_keys {
		compatible = "gpio-keys";
		#address-cells = <1>;
		#size-cells = <0>;

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

	leds {
		compatible = "gpio-leds";
		used-led {
			label = "user_led";
81
			gpios = <&gpio4 14 0x4>;
82
			default-state = "on";
83
			linux,default-trigger = "heartbeat";
84 85 86
		};
	};

87
	soc {
88 89 90 91 92
		usb_per5@a03e0000 {
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&musb_default_mode>;
			pinctrl-1 = <&musb_sleep_mode>;
		};
93 94 95 96 97 98 99 100

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

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

101 102 103 104 105 106
		msp0: msp@80123000 {
			pinctrl-names = "default";
			pinctrl-0 = <&msp0_default_mode>;
			status = "okay";
		};

107
		msp1: msp@80124000 {
108 109 110 111 112 113 114 115
			pinctrl-names = "default";
			pinctrl-0 = <&msp1_default_mode>;
			status = "okay";
		};

		msp2: msp@80117000 {
			pinctrl-names = "default";
			pinctrl-0 = <&msp2_default_mode>;
116 117 118 119 120 121 122
			status = "okay";
		};

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

123
		external-bus@50000000 {
124 125 126 127 128
			status = "okay";

			ethernet@0 {
				compatible = "smsc,lan9115";
				reg = <0 0x10000>;
129
				interrupts = <12 IRQ_TYPE_EDGE_RISING>;
130
				interrupt-parent = <&gpio4>;
131 132
				vdd33a-supply = <&en_3v3_reg>;
				vddvario-supply = <&db8500_vape_reg>;
133 134
				pinctrl-names = "default";
				pinctrl-0 = <&eth_snowball_mode>;
135

136 137 138 139 140
				reg-shift = <1>;
				reg-io-width = <2>;
				smsc,force-internal-phy;
				smsc,irq-active-high;
				smsc,irq-push-pull;
141 142

				clocks = <&prcc_pclk 3 0>;
143 144 145
			};
		};

146 147 148 149 150 151 152
		vmmci: regulator-gpio {
			gpios = <&gpio6 25 0x4>;
			enable-gpio = <&gpio7 4 0x4>;

			status = "okay";
		};

153
		// External Micro SD slot
154
		sdi0_per1@80126000 {
155
			arm,primecell-periphid = <0x10480180>;
156
			max-frequency = <100000000>;
157
			bus-width = <4>;
158
			mmc-cap-mmc-highspeed;
159
			vmmc-supply = <&ab8500_ldo_aux3_reg>;
160
			vqmmc-supply = <&vmmci>;
161 162 163
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&sdi0_default_mode>;
			pinctrl-1 = <&sdi0_sleep_mode>;
164

165
			cd-gpios  = <&gpio6 26 0x4>; // 218
166 167 168
			cd-inverted;

			status = "okay";
169 170
		};

171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191
		// 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";
		};

192
		// On-board eMMC
193
		sdi4_per2@80114000 {
194
			arm,primecell-periphid = <0x10480180>;
195
		        max-frequency = <100000000>;
196 197
			bus-width = <8>;
			mmc-cap-mmc-highspeed;
198
			vmmc-supply = <&ab8500_ldo_aux2_reg>;
199 200 201
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&sdi4_default_mode>;
			pinctrl-1 = <&sdi4_sleep_mode>;
202 203

			status = "okay";
204 205
		};

206
		uart@80120000 {
207 208 209
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart0_default_mode>;
			pinctrl-1 = <&uart0_sleep_mode>;
210 211 212 213
			status = "okay";
		};

		uart@80121000 {
214 215 216
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart1_default_mode>;
			pinctrl-1 = <&uart1_sleep_mode>;
217 218 219 220
			status = "okay";
		};

		uart@80007000 {
221 222 223
			pinctrl-names = "default", "sleep";
			pinctrl-0 = <&uart2_default_mode>;
			pinctrl-1 = <&uart2_sleep_mode>;
224 225 226
			status = "okay";
		};

227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250
		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>;
		};

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

251 252 253
		cpufreq-cooling {
			status = "okay";
		};
254

255
		prcmu@80157000 {
256 257 258 259
			cpufreq {
				status = "okay";
			};

260 261 262 263 264 265 266 267 268 269 270 271 272 273 274 275 276 277 278 279 280 281 282 283 284
			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";
			};

285
			ab8500 {
286 287 288 289
				ab8500-gpio {
					compatible = "stericsson,ab8500-gpio";
				};

290 291 292 293 294 295 296 297 298 299 300 301 302 303
				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";
					};
				};

304 305 306 307 308 309 310 311 312 313 314 315 316
				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";
					};

317
					ab8500_ldo_intcore_reg: ab8500_ldo_intcore {
318 319 320 321 322 323 324 325 326 327 328 329 330 331 332 333 334 335 336
						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";
					};

337
					ab8500_ldo_anamic2_reg: ab8500_ldo_anamic2 {
338 339 340 341 342 343 344 345 346 347 348 349 350
						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";
					};
				};
			};
		};
351 352

		pinctrl {
353 354 355 356 357 358 359 360 361 362 363 364 365 366 367 368 369 370 371 372 373 374 375
			ethernet {
				/*
				 * Mux in "SM" which is used for the
				 * SMSC911x Ethernet adapter
				 */
				eth_snowball_mode: eth_snowball {
					snowball_mux {
						ste,function = "sm";
						ste,pins = "sm_b_1";
					};
					/* LAN IRQ pin */
					snowball_cfg1 {
						ste,pins = "GPIO140_B11";
						ste,config = <&in_nopull>;
					};
					/* LAN reset pin */
					snowball_cfg2 {
						ste,pins = "GPIO141_C12";
						ste,config = <&gpio_out_hi>;
					};

				};
			};
376 377 378 379 380 381 382 383 384 385 386 387 388 389
			sdi0 {
				sdi0_default_mode: sdi0_default {
					snowball_mux {
						ste,function = "mc0";
						ste,pins = "mc0dat31dir_a_1";
					};
					snowball_cfg1 {
						ste,pins = "GPIO21_AB3"; /* DAT31DIR */
						ste,config = <&out_hi>;
					};

				};
			};
		};
390 391 392 393 394 395

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