omap3-n950-n9.dtsi 12 KB

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