2 * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
3 * Copyright (C) 2013-2014 Aaro Koskinen <aaro.koskinen@iki.fi>
5 * This program is free software; you can redistribute it and/or modify
6 * it under the terms of the GNU General Public License version 2 (or later) as
7 * published by the Free Software Foundation.
12 #include "omap34xx.dtsi"
13 #include <dt-bindings/input/input.h>
16 * Default secure signed bootloader (Nokia X-Loader) does not enable L3 firewall
17 * for omap AES HW crypto support. When linux kernel try to access memory of AES
18 * blocks then kernel receive "Unhandled fault: external abort on non-linefetch"
19 * and crash. Until somebody fix omap-aes.c and omap_hwmod_3xxx_data.c code (no
20 * crash anymore) omap AES support will be disabled for all Nokia N900 devices.
21 * There is "unofficial" version of bootloader which enables AES in L3 firewall
22 * but it is not widely used and to prevent kernel crash rather AES is disabled.
23 * There is also no runtime detection code if AES is disabled in L3 firewall...
31 compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3";
49 compatible = "gpio-leds";
51 label = "debug::sleep";
52 gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; /* 162 */
53 linux,default-trigger = "default-on";
54 pinctrl-names = "default";
55 pinctrl-0 = <&debug_leds>;
60 device_type = "memory";
61 reg = <0x80000000 0x10000000>; /* 256 MB */
65 compatible = "gpio-keys";
68 label = "Camera Lens Cover";
69 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */
70 linux,input-type = <EV_SW>;
71 linux,code = <SW_CAMERA_LENS_COVER>;
76 label = "Camera Focus";
77 gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */
78 linux,code = <KEY_CAMERA_FOCUS>;
83 label = "Camera Capture";
84 gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */
85 linux,code = <KEY_CAMERA>;
90 label = "Lock Button";
91 gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */
92 linux,code = <KEY_SCREENLOCK>;
97 label = "Keypad Slide";
98 gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */
99 linux,input-type = <EV_SW>;
100 linux,code = <SW_KEYPAD_SLIDE>;
105 label = "Proximity Sensor";
106 gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */
107 linux,input-type = <EV_SW>;
108 linux,code = <SW_FRONT_PROXIMITY>;
114 compatible = "nxp,isp1707";
115 nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
116 usb-phy = <&usb2_phy>;
120 compatible = "composite-video-connector";
124 tv_connector_in: endpoint {
125 remote-endpoint = <&venc_out>;
131 compatible = "nokia,n900-audio";
133 nokia,cpu-dai = <&mcbsp2>;
134 nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
135 nokia,headphone-amplifier = <&tpa6130a2>;
137 tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
138 jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
139 eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
140 speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
143 battery: n900-battery {
144 compatible = "nokia,n900-battery";
145 io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
146 io-channel-names = "temp", "bsi", "vbat";
150 compatible = "ti,omap-dmtimer-pwm";
152 ti,timers = <&timer9>;
153 ti,clock-source = <0x00>; /* timer_sys_ck */
157 compatible = "nokia,n900-ir";
158 pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
161 /* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
163 compatible = "fixed-clock";
165 clock-frequency = <38400000>;
170 vdds_csib-supply = <&vaux2>;
172 pinctrl-names = "default";
173 pinctrl-0 = <&camera_pins>;
180 remote-endpoint = <&csi_cam1>;
181 bus-type = <3>; /* CCP2 */
184 lane-polarity = <0 0>;
185 /* Select strobe = <1> for back camera, <0> for front camera */
193 pinctrl-names = "default";
195 uart2_pins: pinmux_uart2_pins {
196 pinctrl-single,pins = <
197 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts */
198 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts */
199 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
200 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */
204 uart3_pins: pinmux_uart3_pins {
205 pinctrl-single,pins = <
206 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx */
207 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx */
211 ethernet_pins: pinmux_ethernet_pins {
212 pinctrl-single,pins = <
213 OMAP3_CORE1_IOPAD(0x20b4, PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpmc_ncs3.gpio_54 */
214 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE4) /* dss_data16.gpio_86 */
215 OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4) /* uart3_rts_sd.gpio_164 */
219 gpmc_pins: pinmux_gpmc_pins {
220 pinctrl-single,pins = <
223 OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0) /* gpmc_a1.gpmc_a1 */
224 OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0) /* gpmc_a2.gpmc_a2 */
225 OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0) /* gpmc_a3.gpmc_a3 */
227 /* data lines, gpmc_d0..d7 not muxable according to TRM */
228 OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0) /* gpmc_d8.gpmc_d8 */
229 OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0) /* gpmc_d9.gpmc_d9 */
230 OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0) /* gpmc_d10.gpmc_d10 */
231 OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0) /* gpmc_d11.gpmc_d11 */
232 OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0) /* gpmc_d12.gpmc_d12 */
233 OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0) /* gpmc_d13.gpmc_d13 */
234 OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0) /* gpmc_d14.gpmc_d14 */
235 OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0) /* gpmc_d15.gpmc_d15 */
238 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
239 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
241 OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs1.gpmc_ncs1 */
242 OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0) /* gpmc_clk.gpmc_clk */
246 i2c1_pins: pinmux_i2c1_pins {
247 pinctrl-single,pins = <
248 OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl */
249 OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda */
253 i2c2_pins: pinmux_i2c2_pins {
254 pinctrl-single,pins = <
255 OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
256 OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
260 i2c3_pins: pinmux_i2c3_pins {
261 pinctrl-single,pins = <
262 OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0) /* i2c3_scl */
263 OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0) /* i2c3_sda */
267 debug_leds: pinmux_debug_led_pins {
268 pinctrl-single,pins = <
269 OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4) /* mcbsp1_clkx.gpio_162 */
273 mcspi4_pins: pinmux_mcspi4_pins {
274 pinctrl-single,pins = <
275 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
276 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
277 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
278 OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
282 mmc1_pins: pinmux_mmc1_pins {
283 pinctrl-single,pins = <
284 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */
285 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */
286 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */
287 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */
288 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */
289 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */
293 mmc2_pins: pinmux_mmc2_pins {
294 pinctrl-single,pins = <
295 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */
296 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */
297 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */
298 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */
299 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */
300 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */
301 OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */
302 OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */
303 OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */
304 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */
308 acx565akm_pins: pinmux_acx565akm_pins {
309 pinctrl-single,pins = <
310 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */
314 dss_sdi_pins: pinmux_dss_sdi_pins {
315 pinctrl-single,pins = <
316 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE1) /* dss_data10.sdi_dat1n */
317 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE1) /* dss_data11.sdi_dat1p */
318 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE1) /* dss_data12.sdi_dat2n */
319 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE1) /* dss_data13.sdi_dat2p */
321 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE1) /* dss_data22.sdi_clkp */
322 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE1) /* dss_data23.sdi_clkn */
326 wl1251_pins: pinmux_wl1251 {
327 pinctrl-single,pins = <
328 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 => wl1251 enable */
329 OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4) /* gpio 42 => wl1251 irq */
333 ssi_pins: pinmux_ssi {
334 pinctrl-single,pins = <
335 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */
336 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */
337 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4) /* ssi1_wake_tx (cawake) */
338 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */
339 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */
340 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */
341 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */
342 OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */
346 modem_pins: pinmux_modem {
347 pinctrl-single,pins = <
348 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE4) /* gpio 70 => cmt_apeslpx */
349 OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | MUX_MODE4) /* gpio 72 => ape_rst_rq */
350 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4) /* gpio 73 => cmt_rst_rq */
351 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4) /* gpio 74 => cmt_en */
352 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE4) /* gpio 75 => cmt_rst */
353 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* gpio 157 => cmt_bsi */
357 camera_pins: pinmux_camera {
358 pinctrl-single,pins = <
359 OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7) /* cam_hs */
360 OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7) /* cam_vs */
361 OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0) /* cam_xclka */
362 OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7) /* cam_d4 */
363 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0) /* cam_d6 */
364 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0) /* cam_d7 */
365 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0) /* cam_d8 */
366 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0) /* cam_d9 */
367 OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7) /* cam_d10 */
368 OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7) /* cam_xclkb */
369 OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0) /* cam_strobe */
375 pinctrl-names = "default";
376 pinctrl-0 = <&i2c1_pins>;
378 clock-frequency = <2200000>;
382 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
383 interrupt-parent = <&intc>;
387 #include "twl4030.dtsi"
388 #include "twl4030_omap3.dtsi"
391 regulator-name = "V28";
392 regulator-min-microvolt = <2800000>;
393 regulator-max-microvolt = <2800000>;
394 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
395 regulator-always-on; /* due to battery cover sensor */
399 regulator-name = "VCSI";
400 regulator-min-microvolt = <1800000>;
401 regulator-max-microvolt = <1800000>;
402 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
406 regulator-name = "VMMC2_30";
407 regulator-min-microvolt = <2800000>;
408 regulator-max-microvolt = <3000000>;
409 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
413 regulator-name = "VCAM_ANA_28";
414 regulator-min-microvolt = <2800000>;
415 regulator-max-microvolt = <2800000>;
416 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
420 regulator-name = "VMMC1";
421 regulator-min-microvolt = <1850000>;
422 regulator-max-microvolt = <3150000>;
423 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
427 regulator-name = "V28_A";
428 regulator-min-microvolt = <2800000>;
429 regulator-max-microvolt = <3000000>;
430 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
431 regulator-always-on; /* due VIO leak to AIC34 VDDs */
435 regulator-name = "VPLL";
436 regulator-min-microvolt = <1800000>;
437 regulator-max-microvolt = <1800000>;
438 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
443 regulator-name = "VSDI_CSI";
444 regulator-min-microvolt = <1800000>;
445 regulator-max-microvolt = <1800000>;
446 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
451 regulator-name = "VMMC2_IO_18";
452 regulator-min-microvolt = <1800000>;
453 regulator-max-microvolt = <1800000>;
454 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
458 regulator-name = "VIO";
459 regulator-min-microvolt = <1800000>;
460 regulator-max-microvolt = <1800000>;
464 regulator-name = "VINTANA1";
465 /* fixed to 1500000 */
470 regulator-name = "VINTANA2";
471 regulator-min-microvolt = <2750000>;
472 regulator-max-microvolt = <2750000>;
477 regulator-name = "VINTDIG";
478 /* fixed to 1500000 */
484 compatible = "ti,twl4030-audio";
485 ti,enable-vibra = <1>;
489 compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
495 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
496 MATRIX_KEY(0x00, 0x01, KEY_O)
497 MATRIX_KEY(0x00, 0x02, KEY_P)
498 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
499 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
500 MATRIX_KEY(0x00, 0x06, KEY_A)
501 MATRIX_KEY(0x00, 0x07, KEY_S)
503 MATRIX_KEY(0x01, 0x00, KEY_W)
504 MATRIX_KEY(0x01, 0x01, KEY_D)
505 MATRIX_KEY(0x01, 0x02, KEY_F)
506 MATRIX_KEY(0x01, 0x03, KEY_G)
507 MATRIX_KEY(0x01, 0x04, KEY_H)
508 MATRIX_KEY(0x01, 0x05, KEY_J)
509 MATRIX_KEY(0x01, 0x06, KEY_K)
510 MATRIX_KEY(0x01, 0x07, KEY_L)
512 MATRIX_KEY(0x02, 0x00, KEY_E)
513 MATRIX_KEY(0x02, 0x01, KEY_DOT)
514 MATRIX_KEY(0x02, 0x02, KEY_UP)
515 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
516 MATRIX_KEY(0x02, 0x05, KEY_Z)
517 MATRIX_KEY(0x02, 0x06, KEY_X)
518 MATRIX_KEY(0x02, 0x07, KEY_C)
519 MATRIX_KEY(0x02, 0x08, KEY_F9)
521 MATRIX_KEY(0x03, 0x00, KEY_R)
522 MATRIX_KEY(0x03, 0x01, KEY_V)
523 MATRIX_KEY(0x03, 0x02, KEY_B)
524 MATRIX_KEY(0x03, 0x03, KEY_N)
525 MATRIX_KEY(0x03, 0x04, KEY_M)
526 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
527 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
528 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
530 MATRIX_KEY(0x04, 0x00, KEY_T)
531 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
532 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
533 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
534 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
535 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
536 MATRIX_KEY(0x04, 0x08, KEY_F10)
538 MATRIX_KEY(0x05, 0x00, KEY_Y)
539 MATRIX_KEY(0x05, 0x08, KEY_F11)
541 MATRIX_KEY(0x06, 0x00, KEY_U)
543 MATRIX_KEY(0x07, 0x00, KEY_I)
544 MATRIX_KEY(0x07, 0x01, KEY_F7)
545 MATRIX_KEY(0x07, 0x02, KEY_F8)
551 ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
555 pinctrl-names = "default";
556 pinctrl-0 = <&i2c2_pins>;
558 clock-frequency = <100000>;
560 tlv320aic3x: tlv320aic3x@18 {
561 compatible = "ti,tlv320aic3x";
563 reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
565 0 /* AIC3X_GPIO1_FUNC_DISABLED */
566 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
569 AVDD-supply = <&vmmc2>;
570 DRVDD-supply = <&vmmc2>;
571 IOVDD-supply = <&vio>;
572 DVDD-supply = <&vio>;
574 ai3x-micbias-vg = <1>;
577 tlv320aic3x_aux: tlv320aic3x@19 {
578 compatible = "ti,tlv320aic3x";
580 reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
582 AVDD-supply = <&vmmc2>;
583 DRVDD-supply = <&vmmc2>;
584 IOVDD-supply = <&vio>;
585 DVDD-supply = <&vio>;
587 ai3x-micbias-vg = <2>;
590 tsl2563: tsl2563@29 {
591 compatible = "amstaos,tsl2563";
594 amstaos,cover-comp-gain = <16>;
597 adp1653: led-controller@30 {
598 compatible = "adi,adp1653";
600 enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
603 flash-timeout-us = <500000>;
604 flash-max-microamp = <320000>;
605 led-max-microamp = <50000>;
608 led-max-microamp = <17500>;
613 compatible = "national,lp5523";
615 clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
616 enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
619 chan-name = "lp5523:kb1";
620 led-cur = /bits/ 8 <50>;
621 max-cur = /bits/ 8 <100>;
625 chan-name = "lp5523:kb2";
626 led-cur = /bits/ 8 <50>;
627 max-cur = /bits/ 8 <100>;
631 chan-name = "lp5523:kb3";
632 led-cur = /bits/ 8 <50>;
633 max-cur = /bits/ 8 <100>;
637 chan-name = "lp5523:kb4";
638 led-cur = /bits/ 8 <50>;
639 max-cur = /bits/ 8 <100>;
643 chan-name = "lp5523:b";
644 led-cur = /bits/ 8 <50>;
645 max-cur = /bits/ 8 <100>;
649 chan-name = "lp5523:g";
650 led-cur = /bits/ 8 <50>;
651 max-cur = /bits/ 8 <100>;
655 chan-name = "lp5523:r";
656 led-cur = /bits/ 8 <50>;
657 max-cur = /bits/ 8 <100>;
661 chan-name = "lp5523:kb5";
662 led-cur = /bits/ 8 <50>;
663 max-cur = /bits/ 8 <100>;
667 chan-name = "lp5523:kb6";
668 led-cur = /bits/ 8 <50>;
669 max-cur = /bits/ 8 <100>;
673 bq27200: bq27200@55 {
674 compatible = "ti,bq27200";
678 /* Stereo headphone amplifier */
679 tpa6130a2: tpa6130a2@60 {
680 compatible = "ti,tpa6130a2";
683 Vdd-supply = <&vmmc2>;
685 power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
689 compatible = "silabs,si4713";
692 interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
693 reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
695 vdd-supply = <&vaux1>;
698 bq24150a: bq24150a@6b {
699 compatible = "ti,bq24150a";
702 ti,current-limit = <100>;
703 ti,weak-battery-voltage = <3400>;
704 ti,battery-regulation-voltage = <4200>;
705 ti,charge-current = <650>;
706 ti,termination-current = <100>;
707 ti,resistor-sense = <68>;
709 ti,usb-charger-detection = <&isp1707>;
714 pinctrl-names = "default";
715 pinctrl-0 = <&i2c3_pins>;
717 clock-frequency = <400000>;
719 lis302dl: lis3lv02d@1d {
720 compatible = "st,lis3lv02d";
723 Vdd-supply = <&vaux1>;
724 Vdd_IO-supply = <&vio>;
726 interrupt-parent = <&gpio6>;
727 interrupts = <21 20>; /* 181 and 180 */
734 /* Limits are 0.5g * value */
735 st,click-threshold-x = <8>;
736 st,click-threshold-y = <8>;
737 st,click-threshold-z = <10>;
739 /* Click must be longer than time limit */
740 st,click-time-limit = <9>;
742 /* Kind of debounce filter */
743 st,click-latency = <50>;
745 /* Interrupt line 2 for click detection */
750 st,wakeup-threshold = <(800/18)>; /* millig-value / 18 to get HW values */
753 st,wakeup2-threshold = <(900/18)>; /* millig-value / 18 to get HW values */
758 st,axis-x = <1>; /* LIS3_DEV_X */
759 st,axis-y = <(-2)>; /* LIS3_INV_DEV_Y */
760 st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
762 st,min-limit-x = <(-32)>;
763 st,min-limit-y = <3>;
764 st,min-limit-z = <3>;
766 st,max-limit-x = <(-3)>;
767 st,max-limit-y = <32>;
768 st,max-limit-z = <32>;
772 compatible = "toshiba,et8ek8";
775 vana-supply = <&vaux4>;
778 clock-names = "extclk";
779 clock-frequency = <9600000>;
781 reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
783 lens-focus = <&ad5820>;
787 bus-type = <3>; /* CCP2 */
792 remote-endpoint = <&csi_isp>;
797 /* D/A converter for auto-focus */
799 compatible = "adi,ad5820";
802 VANA-supply = <&vaux4>;
804 #io-channel-cells = <0>;
809 pinctrl-names = "default";
810 pinctrl-0 = <&mmc1_pins>;
811 vmmc-supply = <&vmmc1>;
813 /* For debugging, it is often good idea to remove this GPIO.
814 It means you can remove back cover (to reboot by removing
815 battery) and still use the MMC card. */
816 cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
819 /* most boards use vaux3, only some old versions use vmmc2 instead */
821 pinctrl-names = "default";
822 pinctrl-0 = <&mmc2_pins>;
823 vmmc-supply = <&vaux3>;
824 vqmmc-supply = <&vsim>;
836 ranges = <0 0 0x01000000 0x01000000>, /* 16 MB for OneNAND */
837 <1 0 0x02000000 0x01000000>; /* 16 MB for smc91c96 */
838 pinctrl-names = "default";
839 pinctrl-0 = <&gpmc_pins>;
841 /* sys_ndmareq1 could be used by the driver, not as gpio65 though */
843 #address-cells = <1>;
845 compatible = "ti,omap2-onenand";
846 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
850 gpmc,burst-length = <16>;
854 gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
855 gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
857 gpmc,cs-rd-off-ns = <87>;
858 gpmc,cs-wr-off-ns = <87>;
859 gpmc,adv-on-ns = <0>;
860 gpmc,adv-rd-off-ns = <10>;
861 gpmc,adv-wr-off-ns = <10>;
862 gpmc,oe-on-ns = <15>;
863 gpmc,oe-off-ns = <87>;
865 gpmc,we-off-ns = <87>;
866 gpmc,rd-cycle-ns = <112>;
867 gpmc,wr-cycle-ns = <112>;
868 gpmc,access-ns = <81>;
869 gpmc,page-burst-access-ns = <15>;
870 gpmc,bus-turnaround-ns = <0>;
871 gpmc,cycle2cycle-delay-ns = <0>;
872 gpmc,wait-monitoring-ns = <0>;
873 gpmc,clk-activation-ns = <5>;
874 gpmc,wr-data-mux-bus-ns = <30>;
875 gpmc,wr-access-ns = <81>;
876 gpmc,sync-clk-ps = <15000>;
879 * MTD partition table corresponding to Nokia's
880 * Maemo 5 (Fremantle) release.
883 label = "bootloader";
884 reg = <0x00000000 0x00020000>;
889 reg = <0x00020000 0x00060000>;
893 reg = <0x00080000 0x00040000>;
897 reg = <0x000c0000 0x00200000>;
901 reg = <0x002c0000 0x00200000>;
905 reg = <0x004c0000 0x0fb40000>;
909 /* Ethernet is on some early development boards and qemu */
911 compatible = "smsc,lan91c94";
912 interrupt-parent = <&gpio2>;
913 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
914 reg = <1 0 0xf>; /* 16 byte IO range */
916 pinctrl-names = "default";
917 pinctrl-0 = <ðernet_pins>;
918 power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; /* gpio86 */
919 reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* gpio164 */
920 gpmc,device-width = <2>;
921 gpmc,sync-clk-ps = <0>;
923 gpmc,cs-rd-off-ns = <48>;
924 gpmc,cs-wr-off-ns = <24>;
925 gpmc,adv-on-ns = <0>;
926 gpmc,adv-rd-off-ns = <0>;
927 gpmc,adv-wr-off-ns = <0>;
928 gpmc,we-on-ns = <12>;
929 gpmc,we-off-ns = <18>;
930 gpmc,oe-on-ns = <12>;
931 gpmc,oe-off-ns = <48>;
932 gpmc,page-burst-access-ns = <0>;
933 gpmc,access-ns = <42>;
934 gpmc,rd-cycle-ns = <180>;
935 gpmc,wr-cycle-ns = <180>;
936 gpmc,bus-turnaround-ns = <0>;
937 gpmc,cycle2cycle-delay-ns = <0>;
938 gpmc,wait-monitoring-ns = <0>;
939 gpmc,clk-activation-ns = <0>;
940 gpmc,wr-access-ns = <0>;
941 gpmc,wr-data-mux-bus-ns = <12>;
947 * For some reason, touchscreen is necessary for screen to work at
948 * all on real hw. It works well without it on emulator.
950 * Also... order in the device tree actually matters here.
953 compatible = "ti,tsc2005";
954 spi-max-frequency = <6000000>;
959 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
960 interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
962 touchscreen-fuzz-x = <4>;
963 touchscreen-fuzz-y = <7>;
964 touchscreen-fuzz-pressure = <2>;
965 touchscreen-size-x = <4096>;
966 touchscreen-size-y = <4096>;
967 touchscreen-max-pressure = <2048>;
969 ti,x-plate-ohms = <280>;
970 ti,esd-recovery-timeout-ms = <8000>;
974 compatible = "sony,acx565akm";
975 spi-max-frequency = <6000000>;
978 pinctrl-names = "default";
979 pinctrl-0 = <&acx565akm_pins>;
982 reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
986 remote-endpoint = <&sdi_out>;
993 pinctrl-names = "default";
994 pinctrl-0 = <&mcspi4_pins>;
997 pinctrl-names = "default";
998 pinctrl-0 = <&wl1251_pins>;
1000 vio-supply = <&vio>;
1002 compatible = "ti,wl1251";
1004 spi-max-frequency = <48000000>;
1009 ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
1011 interrupt-parent = <&gpio2>;
1012 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
1019 interface-type = <0>;
1020 usb-phy = <&usb2_phy>;
1022 phy-names = "usb2-phy";
1028 status = "disabled";
1032 pinctrl-names = "default";
1033 pinctrl-0 = <&uart2_pins>;
1035 bcm2048: bluetooth {
1036 compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
1037 reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
1038 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
1039 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
1041 clock-names = "sysclk";
1046 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
1047 pinctrl-names = "default";
1048 pinctrl-0 = <&uart3_pins>;
1054 pinctrl-names = "default";
1055 pinctrl-0 = <&dss_sdi_pins>;
1057 vdds_sdi-supply = <&vaux1>;
1060 #address-cells = <1>;
1067 remote-endpoint = <&lcd_in>;
1077 vdda-supply = <&vdac>;
1080 venc_out: endpoint {
1081 remote-endpoint = <&tv_connector_in>;
1092 pinctrl-names = "default";
1093 pinctrl-0 = <&ssi_pins>;
1095 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
1098 compatible = "nokia,n900-modem";
1100 pinctrl-names = "default";
1101 pinctrl-0 = <&modem_pins>;
1103 hsi-channel-ids = <0>, <1>, <2>, <3>;
1104 hsi-channel-names = "mcsaab-control",
1108 hsi-speed-kbps = <55000>;
1110 hsi-flow = "synchronized";
1111 hsi-arb-mode = "round-robin";
1113 interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
1115 gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>, /* 70 */
1116 <&gpio3 9 GPIO_ACTIVE_HIGH>, /* 73 */
1117 <&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
1118 <&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
1119 <&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
1120 gpio-names = "cmt_apeslpx",
1129 status = "disabled";