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 */
485 /* First two dma channels are reserved on secure omap3 */
487 dma-channel-mask = <0xfffffffc>;
492 compatible = "ti,twl4030-audio";
493 ti,enable-vibra = <1>;
497 compatible = "ti,twl4030-power-n900", "ti,twl4030-power-idle-osc-off";
503 linux,keymap = < MATRIX_KEY(0x00, 0x00, KEY_Q)
504 MATRIX_KEY(0x00, 0x01, KEY_O)
505 MATRIX_KEY(0x00, 0x02, KEY_P)
506 MATRIX_KEY(0x00, 0x03, KEY_COMMA)
507 MATRIX_KEY(0x00, 0x04, KEY_BACKSPACE)
508 MATRIX_KEY(0x00, 0x06, KEY_A)
509 MATRIX_KEY(0x00, 0x07, KEY_S)
511 MATRIX_KEY(0x01, 0x00, KEY_W)
512 MATRIX_KEY(0x01, 0x01, KEY_D)
513 MATRIX_KEY(0x01, 0x02, KEY_F)
514 MATRIX_KEY(0x01, 0x03, KEY_G)
515 MATRIX_KEY(0x01, 0x04, KEY_H)
516 MATRIX_KEY(0x01, 0x05, KEY_J)
517 MATRIX_KEY(0x01, 0x06, KEY_K)
518 MATRIX_KEY(0x01, 0x07, KEY_L)
520 MATRIX_KEY(0x02, 0x00, KEY_E)
521 MATRIX_KEY(0x02, 0x01, KEY_DOT)
522 MATRIX_KEY(0x02, 0x02, KEY_UP)
523 MATRIX_KEY(0x02, 0x03, KEY_ENTER)
524 MATRIX_KEY(0x02, 0x05, KEY_Z)
525 MATRIX_KEY(0x02, 0x06, KEY_X)
526 MATRIX_KEY(0x02, 0x07, KEY_C)
527 MATRIX_KEY(0x02, 0x08, KEY_F9)
529 MATRIX_KEY(0x03, 0x00, KEY_R)
530 MATRIX_KEY(0x03, 0x01, KEY_V)
531 MATRIX_KEY(0x03, 0x02, KEY_B)
532 MATRIX_KEY(0x03, 0x03, KEY_N)
533 MATRIX_KEY(0x03, 0x04, KEY_M)
534 MATRIX_KEY(0x03, 0x05, KEY_SPACE)
535 MATRIX_KEY(0x03, 0x06, KEY_SPACE)
536 MATRIX_KEY(0x03, 0x07, KEY_LEFT)
538 MATRIX_KEY(0x04, 0x00, KEY_T)
539 MATRIX_KEY(0x04, 0x01, KEY_DOWN)
540 MATRIX_KEY(0x04, 0x02, KEY_RIGHT)
541 MATRIX_KEY(0x04, 0x04, KEY_LEFTCTRL)
542 MATRIX_KEY(0x04, 0x05, KEY_RIGHTALT)
543 MATRIX_KEY(0x04, 0x06, KEY_LEFTSHIFT)
544 MATRIX_KEY(0x04, 0x08, KEY_F10)
546 MATRIX_KEY(0x05, 0x00, KEY_Y)
547 MATRIX_KEY(0x05, 0x08, KEY_F11)
549 MATRIX_KEY(0x06, 0x00, KEY_U)
551 MATRIX_KEY(0x07, 0x00, KEY_I)
552 MATRIX_KEY(0x07, 0x01, KEY_F7)
553 MATRIX_KEY(0x07, 0x02, KEY_F8)
559 ti,pulldowns = <0x03ff3f>; /* BIT(0..5) | BIT(8..17) */
563 pinctrl-names = "default";
564 pinctrl-0 = <&i2c2_pins>;
566 clock-frequency = <100000>;
568 tlv320aic3x: tlv320aic3x@18 {
569 compatible = "ti,tlv320aic3x";
571 reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
573 0 /* AIC3X_GPIO1_FUNC_DISABLED */
574 5 /* AIC3X_GPIO2_FUNC_DIGITAL_MIC_INPUT */
577 AVDD-supply = <&vmmc2>;
578 DRVDD-supply = <&vmmc2>;
579 IOVDD-supply = <&vio>;
580 DVDD-supply = <&vio>;
582 ai3x-micbias-vg = <1>;
585 tlv320aic3x_aux: tlv320aic3x@19 {
586 compatible = "ti,tlv320aic3x";
588 reset-gpios = <&gpio2 28 GPIO_ACTIVE_LOW>; /* 60 */
590 AVDD-supply = <&vmmc2>;
591 DRVDD-supply = <&vmmc2>;
592 IOVDD-supply = <&vio>;
593 DVDD-supply = <&vio>;
595 ai3x-micbias-vg = <2>;
598 tsl2563: tsl2563@29 {
599 compatible = "amstaos,tsl2563";
602 amstaos,cover-comp-gain = <16>;
605 adp1653: led-controller@30 {
606 compatible = "adi,adp1653";
608 enable-gpios = <&gpio3 24 GPIO_ACTIVE_HIGH>; /* 88 */
611 flash-timeout-us = <500000>;
612 flash-max-microamp = <320000>;
613 led-max-microamp = <50000>;
616 led-max-microamp = <17500>;
621 compatible = "national,lp5523";
623 clock-mode = /bits/ 8 <0>; /* LP55XX_CLOCK_AUTO */
624 enable-gpio = <&gpio2 9 GPIO_ACTIVE_HIGH>; /* 41 */
627 chan-name = "lp5523:kb1";
628 led-cur = /bits/ 8 <50>;
629 max-cur = /bits/ 8 <100>;
633 chan-name = "lp5523:kb2";
634 led-cur = /bits/ 8 <50>;
635 max-cur = /bits/ 8 <100>;
639 chan-name = "lp5523:kb3";
640 led-cur = /bits/ 8 <50>;
641 max-cur = /bits/ 8 <100>;
645 chan-name = "lp5523:kb4";
646 led-cur = /bits/ 8 <50>;
647 max-cur = /bits/ 8 <100>;
651 chan-name = "lp5523:b";
652 led-cur = /bits/ 8 <50>;
653 max-cur = /bits/ 8 <100>;
657 chan-name = "lp5523:g";
658 led-cur = /bits/ 8 <50>;
659 max-cur = /bits/ 8 <100>;
663 chan-name = "lp5523:r";
664 led-cur = /bits/ 8 <50>;
665 max-cur = /bits/ 8 <100>;
669 chan-name = "lp5523:kb5";
670 led-cur = /bits/ 8 <50>;
671 max-cur = /bits/ 8 <100>;
675 chan-name = "lp5523:kb6";
676 led-cur = /bits/ 8 <50>;
677 max-cur = /bits/ 8 <100>;
681 bq27200: bq27200@55 {
682 compatible = "ti,bq27200";
684 power-supplies = <&bq24150a>;
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 */
792 lens-focus = <&ad5820>;
796 bus-type = <3>; /* CCP2 */
801 remote-endpoint = <&csi_isp>;
806 /* D/A converter for auto-focus */
808 compatible = "adi,ad5820";
811 VANA-supply = <&vaux4>;
813 #io-channel-cells = <0>;
818 pinctrl-names = "default";
819 pinctrl-0 = <&mmc1_pins>;
820 vmmc-supply = <&vmmc1>;
822 /* For debugging, it is often good idea to remove this GPIO.
823 It means you can remove back cover (to reboot by removing
824 battery) and still use the MMC card. */
825 cd-gpios = <&gpio6 0 GPIO_ACTIVE_LOW>; /* 160 */
828 /* most boards use vaux3, only some old versions use vmmc2 instead */
830 pinctrl-names = "default";
831 pinctrl-0 = <&mmc2_pins>;
832 vmmc-supply = <&vaux3>;
833 vqmmc-supply = <&vsim>;
845 ranges = <0 0 0x01000000 0x01000000>, /* 16 MB for OneNAND */
846 <1 0 0x02000000 0x01000000>; /* 16 MB for smc91c96 */
847 pinctrl-names = "default";
848 pinctrl-0 = <&gpmc_pins>;
850 /* sys_ndmareq1 could be used by the driver, not as gpio65 though */
852 #address-cells = <1>;
854 compatible = "ti,omap2-onenand";
855 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */
858 * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported
859 * bootloader set values when booted with v5.1
860 * (OneNAND Manufacturer: Samsung):
862 * cs0 GPMC_CS_CONFIG1: 0xfb001202
863 * cs0 GPMC_CS_CONFIG2: 0x00111100
864 * cs0 GPMC_CS_CONFIG3: 0x00020200
865 * cs0 GPMC_CS_CONFIG4: 0x11001102
866 * cs0 GPMC_CS_CONFIG5: 0x03101616
867 * cs0 GPMC_CS_CONFIG6: 0x90060000
871 gpmc,burst-length = <16>;
875 gpmc,device-width = <2>;
876 gpmc,mux-add-data = <2>;
878 gpmc,cs-rd-off-ns = <102>;
879 gpmc,cs-wr-off-ns = <102>;
880 gpmc,adv-on-ns = <0>;
881 gpmc,adv-rd-off-ns = <12>;
882 gpmc,adv-wr-off-ns = <12>;
883 gpmc,oe-on-ns = <12>;
884 gpmc,oe-off-ns = <102>;
886 gpmc,we-off-ns = <102>;
887 gpmc,rd-cycle-ns = <132>;
888 gpmc,wr-cycle-ns = <132>;
889 gpmc,access-ns = <96>;
890 gpmc,page-burst-access-ns = <18>;
891 gpmc,bus-turnaround-ns = <0>;
892 gpmc,cycle2cycle-delay-ns = <0>;
893 gpmc,wait-monitoring-ns = <0>;
894 gpmc,clk-activation-ns = <6>;
895 gpmc,wr-data-mux-bus-ns = <36>;
896 gpmc,wr-access-ns = <96>;
897 gpmc,sync-clk-ps = <15000>;
900 * MTD partition table corresponding to Nokia's
901 * Maemo 5 (Fremantle) release.
904 label = "bootloader";
905 reg = <0x00000000 0x00020000>;
910 reg = <0x00020000 0x00060000>;
914 reg = <0x00080000 0x00040000>;
918 reg = <0x000c0000 0x00200000>;
922 reg = <0x002c0000 0x00200000>;
926 reg = <0x004c0000 0x0fb40000>;
930 /* Ethernet is on some early development boards and qemu */
932 compatible = "smsc,lan91c94";
933 interrupt-parent = <&gpio2>;
934 interrupts = <22 IRQ_TYPE_LEVEL_HIGH>; /* gpio54 */
935 reg = <1 0 0xf>; /* 16 byte IO range */
937 pinctrl-names = "default";
938 pinctrl-0 = <ðernet_pins>;
939 power-gpios = <&gpio3 22 GPIO_ACTIVE_HIGH>; /* gpio86 */
940 reset-gpios = <&gpio6 4 GPIO_ACTIVE_HIGH>; /* gpio164 */
941 gpmc,device-width = <2>;
942 gpmc,sync-clk-ps = <0>;
944 gpmc,cs-rd-off-ns = <48>;
945 gpmc,cs-wr-off-ns = <24>;
946 gpmc,adv-on-ns = <0>;
947 gpmc,adv-rd-off-ns = <0>;
948 gpmc,adv-wr-off-ns = <0>;
949 gpmc,we-on-ns = <12>;
950 gpmc,we-off-ns = <18>;
951 gpmc,oe-on-ns = <12>;
952 gpmc,oe-off-ns = <48>;
953 gpmc,page-burst-access-ns = <0>;
954 gpmc,access-ns = <42>;
955 gpmc,rd-cycle-ns = <180>;
956 gpmc,wr-cycle-ns = <180>;
957 gpmc,bus-turnaround-ns = <0>;
958 gpmc,cycle2cycle-delay-ns = <0>;
959 gpmc,wait-monitoring-ns = <0>;
960 gpmc,clk-activation-ns = <0>;
961 gpmc,wr-access-ns = <0>;
962 gpmc,wr-data-mux-bus-ns = <12>;
968 * For some reason, touchscreen is necessary for screen to work at
969 * all on real hw. It works well without it on emulator.
971 * Also... order in the device tree actually matters here.
974 compatible = "ti,tsc2005";
975 spi-max-frequency = <6000000>;
980 reset-gpios = <&gpio4 8 GPIO_ACTIVE_HIGH>; /* 104 */
981 interrupts-extended = <&gpio4 4 IRQ_TYPE_EDGE_RISING>; /* 100 */
983 touchscreen-fuzz-x = <4>;
984 touchscreen-fuzz-y = <7>;
985 touchscreen-fuzz-pressure = <2>;
986 touchscreen-size-x = <4096>;
987 touchscreen-size-y = <4096>;
988 touchscreen-max-pressure = <2048>;
990 ti,x-plate-ohms = <280>;
991 ti,esd-recovery-timeout-ms = <8000>;
995 compatible = "sony,acx565akm";
996 spi-max-frequency = <6000000>;
999 pinctrl-names = "default";
1000 pinctrl-0 = <&acx565akm_pins>;
1003 reset-gpios = <&gpio3 26 GPIO_ACTIVE_HIGH>; /* 90 */
1007 remote-endpoint = <&sdi_out>;
1014 pinctrl-names = "default";
1015 pinctrl-0 = <&mcspi4_pins>;
1018 pinctrl-names = "default";
1019 pinctrl-0 = <&wl1251_pins>;
1021 vio-supply = <&vio>;
1023 compatible = "ti,wl1251";
1025 spi-max-frequency = <48000000>;
1030 ti,power-gpio = <&gpio3 23 GPIO_ACTIVE_HIGH>; /* 87 */
1032 interrupt-parent = <&gpio2>;
1033 interrupts = <10 IRQ_TYPE_NONE>; /* gpio line 42 */
1039 /* RNG not directly accessible on n900, see omap3-rom-rng instead */
1041 status = "disabled";
1045 interface-type = <0>;
1046 usb-phy = <&usb2_phy>;
1048 phy-names = "usb2-phy";
1054 status = "disabled";
1058 pinctrl-names = "default";
1059 pinctrl-0 = <&uart2_pins>;
1061 bcm2048: bluetooth {
1062 compatible = "brcm,bcm2048-nokia", "nokia,h4p-bluetooth";
1063 reset-gpios = <&gpio3 27 GPIO_ACTIVE_LOW>; /* 91 */
1064 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */
1065 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */
1067 clock-names = "sysclk";
1072 interrupts-extended = <&intc 74 &omap3_pmx_core OMAP3_UART3_RX>;
1073 pinctrl-names = "default";
1074 pinctrl-0 = <&uart3_pins>;
1080 pinctrl-names = "default";
1081 pinctrl-0 = <&dss_sdi_pins>;
1083 vdds_sdi-supply = <&vaux1>;
1086 #address-cells = <1>;
1093 remote-endpoint = <&lcd_in>;
1103 vdda-supply = <&vdac>;
1106 venc_out: endpoint {
1107 remote-endpoint = <&tv_connector_in>;
1118 pinctrl-names = "default";
1119 pinctrl-0 = <&ssi_pins>;
1121 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */
1124 compatible = "nokia,n900-modem";
1126 pinctrl-names = "default";
1127 pinctrl-0 = <&modem_pins>;
1129 hsi-channel-ids = <0>, <1>, <2>, <3>;
1130 hsi-channel-names = "mcsaab-control",
1134 hsi-speed-kbps = <55000>;
1136 hsi-flow = "synchronized";
1137 hsi-arb-mode = "round-robin";
1139 interrupts-extended = <&gpio3 8 IRQ_TYPE_EDGE_FALLING>; /* 72 */
1141 gpios = <&gpio3 6 GPIO_ACTIVE_HIGH>, /* 70 */
1142 <&gpio3 9 GPIO_ACTIVE_HIGH>, /* 73 */
1143 <&gpio3 10 GPIO_ACTIVE_HIGH>, /* 74 */
1144 <&gpio3 11 GPIO_ACTIVE_HIGH>, /* 75 */
1145 <&gpio5 29 GPIO_ACTIVE_HIGH>; /* 157 */
1146 gpio-names = "cmt_apeslpx",
1155 status = "disabled";