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";
47 compatible = "gpio-leds";
49 label = "debug::sleep";
50 gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; /* 162 */
51 linux,default-trigger = "default-on";
52 pinctrl-names = "default";
53 pinctrl-0 = <&debug_leds>;
58 device_type = "memory";
59 reg = <0x80000000 0x10000000>; /* 256 MB */
63 compatible = "gpio-keys";
66 label = "Camera Lens Cover";
67 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */
68 linux,input-type = <EV_SW>;
69 linux,code = <SW_CAMERA_LENS_COVER>;
74 label = "Camera Focus";
75 gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */
76 linux,code = <KEY_CAMERA_FOCUS>;
81 label = "Camera Capture";
82 gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */
83 linux,code = <KEY_CAMERA>;
88 label = "Lock Button";
89 gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */
90 linux,code = <KEY_SCREENLOCK>;
95 label = "Keypad Slide";
96 gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */
97 linux,input-type = <EV_SW>;
98 linux,code = <SW_KEYPAD_SLIDE>;
103 label = "Proximity Sensor";
104 gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */
105 linux,input-type = <EV_SW>;
106 linux,code = <SW_FRONT_PROXIMITY>;
112 compatible = "nxp,isp1707";
113 nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
114 usb-phy = <&usb2_phy>;
118 compatible = "composite-video-connector";
122 tv_connector_in: endpoint {
123 remote-endpoint = <&venc_out>;
129 compatible = "nokia,n900-audio";
131 nokia,cpu-dai = <&mcbsp2>;
132 nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
133 nokia,headphone-amplifier = <&tpa6130a2>;
135 tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
136 jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
137 eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
138 speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
141 battery: n900-battery {
142 compatible = "nokia,n900-battery";
143 io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
144 io-channel-names = "temp", "bsi", "vbat";
148 compatible = "ti,omap-dmtimer-pwm";
150 ti,timers = <&timer9>;
151 ti,clock-source = <0x00>; /* timer_sys_ck */
155 compatible = "nokia,n900-ir";
156 pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
159 /* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
161 compatible = "fixed-clock";
163 clock-frequency = <38400000>;
168 vdds_csib-supply = <&vaux2>;
170 pinctrl-names = "default";
171 pinctrl-0 = <&camera_pins>;
178 remote-endpoint = <&csi_cam1>;
179 bus-type = <3>; /* CCP2 */
182 lane-polarity = <0 0>;
183 /* Select strobe = <1> for back camera, <0> for front camera */
191 pinctrl-names = "default";
193 uart2_pins: pinmux_uart2_pins {
194 pinctrl-single,pins = <
195 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts */
196 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts */
197 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
198 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */
202 uart3_pins: pinmux_uart3_pins {
203 pinctrl-single,pins = <
204 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx */
205 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx */
209 ethernet_pins: pinmux_ethernet_pins {
210 pinctrl-single,pins = <
211 OMAP3_CORE1_IOPAD(0x20b4, PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpmc_ncs3.gpio_54 */
212 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE4) /* dss_data16.gpio_86 */
213 OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4) /* uart3_rts_sd.gpio_164 */
217 gpmc_pins: pinmux_gpmc_pins {
218 pinctrl-single,pins = <
221 OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0) /* gpmc_a1.gpmc_a1 */
222 OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0) /* gpmc_a2.gpmc_a2 */
223 OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0) /* gpmc_a3.gpmc_a3 */
225 /* data lines, gpmc_d0..d7 not muxable according to TRM */
226 OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0) /* gpmc_d8.gpmc_d8 */
227 OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0) /* gpmc_d9.gpmc_d9 */
228 OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0) /* gpmc_d10.gpmc_d10 */
229 OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0) /* gpmc_d11.gpmc_d11 */
230 OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0) /* gpmc_d12.gpmc_d12 */
231 OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0) /* gpmc_d13.gpmc_d13 */
232 OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0) /* gpmc_d14.gpmc_d14 */
233 OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0) /* gpmc_d15.gpmc_d15 */
236 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
237 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
239 OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs1.gpmc_ncs1 */
240 OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0) /* gpmc_clk.gpmc_clk */
244 i2c1_pins: pinmux_i2c1_pins {
245 pinctrl-single,pins = <
246 OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl */
247 OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda */
251 i2c2_pins: pinmux_i2c2_pins {
252 pinctrl-single,pins = <
253 OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
254 OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
258 i2c3_pins: pinmux_i2c3_pins {
259 pinctrl-single,pins = <
260 OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0) /* i2c3_scl */
261 OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0) /* i2c3_sda */
265 debug_leds: pinmux_debug_led_pins {
266 pinctrl-single,pins = <
267 OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4) /* mcbsp1_clkx.gpio_162 */
271 mcspi4_pins: pinmux_mcspi4_pins {
272 pinctrl-single,pins = <
273 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
274 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
275 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
276 OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
280 mmc1_pins: pinmux_mmc1_pins {
281 pinctrl-single,pins = <
282 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */
283 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */
284 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */
285 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */
286 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */
287 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */
291 mmc2_pins: pinmux_mmc2_pins {
292 pinctrl-single,pins = <
293 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */
294 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */
295 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */
296 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */
297 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */
298 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */
299 OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */
300 OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */
301 OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */
302 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */
306 acx565akm_pins: pinmux_acx565akm_pins {
307 pinctrl-single,pins = <
308 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */
312 dss_sdi_pins: pinmux_dss_sdi_pins {
313 pinctrl-single,pins = <
314 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE1) /* dss_data10.sdi_dat1n */
315 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE1) /* dss_data11.sdi_dat1p */
316 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE1) /* dss_data12.sdi_dat2n */
317 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE1) /* dss_data13.sdi_dat2p */
319 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE1) /* dss_data22.sdi_clkp */
320 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE1) /* dss_data23.sdi_clkn */
324 wl1251_pins: pinmux_wl1251 {
325 pinctrl-single,pins = <
326 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 => wl1251 enable */
327 OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4) /* gpio 42 => wl1251 irq */
331 ssi_pins: pinmux_ssi {
332 pinctrl-single,pins = <
333 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */
334 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */
335 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4) /* ssi1_wake_tx (cawake) */
336 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */
337 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */
338 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */
339 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */
340 OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */
344 modem_pins: pinmux_modem {
345 pinctrl-single,pins = <
346 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE4) /* gpio 70 => cmt_apeslpx */
347 OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | MUX_MODE4) /* gpio 72 => ape_rst_rq */
348 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4) /* gpio 73 => cmt_rst_rq */
349 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4) /* gpio 74 => cmt_en */
350 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE4) /* gpio 75 => cmt_rst */
351 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* gpio 157 => cmt_bsi */
355 camera_pins: pinmux_camera {
356 pinctrl-single,pins = <
357 OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7) /* cam_hs */
358 OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7) /* cam_vs */
359 OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0) /* cam_xclka */
360 OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7) /* cam_d4 */
361 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0) /* cam_d6 */
362 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0) /* cam_d7 */
363 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0) /* cam_d8 */
364 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0) /* cam_d9 */
365 OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7) /* cam_d10 */
366 OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7) /* cam_xclkb */
367 OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0) /* cam_strobe */
373 pinctrl-names = "default";
374 pinctrl-0 = <&i2c1_pins>;
376 clock-frequency = <2200000>;
380 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
381 interrupt-parent = <&intc>;
385 #include "twl4030.dtsi"
386 #include "twl4030_omap3.dtsi"
389 regulator-name = "V28";
390 regulator-min-microvolt = <2800000>;
391 regulator-max-microvolt = <2800000>;
392 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
393 regulator-always-on; /* due to battery cover sensor */
397 regulator-name = "VCSI";
398 regulator-min-microvolt = <1800000>;
399 regulator-max-microvolt = <1800000>;
400 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
404 regulator-name = "VMMC2_30";
405 regulator-min-microvolt = <2800000>;
406 regulator-max-microvolt = <3000000>;
407 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
411 regulator-name = "VCAM_ANA_28";
412 regulator-min-microvolt = <2800000>;
413 regulator-max-microvolt = <2800000>;
414 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
418 regulator-name = "VMMC1";
419 regulator-min-microvolt = <1850000>;
420 regulator-max-microvolt = <3150000>;
421 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
425 regulator-name = "V28_A";
426 regulator-min-microvolt = <2800000>;
427 regulator-max-microvolt = <3000000>;
428 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
429 regulator-always-on; /* due VIO leak to AIC34 VDDs */
433 regulator-name = "VPLL";
434 regulator-min-microvolt = <1800000>;
435 regulator-max-microvolt = <1800000>;
436 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
441 regulator-name = "VSDI_CSI";
442 regulator-min-microvolt = <1800000>;
443 regulator-max-microvolt = <1800000>;
444 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
449 regulator-name = "VMMC2_IO_18";
450 regulator-min-microvolt = <1800000>;
451 regulator-max-microvolt = <1800000>;
452 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
456 regulator-name = "VIO";
457 regulator-min-microvolt = <1800000>;
458 regulator-max-microvolt = <1800000>;
462 regulator-name = "VINTANA1";
463 /* fixed to 1500000 */
468 regulator-name = "VINTANA2";
469 regulator-min-microvolt = <2750000>;
470 regulator-max-microvolt = <2750000>;
475 regulator-name = "VINTDIG";
476 /* fixed to 1500000 */
482 compatible = "ti,twl4030-audio";
483 ti,enable-vibra = <1>;
487 compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
493 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
494 MATRIX_KEY(0x00, 0x01, KEY_O)
495 MATRIX_KEY(0x00, 0x02, KEY_P)
496 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
497 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
498 MATRIX_KEY(0x00, 0x06, KEY_A)
499 MATRIX_KEY(0x00, 0x07, KEY_S)
501 MATRIX_KEY(0x01, 0x00, KEY_W)
502 MATRIX_KEY(0x01, 0x01, KEY_D)
503 MATRIX_KEY(0x01, 0x02, KEY_F)
504 MATRIX_KEY(0x01, 0x03, KEY_G)
505 MATRIX_KEY(0x01, 0x04, KEY_H)
506 MATRIX_KEY(0x01, 0x05, KEY_J)
507 MATRIX_KEY(0x01, 0x06, KEY_K)
508 MATRIX_KEY(0x01, 0x07, KEY_L)
510 MATRIX_KEY(0x02, 0x00, KEY_E)
511 MATRIX_KEY(0x02, 0x01, KEY_DOT)
512 MATRIX_KEY(0x02, 0x02, KEY_UP)
513 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
514 MATRIX_KEY(0x02, 0x05, KEY_Z)
515 MATRIX_KEY(0x02, 0x06, KEY_X)
516 MATRIX_KEY(0x02, 0x07, KEY_C)
517 MATRIX_KEY(0x02, 0x08, KEY_F9)
519 MATRIX_KEY(0x03, 0x00, KEY_R)
520 MATRIX_KEY(0x03, 0x01, KEY_V)
521 MATRIX_KEY(0x03, 0x02, KEY_B)
522 MATRIX_KEY(0x03, 0x03, KEY_N)
523 MATRIX_KEY(0x03, 0x04, KEY_M)
524 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
525 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
526 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
528 MATRIX_KEY(0x04, 0x00, KEY_T)
529 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
530 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
531 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
532 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
533 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
534 MATRIX_KEY(0x04, 0x08, KEY_F10)
536 MATRIX_KEY(0x05, 0x00, KEY_Y)
537 MATRIX_KEY(0x05, 0x08, KEY_F11)
539 MATRIX_KEY(0x06, 0x00, KEY_U)
541 MATRIX_KEY(0x07, 0x00, KEY_I)
542 MATRIX_KEY(0x07, 0x01, KEY_F7)
543 MATRIX_KEY(0x07, 0x02, KEY_F8)
549 ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
553 pinctrl-names = "default";
554 pinctrl-0 = <&i2c2_pins>;
556 clock-frequency = <100000>;
558 tlv320aic3x: tlv320aic3x@18 {
559 compatible = "ti,tlv320aic3x";
561 gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
563 0 /* AIC3X_GPIO1_FUNC_DISABLED */
564 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
567 AVDD-supply = <&vmmc2>;
568 DRVDD-supply = <&vmmc2>;
569 IOVDD-supply = <&vio>;
570 DVDD-supply = <&vio>;
572 ai3x-micbias-vg = <1>;
575 tlv320aic3x_aux: tlv320aic3x@19 {
576 compatible = "ti,tlv320aic3x";
578 gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
580 AVDD-supply = <&vmmc2>;
581 DRVDD-supply = <&vmmc2>;
582 IOVDD-supply = <&vio>;
583 DVDD-supply = <&vio>;
585 ai3x-micbias-vg = <2>;
588 tsl2563: tsl2563@29 {
589 compatible = "amstaos,tsl2563";
592 amstaos,cover-comp-gain = <16>;
595 adp1653: led-controller@30 {
596 compatible = "adi,adp1653";
598 enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
601 flash-timeout-us = <500000>;
602 flash-max-microamp = <320000>;
603 led-max-microamp = <50000>;
606 led-max-microamp = <17500>;
611 compatible = "national,lp5523";
613 clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
614 enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
617 chan-name = "lp5523:kb1";
618 led-cur = /bits/ 8 <50>;
619 max-cur = /bits/ 8 <100>;
623 chan-name = "lp5523:kb2";
624 led-cur = /bits/ 8 <50>;
625 max-cur = /bits/ 8 <100>;
629 chan-name = "lp5523:kb3";
630 led-cur = /bits/ 8 <50>;
631 max-cur = /bits/ 8 <100>;
635 chan-name = "lp5523:kb4";
636 led-cur = /bits/ 8 <50>;
637 max-cur = /bits/ 8 <100>;
641 chan-name = "lp5523:b";
642 led-cur = /bits/ 8 <50>;
643 max-cur = /bits/ 8 <100>;
647 chan-name = "lp5523:g";
648 led-cur = /bits/ 8 <50>;
649 max-cur = /bits/ 8 <100>;
653 chan-name = "lp5523:r";
654 led-cur = /bits/ 8 <50>;
655 max-cur = /bits/ 8 <100>;
659 chan-name = "lp5523:kb5";
660 led-cur = /bits/ 8 <50>;
661 max-cur = /bits/ 8 <100>;
665 chan-name = "lp5523:kb6";
666 led-cur = /bits/ 8 <50>;
667 max-cur = /bits/ 8 <100>;
671 bq27200: bq27200@55 {
672 compatible = "ti,bq27200";
676 /* Stereo headphone amplifier */
677 tpa6130a2: tpa6130a2@60 {
678 compatible = "ti,tpa6130a2";
681 Vdd-supply = <&vmmc2>;
683 power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
687 compatible = "silabs,si4713";
690 interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
691 reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
693 vdd-supply = <&vaux1>;
696 bq24150a: bq24150a@6b {
697 compatible = "ti,bq24150a";
700 ti,current-limit = <100>;
701 ti,weak-battery-voltage = <3400>;
702 ti,battery-regulation-voltage = <4200>;
703 ti,charge-current = <650>;
704 ti,termination-current = <100>;
705 ti,resistor-sense = <68>;
707 ti,usb-charger-detection = <&isp1707>;
712 pinctrl-names = "default";
713 pinctrl-0 = <&i2c3_pins>;
715 clock-frequency = <400000>;
717 lis302dl: lis3lv02d@1d {
718 compatible = "st,lis3lv02d";
721 Vdd-supply = <&vaux1>;
722 Vdd_IO-supply = <&vio>;
724 interrupt-parent = <&gpio6>;
725 interrupts = <21 20>; /* 181 and 180 */
732 /* Limits are 0.5g * value */
733 st,click-threshold-x = <8>;
734 st,click-threshold-y = <8>;
735 st,click-threshold-z = <10>;
737 /* Click must be longer than time limit */
738 st,click-time-limit = <9>;
740 /* Kind of debounce filter */
741 st,click-latency = <50>;
743 /* Interrupt line 2 for click detection */
748 st,wakeup-threshold = <(800/18)>; /* millig-value / 18 to get HW values */
751 st,wakeup2-threshold = <(900/18)>; /* millig-value / 18 to get HW values */
756 st,axis-x = <1>; /* LIS3_DEV_X */
757 st,axis-y = <(-2)>; /* LIS3_INV_DEV_Y */
758 st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
760 st,min-limit-x = <(-32)>;
761 st,min-limit-y = <3>;
762 st,min-limit-z = <3>;
764 st,max-limit-x = <(-3)>;
765 st,max-limit-y = <32>;
766 st,max-limit-z = <32>;
770 compatible = "toshiba,et8ek8";
773 vana-supply = <&vaux4>;
776 clock-names = "extclk";
777 clock-frequency = <9600000>;
779 reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
783 bus-type = <3>; /* CCP2 */
788 remote-endpoint = <&csi_isp>;
793 /* D/A converter for auto-focus */
795 compatible = "adi,ad5820";
798 VANA-supply = <&vaux4>;
800 #io-channel-cells = <0>;
805 pinctrl-names = "default";
806 pinctrl-0 = <&mmc1_pins>;
807 vmmc-supply = <&vmmc1>;
809 /* For debugging, it is often good idea to remove this GPIO.
810 It means you can remove back cover (to reboot by removing
811 battery) and still use the MMC card. */
812 cd-gpios = <&gpio6 0 GPIO_ACTIVE_HIGH>; /* 160 */
815 /* most boards use vaux3, only some old versions use vmmc2 instead */
817 pinctrl-names = "default";
818 pinctrl-0 = <&mmc2_pins>;
819 vmmc-supply = <&vaux3>;
820 vqmmc-supply = <&vsim>;
832 ranges = <0 0 0x01000000 0x01000000>, /* 16 MB for OneNAND */
833 <1 0 0x02000000 0x01000000>; /* 16 MB for smc91c96 */
834 pinctrl-names = "default";
835 pinctrl-0 = <&gpmc_pins>;
837 /* sys_ndmareq1 could be used by the driver, not as gpio65 though */
839 #address-cells = <1>;
841 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
845 gpmc,burst-length = <16>;
849 gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
850 gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
852 gpmc,cs-rd-off-ns = <87>;
853 gpmc,cs-wr-off-ns = <87>;
854 gpmc,adv-on-ns = <0>;
855 gpmc,adv-rd-off-ns = <10>;
856 gpmc,adv-wr-off-ns = <10>;
857 gpmc,oe-on-ns = <15>;
858 gpmc,oe-off-ns = <87>;
860 gpmc,we-off-ns = <87>;
861 gpmc,rd-cycle-ns = <112>;
862 gpmc,wr-cycle-ns = <112>;
863 gpmc,access-ns = <81>;
864 gpmc,page-burst-access-ns = <15>;
865 gpmc,bus-turnaround-ns = <0>;
866 gpmc,cycle2cycle-delay-ns = <0>;
867 gpmc,wait-monitoring-ns = <0>;
868 gpmc,clk-activation-ns = <5>;
869 gpmc,wr-data-mux-bus-ns = <30>;
870 gpmc,wr-access-ns = <81>;
871 gpmc,sync-clk-ps = <15000>;
874 * MTD partition table corresponding to Nokia's
875 * Maemo 5 (Fremantle) release.
878 label = "bootloader";
879 reg = <0x00000000 0x00020000>;
884 reg = <0x00020000 0x00060000>;
888 reg = <0x00080000 0x00040000>;
892 reg = <0x000c0000 0x00200000>;
896 reg = <0x002c0000 0x00200000>;
900 reg = <0x004c0000 0x0fb40000>;
904 /* Ethernet is on some early development boards and qemu */
906 compatible = "smsc,lan91c94";
907 interrupt-parent = <&gpio2>;
908 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
909 reg = <1 0 0xf>; /* 16 byte IO range */
911 pinctrl-names = "default";
912 pinctrl-0 = <ðernet_pins>;
913 power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; /* gpio86 */
914 reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* gpio164 */
915 gpmc,device-width = <2>;
916 gpmc,sync-clk-ps = <0>;
918 gpmc,cs-rd-off-ns = <48>;
919 gpmc,cs-wr-off-ns = <24>;
920 gpmc,adv-on-ns = <0>;
921 gpmc,adv-rd-off-ns = <0>;
922 gpmc,adv-wr-off-ns = <0>;
923 gpmc,we-on-ns = <12>;
924 gpmc,we-off-ns = <18>;
925 gpmc,oe-on-ns = <12>;
926 gpmc,oe-off-ns = <48>;
927 gpmc,page-burst-access-ns = <0>;
928 gpmc,access-ns = <42>;
929 gpmc,rd-cycle-ns = <180>;
930 gpmc,wr-cycle-ns = <180>;
931 gpmc,bus-turnaround-ns = <0>;
932 gpmc,cycle2cycle-delay-ns = <0>;
933 gpmc,wait-monitoring-ns = <0>;
934 gpmc,clk-activation-ns = <0>;
935 gpmc,wr-access-ns = <0>;
936 gpmc,wr-data-mux-bus-ns = <12>;
942 * For some reason, touchscreen is necessary for screen to work at
943 * all on real hw. It works well without it on emulator.
945 * Also... order in the device tree actually matters here.
948 compatible = "ti,tsc2005";
949 spi-max-frequency = <6000000>;
954 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
955 interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
957 touchscreen-fuzz-x = <4>;
958 touchscreen-fuzz-y = <7>;
959 touchscreen-fuzz-pressure = <2>;
960 touchscreen-size-x = <4096>;
961 touchscreen-size-y = <4096>;
962 touchscreen-max-pressure = <2048>;
964 ti,x-plate-ohms = <280>;
965 ti,esd-recovery-timeout-ms = <8000>;
969 compatible = "sony,acx565akm";
970 spi-max-frequency = <6000000>;
973 pinctrl-names = "default";
974 pinctrl-0 = <&acx565akm_pins>;
977 reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
981 remote-endpoint = <&sdi_out>;
988 pinctrl-names = "default";
989 pinctrl-0 = <&mcspi4_pins>;
992 pinctrl-names = "default";
993 pinctrl-0 = <&wl1251_pins>;
997 compatible = "ti,wl1251";
999 spi-max-frequency = <48000000>;
1004 ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
1006 interrupt-parent = <&gpio2>;
1007 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
1014 interface-type = <0>;
1015 usb-phy = <&usb2_phy>;
1017 phy-names = "usb2-phy";
1023 status = "disabled";
1027 pinctrl-names = "default";
1028 pinctrl-0 = <&uart2_pins>;
1030 bcm2048: bluetooth {
1031 compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
1032 reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
1033 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
1034 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
1036 clock-names = "sysclk";
1041 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
1042 pinctrl-names = "default";
1043 pinctrl-0 = <&uart3_pins>;
1049 pinctrl-names = "default";
1050 pinctrl-0 = <&dss_sdi_pins>;
1052 vdds_sdi-supply = <&vaux1>;
1055 #address-cells = <1>;
1062 remote-endpoint = <&lcd_in>;
1072 vdda-supply = <&vdac>;
1075 venc_out: endpoint {
1076 remote-endpoint = <&tv_connector_in>;
1087 pinctrl-names = "default";
1088 pinctrl-0 = <&ssi_pins>;
1090 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
1093 compatible = "nokia,n900-modem";
1095 pinctrl-names = "default";
1096 pinctrl-0 = <&modem_pins>;
1098 hsi-channel-ids = <0>, <1>, <2>, <3>;
1099 hsi-channel-names = "mcsaab-control",
1103 hsi-speed-kbps = <55000>;
1105 hsi-flow = "synchronized";
1106 hsi-arb-mode = "round-robin";
1108 interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
1110 gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>, /* 70 */
1111 <&gpio3 9 GPIO_ACTIVE_HIGH>, /* 73 */
1112 <&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
1113 <&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
1114 <&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
1115 gpio-names = "cmt_apeslpx",
1124 status = "disabled";