1 // SPDX-License-Identifier: GPL-2.0-or-later
3 * Copyright (C) 2013 Pavel Machek <pavel@ucw.cz>
4 * Copyright (C) 2013-2014 Aaro Koskinen <aaro.koskinen@iki.fi>
9 #include "omap34xx.dtsi"
10 #include <dt-bindings/input/input.h>
13 * Default secure signed bootloader (Nokia X-Loader) does not enable L3 firewall
14 * for omap AES HW crypto support. When linux kernel try to access memory of AES
15 * blocks then kernel receive "Unhandled fault: external abort on non-linefetch"
16 * and crash. Until somebody fix omap-aes.c and omap_hwmod_3xxx_data.c code (no
17 * crash anymore) omap AES support will be disabled for all Nokia N900 devices.
18 * There is "unofficial" version of bootloader which enables AES in L3 firewall
19 * but it is not widely used and to prevent kernel crash rather AES is disabled.
20 * There is also no runtime detection code if AES is disabled in L3 firewall...
28 compatible = "nokia,omap3-n900", "ti,omap3430", "ti,omap3";
46 compatible = "gpio-leds";
48 label = "debug::sleep";
49 gpios = <&gpio6 2 GPIO_ACTIVE_HIGH>; /* 162 */
50 linux,default-trigger = "default-on";
51 pinctrl-names = "default";
52 pinctrl-0 = <&debug_leds>;
57 device_type = "memory";
58 reg = <0x80000000 0x10000000>; /* 256 MB */
62 compatible = "gpio-keys";
65 label = "Camera Lens Cover";
66 gpios = <&gpio4 14 GPIO_ACTIVE_LOW>; /* 110 */
67 linux,input-type = <EV_SW>;
68 linux,code = <SW_CAMERA_LENS_COVER>;
73 label = "Camera Focus";
74 gpios = <&gpio3 4 GPIO_ACTIVE_LOW>; /* 68 */
75 linux,code = <KEY_CAMERA_FOCUS>;
80 label = "Camera Capture";
81 gpios = <&gpio3 5 GPIO_ACTIVE_LOW>; /* 69 */
82 linux,code = <KEY_CAMERA>;
87 label = "Lock Button";
88 gpios = <&gpio4 17 GPIO_ACTIVE_LOW>; /* 113 */
89 linux,code = <KEY_SCREENLOCK>;
94 label = "Keypad Slide";
95 gpios = <&gpio3 7 GPIO_ACTIVE_LOW>; /* 71 */
96 linux,input-type = <EV_SW>;
97 linux,code = <SW_KEYPAD_SLIDE>;
102 label = "Proximity Sensor";
103 gpios = <&gpio3 25 GPIO_ACTIVE_HIGH>; /* 89 */
104 linux,input-type = <EV_SW>;
105 linux,code = <SW_FRONT_PROXIMITY>;
111 compatible = "nxp,isp1707";
112 nxp,enable-gpio = <&gpio3 3 GPIO_ACTIVE_HIGH>;
113 usb-phy = <&usb2_phy>;
117 compatible = "composite-video-connector";
121 tv_connector_in: endpoint {
122 remote-endpoint = <&venc_out>;
128 compatible = "nokia,n900-audio";
130 nokia,cpu-dai = <&mcbsp2>;
131 nokia,audio-codec = <&tlv320aic3x>, <&tlv320aic3x_aux>;
132 nokia,headphone-amplifier = <&tpa6130a2>;
134 tvout-selection-gpios = <&gpio2 8 GPIO_ACTIVE_HIGH>; /* 40 */
135 jack-detection-gpios = <&gpio6 17 GPIO_ACTIVE_HIGH>; /* 177 */
136 eci-switch-gpios = <&gpio6 22 GPIO_ACTIVE_HIGH>; /* 182 */
137 speaker-amplifier-gpios = <&twl_gpio 7 GPIO_ACTIVE_HIGH>;
140 battery: n900-battery {
141 compatible = "nokia,n900-battery";
142 io-channels = <&twl_madc 0>, <&twl_madc 4>, <&twl_madc 12>;
143 io-channel-names = "temp", "bsi", "vbat";
147 compatible = "ti,omap-dmtimer-pwm";
149 ti,timers = <&timer9>;
150 ti,clock-source = <0x00>; /* timer_sys_ck */
154 compatible = "nokia,n900-ir";
155 pwms = <&pwm9 0 26316 0>; /* 38000 Hz */
159 compatible = "nokia,n900-rom-rng";
164 /* controlled (enabled/disabled) directly by bcm2048 and wl1251 */
166 compatible = "fixed-clock";
168 clock-frequency = <38400000>;
173 vdds_csib-supply = <&vaux2>;
175 pinctrl-names = "default";
176 pinctrl-0 = <&camera_pins>;
183 remote-endpoint = <&csi_cam1>;
184 bus-type = <3>; /* CCP2 */
187 lane-polarity = <0 0>;
188 /* Select strobe = <1> for back camera, <0> for front camera */
196 pinctrl-names = "default";
198 uart2_pins: pinmux_uart2_pins {
199 pinctrl-single,pins = <
200 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts */
201 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts */
202 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */
203 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */
207 uart3_pins: pinmux_uart3_pins {
208 pinctrl-single,pins = <
209 OMAP3_CORE1_IOPAD(0x219e, PIN_INPUT | MUX_MODE0) /* uart3_rx */
210 OMAP3_CORE1_IOPAD(0x21a0, PIN_OUTPUT | MUX_MODE0) /* uart3_tx */
214 ethernet_pins: pinmux_ethernet_pins {
215 pinctrl-single,pins = <
216 OMAP3_CORE1_IOPAD(0x20b4, PIN_INPUT_PULLDOWN | MUX_MODE4) /* gpmc_ncs3.gpio_54 */
217 OMAP3_CORE1_IOPAD(0x20fc, PIN_OUTPUT | MUX_MODE4) /* dss_data16.gpio_86 */
218 OMAP3_CORE1_IOPAD(0x219c, PIN_OUTPUT | MUX_MODE4) /* uart3_rts_sd.gpio_164 */
222 gpmc_pins: pinmux_gpmc_pins {
223 pinctrl-single,pins = <
226 OMAP3_CORE1_IOPAD(0x207a, PIN_OUTPUT | MUX_MODE0) /* gpmc_a1.gpmc_a1 */
227 OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE0) /* gpmc_a2.gpmc_a2 */
228 OMAP3_CORE1_IOPAD(0x207e, PIN_OUTPUT | MUX_MODE0) /* gpmc_a3.gpmc_a3 */
230 /* data lines, gpmc_d0..d7 not muxable according to TRM */
231 OMAP3_CORE1_IOPAD(0x209e, PIN_INPUT | MUX_MODE0) /* gpmc_d8.gpmc_d8 */
232 OMAP3_CORE1_IOPAD(0x20a0, PIN_INPUT | MUX_MODE0) /* gpmc_d9.gpmc_d9 */
233 OMAP3_CORE1_IOPAD(0x20a2, PIN_INPUT | MUX_MODE0) /* gpmc_d10.gpmc_d10 */
234 OMAP3_CORE1_IOPAD(0x20a4, PIN_INPUT | MUX_MODE0) /* gpmc_d11.gpmc_d11 */
235 OMAP3_CORE1_IOPAD(0x20a6, PIN_INPUT | MUX_MODE0) /* gpmc_d12.gpmc_d12 */
236 OMAP3_CORE1_IOPAD(0x20a8, PIN_INPUT | MUX_MODE0) /* gpmc_d13.gpmc_d13 */
237 OMAP3_CORE1_IOPAD(0x20aa, PIN_INPUT | MUX_MODE0) /* gpmc_d14.gpmc_d14 */
238 OMAP3_CORE1_IOPAD(0x20ac, PIN_INPUT | MUX_MODE0) /* gpmc_d15.gpmc_d15 */
241 * gpmc_ncs0, gpmc_nadv_ale, gpmc_noe, gpmc_nwe, gpmc_wait0 not muxable
242 * according to TRM. OneNAND seems to require PIN_INPUT on clock.
244 OMAP3_CORE1_IOPAD(0x20b0, PIN_OUTPUT | MUX_MODE0) /* gpmc_ncs1.gpmc_ncs1 */
245 OMAP3_CORE1_IOPAD(0x20be, PIN_INPUT | MUX_MODE0) /* gpmc_clk.gpmc_clk */
249 i2c1_pins: pinmux_i2c1_pins {
250 pinctrl-single,pins = <
251 OMAP3_CORE1_IOPAD(0x21ba, PIN_INPUT | MUX_MODE0) /* i2c1_scl */
252 OMAP3_CORE1_IOPAD(0x21bc, PIN_INPUT | MUX_MODE0) /* i2c1_sda */
256 i2c2_pins: pinmux_i2c2_pins {
257 pinctrl-single,pins = <
258 OMAP3_CORE1_IOPAD(0x21be, PIN_INPUT | MUX_MODE0) /* i2c2_scl */
259 OMAP3_CORE1_IOPAD(0x21c0, PIN_INPUT | MUX_MODE0) /* i2c2_sda */
263 i2c3_pins: pinmux_i2c3_pins {
264 pinctrl-single,pins = <
265 OMAP3_CORE1_IOPAD(0x21c2, PIN_INPUT | MUX_MODE0) /* i2c3_scl */
266 OMAP3_CORE1_IOPAD(0x21c4, PIN_INPUT | MUX_MODE0) /* i2c3_sda */
270 debug_leds: pinmux_debug_led_pins {
271 pinctrl-single,pins = <
272 OMAP3_CORE1_IOPAD(0x2198, PIN_OUTPUT | MUX_MODE4) /* mcbsp1_clkx.gpio_162 */
276 mcspi4_pins: pinmux_mcspi4_pins {
277 pinctrl-single,pins = <
278 OMAP3_CORE1_IOPAD(0x218c, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_clk */
279 OMAP3_CORE1_IOPAD(0x2192, PIN_INPUT_PULLDOWN | MUX_MODE1) /* mcspi4_somi */
280 OMAP3_CORE1_IOPAD(0x2190, PIN_OUTPUT | MUX_MODE1) /* mcspi4_simo */
281 OMAP3_CORE1_IOPAD(0x2196, PIN_OUTPUT | MUX_MODE1) /* mcspi4_cs0 */
285 mmc1_pins: pinmux_mmc1_pins {
286 pinctrl-single,pins = <
287 OMAP3_CORE1_IOPAD(0x2144, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_clk */
288 OMAP3_CORE1_IOPAD(0x2146, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_cmd */
289 OMAP3_CORE1_IOPAD(0x2148, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat0 */
290 OMAP3_CORE1_IOPAD(0x214a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat1 */
291 OMAP3_CORE1_IOPAD(0x214c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat2 */
292 OMAP3_CORE1_IOPAD(0x214e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc1_dat3 */
296 mmc2_pins: pinmux_mmc2_pins {
297 pinctrl-single,pins = <
298 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */
299 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */
300 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */
301 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */
302 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */
303 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */
304 OMAP3_CORE1_IOPAD(0x2164, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat4 */
305 OMAP3_CORE1_IOPAD(0x2166, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat5 */
306 OMAP3_CORE1_IOPAD(0x2168, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat6 */
307 OMAP3_CORE1_IOPAD(0x216a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat7 */
311 acx565akm_pins: pinmux_acx565akm_pins {
312 pinctrl-single,pins = <
313 OMAP3_CORE1_IOPAD(0x2104, PIN_OUTPUT | MUX_MODE4) /* RX51_LCD_RESET_GPIO */
317 dss_sdi_pins: pinmux_dss_sdi_pins {
318 pinctrl-single,pins = <
319 OMAP3_CORE1_IOPAD(0x20f0, PIN_OUTPUT | MUX_MODE1) /* dss_data10.sdi_dat1n */
320 OMAP3_CORE1_IOPAD(0x20f2, PIN_OUTPUT | MUX_MODE1) /* dss_data11.sdi_dat1p */
321 OMAP3_CORE1_IOPAD(0x20f4, PIN_OUTPUT | MUX_MODE1) /* dss_data12.sdi_dat2n */
322 OMAP3_CORE1_IOPAD(0x20f6, PIN_OUTPUT | MUX_MODE1) /* dss_data13.sdi_dat2p */
324 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE1) /* dss_data22.sdi_clkp */
325 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE1) /* dss_data23.sdi_clkn */
329 wl1251_pins: pinmux_wl1251 {
330 pinctrl-single,pins = <
331 OMAP3_CORE1_IOPAD(0x20fe, PIN_OUTPUT | MUX_MODE4) /* gpio 87 => wl1251 enable */
332 OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4) /* gpio 42 => wl1251 irq */
336 ssi_pins: pinmux_ssi {
337 pinctrl-single,pins = <
338 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */
339 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */
340 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4) /* ssi1_wake_tx (cawake) */
341 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */
342 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */
343 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */
344 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */
345 OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */
349 modem_pins: pinmux_modem {
350 pinctrl-single,pins = <
351 OMAP3_CORE1_IOPAD(0x20dc, PIN_OUTPUT | MUX_MODE4) /* gpio 70 => cmt_apeslpx */
352 OMAP3_CORE1_IOPAD(0x20e0, PIN_INPUT | MUX_MODE4) /* gpio 72 => ape_rst_rq */
353 OMAP3_CORE1_IOPAD(0x20e2, PIN_OUTPUT | MUX_MODE4) /* gpio 73 => cmt_rst_rq */
354 OMAP3_CORE1_IOPAD(0x20e4, PIN_OUTPUT | MUX_MODE4) /* gpio 74 => cmt_en */
355 OMAP3_CORE1_IOPAD(0x20e6, PIN_OUTPUT | MUX_MODE4) /* gpio 75 => cmt_rst */
356 OMAP3_CORE1_IOPAD(0x218e, PIN_OUTPUT | MUX_MODE4) /* gpio 157 => cmt_bsi */
360 camera_pins: pinmux_camera {
361 pinctrl-single,pins = <
362 OMAP3_CORE1_IOPAD(0x210c, PIN_OUTPUT | MUX_MODE7) /* cam_hs */
363 OMAP3_CORE1_IOPAD(0x210e, PIN_OUTPUT | MUX_MODE7) /* cam_vs */
364 OMAP3_CORE1_IOPAD(0x2110, PIN_OUTPUT | MUX_MODE0) /* cam_xclka */
365 OMAP3_CORE1_IOPAD(0x211e, PIN_OUTPUT | MUX_MODE7) /* cam_d4 */
366 OMAP3_CORE1_IOPAD(0x2122, PIN_INPUT | MUX_MODE0) /* cam_d6 */
367 OMAP3_CORE1_IOPAD(0x2124, PIN_INPUT | MUX_MODE0) /* cam_d7 */
368 OMAP3_CORE1_IOPAD(0x2126, PIN_INPUT | MUX_MODE0) /* cam_d8 */
369 OMAP3_CORE1_IOPAD(0x2128, PIN_INPUT | MUX_MODE0) /* cam_d9 */
370 OMAP3_CORE1_IOPAD(0x212a, PIN_OUTPUT | MUX_MODE7) /* cam_d10 */
371 OMAP3_CORE1_IOPAD(0x212e, PIN_OUTPUT | MUX_MODE7) /* cam_xclkb */
372 OMAP3_CORE1_IOPAD(0x2132, PIN_OUTPUT | MUX_MODE0) /* cam_strobe */
378 pinctrl-names = "default";
379 pinctrl-0 = <&i2c1_pins>;
381 clock-frequency = <2200000>;
385 interrupts = <7>; /* SYS_NIRQ cascaded to intc */
386 interrupt-parent = <&intc>;
390 #include "twl4030.dtsi"
391 #include "twl4030_omap3.dtsi"
394 regulator-name = "V28";
395 regulator-min-microvolt = <2800000>;
396 regulator-max-microvolt = <2800000>;
397 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
398 regulator-always-on; /* due to battery cover sensor */
402 regulator-name = "VCSI";
403 regulator-min-microvolt = <1800000>;
404 regulator-max-microvolt = <1800000>;
405 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
409 regulator-name = "VMMC2_30";
410 regulator-min-microvolt = <2800000>;
411 regulator-max-microvolt = <3000000>;
412 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
416 regulator-name = "VCAM_ANA_28";
417 regulator-min-microvolt = <2800000>;
418 regulator-max-microvolt = <2800000>;
419 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
423 regulator-name = "VMMC1";
424 regulator-min-microvolt = <1850000>;
425 regulator-max-microvolt = <3150000>;
426 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
430 regulator-name = "V28_A";
431 regulator-min-microvolt = <2800000>;
432 regulator-max-microvolt = <3000000>;
433 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
434 regulator-always-on; /* due VIO leak to AIC34 VDDs */
438 regulator-name = "VPLL";
439 regulator-min-microvolt = <1800000>;
440 regulator-max-microvolt = <1800000>;
441 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
446 regulator-name = "VSDI_CSI";
447 regulator-min-microvolt = <1800000>;
448 regulator-max-microvolt = <1800000>;
449 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
454 regulator-name = "VMMC2_IO_18";
455 regulator-min-microvolt = <1800000>;
456 regulator-max-microvolt = <1800000>;
457 regulator-initial-mode = <0x0e>; /* RES_STATE_ACTIVE */
461 regulator-name = "VIO";
462 regulator-min-microvolt = <1800000>;
463 regulator-max-microvolt = <1800000>;
467 regulator-name = "VINTANA1";
468 /* fixed to 1500000 */
473 regulator-name = "VINTANA2";
474 regulator-min-microvolt = <2750000>;
475 regulator-max-microvolt = <2750000>;
480 regulator-name = "VINTDIG";
481 /* fixed to 1500000 */
487 compatible = "ti,twl4030-audio";
488 ti,enable-vibra = <1>;
492 compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
498 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
499 MATRIX_KEY(0x00, 0x01, KEY_O)
500 MATRIX_KEY(0x00, 0x02, KEY_P)
501 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
502 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
503 MATRIX_KEY(0x00, 0x06, KEY_A)
504 MATRIX_KEY(0x00, 0x07, KEY_S)
506 MATRIX_KEY(0x01, 0x00, KEY_W)
507 MATRIX_KEY(0x01, 0x01, KEY_D)
508 MATRIX_KEY(0x01, 0x02, KEY_F)
509 MATRIX_KEY(0x01, 0x03, KEY_G)
510 MATRIX_KEY(0x01, 0x04, KEY_H)
511 MATRIX_KEY(0x01, 0x05, KEY_J)
512 MATRIX_KEY(0x01, 0x06, KEY_K)
513 MATRIX_KEY(0x01, 0x07, KEY_L)
515 MATRIX_KEY(0x02, 0x00, KEY_E)
516 MATRIX_KEY(0x02, 0x01, KEY_DOT)
517 MATRIX_KEY(0x02, 0x02, KEY_UP)
518 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
519 MATRIX_KEY(0x02, 0x05, KEY_Z)
520 MATRIX_KEY(0x02, 0x06, KEY_X)
521 MATRIX_KEY(0x02, 0x07, KEY_C)
522 MATRIX_KEY(0x02, 0x08, KEY_F9)
524 MATRIX_KEY(0x03, 0x00, KEY_R)
525 MATRIX_KEY(0x03, 0x01, KEY_V)
526 MATRIX_KEY(0x03, 0x02, KEY_B)
527 MATRIX_KEY(0x03, 0x03, KEY_N)
528 MATRIX_KEY(0x03, 0x04, KEY_M)
529 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
530 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
531 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
533 MATRIX_KEY(0x04, 0x00, KEY_T)
534 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
535 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
536 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
537 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
538 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
539 MATRIX_KEY(0x04, 0x08, KEY_F10)
541 MATRIX_KEY(0x05, 0x00, KEY_Y)
542 MATRIX_KEY(0x05, 0x08, KEY_F11)
544 MATRIX_KEY(0x06, 0x00, KEY_U)
546 MATRIX_KEY(0x07, 0x00, KEY_I)
547 MATRIX_KEY(0x07, 0x01, KEY_F7)
548 MATRIX_KEY(0x07, 0x02, KEY_F8)
554 ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
558 pinctrl-names = "default";
559 pinctrl-0 = <&i2c2_pins>;
561 clock-frequency = <100000>;
563 tlv320aic3x: tlv320aic3x@18 {
564 compatible = "ti,tlv320aic3x";
566 reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
568 0 /* AIC3X_GPIO1_FUNC_DISABLED */
569 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
572 AVDD-supply = <&vmmc2>;
573 DRVDD-supply = <&vmmc2>;
574 IOVDD-supply = <&vio>;
575 DVDD-supply = <&vio>;
577 ai3x-micbias-vg = <1>;
580 tlv320aic3x_aux: tlv320aic3x@19 {
581 compatible = "ti,tlv320aic3x";
583 reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
585 AVDD-supply = <&vmmc2>;
586 DRVDD-supply = <&vmmc2>;
587 IOVDD-supply = <&vio>;
588 DVDD-supply = <&vio>;
590 ai3x-micbias-vg = <2>;
593 tsl2563: tsl2563@29 {
594 compatible = "amstaos,tsl2563";
597 amstaos,cover-comp-gain = <16>;
600 adp1653: led-controller@30 {
601 compatible = "adi,adp1653";
603 enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
606 flash-timeout-us = <500000>;
607 flash-max-microamp = <320000>;
608 led-max-microamp = <50000>;
611 led-max-microamp = <17500>;
616 compatible = "national,lp5523";
618 clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
619 enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
622 chan-name = "lp5523:kb1";
623 led-cur = /bits/ 8 <50>;
624 max-cur = /bits/ 8 <100>;
628 chan-name = "lp5523:kb2";
629 led-cur = /bits/ 8 <50>;
630 max-cur = /bits/ 8 <100>;
634 chan-name = "lp5523:kb3";
635 led-cur = /bits/ 8 <50>;
636 max-cur = /bits/ 8 <100>;
640 chan-name = "lp5523:kb4";
641 led-cur = /bits/ 8 <50>;
642 max-cur = /bits/ 8 <100>;
646 chan-name = "lp5523:b";
647 led-cur = /bits/ 8 <50>;
648 max-cur = /bits/ 8 <100>;
652 chan-name = "lp5523:g";
653 led-cur = /bits/ 8 <50>;
654 max-cur = /bits/ 8 <100>;
658 chan-name = "lp5523:r";
659 led-cur = /bits/ 8 <50>;
660 max-cur = /bits/ 8 <100>;
664 chan-name = "lp5523:kb5";
665 led-cur = /bits/ 8 <50>;
666 max-cur = /bits/ 8 <100>;
670 chan-name = "lp5523:kb6";
671 led-cur = /bits/ 8 <50>;
672 max-cur = /bits/ 8 <100>;
676 bq27200: bq27200@55 {
677 compatible = "ti,bq27200";
679 power-supplies = <&bq24150a>;
682 /* Stereo headphone amplifier */
683 tpa6130a2: tpa6130a2@60 {
684 compatible = "ti,tpa6130a2";
687 Vdd-supply = <&vmmc2>;
689 power-gpio = <&gpio4 2 GPIO_ACTIVE_HIGH>; /* 98 */
693 compatible = "silabs,si4713";
696 interrupts-extended = <&gpio2 21 IRQ_TYPE_EDGE_FALLING>; /* 53 */
697 reset-gpios = <&gpio6 3 GPIO_ACTIVE_HIGH>; /* 163 */
699 vdd-supply = <&vaux1>;
702 bq24150a: bq24150a@6b {
703 compatible = "ti,bq24150a";
706 ti,current-limit = <100>;
707 ti,weak-battery-voltage = <3400>;
708 ti,battery-regulation-voltage = <4200>;
709 ti,charge-current = <650>;
710 ti,termination-current = <100>;
711 ti,resistor-sense = <68>;
713 ti,usb-charger-detection = <&isp1707>;
718 pinctrl-names = "default";
719 pinctrl-0 = <&i2c3_pins>;
721 clock-frequency = <400000>;
723 lis302dl: lis3lv02d@1d {
724 compatible = "st,lis3lv02d";
727 Vdd-supply = <&vaux1>;
728 Vdd_IO-supply = <&vio>;
730 interrupt-parent = <&gpio6>;
731 interrupts = <21 20>; /* 181 and 180 */
738 /* Limits are 0.5g * value */
739 st,click-threshold-x = <8>;
740 st,click-threshold-y = <8>;
741 st,click-threshold-z = <10>;
743 /* Click must be longer than time limit */
744 st,click-time-limit = <9>;
746 /* Kind of debounce filter */
747 st,click-latency = <50>;
749 /* Interrupt line 2 for click detection */
754 st,wakeup-threshold = <(800/18)>; /* millig-value / 18 to get HW values */
757 st,wakeup2-threshold = <(900/18)>; /* millig-value / 18 to get HW values */
762 st,axis-x = <1>; /* LIS3_DEV_X */
763 st,axis-y = <(-2)>; /* LIS3_INV_DEV_Y */
764 st,axis-z = <(-3)>; /* LIS3_INV_DEV_Z */
766 st,min-limit-x = <(-32)>;
767 st,min-limit-y = <3>;
768 st,min-limit-z = <3>;
770 st,max-limit-x = <(-3)>;
771 st,max-limit-y = <32>;
772 st,max-limit-z = <32>;
776 compatible = "toshiba,et8ek8";
779 vana-supply = <&vaux4>;
782 clock-names = "extclk";
783 clock-frequency = <9600000>;
785 reset-gpio = <&gpio4 6 GPIO_ACTIVE_HIGH>; /* 102 */
787 lens-focus = <&ad5820>;
791 bus-type = <3>; /* CCP2 */
796 remote-endpoint = <&csi_isp>;
801 /* D/A converter for auto-focus */
803 compatible = "adi,ad5820";
806 VANA-supply = <&vaux4>;
808 #io-channel-cells = <0>;
813 pinctrl-names = "default";
814 pinctrl-0 = <&mmc1_pins>;
815 vmmc-supply = <&vmmc1>;
817 /* For debugging, it is often good idea to remove this GPIO.
818 It means you can remove back cover (to reboot by removing
819 battery) and still use the MMC card. */
820 cd-gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */
823 /* most boards use vaux3, only some old versions use vmmc2 instead */
825 pinctrl-names = "default";
826 pinctrl-0 = <&mmc2_pins>;
827 vmmc-supply = <&vaux3>;
828 vqmmc-supply = <&vsim>;
840 ranges = <0 0 0x01000000 0x01000000>, /* 16 MB for OneNAND */
841 <1 0 0x02000000 0x01000000>; /* 16 MB for smc91c96 */
842 pinctrl-names = "default";
843 pinctrl-0 = <&gpmc_pins>;
845 /* sys_ndmareq1 could be used by the driver, not as gpio65 though */
847 #address-cells = <1>;
849 compatible = "ti,omap2-onenand";
850 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
854 gpmc,burst-length = <16>;
858 gpmc,device-width = <2>; /* GPMC_DEVWIDTH_16BIT */
859 gpmc,mux-add-data = <2>; /* GPMC_MUX_AD */
861 gpmc,cs-rd-off-ns = <87>;
862 gpmc,cs-wr-off-ns = <87>;
863 gpmc,adv-on-ns = <0>;
864 gpmc,adv-rd-off-ns = <10>;
865 gpmc,adv-wr-off-ns = <10>;
866 gpmc,oe-on-ns = <15>;
867 gpmc,oe-off-ns = <87>;
869 gpmc,we-off-ns = <87>;
870 gpmc,rd-cycle-ns = <112>;
871 gpmc,wr-cycle-ns = <112>;
872 gpmc,access-ns = <81>;
873 gpmc,page-burst-access-ns = <15>;
874 gpmc,bus-turnaround-ns = <0>;
875 gpmc,cycle2cycle-delay-ns = <0>;
876 gpmc,wait-monitoring-ns = <0>;
877 gpmc,clk-activation-ns = <5>;
878 gpmc,wr-data-mux-bus-ns = <30>;
879 gpmc,wr-access-ns = <81>;
880 gpmc,sync-clk-ps = <15000>;
883 * MTD partition table corresponding to Nokia's
884 * Maemo 5 (Fremantle) release.
887 label = "bootloader";
888 reg = <0x00000000 0x00020000>;
893 reg = <0x00020000 0x00060000>;
897 reg = <0x00080000 0x00040000>;
901 reg = <0x000c0000 0x00200000>;
905 reg = <0x002c0000 0x00200000>;
909 reg = <0x004c0000 0x0fb40000>;
913 /* Ethernet is on some early development boards and qemu */
915 compatible = "smsc,lan91c94";
916 interrupt-parent = <&gpio2>;
917 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
918 reg = <1 0 0xf>; /* 16 byte IO range */
920 pinctrl-names = "default";
921 pinctrl-0 = <ðernet_pins>;
922 power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; /* gpio86 */
923 reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* gpio164 */
924 gpmc,device-width = <2>;
925 gpmc,sync-clk-ps = <0>;
927 gpmc,cs-rd-off-ns = <48>;
928 gpmc,cs-wr-off-ns = <24>;
929 gpmc,adv-on-ns = <0>;
930 gpmc,adv-rd-off-ns = <0>;
931 gpmc,adv-wr-off-ns = <0>;
932 gpmc,we-on-ns = <12>;
933 gpmc,we-off-ns = <18>;
934 gpmc,oe-on-ns = <12>;
935 gpmc,oe-off-ns = <48>;
936 gpmc,page-burst-access-ns = <0>;
937 gpmc,access-ns = <42>;
938 gpmc,rd-cycle-ns = <180>;
939 gpmc,wr-cycle-ns = <180>;
940 gpmc,bus-turnaround-ns = <0>;
941 gpmc,cycle2cycle-delay-ns = <0>;
942 gpmc,wait-monitoring-ns = <0>;
943 gpmc,clk-activation-ns = <0>;
944 gpmc,wr-access-ns = <0>;
945 gpmc,wr-data-mux-bus-ns = <12>;
951 * For some reason, touchscreen is necessary for screen to work at
952 * all on real hw. It works well without it on emulator.
954 * Also... order in the device tree actually matters here.
957 compatible = "ti,tsc2005";
958 spi-max-frequency = <6000000>;
963 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
964 interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
966 touchscreen-fuzz-x = <4>;
967 touchscreen-fuzz-y = <7>;
968 touchscreen-fuzz-pressure = <2>;
969 touchscreen-size-x = <4096>;
970 touchscreen-size-y = <4096>;
971 touchscreen-max-pressure = <2048>;
973 ti,x-plate-ohms = <280>;
974 ti,esd-recovery-timeout-ms = <8000>;
978 compatible = "sony,acx565akm";
979 spi-max-frequency = <6000000>;
982 pinctrl-names = "default";
983 pinctrl-0 = <&acx565akm_pins>;
986 reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
990 remote-endpoint = <&sdi_out>;
997 pinctrl-names = "default";
998 pinctrl-0 = <&mcspi4_pins>;
1001 pinctrl-names = "default";
1002 pinctrl-0 = <&wl1251_pins>;
1004 vio-supply = <&vio>;
1006 compatible = "ti,wl1251";
1008 spi-max-frequency = <48000000>;
1013 ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
1015 interrupt-parent = <&gpio2>;
1016 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
1022 /* RNG not directly accessible on n900, see omap3-rom-rng instead */
1024 status = "disabled";
1028 interface-type = <0>;
1029 usb-phy = <&usb2_phy>;
1031 phy-names = "usb2-phy";
1037 status = "disabled";
1041 pinctrl-names = "default";
1042 pinctrl-0 = <&uart2_pins>;
1044 bcm2048: bluetooth {
1045 compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
1046 reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
1047 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
1048 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
1050 clock-names = "sysclk";
1055 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
1056 pinctrl-names = "default";
1057 pinctrl-0 = <&uart3_pins>;
1063 pinctrl-names = "default";
1064 pinctrl-0 = <&dss_sdi_pins>;
1066 vdds_sdi-supply = <&vaux1>;
1069 #address-cells = <1>;
1076 remote-endpoint = <&lcd_in>;
1086 vdda-supply = <&vdac>;
1089 venc_out: endpoint {
1090 remote-endpoint = <&tv_connector_in>;
1101 pinctrl-names = "default";
1102 pinctrl-0 = <&ssi_pins>;
1104 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
1107 compatible = "nokia,n900-modem";
1109 pinctrl-names = "default";
1110 pinctrl-0 = <&modem_pins>;
1112 hsi-channel-ids = <0>, <1>, <2>, <3>;
1113 hsi-channel-names = "mcsaab-control",
1117 hsi-speed-kbps = <55000>;
1119 hsi-flow = "synchronized";
1120 hsi-arb-mode = "round-robin";
1122 interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
1124 gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>, /* 70 */
1125 <&gpio3 9 GPIO_ACTIVE_HIGH>, /* 73 */
1126 <&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
1127 <&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
1128 <&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
1129 gpio-names = "cmt_apeslpx",
1138 status = "disabled";