motorola-mapphone-common.dtsi 18 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738
  1. // SPDX-License-Identifier: GPL-2.0-only
  2. /dts-v1/;
  3. #include <dt-bindings/input/input.h>
  4. #include "omap443x.dtsi"
  5. #include "motorola-cpcap-mapphone.dtsi"
  6. / {
  7. chosen {
  8. stdout-path = &uart3;
  9. };
  10. aliases {
  11. display0 = &lcd0;
  12. display1 = &hdmi0;
  13. };
  14. /*
  15. * We seem to have only 1021 MB accessible, 1021 - 1022 is locked,
  16. * then 1023 - 1024 seems to contain mbm.
  17. */
  18. memory {
  19. device_type = "memory";
  20. reg = <0x80000000 0x3fd00000>; /* 1021 MB */
  21. };
  22. /* Poweroff GPIO probably connected to CPCAP */
  23. gpio-poweroff {
  24. compatible = "gpio-poweroff";
  25. pinctrl-0 = <&poweroff_gpio>;
  26. pinctrl-names = "default";
  27. gpios = <&gpio2 18 GPIO_ACTIVE_LOW>; /* gpio50 */
  28. };
  29. hdmi0: connector {
  30. compatible = "hdmi-connector";
  31. pinctrl-0 = <&hdmi_hpd_gpio>;
  32. pinctrl-names = "default";
  33. label = "hdmi";
  34. type = "d";
  35. hpd-gpios = <&gpio2 31 GPIO_ACTIVE_HIGH>; /* gpio63 */
  36. port {
  37. hdmi_connector_in: endpoint {
  38. remote-endpoint = <&hdmi_out>;
  39. };
  40. };
  41. };
  42. /*
  43. * HDMI 5V regulator probably sourced from battery. Let's keep
  44. * keep this as always enabled for HDMI to work until we've
  45. * figured what the encoder chip is.
  46. */
  47. hdmi_regulator: regulator-hdmi {
  48. compatible = "regulator-fixed";
  49. regulator-name = "hdmi";
  50. regulator-min-microvolt = <5000000>;
  51. regulator-max-microvolt = <5000000>;
  52. gpio = <&gpio2 27 GPIO_ACTIVE_HIGH>; /* gpio59 */
  53. enable-active-high;
  54. regulator-always-on;
  55. };
  56. /* FS USB Host PHY on port 1 for mdm6600 */
  57. fsusb1_phy: usb-phy@1 {
  58. compatible = "motorola,mapphone-mdm6600";
  59. pinctrl-0 = <&usb_mdm6600_pins>;
  60. pinctrl-names = "default";
  61. enable-gpios = <&gpio3 31 GPIO_ACTIVE_LOW>; /* gpio_95 */
  62. power-gpios = <&gpio2 22 GPIO_ACTIVE_HIGH>; /* gpio_54 */
  63. reset-gpios = <&gpio2 17 GPIO_ACTIVE_HIGH>; /* gpio_49 */
  64. /* mode: gpio_148 gpio_149 */
  65. motorola,mode-gpios = <&gpio5 20 GPIO_ACTIVE_HIGH>,
  66. <&gpio5 21 GPIO_ACTIVE_HIGH>;
  67. /* cmd: gpio_103 gpio_104 gpio_142 */
  68. motorola,cmd-gpios = <&gpio4 7 GPIO_ACTIVE_HIGH>,
  69. <&gpio4 8 GPIO_ACTIVE_HIGH>,
  70. <&gpio5 14 GPIO_ACTIVE_HIGH>;
  71. /* status: gpio_52 gpio_53 gpio_55 */
  72. motorola,status-gpios = <&gpio2 20 GPIO_ACTIVE_HIGH>,
  73. <&gpio2 21 GPIO_ACTIVE_HIGH>,
  74. <&gpio2 23 GPIO_ACTIVE_HIGH>;
  75. #phy-cells = <0>;
  76. };
  77. /* HS USB host TLL nop-phy on port 2 for w3glte */
  78. hsusb2_phy: usb-phy@2 {
  79. compatible = "usb-nop-xceiv";
  80. #phy-cells = <0>;
  81. };
  82. /* LCD regulator from sw5 source */
  83. lcd_regulator: regulator-lcd {
  84. compatible = "regulator-fixed";
  85. regulator-name = "lcd";
  86. regulator-min-microvolt = <5050000>;
  87. regulator-max-microvolt = <5050000>;
  88. gpio = <&gpio4 0 GPIO_ACTIVE_HIGH>; /* gpio96 */
  89. enable-active-high;
  90. vin-supply = <&sw5>;
  91. };
  92. /* This is probably coming straight from the battery.. */
  93. wl12xx_vmmc: regulator-wl12xx {
  94. compatible = "regulator-fixed";
  95. regulator-name = "vwl1271";
  96. regulator-min-microvolt = <1650000>;
  97. regulator-max-microvolt = <1650000>;
  98. gpio = <&gpio3 30 GPIO_ACTIVE_HIGH>; /* gpio94 */
  99. startup-delay-us = <70000>;
  100. enable-active-high;
  101. };
  102. soundcard {
  103. compatible = "audio-graph-card";
  104. label = "Mapphone Audio";
  105. widgets =
  106. "Speaker", "Earpiece",
  107. "Speaker", "Loudspeaker",
  108. "Headphone", "Headphone Jack",
  109. "Microphone", "Internal Mic";
  110. routing =
  111. "Earpiece", "EP",
  112. "Loudspeaker", "SPKR",
  113. "Headphone Jack", "HSL",
  114. "Headphone Jack", "HSR",
  115. "MICR", "Internal Mic";
  116. dais = <&mcbsp2_port>, <&mcbsp3_port>;
  117. };
  118. pwm8: pwm-8 {
  119. pinctrl-names = "default";
  120. pinctrl-0 = <&vibrator_direction_pin>;
  121. compatible = "ti,omap-dmtimer-pwm";
  122. #pwm-cells = <3>;
  123. ti,timers = <&timer8>;
  124. ti,clock-source = <0x01>;
  125. };
  126. pwm9: pwm-9 {
  127. pinctrl-names = "default";
  128. pinctrl-0 = <&vibrator_enable_pin>;
  129. compatible = "ti,omap-dmtimer-pwm";
  130. #pwm-cells = <3>;
  131. ti,timers = <&timer9>;
  132. ti,clock-source = <0x01>;
  133. };
  134. vibrator {
  135. compatible = "pwm-vibrator";
  136. pwms = <&pwm9 0 10000000 0>, <&pwm8 0 10000000 0>;
  137. pwm-names = "enable", "direction";
  138. direction-duty-cycle-ns = <10000000>;
  139. };
  140. backlight: backlight {
  141. compatible = "led-backlight";
  142. leds = <&backlight_led>;
  143. brightness-levels = <31 63 95 127 159 191 223 255>;
  144. default-brightness-level = <6>;
  145. };
  146. };
  147. &cpu_thermal {
  148. polling-delay = <10000>; /* milliseconds */
  149. };
  150. &cpu_alert0 {
  151. temperature = <80000>; /* millicelsius */
  152. };
  153. &cpu0 {
  154. /*
  155. * Note that the 1.2GiHz mode is enabled for all SoC variants for
  156. * the Motorola Android Linux v3.0.8 based kernel.
  157. */
  158. operating-points = <
  159. /* kHz uV */
  160. 300000 1025000
  161. 600000 1200000
  162. 800000 1313000
  163. 1008000 1375000
  164. 1200000 1375000
  165. >;
  166. };
  167. &dss {
  168. status = "okay";
  169. };
  170. &dsi1 {
  171. status = "okay";
  172. vdd-supply = <&vcsi>;
  173. port {
  174. dsi1_out_ep: endpoint {
  175. remote-endpoint = <&lcd0_in>;
  176. lanes = <0 1 2 3 4 5>;
  177. };
  178. };
  179. lcd0: panel@0 {
  180. compatible = "motorola,droid4-panel", "panel-dsi-cm";
  181. reg = <0>;
  182. label = "lcd0";
  183. vddi-supply = <&lcd_regulator>;
  184. reset-gpios = <&gpio4 5 GPIO_ACTIVE_HIGH>; /* gpio101 */
  185. backlight = <&backlight>;
  186. width-mm = <50>;
  187. height-mm = <89>;
  188. rotation = <90>;
  189. panel-timing {
  190. clock-frequency = <0>; /* Calculated by dsi */
  191. hback-porch = <2>;
  192. hactive = <540>;
  193. hfront-porch = <0>;
  194. hsync-len = <2>;
  195. vback-porch = <1>;
  196. vactive = <960>;
  197. vfront-porch = <0>;
  198. vsync-len = <1>;
  199. hsync-active = <0>;
  200. vsync-active = <0>;
  201. de-active = <1>;
  202. pixelclk-active = <1>;
  203. };
  204. port {
  205. lcd0_in: endpoint {
  206. remote-endpoint = <&dsi1_out_ep>;
  207. };
  208. };
  209. };
  210. };
  211. &hdmi {
  212. status = "okay";
  213. pinctrl-0 = <&dss_hdmi_pins>;
  214. pinctrl-names = "default";
  215. vdda-supply = <&vdac>;
  216. port {
  217. hdmi_out: endpoint {
  218. remote-endpoint = <&hdmi_connector_in>;
  219. lanes = <1 0 3 2 5 4 7 6>;
  220. };
  221. };
  222. };
  223. /* Battery NVRAM on 1-wire handled by w1_ds250x driver */
  224. &hdqw1w {
  225. pinctrl-0 = <&hdq_pins>;
  226. pinctrl-names = "default";
  227. ti,mode = "1w";
  228. };
  229. &i2c1 {
  230. tmp105@48 {
  231. compatible = "ti,tmp105";
  232. reg = <0x48>;
  233. pinctrl-0 = <&tmp105_irq>;
  234. pinctrl-names = "default";
  235. /* kpd_row0.gpio_178 */
  236. interrupts-extended = <&gpio6 18 IRQ_TYPE_EDGE_FALLING
  237. &omap4_pmx_core 0x14e>;
  238. interrupt-names = "irq", "wakeup";
  239. wakeup-source;
  240. };
  241. };
  242. &mmc1 {
  243. vmmc-supply = <&vwlan2>;
  244. bus-width = <4>;
  245. cd-gpios = <&gpio6 16 GPIO_ACTIVE_LOW>; /* gpio176 */
  246. };
  247. &mmc2 {
  248. vmmc-supply = <&vsdio>;
  249. bus-width = <8>;
  250. ti,non-removable;
  251. };
  252. &mmc3 {
  253. pinctrl-names = "default";
  254. pinctrl-0 = <&mmc3_pins>;
  255. vmmc-supply = <&wl12xx_vmmc>;
  256. /* uart2_tx.sdmmc3_dat1 pad as wakeirq */
  257. interrupts-extended = <&wakeupgen GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH
  258. &omap4_pmx_core 0xde>;
  259. interrupt-names = "irq", "wakeup";
  260. non-removable;
  261. bus-width = <4>;
  262. cap-power-off-card;
  263. keep-power-in-suspend;
  264. #address-cells = <1>;
  265. #size-cells = <0>;
  266. wlcore: wlcore@2 {
  267. compatible = "ti,wl1285";
  268. reg = <2>;
  269. /* gpio_100 with gpmc_wait2 pad as wakeirq */
  270. interrupts-extended = <&gpio4 4 IRQ_TYPE_LEVEL_HIGH>,
  271. <&omap4_pmx_core 0x4e>;
  272. interrupt-names = "irq", "wakeup";
  273. ref-clock-frequency = <26000000>;
  274. tcxo-clock-frequency = <26000000>;
  275. };
  276. };
  277. &i2c2 {
  278. touchscreen@4a {
  279. compatible = "atmel,maxtouch";
  280. reg = <0x4a>;
  281. pinctrl-names = "default";
  282. pinctrl-0 = <&touchscreen_pins>;
  283. reset-gpios = <&gpio6 13 GPIO_ACTIVE_LOW>; /* gpio173 */
  284. /* gpio_183 with sys_nirq2 pad as wakeup */
  285. interrupts-extended = <&gpio6 23 IRQ_TYPE_LEVEL_LOW>,
  286. <&omap4_pmx_core 0x160>;
  287. interrupt-names = "irq", "wakeup";
  288. wakeup-source;
  289. };
  290. isl29030@44 {
  291. compatible = "isil,isl29030";
  292. reg = <0x44>;
  293. pinctrl-names = "default";
  294. pinctrl-0 = <&als_proximity_pins>;
  295. interrupt-parent = <&gpio6>;
  296. interrupts = <17 IRQ_TYPE_LEVEL_LOW>; /* gpio177 */
  297. };
  298. };
  299. &omap4_pmx_core {
  300. /* hdmi_hpd.gpio_63 */
  301. hdmi_hpd_gpio: hdmi-hpd-pins {
  302. pinctrl-single,pins = <
  303. OMAP4_IOPAD(0x098, PIN_INPUT | MUX_MODE3)
  304. >;
  305. };
  306. hdq_pins: hdq-pins {
  307. pinctrl-single,pins = <
  308. /* 0x4a100120 hdq_sio.hdq_sio aa27 */
  309. OMAP4_IOPAD(0x120, PIN_INPUT | MUX_MODE0)
  310. >;
  311. };
  312. /* hdmi_cec.hdmi_cec, hdmi_scl.hdmi_scl, hdmi_sda.hdmi_sda */
  313. dss_hdmi_pins: dss-hdmi-pins {
  314. pinctrl-single,pins = <
  315. OMAP4_IOPAD(0x09a, PIN_INPUT | MUX_MODE0)
  316. OMAP4_IOPAD(0x09c, PIN_INPUT | MUX_MODE0)
  317. OMAP4_IOPAD(0x09e, PIN_INPUT | MUX_MODE0)
  318. >;
  319. };
  320. /*
  321. * Android uses PIN_OFF_INPUT_PULLDOWN | PIN_INPUT_PULLUP | MUX_MODE3
  322. * for gpio_100, but the internal pull makes wlan flakey on some
  323. * devices. Off mode value should be tested if we have off mode working
  324. * later on.
  325. */
  326. mmc3_pins: mmc3-pins {
  327. pinctrl-single,pins = <
  328. /* 0x4a10008e gpmc_wait2.gpio_100 d23 */
  329. OMAP4_IOPAD(0x08e, PIN_INPUT | MUX_MODE3)
  330. /* 0x4a100102 abe_mcbsp1_dx.sdmmc3_dat2 ab25 */
  331. OMAP4_IOPAD(0x102, PIN_INPUT_PULLUP | MUX_MODE1)
  332. /* 0x4a100104 abe_mcbsp1_fsx.sdmmc3_dat3 ac27 */
  333. OMAP4_IOPAD(0x104, PIN_INPUT_PULLUP | MUX_MODE1)
  334. /* 0x4a100118 uart2_cts.sdmmc3_clk ab26 */
  335. OMAP4_IOPAD(0x118, PIN_INPUT | MUX_MODE1)
  336. /* 0x4a10011a uart2_rts.sdmmc3_cmd ab27 */
  337. OMAP4_IOPAD(0x11a, PIN_INPUT_PULLUP | MUX_MODE1)
  338. /* 0x4a10011c uart2_rx.sdmmc3_dat0 aa25 */
  339. OMAP4_IOPAD(0x11c, PIN_INPUT_PULLUP | MUX_MODE1)
  340. /* 0x4a10011e uart2_tx.sdmmc3_dat1 aa26 */
  341. OMAP4_IOPAD(0x11e, PIN_INPUT_PULLUP | MUX_MODE1)
  342. >;
  343. };
  344. /* gpmc_ncs0.gpio_50 */
  345. poweroff_gpio: poweroff-pins {
  346. pinctrl-single,pins = <
  347. OMAP4_IOPAD(0x074, PIN_OUTPUT_PULLUP | MUX_MODE3)
  348. >;
  349. };
  350. /* kpd_row0.gpio_178 */
  351. tmp105_irq: tmp105-irq-pins {
  352. pinctrl-single,pins = <
  353. OMAP4_IOPAD(0x18e, PIN_INPUT_PULLUP | MUX_MODE3)
  354. >;
  355. };
  356. usb_gpio_mux_sel1: usb-gpio-mux-sel1-pins {
  357. /* gpio_60 */
  358. pinctrl-single,pins = <
  359. OMAP4_IOPAD(0x088, PIN_OUTPUT | MUX_MODE3)
  360. >;
  361. };
  362. touchscreen_pins: touchscreen-pins {
  363. pinctrl-single,pins = <
  364. OMAP4_IOPAD(0x180, PIN_OUTPUT | MUX_MODE3)
  365. OMAP4_IOPAD(0x1a0, PIN_INPUT_PULLUP | MUX_MODE3)
  366. >;
  367. };
  368. als_proximity_pins: als-proximity-pins {
  369. pinctrl-single,pins = <
  370. OMAP4_IOPAD(0x18c, PIN_INPUT_PULLUP | MUX_MODE3)
  371. >;
  372. };
  373. usb_mdm6600_pins: usb-mdm6600-pins {
  374. pinctrl-single,pins = <
  375. /* enable 0x4a1000d8 usbb1_ulpitll_dat7.gpio_95 ag16 */
  376. OMAP4_IOPAD(0x0d8, PIN_INPUT | MUX_MODE3)
  377. /* power 0x4a10007c gpmc_nwp.gpio_54 c25 */
  378. OMAP4_IOPAD(0x07c, PIN_OUTPUT | MUX_MODE3)
  379. /* reset 0x4a100072 gpmc_a25.gpio_49 d20 */
  380. OMAP4_IOPAD(0x072, PIN_OUTPUT | MUX_MODE3)
  381. /* mode0/bpwake 0x4a10014e sdmmc5_dat1.gpio_148 af4 */
  382. OMAP4_IOPAD(0x14e, PIN_OUTPUT | MUX_MODE3)
  383. /* mode1/apwake 0x4a100150 sdmmc5_dat2.gpio_149 ag3 */
  384. OMAP4_IOPAD(0x150, PIN_OFF_OUTPUT_LOW | PIN_INPUT | MUX_MODE3)
  385. /* status0 0x4a10007e gpmc_clk.gpio_55 b22 */
  386. OMAP4_IOPAD(0x07e, PIN_INPUT | MUX_MODE3)
  387. /* status1 0x4a10007a gpmc_ncs3.gpio_53 c22 */
  388. OMAP4_IOPAD(0x07a, PIN_INPUT | MUX_MODE3)
  389. /* status2 0x4a100078 gpmc_ncs2.gpio_52 d21 */
  390. OMAP4_IOPAD(0x078, PIN_INPUT | MUX_MODE3)
  391. /* cmd0 0x4a100094 gpmc_ncs6.gpio_103 c24 */
  392. OMAP4_IOPAD(0x094, PIN_OUTPUT | MUX_MODE3)
  393. /* cmd1 0x4a100096 gpmc_ncs7.gpio_104 d24 */
  394. OMAP4_IOPAD(0x096, PIN_OUTPUT | MUX_MODE3)
  395. /* cmd2 0x4a100142 uart3_rts_sd.gpio_142 f28 */
  396. OMAP4_IOPAD(0x142, PIN_OUTPUT | MUX_MODE3)
  397. >;
  398. };
  399. usb_ulpi_pins: usb-ulpi-pins {
  400. pinctrl-single,pins = <
  401. OMAP4_IOPAD(0x196, MUX_MODE7)
  402. OMAP4_IOPAD(0x198, MUX_MODE7)
  403. OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE0)
  404. OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE0)
  405. OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE0)
  406. OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE0)
  407. OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE0)
  408. OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE0)
  409. OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE0)
  410. OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE0)
  411. OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE0)
  412. OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE0)
  413. OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE0)
  414. OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE0)
  415. >;
  416. };
  417. /* usb0_otg_dp and usb0_otg_dm */
  418. usb_utmi_pins: usb-utmi-pins {
  419. pinctrl-single,pins = <
  420. OMAP4_IOPAD(0x196, PIN_INPUT | MUX_MODE0)
  421. OMAP4_IOPAD(0x198, PIN_INPUT | MUX_MODE0)
  422. OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7)
  423. OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7)
  424. OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7)
  425. OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7)
  426. OMAP4_IOPAD(0x1ba, PIN_INPUT_PULLUP | MUX_MODE7)
  427. OMAP4_IOPAD(0x1bc, PIN_INPUT_PULLUP | MUX_MODE7)
  428. OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7)
  429. OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7)
  430. OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7)
  431. OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7)
  432. OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7)
  433. OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7)
  434. >;
  435. };
  436. /*
  437. * Note that the v3.0.8 stock userspace dynamically remuxes uart1
  438. * rts pin probably for PM purposes to PIN_INPUT_PULLUP | MUX_MODE7
  439. * when not used. If needed, we can add rts pin remux later based
  440. * on power measurements.
  441. */
  442. uart1_pins: uart1-pins {
  443. pinctrl-single,pins = <
  444. /* 0x4a10013c mcspi1_cs2.uart1_cts ag23 */
  445. OMAP4_IOPAD(0x13c, PIN_INPUT_PULLUP | MUX_MODE1)
  446. /* 0x4a10013e mcspi1_cs3.uart1_rts ah23 */
  447. OMAP4_IOPAD(0x13e, MUX_MODE1)
  448. /* 0x4a100140 uart3_cts_rctx.uart1_tx f27 */
  449. OMAP4_IOPAD(0x140, PIN_OUTPUT | MUX_MODE1)
  450. /* 0x4a1001ca dpm_emu14.uart1_rx aa3 */
  451. OMAP4_IOPAD(0x1ca, PIN_INPUT_PULLUP | MUX_MODE2)
  452. >;
  453. };
  454. /* uart3_tx_irtx and uart3_rx_irrx */
  455. uart3_pins: uart3-pins {
  456. pinctrl-single,pins = <
  457. OMAP4_IOPAD(0x196, MUX_MODE7)
  458. OMAP4_IOPAD(0x198, MUX_MODE7)
  459. OMAP4_IOPAD(0x1b2, PIN_INPUT_PULLUP | MUX_MODE7)
  460. OMAP4_IOPAD(0x1b4, PIN_INPUT_PULLUP | MUX_MODE7)
  461. OMAP4_IOPAD(0x1b6, PIN_INPUT_PULLUP | MUX_MODE7)
  462. OMAP4_IOPAD(0x1b8, PIN_INPUT_PULLUP | MUX_MODE7)
  463. OMAP4_IOPAD(0x1ba, MUX_MODE2)
  464. OMAP4_IOPAD(0x1bc, PIN_INPUT | MUX_MODE2)
  465. OMAP4_IOPAD(0x1be, PIN_INPUT_PULLUP | MUX_MODE7)
  466. OMAP4_IOPAD(0x1c0, PIN_INPUT_PULLUP | MUX_MODE7)
  467. OMAP4_IOPAD(0x1c2, PIN_INPUT_PULLUP | MUX_MODE7)
  468. OMAP4_IOPAD(0x1c4, PIN_INPUT_PULLUP | MUX_MODE7)
  469. OMAP4_IOPAD(0x1c6, PIN_INPUT_PULLUP | MUX_MODE7)
  470. OMAP4_IOPAD(0x1c8, PIN_INPUT_PULLUP | MUX_MODE7)
  471. >;
  472. };
  473. uart4_pins: uart4-pins {
  474. pinctrl-single,pins = <
  475. OMAP4_IOPAD(0x15c, PIN_INPUT | MUX_MODE0) /* uart4_rx */
  476. OMAP4_IOPAD(0x15e, PIN_OUTPUT | MUX_MODE0) /* uart4_tx */
  477. OMAP4_IOPAD(0x110, PIN_INPUT_PULLUP | MUX_MODE5) /* uart4_cts */
  478. OMAP4_IOPAD(0x112, PIN_OUTPUT_PULLUP | MUX_MODE5) /* uart4_rts */
  479. >;
  480. };
  481. mcbsp2_pins: mcbsp2-pins {
  482. pinctrl-single,pins = <
  483. OMAP4_IOPAD(0x0f6, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_clkx */
  484. OMAP4_IOPAD(0x0f8, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_dr */
  485. OMAP4_IOPAD(0x0fa, PIN_OUTPUT | MUX_MODE0) /* abe_mcbsp2_dx */
  486. OMAP4_IOPAD(0x0fc, PIN_INPUT | MUX_MODE0) /* abe_mcbsp2_fsx */
  487. >;
  488. };
  489. mcbsp3_pins: mcbsp3-pins {
  490. pinctrl-single,pins = <
  491. OMAP4_IOPAD(0x106, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_dr */
  492. OMAP4_IOPAD(0x108, PIN_OUTPUT | MUX_MODE1) /* abe_mcbsp3_dx */
  493. OMAP4_IOPAD(0x10a, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_clkx */
  494. OMAP4_IOPAD(0x10c, PIN_INPUT | MUX_MODE1) /* abe_mcbsp3_fsx */
  495. >;
  496. };
  497. vibrator_direction_pin: vibrator-direction-pins {
  498. pinctrl-single,pins = <
  499. OMAP4_IOPAD(0x1ce, PIN_OUTPUT | MUX_MODE1) /* dmtimer8_pwm_evt (gpio_27) */
  500. >;
  501. };
  502. vibrator_enable_pin: vibrator-enable-pins {
  503. pinctrl-single,pins = <
  504. OMAP4_IOPAD(0X1d0, PIN_OUTPUT | MUX_MODE1) /* dmtimer9_pwm_evt (gpio_28) */
  505. >;
  506. };
  507. };
  508. &omap4_pmx_wkup {
  509. usb_gpio_mux_sel2: usb-gpio-mux-sel2-pins {
  510. /* gpio_wk0 */
  511. pinctrl-single,pins = <
  512. OMAP4_IOPAD(0x040, PIN_OUTPUT_PULLDOWN | MUX_MODE3)
  513. >;
  514. };
  515. };
  516. /* RNG is used by secure mode and not accessible */
  517. &rng_target {
  518. status = "disabled";
  519. };
  520. /* Configure pwm clock source for timers 8 & 9 */
  521. &timer8 {
  522. assigned-clocks = <&abe_clkctrl OMAP4_TIMER8_CLKCTRL 24>;
  523. assigned-clock-parents = <&sys_32k_ck>;
  524. };
  525. &timer9 {
  526. assigned-clocks = <&l4_per_clkctrl OMAP4_TIMER9_CLKCTRL 24>;
  527. assigned-clock-parents = <&sys_32k_ck>;
  528. };
  529. /*
  530. * The uart1 port is wired to mdm6600 with rts and cts. The modem uses gpio_149
  531. * for wake-up events for both the USB PHY and the UART. We can use gpio_149
  532. * pad as the shared wakeirq for the UART rather than the RX or CTS pad as we
  533. * have gpio_149 trigger before the UART transfer starts.
  534. */
  535. &uart1 {
  536. pinctrl-names = "default";
  537. pinctrl-0 = <&uart1_pins>;
  538. interrupts-extended = <&wakeupgen GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH
  539. &omap4_pmx_core 0x110>;
  540. uart-has-rtscts;
  541. current-speed = <115200>;
  542. };
  543. &uart3 {
  544. interrupts-extended = <&wakeupgen GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH
  545. &omap4_pmx_core 0x17c>;
  546. overrun-throttle-ms = <500>;
  547. };
  548. &uart4 {
  549. pinctrl-names = "default";
  550. pinctrl-0 = <&uart4_pins>;
  551. bluetooth {
  552. compatible = "ti,wl1285-st";
  553. enable-gpios = <&gpio6 14 GPIO_ACTIVE_HIGH>; /* gpio 174 */
  554. max-speed = <3686400>;
  555. };
  556. };
  557. &usbhsohci {
  558. phys = <&fsusb1_phy>;
  559. phy-names = "usb";
  560. };
  561. &usbhsehci {
  562. phys = <&hsusb2_phy>;
  563. };
  564. &usbhshost {
  565. port1-mode = "ohci-phy-4pin-dpdm";
  566. port2-mode = "ehci-tll";
  567. };
  568. /* Internal UTMI+ PHY used for OTG, CPCAP ULPI PHY for detection and charger */
  569. &usb_otg_hs {
  570. interface-type = <1>;
  571. mode = <3>;
  572. /*
  573. * Max 300 mA steps based on similar PMIC MC13783UG.pdf "Table 10-4.
  574. * VBUS Regulator Main Characteristics". Binding uses 2 mA units.
  575. */
  576. power = <150>;
  577. };
  578. &i2c4 {
  579. ak8975: magnetometer@c {
  580. compatible = "asahi-kasei,ak8975";
  581. reg = <0x0c>;
  582. vdd-supply = <&vhvio>;
  583. interrupt-parent = <&gpio6>;
  584. interrupts = <15 IRQ_TYPE_EDGE_RISING>; /* gpio175 */
  585. rotation-matrix = "-1", "0", "0",
  586. "0", "1", "0",
  587. "0", "0", "-1";
  588. };
  589. };
  590. &mcbsp2 {
  591. #sound-dai-cells = <0>;
  592. pinctrl-names = "default";
  593. pinctrl-0 = <&mcbsp2_pins>;
  594. status = "okay";
  595. mcbsp2_port: port {
  596. cpu_dai2: endpoint {
  597. dai-format = "i2s";
  598. remote-endpoint = <&cpcap_audio_codec0>;
  599. frame-master = <&cpcap_audio_codec0>;
  600. bitclock-master = <&cpcap_audio_codec0>;
  601. };
  602. };
  603. };
  604. &mcbsp3 {
  605. #sound-dai-cells = <0>;
  606. pinctrl-names = "default";
  607. pinctrl-0 = <&mcbsp3_pins>;
  608. status = "okay";
  609. mcbsp3_port: port {
  610. cpu_dai3: endpoint {
  611. dai-format = "dsp_a";
  612. frame-master = <&cpcap_audio_codec1>;
  613. bitclock-master = <&cpcap_audio_codec1>;
  614. remote-endpoint = <&cpcap_audio_codec1>;
  615. };
  616. };
  617. };
  618. &cpcap_audio_codec0 {
  619. remote-endpoint = <&cpu_dai2>;
  620. };
  621. &cpcap_audio_codec1 {
  622. remote-endpoint = <&cpu_dai3>;
  623. };