1// SPDX-License-Identifier: GPL-2.0-only 2/* 3 * omap3-n950-n9.dtsi - Device Tree file for Nokia N950 & N9 (common stuff) 4 * 5 * Written by: Aaro Koskinen <aaro.koskinen@iki.fi> 6 */ 7 8#include "omap36xx.dtsi" 9 10/ { 11 cpus { 12 cpu@0 { 13 cpu0-supply = <&vcc>; 14 }; 15 }; 16 17 memory@80000000 { 18 device_type = "memory"; 19 reg = <0x80000000 0x40000000>; /* 1 GB */ 20 }; 21 22 vemmc: fixedregulator0 { 23 compatible = "regulator-fixed"; 24 regulator-name = "VEMMC"; 25 regulator-min-microvolt = <2900000>; 26 regulator-max-microvolt = <2900000>; 27 gpio = <&gpio5 29 GPIO_ACTIVE_HIGH>; /* gpio line 157 */ 28 startup-delay-us = <150>; 29 enable-active-high; 30 }; 31 32 vwlan_fixed: fixedregulator2 { 33 compatible = "regulator-fixed"; 34 regulator-name = "VWLAN"; 35 gpio = <&gpio2 3 GPIO_ACTIVE_HIGH>; /* gpio 35 */ 36 enable-active-high; 37 }; 38 39 leds { 40 compatible = "gpio-leds"; 41 42 heartbeat { 43 label = "debug::sleep"; 44 gpios = <&gpio3 28 GPIO_ACTIVE_HIGH>; /* gpio92 */ 45 linux,default-trigger = "default-on"; 46 pinctrl-names = "default"; 47 pinctrl-0 = <&debug_leds>; 48 }; 49 }; 50 51 /* controlled (enabled/disabled) directly by wl1271 */ 52 vctcxo: vctcxo { 53 compatible = "fixed-clock"; 54 #clock-cells = <0>; 55 clock-frequency = <38400000>; 56 }; 57}; 58 59&omap3_pmx_core { 60 accelerator_pins: pinmux_accelerator_pins { 61 pinctrl-single,pins = < 62 OMAP3_CORE1_IOPAD(0x21da, PIN_INPUT | MUX_MODE4) /* mcspi2_somi.gpio_180 -> LIS302 INT1 */ 63 OMAP3_CORE1_IOPAD(0x21dc, PIN_INPUT | MUX_MODE4) /* mcspi2_cs0.gpio_181 -> LIS302 INT2 */ 64 >; 65 }; 66 67 debug_leds: pinmux_debug_led_pins { 68 pinctrl-single,pins = < 69 OMAP3_CORE1_IOPAD(0x2108, PIN_OUTPUT | MUX_MODE4) /* dss_data22.gpio_92 */ 70 >; 71 }; 72 73 mmc2_pins: pinmux_mmc2_pins { 74 pinctrl-single,pins = < 75 OMAP3_CORE1_IOPAD(0x2158, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_clk */ 76 OMAP3_CORE1_IOPAD(0x215a, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_cmd */ 77 OMAP3_CORE1_IOPAD(0x215c, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat0 */ 78 OMAP3_CORE1_IOPAD(0x215e, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat1 */ 79 OMAP3_CORE1_IOPAD(0x2160, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat2 */ 80 OMAP3_CORE1_IOPAD(0x2162, PIN_INPUT_PULLUP | MUX_MODE0) /* sdmmc2_dat3 */ 81 >; 82 }; 83 84 wlan_pins: pinmux_wlan_pins { 85 pinctrl-single,pins = < 86 OMAP3_CORE1_IOPAD(0x207c, PIN_OUTPUT | MUX_MODE4) /* gpio 35 - wlan enable */ 87 OMAP3_CORE1_IOPAD(0x208a, PIN_INPUT | MUX_MODE4) /* gpio 42 - wlan irq */ 88 >; 89 }; 90 91 ssi_pins: pinmux_ssi_pins { 92 pinctrl-single,pins = < 93 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE1) /* ssi1_dat_tx */ 94 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE1) /* ssi1_flag_tx */ 95 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLUP | MUX_MODE1) /* ssi1_rdy_tx */ 96 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4) /* ssi1_wake_tx (cawake) */ 97 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE1) /* ssi1_dat_rx */ 98 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE1) /* ssi1_flag_rx */ 99 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE1) /* ssi1_rdy_rx */ 100 OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE1) /* ssi1_wake */ 101 >; 102 }; 103 104 ssi_pins_idle: pinmux_ssi_pins_idle { 105 pinctrl-single,pins = < 106 OMAP3_CORE1_IOPAD(0x217c, PIN_OUTPUT | MUX_MODE7) /* ssi1_dat_tx */ 107 OMAP3_CORE1_IOPAD(0x217e, PIN_OUTPUT | MUX_MODE7) /* ssi1_flag_tx */ 108 OMAP3_CORE1_IOPAD(0x2180, PIN_INPUT_PULLDOWN | MUX_MODE7) /* ssi1_rdy_tx */ 109 OMAP3_CORE1_IOPAD(0x2182, PIN_INPUT | MUX_MODE4) /* ssi1_wake_tx (cawake) */ 110 OMAP3_CORE1_IOPAD(0x2184, PIN_INPUT | MUX_MODE7) /* ssi1_dat_rx */ 111 OMAP3_CORE1_IOPAD(0x2186, PIN_INPUT | MUX_MODE7) /* ssi1_flag_rx */ 112 OMAP3_CORE1_IOPAD(0x2188, PIN_OUTPUT | MUX_MODE4) /* ssi1_rdy_rx */ 113 OMAP3_CORE1_IOPAD(0x218a, PIN_OUTPUT | MUX_MODE7) /* ssi1_wake */ 114 >; 115 }; 116 117 modem_pins1: pinmux_modem_core1_pins { 118 pinctrl-single,pins = < 119 OMAP3_CORE1_IOPAD(0x207a, PIN_INPUT | MUX_MODE4) /* gpio_34 (ape_rst_rq) */ 120 OMAP3_CORE1_IOPAD(0x2100, PIN_OUTPUT | MUX_MODE4) /* gpio_88 (cmt_rst_rq) */ 121 OMAP3_CORE1_IOPAD(0x210a, PIN_OUTPUT | MUX_MODE4) /* gpio_93 (cmt_apeslpx) */ 122 >; 123 }; 124 125 uart2_pins: pinmux_uart2_pins { 126 pinctrl-single,pins = < 127 OMAP3_CORE1_IOPAD(0x2174, PIN_INPUT_PULLUP | MUX_MODE0) /* uart2_cts */ 128 OMAP3_CORE1_IOPAD(0x2176, PIN_OUTPUT | MUX_MODE0) /* uart2_rts */ 129 OMAP3_CORE1_IOPAD(0x2178, PIN_OUTPUT | MUX_MODE0) /* uart2_tx */ 130 OMAP3_CORE1_IOPAD(0x217a, PIN_INPUT | MUX_MODE0) /* uart2_rx */ 131 >; 132 }; 133}; 134 135&omap3_pmx_core2 { 136 modem_pins2: pinmux_modem_core2_pins { 137 pinctrl-single,pins = < 138 OMAP3630_CORE2_IOPAD(0x25ec, PIN_OUTPUT | MUX_MODE4) /* gpio_23 (cmt_en) */ 139 >; 140 }; 141}; 142 143&i2c1 { 144 clock-frequency = <2900000>; 145 146 twl: twl@48 { 147 reg = <0x48>; 148 interrupts = <7>; /* SYS_NIRQ cascaded to intc */ 149 interrupt-parent = <&intc>; 150 }; 151}; 152 153/include/ "twl4030.dtsi" 154 155&twl { 156 compatible = "ti,twl5031"; 157 158 twl_power: power { 159 compatible = "ti,twl4030-power"; 160 ti,use_poweroff; 161 }; 162}; 163 164&twl_gpio { 165 ti,pullups = <0x000001>; /* BIT(0) */ 166 ti,pulldowns = <0x008106>; /* BIT(1) | BIT(2) | BIT(8) | BIT(15) */ 167}; 168 169&vdac { 170 regulator-name = "vdac"; 171 regulator-min-microvolt = <1800000>; 172 regulator-max-microvolt = <1800000>; 173}; 174 175&vpll1 { 176 regulator-name = "vpll1"; 177 regulator-min-microvolt = <1800000>; 178 regulator-max-microvolt = <1800000>; 179}; 180 181&vpll2 { 182 regulator-name = "vpll2"; 183 regulator-min-microvolt = <1800000>; 184 regulator-max-microvolt = <1800000>; 185}; 186 187&vaux1 { 188 regulator-name = "vaux1"; 189 regulator-min-microvolt = <2800000>; 190 regulator-max-microvolt = <2800000>; 191}; 192 193/* CSI-2 receiver */ 194&vaux2 { 195 regulator-name = "vaux2"; 196 regulator-min-microvolt = <1800000>; 197 regulator-max-microvolt = <1800000>; 198}; 199 200/* Cameras */ 201&vaux3 { 202 regulator-name = "vaux3"; 203 regulator-min-microvolt = <2800000>; 204 regulator-max-microvolt = <2800000>; 205}; 206 207&vaux4 { 208 regulator-name = "vaux4"; 209 regulator-min-microvolt = <2800000>; 210 regulator-max-microvolt = <2800000>; 211}; 212 213&vmmc1 { 214 regulator-name = "vmmc1"; 215 regulator-min-microvolt = <1850000>; 216 regulator-max-microvolt = <3150000>; 217}; 218 219&vmmc2 { 220 regulator-name = "vmmc2"; 221 regulator-min-microvolt = <3000000>; 222 regulator-max-microvolt = <3000000>; 223}; 224 225&vintana1 { 226 regulator-name = "vintana1"; 227 regulator-min-microvolt = <1500000>; 228 regulator-max-microvolt = <1500000>; 229}; 230 231&vintana2 { 232 regulator-name = "vintana2"; 233 regulator-min-microvolt = <2750000>; 234 regulator-max-microvolt = <2750000>; 235}; 236 237&vintdig { 238 regulator-name = "vintdig"; 239 regulator-min-microvolt = <1500000>; 240 regulator-max-microvolt = <1500000>; 241}; 242 243&vsim { 244 regulator-name = "vsim"; 245 regulator-min-microvolt = <1800000>; 246 regulator-max-microvolt = <1800000>; 247}; 248 249&vio { 250 regulator-name = "vio"; 251 regulator-min-microvolt = <1800000>; 252 regulator-max-microvolt = <1800000>; 253}; 254 255&i2c2 { 256 clock-frequency = <400000>; 257 258 as3645a@30 { 259 #address-cells = <1>; 260 #size-cells = <0>; 261 reg = <0x30>; 262 compatible = "ams,as3645a"; 263 as3645a_flash: flash@0 { 264 reg = <0x0>; 265 flash-timeout-us = <150000>; 266 flash-max-microamp = <320000>; 267 led-max-microamp = <60000>; 268 ams,input-max-microamp = <1750000>; 269 }; 270 as3645a_indicator: indicator@1 { 271 reg = <0x1>; 272 led-max-microamp = <10000>; 273 }; 274 }; 275}; 276 277&i2c3 { 278 clock-frequency = <400000>; 279 280 lis302: lis302@1d { 281 compatible = "st,lis3lv02d"; 282 reg = <0x1d>; 283 284 Vdd-supply = <&vaux1>; 285 Vdd_IO-supply = <&vio>; 286 287 pinctrl-names = "default"; 288 pinctrl-0 = <&accelerator_pins>; 289 290 interrupts-extended = <&gpio6 20 IRQ_TYPE_EDGE_FALLING>, <&gpio6 21 IRQ_TYPE_EDGE_FALLING>; /* 180, 181 */ 291 292 /* click flags */ 293 st,click-single-x; 294 st,click-single-y; 295 st,click-single-z; 296 297 /* Limits are 0.5g * value */ 298 st,click-threshold-x = <8>; 299 st,click-threshold-y = <8>; 300 st,click-threshold-z = <10>; 301 302 /* Click must be longer than time limit */ 303 st,click-time-limit = <9>; 304 305 /* Kind of debounce filter */ 306 st,click-latency = <50>; 307 308 st,wakeup-x-hi; 309 st,wakeup-y-hi; 310 st,wakeup-threshold = <(800/18)>; /* millig-value / 18 to get HW values */ 311 312 st,wakeup2-z-hi; 313 st,wakeup2-threshold = <(1000/18)>; /* millig-value / 18 to get HW values */ 314 315 st,highpass-cutoff-hz = <2>; 316 317 /* Interrupt line 1 for thresholds */ 318 st,irq1-ff-wu-1; 319 st,irq1-ff-wu-2; 320 /* Interrupt line 2 for click detection */ 321 st,irq2-click; 322 323 st,wu-duration-1 = <8>; 324 st,wu-duration-2 = <8>; 325 }; 326}; 327 328&mmc1 { 329 status = "disabled"; 330}; 331 332&mmc2 { 333 pinctrl-names = "default"; 334 pinctrl-0 = <&mmc2_pins>; 335 vmmc-supply = <&vemmc>; 336 bus-width = <4>; 337 ti,non-removable; 338}; 339 340&mmc3 { 341 status = "disabled"; 342}; 343 344/* RNG not directly accessible on N950/N9. */ 345&rng_target { 346 status = "disabled"; 347}; 348 349&usb_otg_hs { 350 interface-type = <0>; 351 usb-phy = <&usb2_phy>; 352 phys = <&usb2_phy>; 353 phy-names = "usb2-phy"; 354 mode = <3>; 355 power = <50>; 356}; 357 358&gpmc { 359 ranges = <0 0 0x04000000 0x1000000>; /* CS0: 16MB for OneNAND */ 360 361 onenand@0,0 { 362 #address-cells = <1>; 363 #size-cells = <1>; 364 compatible = "ti,omap2-onenand"; 365 reg = <0 0 0x20000>; /* CS0, offset 0, IO size 128K */ 366 367 /* 368 * These timings are based on CONFIG_OMAP_GPMC_DEBUG=y reported 369 * bootloader set values when booted with v4.19 using both N950 370 * and N9 devices (OneNAND Manufacturer: Samsung): 371 * 372 * gpmc cs0 before gpmc_cs_program_settings: 373 * cs0 GPMC_CS_CONFIG1: 0xfd001202 374 * cs0 GPMC_CS_CONFIG2: 0x00181800 375 * cs0 GPMC_CS_CONFIG3: 0x00030300 376 * cs0 GPMC_CS_CONFIG4: 0x18001804 377 * cs0 GPMC_CS_CONFIG5: 0x03171d1d 378 * cs0 GPMC_CS_CONFIG6: 0x97080000 379 */ 380 gpmc,sync-read; 381 gpmc,sync-write; 382 gpmc,burst-length = <16>; 383 gpmc,burst-read; 384 gpmc,burst-wrap; 385 gpmc,burst-write; 386 gpmc,device-width = <2>; 387 gpmc,mux-add-data = <2>; 388 gpmc,cs-on-ns = <0>; 389 gpmc,cs-rd-off-ns = <122>; 390 gpmc,cs-wr-off-ns = <122>; 391 gpmc,adv-on-ns = <0>; 392 gpmc,adv-rd-off-ns = <15>; 393 gpmc,adv-wr-off-ns = <15>; 394 gpmc,oe-on-ns = <20>; 395 gpmc,oe-off-ns = <122>; 396 gpmc,we-on-ns = <0>; 397 gpmc,we-off-ns = <122>; 398 gpmc,rd-cycle-ns = <148>; 399 gpmc,wr-cycle-ns = <148>; 400 gpmc,access-ns = <117>; 401 gpmc,page-burst-access-ns = <15>; 402 gpmc,bus-turnaround-ns = <0>; 403 gpmc,cycle2cycle-delay-ns = <0>; 404 gpmc,wait-monitoring-ns = <0>; 405 gpmc,clk-activation-ns = <10>; 406 gpmc,wr-data-mux-bus-ns = <40>; 407 gpmc,wr-access-ns = <117>; 408 409 gpmc,sync-clk-ps = <15000>; /* TBC; Where this value came? */ 410 411 /* 412 * MTD partition table corresponding to Nokia's MeeGo 1.2 413 * Harmattan release. 414 */ 415 partition@0 { 416 label = "bootloader"; 417 reg = <0x00000000 0x00100000>; 418 }; 419 partition@1 { 420 label = "config"; 421 reg = <0x00100000 0x002c0000>; 422 }; 423 partition@2 { 424 label = "kernel"; 425 reg = <0x003c0000 0x01000000>; 426 }; 427 partition@3 { 428 label = "log"; 429 reg = <0x013c0000 0x00200000>; 430 }; 431 partition@4 { 432 label = "var"; 433 reg = <0x015c0000 0x1ca40000>; 434 }; 435 partition@5 { 436 label = "moslo"; 437 reg = <0x1e000000 0x02000000>; 438 }; 439 partition@6 { 440 label = "omap2-onenand"; 441 reg = <0x00000000 0x20000000>; 442 }; 443 }; 444}; 445 446&ssi_port1 { 447 pinctrl-names = "default", "idle"; 448 pinctrl-0 = <&ssi_pins>; 449 pinctrl-1 = <&ssi_pins_idle>; 450 451 ti,ssi-cawake-gpio = <&gpio5 23 GPIO_ACTIVE_HIGH>; /* 151 */ 452 453 modem: hsi-client { 454 pinctrl-names = "default"; 455 pinctrl-0 = <&modem_pins1 &modem_pins2>; 456 457 hsi-channel-ids = <0>, <1>, <2>, <3>; 458 hsi-channel-names = "mcsaab-control", 459 "speech-control", 460 "speech-data", 461 "mcsaab-data"; 462 hsi-speed-kbps = <96000>; 463 hsi-mode = "frame"; 464 hsi-flow = "synchronized"; 465 hsi-arb-mode = "round-robin"; 466 467 interrupts-extended = <&gpio2 2 IRQ_TYPE_EDGE_RISING>; /* gpio 34 */ 468 469 gpios = <&gpio3 29 GPIO_ACTIVE_HIGH>, /* gpio 93 */ 470 <&gpio3 24 GPIO_ACTIVE_HIGH>, /* gpio 88 */ 471 <&gpio1 23 GPIO_ACTIVE_HIGH>; /* gpio 23 */ 472 gpio-names = "cmt_apeslpx", 473 "cmt_rst_rq", 474 "cmt_en"; 475 }; 476}; 477 478&ssi_port2 { 479 status = "disabled"; 480}; 481 482&uart2 { 483 pinctrl-names = "default"; 484 pinctrl-0 = <&uart2_pins>; 485 486 bluetooth { 487 compatible = "ti,wl1271-bluetooth-nokia", "nokia,h4p-bluetooth"; 488 489 reset-gpios = <&gpio1 26 GPIO_ACTIVE_LOW>; /* 26 */ 490 host-wakeup-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* 101 */ 491 bluetooth-wakeup-gpios = <&gpio2 5 GPIO_ACTIVE_HIGH>; /* 37 */ 492 493 clocks = <&vctcxo>; 494 clock-names = "sysclk"; 495 }; 496}; 497