at91sam9m10g45ek.dts 5.9 KB
Newer Older
1 2 3 4 5 6 7 8 9
/*
 * at91sam9m10g45ek.dts - Device Tree file for AT91SAM9M10G45-EK board
 *
 *  Copyright (C) 2011 Atmel,
 *                2011 Nicolas Ferre <nicolas.ferre@atmel.com>
 *
 * Licensed under GPLv2 or later.
 */
/dts-v1/;
10
#include "at91sam9g45.dtsi"
11
#include <dt-bindings/pwm/pwm.h>
12 13 14 15 16 17

/ {
	model = "Atmel AT91SAM9M10G45-EK";
	compatible = "atmel,at91sam9m10g45ek", "atmel,at91sam9g45", "atmel,at91sam9";

	chosen {
18
		bootargs = "mem=64M console=ttyS0,115200 root=/dev/mtdblock1 rw rootfstype=jffs2";
19 20
	};

21
	memory {
22 23 24
		reg = <0x70000000 0x4000000>;
	};

25 26 27 28 29 30 31 32 33
	clocks {
		#address-cells = <1>;
		#size-cells = <1>;
		ranges;

		main_clock: clock@0 {
			compatible = "atmel,osc", "fixed-clock";
			clock-frequency = <12000000>;
		};
34 35 36 37 38 39 40 41

		slow_xtal {
		      clock-frequency = <32768>;
		};

		main_xtal {
		      clock-frequency = <12000000>;
		};
42 43
	};

44 45 46 47 48 49 50
	ahb {
		apb {
			dbgu: serial@ffffee00 {
				status = "okay";
			};

			usart1: serial@fff90000 {
51 52 53 54
				pinctrl-0 =
					<&pinctrl_usart1
					 &pinctrl_usart1_rts
					 &pinctrl_usart1_cts>;
55 56
				status = "okay";
			};
57 58 59 60 61

			macb0: ethernet@fffbc000 {
				phy-mode = "rmii";
				status = "okay";
			};
62 63 64 65 66 67 68 69

			i2c0: i2c@fff84000 {
				status = "okay";
			};

			i2c1: i2c@fff88000 {
				status = "okay";
			};
70

71 72 73 74
			watchdog@fffffd40 {
				status = "okay";
			};

75
			mmc0: mmc@fff80000 {
76 77 78 79
				pinctrl-0 = <
					&pinctrl_board_mmc0
					&pinctrl_mmc0_slot0_clk_cmd_dat0
					&pinctrl_mmc0_slot0_dat1_3>;
80 81 82 83
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <4>;
84
					cd-gpios = <&pioD 10 GPIO_ACTIVE_HIGH>;
85 86 87 88
				};
			};

			mmc1: mmc@fffd0000 {
89 90 91 92
				pinctrl-0 = <
					&pinctrl_board_mmc1
					&pinctrl_mmc1_slot0_clk_cmd_dat0
					&pinctrl_mmc1_slot0_dat1_3>;
93 94 95 96
				status = "okay";
				slot@0 {
					reg = <0>;
					bus-width = <4>;
97 98
					cd-gpios = <&pioD 11 GPIO_ACTIVE_HIGH>;
					wp-gpios = <&pioD 29 GPIO_ACTIVE_HIGH>;
99 100
				};
			};
101 102 103 104 105

			pinctrl@fffff200 {
				mmc0 {
					pinctrl_board_mmc0: mmc0-board {
						atmel,pins =
106
							<AT91_PIOD 10 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH>;	/* PD10 gpio CD pin pull up and deglitch */
107 108 109 110 111 112
					};
				};

				mmc1 {
					pinctrl_board_mmc1: mmc1-board {
						atmel,pins =
113 114
							<AT91_PIOD 11 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP_DEGLITCH	/* PD11 gpio CD pin pull up and deglitch */
							 AT91_PIOD 29 AT91_PERIPH_GPIO AT91_PINCTRL_PULL_UP>;	/* PD29 gpio WP pin pull up */
115 116
					};
				};
117 118 119 120 121 122 123 124

				pwm0 {
					pinctrl_pwm_leds: pwm-led {
						atmel,pins =
							<AT91_PIOD 0  AT91_PERIPH_B AT91_PINCTRL_PULL_UP	/* PD0 periph B */
							 AT91_PIOD 31 AT91_PERIPH_B AT91_PINCTRL_PULL_UP>;	/* PD31 periph B */
					};
				};
125
			};
126 127 128 129 130 131 132 133 134 135

			spi0: spi@fffa4000{
				status = "okay";
				cs-gpios = <&pioB 3 0>, <0>, <0>, <0>;
				mtd_dataflash@0 {
					compatible = "atmel,at45", "atmel,dataflash";
					spi-max-frequency = <13000000>;
					reg = <0>;
				};
			};
136 137 138 139 140

			usb2: gadget@fff78000 {
				atmel,vbus-gpio = <&pioB 19 GPIO_ACTIVE_HIGH>;
				status = "okay";
			};
141

142 143 144 145 146 147 148 149 150 151 152 153 154 155 156
			adc0: adc@fffb0000 {
				pinctrl-names = "default";
				pinctrl-0 = <
					&pinctrl_adc0_ad0
					&pinctrl_adc0_ad1
					&pinctrl_adc0_ad2
					&pinctrl_adc0_ad3
					&pinctrl_adc0_ad4
					&pinctrl_adc0_ad5
					&pinctrl_adc0_ad6
					&pinctrl_adc0_ad7>;
				atmel,adc-ts-wires = <4>;
				status = "okay";
			};

157 158 159 160 161 162
			pwm0: pwm@fffb8000 {
				status = "okay";

				pinctrl-names = "default";
				pinctrl-0 = <&pinctrl_pwm_leds>;
			};
163

164 165 166 167 168 169 170 171 172
			rtc@fffffd20 {
				atmel,rtt-rtc-time-reg = <&gpbr 0x0>;
				status = "okay";
			};

			gpbr: syscon@fffffd60 {
				status = "okay";
			};

173 174 175
			rtc@fffffdb0 {
				status = "okay";
			};
176
		};
177

178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206
		fb0: fb@0x00500000 {
			display = <&display0>;
			status = "okay";

			display0: display {
				bits-per-pixel = <32>;
				atmel,lcdcon-backlight;
				atmel,dmacon = <0x1>;
				atmel,lcdcon2 = <0x80008002>;
				atmel,guard-time = <9>;
				atmel,lcd-wiring-mode = "RGB";

				display-timings {
					native-mode = <&timing0>;
					timing0: timing0 {
						clock-frequency = <9000000>;
						hactive = <480>;
						vactive = <272>;
						hback-porch = <1>;
						hfront-porch = <1>;
						vback-porch = <40>;
						vfront-porch = <1>;
						hsync-len = <45>;
						vsync-len = <1>;
					};
				};
			};
		};

207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226
		nand0: nand@40000000 {
			nand-bus-width = <8>;
			nand-ecc-mode = "soft";
			nand-on-flash-bbt;
			status = "okay";

			boot@0 {
				label = "bootstrap/uboot/kernel";
				reg = <0x0 0x400000>;
			};

			rootfs@400000 {
				label = "rootfs";
				reg = <0x400000 0x3C00000>;
			};

			data@4000000 {
				label = "data";
				reg = <0x4000000 0xC000000>;
			};
227
		};
228

229 230 231
		usb0: ohci@00700000 {
			status = "okay";
			num-ports = <2>;
232 233
			atmel,vbus-gpio = <&pioD 1 GPIO_ACTIVE_LOW
					   &pioD 3 GPIO_ACTIVE_LOW>;
234
		};
235 236 237 238

		usb1: ehci@00800000 {
			status = "okay";
		};
239
	};
240 241 242 243 244 245

	leds {
		compatible = "gpio-leds";

		d8 {
			label = "d8";
246
			gpios = <&pioD 30 GPIO_ACTIVE_HIGH>;
247 248
			linux,default-trigger = "heartbeat";
		};
249 250 251 252
	};

	pwmleds {
		compatible = "pwm-leds";
253 254 255

		d6 {
			label = "d6";
256
			pwms = <&pwm0 3 5000 PWM_POLARITY_INVERTED>;
257
			max-brightness = <255>;
258 259 260 261 262
			linux,default-trigger = "nand-disk";
		};

		d7 {
			label = "d7";
263
			pwms = <&pwm0 1 5000 PWM_POLARITY_INVERTED>;
264
			max-brightness = <255>;
265 266 267
			linux,default-trigger = "mmc0";
		};
	};
268 269 270 271 272 273

	gpio_keys {
		compatible = "gpio-keys";

		left_click {
			label = "left_click";
274
			gpios = <&pioB 6 GPIO_ACTIVE_LOW>;
275 276 277 278 279 280
			linux,code = <272>;
			gpio-key,wakeup;
		};

		right_click {
			label = "right_click";
281
			gpios = <&pioB 7 GPIO_ACTIVE_LOW>;
282 283 284 285 286 287
			linux,code = <273>;
			gpio-key,wakeup;
		};

		left {
			label = "Joystick Left";
288
			gpios = <&pioB 14 GPIO_ACTIVE_LOW>;
289 290 291 292 293
			linux,code = <105>;
		};

		right {
			label = "Joystick Right";
294
			gpios = <&pioB 15 GPIO_ACTIVE_LOW>;
295 296 297 298 299
			linux,code = <106>;
		};

		up {
			label = "Joystick Up";
300
			gpios = <&pioB 16 GPIO_ACTIVE_LOW>;
301 302 303 304 305
			linux,code = <103>;
		};

		down {
			label = "Joystick Down";
306
			gpios = <&pioB 17 GPIO_ACTIVE_LOW>;
307 308 309 310 311
			linux,code = <108>;
		};

		enter {
			label = "Joystick Press";
312
			gpios = <&pioB 18 GPIO_ACTIVE_LOW>;
313 314 315
			linux,code = <28>;
		};
	};
316
};