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";
147 rear_camera: camera@0 {
148 compatible = "linux,camera";
157 compatible = "ti,omap-dmtimer-pwm";
159 ti,timers = <&timer9>;
160 ti,clock-source = <0x00>; /* timer_sys_ck */
164 compatible = "nokia,n900-ir";
165 pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
168 /* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
170 compatible = "fixed-clock";
172 clock-frequency = <38400000>;
177 vdds_csib-supply = <&vaux2>;
179 pinctrl-names = "default";
180 pinctrl-0 = <&camera_pins>;
187 remote-endpoint = <&csi_cam1>;
188 bus-type = <3>; /* CCP2 */
191 lane-polarity = <0 0>;
193 /* Select strobe = <1> for back camera, <0> for front camera */
202 pinctrl-names = "default";
204 uart2_pins: pinmux_uart2_pins {
205 pinctrl-single,pins = <
206 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts */
207 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts */
208 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
209 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */
213 uart3_pins: pinmux_uart3_pins {
214 pinctrl-single,pins = <
215 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx */
216 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx */
220 ethernet_pins: pinmux_ethernet_pins {
221 pinctrl-single,pins = <
222 OMAP3_CORE1_IOPAD(0x20b4, PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpmc_ncs3.gpio_54 */
223 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE4) /* dss_data16.gpio_86 */
224 OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4) /* uart3_rts_sd.gpio_164 */
228 gpmc_pins: pinmux_gpmc_pins {
229 pinctrl-single,pins = <
232 OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0) /* gpmc_a1.gpmc_a1 */
233 OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0) /* gpmc_a2.gpmc_a2 */
234 OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0) /* gpmc_a3.gpmc_a3 */
236 /* data lines, gpmc_d0..d7 not muxable according to TRM */
237 OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0) /* gpmc_d8.gpmc_d8 */
238 OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0) /* gpmc_d9.gpmc_d9 */
239 OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0) /* gpmc_d10.gpmc_d10 */
240 OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0) /* gpmc_d11.gpmc_d11 */
241 OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0) /* gpmc_d12.gpmc_d12 */
242 OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0) /* gpmc_d13.gpmc_d13 */
243 OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0) /* gpmc_d14.gpmc_d14 */
244 OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0) /* gpmc_d15.gpmc_d15 */
247 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
248 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
250 OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs1.gpmc_ncs1 */
251 OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0) /* gpmc_clk.gpmc_clk */
255 i2c1_pins: pinmux_i2c1_pins {
256 pinctrl-single,pins = <
257 OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl */
258 OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda */
262 i2c2_pins: pinmux_i2c2_pins {
263 pinctrl-single,pins = <
264 OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
265 OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
269 i2c3_pins: pinmux_i2c3_pins {
270 pinctrl-single,pins = <
271 OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0) /* i2c3_scl */
272 OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0) /* i2c3_sda */
276 debug_leds: pinmux_debug_led_pins {
277 pinctrl-single,pins = <
278 OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4) /* mcbsp1_clkx.gpio_162 */
282 mcspi4_pins: pinmux_mcspi4_pins {
283 pinctrl-single,pins = <
284 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
285 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
286 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
287 OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
291 mmc1_pins: pinmux_mmc1_pins {
292 pinctrl-single,pins = <
293 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */
294 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */
295 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */
296 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */
297 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */
298 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */
302 mmc2_pins: pinmux_mmc2_pins {
303 pinctrl-single,pins = <
304 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */
305 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */
306 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */
307 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */
308 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */
309 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */
310 OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */
311 OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */
312 OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */
313 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */
317 acx565akm_pins: pinmux_acx565akm_pins {
318 pinctrl-single,pins = <
319 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */
323 dss_sdi_pins: pinmux_dss_sdi_pins {
324 pinctrl-single,pins = <
325 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE1) /* dss_data10.sdi_dat1n */
326 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE1) /* dss_data11.sdi_dat1p */
327 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE1) /* dss_data12.sdi_dat2n */
328 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE1) /* dss_data13.sdi_dat2p */
330 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE1) /* dss_data22.sdi_clkp */
331 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE1) /* dss_data23.sdi_clkn */
335 wl1251_pins: pinmux_wl1251 {
336 pinctrl-single,pins = <
337 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 => wl1251 enable */
338 OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4) /* gpio 42 => wl1251 irq */
342 ssi_pins: pinmux_ssi {
343 pinctrl-single,pins = <
344 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */
345 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */
346 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4) /* ssi1_wake_tx (cawake) */
347 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */
348 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */
349 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */
350 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */
351 OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */
355 modem_pins: pinmux_modem {
356 pinctrl-single,pins = <
357 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE4) /* gpio 70 => cmt_apeslpx */
358 OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | MUX_MODE4) /* gpio 72 => ape_rst_rq */
359 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4) /* gpio 73 => cmt_rst_rq */
360 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4) /* gpio 74 => cmt_en */
361 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE4) /* gpio 75 => cmt_rst */
362 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* gpio 157 => cmt_bsi */
366 camera_pins: pinmux_camera {
367 pinctrl-single,pins = <
368 OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7) /* cam_hs */
369 OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7) /* cam_vs */
370 OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0) /* cam_xclka */
371 OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7) /* cam_d4 */
372 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0) /* cam_d6 */
373 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0) /* cam_d7 */
374 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0) /* cam_d8 */
375 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0) /* cam_d9 */
376 OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7) /* cam_d10 */
377 OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7) /* cam_xclkb */
378 OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0) /* cam_strobe */
384 pinctrl-names = "default";
385 pinctrl-0 = <&i2c1_pins>;
387 clock-frequency = <2200000>;
391 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
392 interrupt-parent = <&intc>;
396 #include "twl4030.dtsi"
397 #include "twl4030_omap3.dtsi"
400 regulator-name = "V28";
401 regulator-min-microvolt = <2800000>;
402 regulator-max-microvolt = <2800000>;
403 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
404 regulator-always-on; /* due to battery cover sensor */
408 regulator-name = "VCSI";
409 regulator-min-microvolt = <1800000>;
410 regulator-max-microvolt = <1800000>;
411 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
415 regulator-name = "VMMC2_30";
416 regulator-min-microvolt = <2800000>;
417 regulator-max-microvolt = <3000000>;
418 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
422 regulator-name = "VCAM_ANA_28";
423 regulator-min-microvolt = <2800000>;
424 regulator-max-microvolt = <2800000>;
425 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
429 regulator-name = "VMMC1";
430 regulator-min-microvolt = <1850000>;
431 regulator-max-microvolt = <3150000>;
432 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
436 regulator-name = "V28_A";
437 regulator-min-microvolt = <2800000>;
438 regulator-max-microvolt = <3000000>;
439 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
440 regulator-always-on; /* due VIO leak to AIC34 VDDs */
444 regulator-name = "VPLL";
445 regulator-min-microvolt = <1800000>;
446 regulator-max-microvolt = <1800000>;
447 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
452 regulator-name = "VSDI_CSI";
453 regulator-min-microvolt = <1800000>;
454 regulator-max-microvolt = <1800000>;
455 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
460 regulator-name = "VMMC2_IO_18";
461 regulator-min-microvolt = <1800000>;
462 regulator-max-microvolt = <1800000>;
463 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
467 regulator-name = "VIO";
468 regulator-min-microvolt = <1800000>;
469 regulator-max-microvolt = <1800000>;
473 regulator-name = "VINTANA1";
474 /* fixed to 1500000 */
479 regulator-name = "VINTANA2";
480 regulator-min-microvolt = <2750000>;
481 regulator-max-microvolt = <2750000>;
486 regulator-name = "VINTDIG";
487 /* fixed to 1500000 */
493 compatible = "ti,twl4030-audio";
494 ti,enable-vibra = <1>;
498 compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
504 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
505 MATRIX_KEY(0x00, 0x01, KEY_O)
506 MATRIX_KEY(0x00, 0x02, KEY_P)
507 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
508 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
509 MATRIX_KEY(0x00, 0x06, KEY_A)
510 MATRIX_KEY(0x00, 0x07, KEY_S)
512 MATRIX_KEY(0x01, 0x00, KEY_W)
513 MATRIX_KEY(0x01, 0x01, KEY_D)
514 MATRIX_KEY(0x01, 0x02, KEY_F)
515 MATRIX_KEY(0x01, 0x03, KEY_G)
516 MATRIX_KEY(0x01, 0x04, KEY_H)
517 MATRIX_KEY(0x01, 0x05, KEY_J)
518 MATRIX_KEY(0x01, 0x06, KEY_K)
519 MATRIX_KEY(0x01, 0x07, KEY_L)
521 MATRIX_KEY(0x02, 0x00, KEY_E)
522 MATRIX_KEY(0x02, 0x01, KEY_DOT)
523 MATRIX_KEY(0x02, 0x02, KEY_UP)
524 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
525 MATRIX_KEY(0x02, 0x05, KEY_Z)
526 MATRIX_KEY(0x02, 0x06, KEY_X)
527 MATRIX_KEY(0x02, 0x07, KEY_C)
528 MATRIX_KEY(0x02, 0x08, KEY_F9)
530 MATRIX_KEY(0x03, 0x00, KEY_R)
531 MATRIX_KEY(0x03, 0x01, KEY_V)
532 MATRIX_KEY(0x03, 0x02, KEY_B)
533 MATRIX_KEY(0x03, 0x03, KEY_N)
534 MATRIX_KEY(0x03, 0x04, KEY_M)
535 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
536 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
537 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
539 MATRIX_KEY(0x04, 0x00, KEY_T)
540 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
541 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
542 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
543 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
544 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
545 MATRIX_KEY(0x04, 0x08, KEY_F10)
547 MATRIX_KEY(0x05, 0x00, KEY_Y)
548 MATRIX_KEY(0x05, 0x08, KEY_F11)
550 MATRIX_KEY(0x06, 0x00, KEY_U)
552 MATRIX_KEY(0x07, 0x00, KEY_I)
553 MATRIX_KEY(0x07, 0x01, KEY_F7)
554 MATRIX_KEY(0x07, 0x02, KEY_F8)
560 ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
564 pinctrl-names = "default";
565 pinctrl-0 = <&i2c2_pins>;
567 clock-frequency = <100000>;
569 tlv320aic3x: tlv320aic3x@18 {
570 compatible = "ti,tlv320aic3x";
572 gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
574 0 /* AIC3X_GPIO1_FUNC_DISABLED */
575 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
578 AVDD-supply = <&vmmc2>;
579 DRVDD-supply = <&vmmc2>;
580 IOVDD-supply = <&vio>;
581 DVDD-supply = <&vio>;
583 ai3x-micbias-vg = <1>;
586 tlv320aic3x_aux: tlv320aic3x@19 {
587 compatible = "ti,tlv320aic3x";
589 gpio-reset = <&gpio2 28 GPIO_ACTIVE_HIGH>; /* 60 */
591 AVDD-supply = <&vmmc2>;
592 DRVDD-supply = <&vmmc2>;
593 IOVDD-supply = <&vio>;
594 DVDD-supply = <&vio>;
596 ai3x-micbias-vg = <2>;
599 tsl2563: tsl2563@29 {
600 compatible = "amstaos,tsl2563";
603 amstaos,cover-comp-gain = <16>;
606 adp1653: led-controller@30 {
607 compatible = "adi,adp1653";
609 enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
612 flash-timeout-us = <500000>;
613 flash-max-microamp = <320000>;
614 led-max-microamp = <50000>;
617 led-max-microamp = <17500>;
622 compatible = "national,lp5523";
624 clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
625 enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
628 chan-name = "lp5523:kb1";
629 led-cur = /bits/ 8 <50>;
630 max-cur = /bits/ 8 <100>;
634 chan-name = "lp5523:kb2";
635 led-cur = /bits/ 8 <50>;
636 max-cur = /bits/ 8 <100>;
640 chan-name = "lp5523:kb3";
641 led-cur = /bits/ 8 <50>;
642 max-cur = /bits/ 8 <100>;
646 chan-name = "lp5523:kb4";
647 led-cur = /bits/ 8 <50>;
648 max-cur = /bits/ 8 <100>;
652 chan-name = "lp5523:b";
653 led-cur = /bits/ 8 <50>;
654 max-cur = /bits/ 8 <100>;
658 chan-name = "lp5523:g";
659 led-cur = /bits/ 8 <50>;
660 max-cur = /bits/ 8 <100>;
664 chan-name = "lp5523:r";
665 led-cur = /bits/ 8 <50>;
666 max-cur = /bits/ 8 <100>;
670 chan-name = "lp5523:kb5";
671 led-cur = /bits/ 8 <50>;
672 max-cur = /bits/ 8 <100>;
676 chan-name = "lp5523:kb6";
677 led-cur = /bits/ 8 <50>;
678 max-cur = /bits/ 8 <100>;
682 bq27200: bq27200@55 {
683 compatible = "ti,bq27200";
687 /* Stereo headphone amplifier */
688 tpa6130a2: tpa6130a2@60 {
689 compatible = "ti,tpa6130a2";
692 Vdd-supply = <&vmmc2>;
694 power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
698 compatible = "silabs,si4713";
701 interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
702 reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
704 vdd-supply = <&vaux1>;
707 bq24150a: bq24150a@6b {
708 compatible = "ti,bq24150a";
711 ti,current-limit = <100>;
712 ti,weak-battery-voltage = <3400>;
713 ti,battery-regulation-voltage = <4200>;
714 ti,charge-current = <650>;
715 ti,termination-current = <100>;
716 ti,resistor-sense = <68>;
718 ti,usb-charger-detection = <&isp1707>;
723 pinctrl-names = "default";
724 pinctrl-0 = <&i2c3_pins>;
726 clock-frequency = <400000>;
728 lis302dl: lis3lv02d@1d {
729 compatible = "st,lis3lv02d";
732 Vdd-supply = <&vaux1>;
733 Vdd_IO-supply = <&vio>;
735 interrupt-parent = <&gpio6>;
736 interrupts = <21 20>; /* 181 and 180 */
743 /* Limits are 0.5g * value */
744 st,click-threshold-x = <8>;
745 st,click-threshold-y = <8>;
746 st,click-threshold-z = <10>;
748 /* Click must be longer than time limit */
749 st,click-time-limit = <9>;
751 /* Kind of debounce filter */
752 st,click-latency = <50>;
754 /* Interrupt line 2 for click detection */
759 st,wakeup-threshold = <(800/18)>; /* millig-value / 18 to get HW values */
762 st,wakeup2-threshold = <(900/18)>; /* millig-value / 18 to get HW values */
767 st,axis-x = <1>; /* LIS3_DEV_X */
768 st,axis-y = <(-2)>; /* LIS3_INV_DEV_Y */
769 st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
771 st,min-limit-x = <(-32)>;
772 st,min-limit-y = <3>;
773 st,min-limit-z = <3>;
775 st,max-limit-x = <(-3)>;
776 st,max-limit-y = <32>;
777 st,max-limit-z = <32>;
781 compatible = "toshiba,et8ek8";
784 vana-supply = <&vaux4>;
787 clock-names = "extclk";
788 clock-frequency = <9600000>;
790 reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
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 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
856 gpmc,burst-length = <16>;
860 gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
861 gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
863 gpmc,cs-rd-off-ns = <87>;
864 gpmc,cs-wr-off-ns = <87>;
865 gpmc,adv-on-ns = <0>;
866 gpmc,adv-rd-off-ns = <10>;
867 gpmc,adv-wr-off-ns = <10>;
868 gpmc,oe-on-ns = <15>;
869 gpmc,oe-off-ns = <87>;
871 gpmc,we-off-ns = <87>;
872 gpmc,rd-cycle-ns = <112>;
873 gpmc,wr-cycle-ns = <112>;
874 gpmc,access-ns = <81>;
875 gpmc,page-burst-access-ns = <15>;
876 gpmc,bus-turnaround-ns = <0>;
877 gpmc,cycle2cycle-delay-ns = <0>;
878 gpmc,wait-monitoring-ns = <0>;
879 gpmc,clk-activation-ns = <5>;
880 gpmc,wr-data-mux-bus-ns = <30>;
881 gpmc,wr-access-ns = <81>;
882 gpmc,sync-clk-ps = <15000>;
885 * MTD partition table corresponding to Nokia's
886 * Maemo 5 (Fremantle) release.
889 label = "bootloader";
890 reg = <0x00000000 0x00020000>;
895 reg = <0x00020000 0x00060000>;
899 reg = <0x00080000 0x00040000>;
903 reg = <0x000c0000 0x00200000>;
907 reg = <0x002c0000 0x00200000>;
911 reg = <0x004c0000 0x0fb40000>;
915 /* Ethernet is on some early development boards and qemu */
917 compatible = "smsc,lan91c94";
918 interrupt-parent = <&gpio2>;
919 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
920 reg = <1 0 0xf>; /* 16 byte IO range */
922 pinctrl-names = "default";
923 pinctrl-0 = <ðernet_pins>;
924 power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; /* gpio86 */
925 reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* gpio164 */
926 gpmc,device-width = <2>;
927 gpmc,sync-clk-ps = <0>;
929 gpmc,cs-rd-off-ns = <48>;
930 gpmc,cs-wr-off-ns = <24>;
931 gpmc,adv-on-ns = <0>;
932 gpmc,adv-rd-off-ns = <0>;
933 gpmc,adv-wr-off-ns = <0>;
934 gpmc,we-on-ns = <12>;
935 gpmc,we-off-ns = <18>;
936 gpmc,oe-on-ns = <12>;
937 gpmc,oe-off-ns = <48>;
938 gpmc,page-burst-access-ns = <0>;
939 gpmc,access-ns = <42>;
940 gpmc,rd-cycle-ns = <180>;
941 gpmc,wr-cycle-ns = <180>;
942 gpmc,bus-turnaround-ns = <0>;
943 gpmc,cycle2cycle-delay-ns = <0>;
944 gpmc,wait-monitoring-ns = <0>;
945 gpmc,clk-activation-ns = <0>;
946 gpmc,wr-access-ns = <0>;
947 gpmc,wr-data-mux-bus-ns = <12>;
953 * For some reason, touchscreen is necessary for screen to work at
954 * all on real hw. It works well without it on emulator.
956 * Also... order in the device tree actually matters here.
959 compatible = "ti,tsc2005";
960 spi-max-frequency = <6000000>;
965 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
966 interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
968 touchscreen-fuzz-x = <4>;
969 touchscreen-fuzz-y = <7>;
970 touchscreen-fuzz-pressure = <2>;
971 touchscreen-size-x = <4096>;
972 touchscreen-size-y = <4096>;
973 touchscreen-max-pressure = <2048>;
975 ti,x-plate-ohms = <280>;
976 ti,esd-recovery-timeout-ms = <8000>;
980 compatible = "sony,acx565akm";
981 spi-max-frequency = <6000000>;
984 pinctrl-names = "default";
985 pinctrl-0 = <&acx565akm_pins>;
988 reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
992 remote-endpoint = <&sdi_out>;
999 pinctrl-names = "default";
1000 pinctrl-0 = <&mcspi4_pins>;
1003 pinctrl-names = "default";
1004 pinctrl-0 = <&wl1251_pins>;
1006 vio-supply = <&vio>;
1008 compatible = "ti,wl1251";
1010 spi-max-frequency = <48000000>;
1015 ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
1017 interrupt-parent = <&gpio2>;
1018 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
1025 interface-type = <0>;
1026 usb-phy = <&usb2_phy>;
1028 phy-names = "usb2-phy";
1034 status = "disabled";
1038 pinctrl-names = "default";
1039 pinctrl-0 = <&uart2_pins>;
1041 bcm2048: bluetooth {
1042 compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
1043 reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
1044 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
1045 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
1047 clock-names = "sysclk";
1052 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
1053 pinctrl-names = "default";
1054 pinctrl-0 = <&uart3_pins>;
1060 pinctrl-names = "default";
1061 pinctrl-0 = <&dss_sdi_pins>;
1063 vdds_sdi-supply = <&vaux1>;
1066 #address-cells = <1>;
1073 remote-endpoint = <&lcd_in>;
1083 vdda-supply = <&vdac>;
1086 venc_out: endpoint {
1087 remote-endpoint = <&tv_connector_in>;
1098 pinctrl-names = "default";
1099 pinctrl-0 = <&ssi_pins>;
1101 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
1104 compatible = "nokia,n900-modem";
1106 pinctrl-names = "default";
1107 pinctrl-0 = <&modem_pins>;
1109 hsi-channel-ids = <0>, <1>, <2>, <3>;
1110 hsi-channel-names = "mcsaab-control",
1114 hsi-speed-kbps = <55000>;
1116 hsi-flow = "synchronized";
1117 hsi-arb-mode = "round-robin";
1119 interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
1121 gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>, /* 70 */
1122 <&gpio3 9 GPIO_ACTIVE_HIGH>, /* 73 */
1123 <&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
1124 <&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
1125 <&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
1126 gpio-names = "cmt_apeslpx",
1135 status = "disabled";