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 */
162 compatible = "nokia,n900-rom-rng";
167 /* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
169 compatible = "fixed-clock";
171 clock-frequency = <38400000>;
176 vdds_csib-supply = <&vaux2>;
178 pinctrl-names = "default";
179 pinctrl-0 = <&camera_pins>;
186 remote-endpoint = <&csi_cam1>;
187 bus-type = <3>; /* CCP2 */
190 lane-polarity = <0 0>;
191 /* Select strobe = <1> for back camera, <0> for front camera */
199 pinctrl-names = "default";
201 uart2_pins: pinmux_uart2_pins {
202 pinctrl-single,pins = <
203 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts */
204 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts */
205 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
206 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */
210 uart3_pins: pinmux_uart3_pins {
211 pinctrl-single,pins = <
212 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx */
213 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx */
217 ethernet_pins: pinmux_ethernet_pins {
218 pinctrl-single,pins = <
219 OMAP3_CORE1_IOPAD(0x20b4, PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpmc_ncs3.gpio_54 */
220 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE4) /* dss_data16.gpio_86 */
221 OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4) /* uart3_rts_sd.gpio_164 */
225 gpmc_pins: pinmux_gpmc_pins {
226 pinctrl-single,pins = <
229 OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0) /* gpmc_a1.gpmc_a1 */
230 OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0) /* gpmc_a2.gpmc_a2 */
231 OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0) /* gpmc_a3.gpmc_a3 */
233 /* data lines, gpmc_d0..d7 not muxable according to TRM */
234 OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0) /* gpmc_d8.gpmc_d8 */
235 OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0) /* gpmc_d9.gpmc_d9 */
236 OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0) /* gpmc_d10.gpmc_d10 */
237 OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0) /* gpmc_d11.gpmc_d11 */
238 OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0) /* gpmc_d12.gpmc_d12 */
239 OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0) /* gpmc_d13.gpmc_d13 */
240 OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0) /* gpmc_d14.gpmc_d14 */
241 OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0) /* gpmc_d15.gpmc_d15 */
244 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
245 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
247 OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs1.gpmc_ncs1 */
248 OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0) /* gpmc_clk.gpmc_clk */
252 i2c1_pins: pinmux_i2c1_pins {
253 pinctrl-single,pins = <
254 OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl */
255 OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda */
259 i2c2_pins: pinmux_i2c2_pins {
260 pinctrl-single,pins = <
261 OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
262 OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
266 i2c3_pins: pinmux_i2c3_pins {
267 pinctrl-single,pins = <
268 OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0) /* i2c3_scl */
269 OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0) /* i2c3_sda */
273 debug_leds: pinmux_debug_led_pins {
274 pinctrl-single,pins = <
275 OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4) /* mcbsp1_clkx.gpio_162 */
279 mcspi4_pins: pinmux_mcspi4_pins {
280 pinctrl-single,pins = <
281 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
282 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
283 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
284 OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
288 mmc1_pins: pinmux_mmc1_pins {
289 pinctrl-single,pins = <
290 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */
291 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */
292 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */
293 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */
294 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */
295 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */
299 mmc2_pins: pinmux_mmc2_pins {
300 pinctrl-single,pins = <
301 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */
302 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */
303 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */
304 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */
305 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */
306 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */
307 OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */
308 OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */
309 OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */
310 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */
314 acx565akm_pins: pinmux_acx565akm_pins {
315 pinctrl-single,pins = <
316 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */
320 dss_sdi_pins: pinmux_dss_sdi_pins {
321 pinctrl-single,pins = <
322 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE1) /* dss_data10.sdi_dat1n */
323 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE1) /* dss_data11.sdi_dat1p */
324 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE1) /* dss_data12.sdi_dat2n */
325 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE1) /* dss_data13.sdi_dat2p */
327 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE1) /* dss_data22.sdi_clkp */
328 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE1) /* dss_data23.sdi_clkn */
332 wl1251_pins: pinmux_wl1251 {
333 pinctrl-single,pins = <
334 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 => wl1251 enable */
335 OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4) /* gpio 42 => wl1251 irq */
339 ssi_pins: pinmux_ssi {
340 pinctrl-single,pins = <
341 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */
342 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */
343 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4) /* ssi1_wake_tx (cawake) */
344 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */
345 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */
346 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */
347 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */
348 OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */
352 modem_pins: pinmux_modem {
353 pinctrl-single,pins = <
354 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE4) /* gpio 70 => cmt_apeslpx */
355 OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | MUX_MODE4) /* gpio 72 => ape_rst_rq */
356 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4) /* gpio 73 => cmt_rst_rq */
357 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4) /* gpio 74 => cmt_en */
358 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE4) /* gpio 75 => cmt_rst */
359 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* gpio 157 => cmt_bsi */
363 camera_pins: pinmux_camera {
364 pinctrl-single,pins = <
365 OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7) /* cam_hs */
366 OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7) /* cam_vs */
367 OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0) /* cam_xclka */
368 OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7) /* cam_d4 */
369 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0) /* cam_d6 */
370 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0) /* cam_d7 */
371 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0) /* cam_d8 */
372 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0) /* cam_d9 */
373 OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7) /* cam_d10 */
374 OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7) /* cam_xclkb */
375 OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0) /* cam_strobe */
381 pinctrl-names = "default";
382 pinctrl-0 = <&i2c1_pins>;
384 clock-frequency = <2200000>;
388 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
389 interrupt-parent = <&intc>;
393 #include "twl4030.dtsi"
394 #include "twl4030_omap3.dtsi"
397 regulator-name = "V28";
398 regulator-min-microvolt = <2800000>;
399 regulator-max-microvolt = <2800000>;
400 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
401 regulator-always-on; /* due to battery cover sensor */
405 regulator-name = "VCSI";
406 regulator-min-microvolt = <1800000>;
407 regulator-max-microvolt = <1800000>;
408 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
412 regulator-name = "VMMC2_30";
413 regulator-min-microvolt = <2800000>;
414 regulator-max-microvolt = <3000000>;
415 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
419 regulator-name = "VCAM_ANA_28";
420 regulator-min-microvolt = <2800000>;
421 regulator-max-microvolt = <2800000>;
422 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
426 regulator-name = "VMMC1";
427 regulator-min-microvolt = <1850000>;
428 regulator-max-microvolt = <3150000>;
429 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
433 regulator-name = "V28_A";
434 regulator-min-microvolt = <2800000>;
435 regulator-max-microvolt = <3000000>;
436 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
437 regulator-always-on; /* due VIO leak to AIC34 VDDs */
441 regulator-name = "VPLL";
442 regulator-min-microvolt = <1800000>;
443 regulator-max-microvolt = <1800000>;
444 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
449 regulator-name = "VSDI_CSI";
450 regulator-min-microvolt = <1800000>;
451 regulator-max-microvolt = <1800000>;
452 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
457 regulator-name = "VMMC2_IO_18";
458 regulator-min-microvolt = <1800000>;
459 regulator-max-microvolt = <1800000>;
460 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
464 regulator-name = "VIO";
465 regulator-min-microvolt = <1800000>;
466 regulator-max-microvolt = <1800000>;
470 regulator-name = "VINTANA1";
471 /* fixed to 1500000 */
476 regulator-name = "VINTANA2";
477 regulator-min-microvolt = <2750000>;
478 regulator-max-microvolt = <2750000>;
483 regulator-name = "VINTDIG";
484 /* fixed to 1500000 */
490 compatible = "ti,twl4030-audio";
491 ti,enable-vibra = <1>;
495 compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
501 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
502 MATRIX_KEY(0x00, 0x01, KEY_O)
503 MATRIX_KEY(0x00, 0x02, KEY_P)
504 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
505 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
506 MATRIX_KEY(0x00, 0x06, KEY_A)
507 MATRIX_KEY(0x00, 0x07, KEY_S)
509 MATRIX_KEY(0x01, 0x00, KEY_W)
510 MATRIX_KEY(0x01, 0x01, KEY_D)
511 MATRIX_KEY(0x01, 0x02, KEY_F)
512 MATRIX_KEY(0x01, 0x03, KEY_G)
513 MATRIX_KEY(0x01, 0x04, KEY_H)
514 MATRIX_KEY(0x01, 0x05, KEY_J)
515 MATRIX_KEY(0x01, 0x06, KEY_K)
516 MATRIX_KEY(0x01, 0x07, KEY_L)
518 MATRIX_KEY(0x02, 0x00, KEY_E)
519 MATRIX_KEY(0x02, 0x01, KEY_DOT)
520 MATRIX_KEY(0x02, 0x02, KEY_UP)
521 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
522 MATRIX_KEY(0x02, 0x05, KEY_Z)
523 MATRIX_KEY(0x02, 0x06, KEY_X)
524 MATRIX_KEY(0x02, 0x07, KEY_C)
525 MATRIX_KEY(0x02, 0x08, KEY_F9)
527 MATRIX_KEY(0x03, 0x00, KEY_R)
528 MATRIX_KEY(0x03, 0x01, KEY_V)
529 MATRIX_KEY(0x03, 0x02, KEY_B)
530 MATRIX_KEY(0x03, 0x03, KEY_N)
531 MATRIX_KEY(0x03, 0x04, KEY_M)
532 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
533 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
534 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
536 MATRIX_KEY(0x04, 0x00, KEY_T)
537 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
538 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
539 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
540 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
541 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
542 MATRIX_KEY(0x04, 0x08, KEY_F10)
544 MATRIX_KEY(0x05, 0x00, KEY_Y)
545 MATRIX_KEY(0x05, 0x08, KEY_F11)
547 MATRIX_KEY(0x06, 0x00, KEY_U)
549 MATRIX_KEY(0x07, 0x00, KEY_I)
550 MATRIX_KEY(0x07, 0x01, KEY_F7)
551 MATRIX_KEY(0x07, 0x02, KEY_F8)
557 ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
561 pinctrl-names = "default";
562 pinctrl-0 = <&i2c2_pins>;
564 clock-frequency = <100000>;
566 tlv320aic3x: tlv320aic3x@18 {
567 compatible = "ti,tlv320aic3x";
569 reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
571 0 /* AIC3X_GPIO1_FUNC_DISABLED */
572 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
575 AVDD-supply = <&vmmc2>;
576 DRVDD-supply = <&vmmc2>;
577 IOVDD-supply = <&vio>;
578 DVDD-supply = <&vio>;
580 ai3x-micbias-vg = <1>;
583 tlv320aic3x_aux: tlv320aic3x@19 {
584 compatible = "ti,tlv320aic3x";
586 reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
588 AVDD-supply = <&vmmc2>;
589 DRVDD-supply = <&vmmc2>;
590 IOVDD-supply = <&vio>;
591 DVDD-supply = <&vio>;
593 ai3x-micbias-vg = <2>;
596 tsl2563: tsl2563@29 {
597 compatible = "amstaos,tsl2563";
600 amstaos,cover-comp-gain = <16>;
603 adp1653: led-controller@30 {
604 compatible = "adi,adp1653";
606 enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
609 flash-timeout-us = <500000>;
610 flash-max-microamp = <320000>;
611 led-max-microamp = <50000>;
614 led-max-microamp = <17500>;
619 compatible = "national,lp5523";
621 clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
622 enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
625 chan-name = "lp5523:kb1";
626 led-cur = /bits/ 8 <50>;
627 max-cur = /bits/ 8 <100>;
631 chan-name = "lp5523:kb2";
632 led-cur = /bits/ 8 <50>;
633 max-cur = /bits/ 8 <100>;
637 chan-name = "lp5523:kb3";
638 led-cur = /bits/ 8 <50>;
639 max-cur = /bits/ 8 <100>;
643 chan-name = "lp5523:kb4";
644 led-cur = /bits/ 8 <50>;
645 max-cur = /bits/ 8 <100>;
649 chan-name = "lp5523:b";
650 led-cur = /bits/ 8 <50>;
651 max-cur = /bits/ 8 <100>;
655 chan-name = "lp5523:g";
656 led-cur = /bits/ 8 <50>;
657 max-cur = /bits/ 8 <100>;
661 chan-name = "lp5523:r";
662 led-cur = /bits/ 8 <50>;
663 max-cur = /bits/ 8 <100>;
667 chan-name = "lp5523:kb5";
668 led-cur = /bits/ 8 <50>;
669 max-cur = /bits/ 8 <100>;
673 chan-name = "lp5523:kb6";
674 led-cur = /bits/ 8 <50>;
675 max-cur = /bits/ 8 <100>;
679 bq27200: bq27200@55 {
680 compatible = "ti,bq27200";
682 power-supplies = <&bq24150a>;
685 /* Stereo headphone amplifier */
686 tpa6130a2: tpa6130a2@60 {
687 compatible = "ti,tpa6130a2";
690 Vdd-supply = <&vmmc2>;
692 power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
696 compatible = "silabs,si4713";
699 interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
700 reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
702 vdd-supply = <&vaux1>;
705 bq24150a: bq24150a@6b {
706 compatible = "ti,bq24150a";
709 ti,current-limit = <100>;
710 ti,weak-battery-voltage = <3400>;
711 ti,battery-regulation-voltage = <4200>;
712 ti,charge-current = <650>;
713 ti,termination-current = <100>;
714 ti,resistor-sense = <68>;
716 ti,usb-charger-detection = <&isp1707>;
721 pinctrl-names = "default";
722 pinctrl-0 = <&i2c3_pins>;
724 clock-frequency = <400000>;
726 lis302dl: lis3lv02d@1d {
727 compatible = "st,lis3lv02d";
730 Vdd-supply = <&vaux1>;
731 Vdd_IO-supply = <&vio>;
733 interrupt-parent = <&gpio6>;
734 interrupts = <21 20>; /* 181 and 180 */
741 /* Limits are 0.5g * value */
742 st,click-threshold-x = <8>;
743 st,click-threshold-y = <8>;
744 st,click-threshold-z = <10>;
746 /* Click must be longer than time limit */
747 st,click-time-limit = <9>;
749 /* Kind of debounce filter */
750 st,click-latency = <50>;
752 /* Interrupt line 2 for click detection */
757 st,wakeup-threshold = <(800/18)>; /* millig-value / 18 to get HW values */
760 st,wakeup2-threshold = <(900/18)>; /* millig-value / 18 to get HW values */
765 st,axis-x = <1>; /* LIS3_DEV_X */
766 st,axis-y = <(-2)>; /* LIS3_INV_DEV_Y */
767 st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
769 st,min-limit-x = <(-32)>;
770 st,min-limit-y = <3>;
771 st,min-limit-z = <3>;
773 st,max-limit-x = <(-3)>;
774 st,max-limit-y = <32>;
775 st,max-limit-z = <32>;
779 compatible = "toshiba,et8ek8";
782 vana-supply = <&vaux4>;
785 clock-names = "extclk";
786 clock-frequency = <9600000>;
788 reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
790 lens-focus = <&ad5820>;
794 bus-type = <3>; /* CCP2 */
799 remote-endpoint = <&csi_isp>;
804 /* D/A converter for auto-focus */
806 compatible = "adi,ad5820";
809 VANA-supply = <&vaux4>;
811 #io-channel-cells = <0>;
816 pinctrl-names = "default";
817 pinctrl-0 = <&mmc1_pins>;
818 vmmc-supply = <&vmmc1>;
820 /* For debugging, it is often good idea to remove this GPIO.
821 It means you can remove back cover (to reboot by removing
822 battery) and still use the MMC card. */
823 cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
826 /* most boards use vaux3, only some old versions use vmmc2 instead */
828 pinctrl-names = "default";
829 pinctrl-0 = <&mmc2_pins>;
830 vmmc-supply = <&vaux3>;
831 vqmmc-supply = <&vsim>;
843 ranges = <0 0 0x01000000 0x01000000>, /* 16 MB for OneNAND */
844 <1 0 0x02000000 0x01000000>; /* 16 MB for smc91c96 */
845 pinctrl-names = "default";
846 pinctrl-0 = <&gpmc_pins>;
848 /* sys_ndmareq1 could be used by the driver, not as gpio65 though */
850 #address-cells = <1>;
852 compatible = "ti,omap2-onenand";
853 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
856 * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported
857 * bootloader set values when booted with v5.1
858 * (OneNAND Manufacturer: Samsung):
860 * cs0 GPMC_CS_CONFIG1: 0xfb001202
861 * cs0 GPMC_CS_CONFIG2: 0x00111100
862 * cs0 GPMC_CS_CONFIG3: 0x00020200
863 * cs0 GPMC_CS_CONFIG4: 0x11001102
864 * cs0 GPMC_CS_CONFIG5: 0x03101616
865 * cs0 GPMC_CS_CONFIG6: 0x90060000
869 gpmc,burst-length = <16>;
873 gpmc,device-width = <2>;
874 gpmc,mux-add-data = <2>;
876 gpmc,cs-rd-off-ns = <102>;
877 gpmc,cs-wr-off-ns = <102>;
878 gpmc,adv-on-ns = <0>;
879 gpmc,adv-rd-off-ns = <12>;
880 gpmc,adv-wr-off-ns = <12>;
881 gpmc,oe-on-ns = <12>;
882 gpmc,oe-off-ns = <102>;
884 gpmc,we-off-ns = <102>;
885 gpmc,rd-cycle-ns = <132>;
886 gpmc,wr-cycle-ns = <132>;
887 gpmc,access-ns = <96>;
888 gpmc,page-burst-access-ns = <18>;
889 gpmc,bus-turnaround-ns = <0>;
890 gpmc,cycle2cycle-delay-ns = <0>;
891 gpmc,wait-monitoring-ns = <0>;
892 gpmc,clk-activation-ns = <6>;
893 gpmc,wr-data-mux-bus-ns = <36>;
894 gpmc,wr-access-ns = <96>;
895 gpmc,sync-clk-ps = <15000>;
898 * MTD partition table corresponding to Nokia's
899 * Maemo 5 (Fremantle) release.
902 label = "bootloader";
903 reg = <0x00000000 0x00020000>;
908 reg = <0x00020000 0x00060000>;
912 reg = <0x00080000 0x00040000>;
916 reg = <0x000c0000 0x00200000>;
920 reg = <0x002c0000 0x00200000>;
924 reg = <0x004c0000 0x0fb40000>;
928 /* Ethernet is on some early development boards and qemu */
930 compatible = "smsc,lan91c94";
931 interrupt-parent = <&gpio2>;
932 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
933 reg = <1 0 0xf>; /* 16 byte IO range */
935 pinctrl-names = "default";
936 pinctrl-0 = <ðernet_pins>;
937 power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; /* gpio86 */
938 reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* gpio164 */
939 gpmc,device-width = <2>;
940 gpmc,sync-clk-ps = <0>;
942 gpmc,cs-rd-off-ns = <48>;
943 gpmc,cs-wr-off-ns = <24>;
944 gpmc,adv-on-ns = <0>;
945 gpmc,adv-rd-off-ns = <0>;
946 gpmc,adv-wr-off-ns = <0>;
947 gpmc,we-on-ns = <12>;
948 gpmc,we-off-ns = <18>;
949 gpmc,oe-on-ns = <12>;
950 gpmc,oe-off-ns = <48>;
951 gpmc,page-burst-access-ns = <0>;
952 gpmc,access-ns = <42>;
953 gpmc,rd-cycle-ns = <180>;
954 gpmc,wr-cycle-ns = <180>;
955 gpmc,bus-turnaround-ns = <0>;
956 gpmc,cycle2cycle-delay-ns = <0>;
957 gpmc,wait-monitoring-ns = <0>;
958 gpmc,clk-activation-ns = <0>;
959 gpmc,wr-access-ns = <0>;
960 gpmc,wr-data-mux-bus-ns = <12>;
966 * For some reason, touchscreen is necessary for screen to work at
967 * all on real hw. It works well without it on emulator.
969 * Also... order in the device tree actually matters here.
972 compatible = "ti,tsc2005";
973 spi-max-frequency = <6000000>;
978 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
979 interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
981 touchscreen-fuzz-x = <4>;
982 touchscreen-fuzz-y = <7>;
983 touchscreen-fuzz-pressure = <2>;
984 touchscreen-size-x = <4096>;
985 touchscreen-size-y = <4096>;
986 touchscreen-max-pressure = <2048>;
988 ti,x-plate-ohms = <280>;
989 ti,esd-recovery-timeout-ms = <8000>;
993 compatible = "sony,acx565akm";
994 spi-max-frequency = <6000000>;
997 pinctrl-names = "default";
998 pinctrl-0 = <&acx565akm_pins>;
1001 reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
1005 remote-endpoint = <&sdi_out>;
1012 pinctrl-names = "default";
1013 pinctrl-0 = <&mcspi4_pins>;
1016 pinctrl-names = "default";
1017 pinctrl-0 = <&wl1251_pins>;
1019 vio-supply = <&vio>;
1021 compatible = "ti,wl1251";
1023 spi-max-frequency = <48000000>;
1028 ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
1030 interrupt-parent = <&gpio2>;
1031 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
1038 interface-type = <0>;
1039 usb-phy = <&usb2_phy>;
1041 phy-names = "usb2-phy";
1047 status = "disabled";
1051 pinctrl-names = "default";
1052 pinctrl-0 = <&uart2_pins>;
1054 bcm2048: bluetooth {
1055 compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
1056 reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
1057 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
1058 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
1060 clock-names = "sysclk";
1065 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
1066 pinctrl-names = "default";
1067 pinctrl-0 = <&uart3_pins>;
1073 pinctrl-names = "default";
1074 pinctrl-0 = <&dss_sdi_pins>;
1076 vdds_sdi-supply = <&vaux1>;
1079 #address-cells = <1>;
1086 remote-endpoint = <&lcd_in>;
1096 vdda-supply = <&vdac>;
1099 venc_out: endpoint {
1100 remote-endpoint = <&tv_connector_in>;
1111 pinctrl-names = "default";
1112 pinctrl-0 = <&ssi_pins>;
1114 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
1117 compatible = "nokia,n900-modem";
1119 pinctrl-names = "default";
1120 pinctrl-0 = <&modem_pins>;
1122 hsi-channel-ids = <0>, <1>, <2>, <3>;
1123 hsi-channel-names = "mcsaab-control",
1127 hsi-speed-kbps = <55000>;
1129 hsi-flow = "synchronized";
1130 hsi-arb-mode = "round-robin";
1132 interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
1134 gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>, /* 70 */
1135 <&gpio3 9 GPIO_ACTIVE_HIGH>, /* 73 */
1136 <&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
1137 <&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
1138 <&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
1139 gpio-names = "cmt_apeslpx",
1148 status = "disabled";