omap4-panda-common.dtsi 8.3 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359
  1. /*
  2. * Copyright (C) 2011-2013 Texas Instruments Incorporated - http://www.ti.com/
  3. *
  4. * This program is free software; you can redistribute it and/or modify
  5. * it under the terms of the GNU General Public License version 2 as
  6. * published by the Free Software Foundation.
  7. */
  8. #include "elpida_ecb240abacn.dtsi"
  9. / {
  10. model = "TI OMAP4 PandaBoard";
  11. compatible = "ti,omap4-panda", "ti,omap4430", "ti,omap4";
  12. memory {
  13. device_type = "memory";
  14. reg = <0x80000000 0x40000000>; /* 1 GB */
  15. };
  16. leds: leds {
  17. compatible = "gpio-leds";
  18. pinctrl-names = "default";
  19. pinctrl-0 = <
  20. &led_wkgpio_pins
  21. >;
  22. heartbeat {
  23. label = "pandaboard::status1";
  24. gpios = <&gpio1 7 GPIO_ACTIVE_HIGH>;
  25. linux,default-trigger = "heartbeat";
  26. };
  27. mmc {
  28. label = "pandaboard::status2";
  29. gpios = <&gpio1 8 GPIO_ACTIVE_HIGH>;
  30. linux,default-trigger = "mmc0";
  31. };
  32. };
  33. sound: sound {
  34. compatible = "ti,abe-twl6040";
  35. ti,model = "PandaBoard";
  36. ti,mclk-freq = <38400000>;
  37. ti,mcpdm = <&mcpdm>;
  38. ti,twl6040 = <&twl6040>;
  39. /* Audio routing */
  40. ti,audio-routing =
  41. "Headset Stereophone", "HSOL",
  42. "Headset Stereophone", "HSOR",
  43. "Ext Spk", "HFL",
  44. "Ext Spk", "HFR",
  45. "Line Out", "AUXL",
  46. "Line Out", "AUXR",
  47. "HSMIC", "Headset Mic",
  48. "Headset Mic", "Headset Mic Bias",
  49. "AFML", "Line In",
  50. "AFMR", "Line In";
  51. };
  52. /*
  53. * Temp hack: Need to be replaced with the proper gpio-controlled
  54. * reset driver as soon it will be merged.
  55. * http://thread.gmane.org/gmane.linux.drivers.devicetree/36830
  56. */
  57. /* HS USB Port 1 RESET */
  58. hsusb1_reset: hsusb1_reset_reg {
  59. compatible = "regulator-fixed";
  60. regulator-name = "hsusb1_reset";
  61. regulator-min-microvolt = <3300000>;
  62. regulator-max-microvolt = <3300000>;
  63. gpio = <&gpio2 30 0>; /* gpio_62 */
  64. startup-delay-us = <70000>;
  65. enable-active-high;
  66. };
  67. /* HS USB Port 1 Power */
  68. hsusb1_power: hsusb1_power_reg {
  69. compatible = "regulator-fixed";
  70. regulator-name = "hsusb1_vbus";
  71. regulator-min-microvolt = <3300000>;
  72. regulator-max-microvolt = <3300000>;
  73. gpio = <&gpio1 1 0>; /* gpio_1 */
  74. startup-delay-us = <70000>;
  75. enable-active-high;
  76. /*
  77. * boot-on is required along with always-on as the
  78. * regulator framework doesn't enable the regulator
  79. * if boot-on is not there.
  80. */
  81. regulator-always-on;
  82. regulator-boot-on;
  83. };
  84. /* HS USB Host PHY on PORT 1 */
  85. hsusb1_phy: hsusb1_phy {
  86. compatible = "usb-nop-xceiv";
  87. reset-supply = <&hsusb1_reset>;
  88. vcc-supply = <&hsusb1_power>;
  89. /**
  90. * FIXME:
  91. * put the right clock phandle here when available
  92. * clocks = <&auxclk3>;
  93. * clock-names = "main_clk";
  94. */
  95. clock-frequency = <19200000>;
  96. };
  97. };
  98. &omap4_pmx_wkup {
  99. pinctrl-names = "default";
  100. pinctrl-0 = <
  101. &twl6030_wkup_pins
  102. >;
  103. twl6030_wkup_pins: pinmux_twl6030_wkup_pins {
  104. pinctrl-single,pins = <
  105. 0x14 (PIN_OUTPUT | MUX_MODE2) /* fref_clk0_out.sys_drm_msecure */
  106. >;
  107. };
  108. };
  109. &omap4_pmx_core {
  110. pinctrl-names = "default";
  111. pinctrl-0 = <
  112. &twl6030_pins
  113. &twl6040_pins
  114. &mcpdm_pins
  115. &mcbsp1_pins
  116. &dss_hdmi_pins
  117. &tpd12s015_pins
  118. &hsusbb1_pins
  119. >;
  120. twl6030_pins: pinmux_twl6030_pins {
  121. pinctrl-single,pins = <
  122. 0x15e (WAKEUP_EN | PIN_INPUT_PULLUP | MUX_MODE0) /* sys_nirq1.sys_nirq1 */
  123. >;
  124. };
  125. twl6040_pins: pinmux_twl6040_pins {
  126. pinctrl-single,pins = <
  127. 0xe0 (PIN_OUTPUT | MUX_MODE3) /* hdq_sio.gpio_127 */
  128. 0x160 (PIN_INPUT | MUX_MODE0) /* sys_nirq2.sys_nirq2 */
  129. >;
  130. };
  131. mcpdm_pins: pinmux_mcpdm_pins {
  132. pinctrl-single,pins = <
  133. 0xc6 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_ul_data.abe_pdm_ul_data */
  134. 0xc8 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_dl_data.abe_pdm_dl_data */
  135. 0xca (PIN_INPUT_PULLUP | MUX_MODE0) /* abe_pdm_frame.abe_pdm_frame */
  136. 0xcc (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_pdm_lb_clk.abe_pdm_lb_clk */
  137. 0xce (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_clks.abe_clks */
  138. >;
  139. };
  140. mcbsp1_pins: pinmux_mcbsp1_pins {
  141. pinctrl-single,pins = <
  142. 0xbe (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_clkx.abe_mcbsp1_clkx */
  143. 0xc0 (PIN_INPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dr.abe_mcbsp1_dr */
  144. 0xc2 (PIN_OUTPUT_PULLDOWN | MUX_MODE0) /* abe_mcbsp1_dx.abe_mcbsp1_dx */
  145. 0xc4 (PIN_INPUT | MUX_MODE0) /* abe_mcbsp1_fsx.abe_mcbsp1_fsx */
  146. >;
  147. };
  148. dss_hdmi_pins: pinmux_dss_hdmi_pins {
  149. pinctrl-single,pins = <
  150. 0x5a (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_cec.hdmi_cec */
  151. 0x5c (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_scl.hdmi_scl */
  152. 0x5e (PIN_INPUT_PULLUP | MUX_MODE0) /* hdmi_sda.hdmi_sda */
  153. >;
  154. };
  155. tpd12s015_pins: pinmux_tpd12s015_pins {
  156. pinctrl-single,pins = <
  157. 0x22 (PIN_OUTPUT | MUX_MODE3) /* gpmc_a17.gpio_41 */
  158. 0x48 (PIN_OUTPUT | MUX_MODE3) /* gpmc_nbe1.gpio_60 */
  159. 0x58 (PIN_INPUT_PULLDOWN | MUX_MODE3) /* hdmi_hpd.gpio_63 */
  160. >;
  161. };
  162. hsusbb1_pins: pinmux_hsusbb1_pins {
  163. pinctrl-single,pins = <
  164. 0x82 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_clk.usbb1_ulpiphy_clk */
  165. 0x84 (PIN_OUTPUT | MUX_MODE4) /* usbb1_ulpitll_stp.usbb1_ulpiphy_stp */
  166. 0x86 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dir.usbb1_ulpiphy_dir */
  167. 0x88 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_nxt.usbb1_ulpiphy_nxt */
  168. 0x8a (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat0.usbb1_ulpiphy_dat0 */
  169. 0x8c (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat1.usbb1_ulpiphy_dat1 */
  170. 0x8e (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat2.usbb1_ulpiphy_dat2 */
  171. 0x90 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat3.usbb1_ulpiphy_dat3 */
  172. 0x92 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat4.usbb1_ulpiphy_dat4 */
  173. 0x94 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat5.usbb1_ulpiphy_dat5 */
  174. 0x96 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat6.usbb1_ulpiphy_dat6 */
  175. 0x98 (PIN_INPUT_PULLDOWN | MUX_MODE4) /* usbb1_ulpitll_dat7.usbb1_ulpiphy_dat7 */
  176. >;
  177. };
  178. i2c1_pins: pinmux_i2c1_pins {
  179. pinctrl-single,pins = <
  180. 0xe2 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_scl */
  181. 0xe4 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c1_sda */
  182. >;
  183. };
  184. i2c2_pins: pinmux_i2c2_pins {
  185. pinctrl-single,pins = <
  186. 0xe6 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_scl */
  187. 0xe8 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c2_sda */
  188. >;
  189. };
  190. i2c3_pins: pinmux_i2c3_pins {
  191. pinctrl-single,pins = <
  192. 0xea (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_scl */
  193. 0xec (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c3_sda */
  194. >;
  195. };
  196. i2c4_pins: pinmux_i2c4_pins {
  197. pinctrl-single,pins = <
  198. 0xee (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_scl */
  199. 0xf0 (PIN_INPUT_PULLUP | MUX_MODE0) /* i2c4_sda */
  200. >;
  201. };
  202. };
  203. &omap4_pmx_wkup {
  204. led_wkgpio_pins: pinmux_leds_wkpins {
  205. pinctrl-single,pins = <
  206. 0x1a (PIN_OUTPUT | MUX_MODE3) /* gpio_wk7 */
  207. 0x1c (PIN_OUTPUT | MUX_MODE3) /* gpio_wk8 */
  208. >;
  209. };
  210. };
  211. &i2c1 {
  212. pinctrl-names = "default";
  213. pinctrl-0 = <&i2c1_pins>;
  214. clock-frequency = <400000>;
  215. twl: twl@48 {
  216. reg = <0x48>;
  217. /* IRQ# = 7 */
  218. interrupts = <GIC_SPI 7 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_1N cascaded to gic */
  219. interrupt-parent = <&gic>;
  220. };
  221. twl6040: twl@4b {
  222. compatible = "ti,twl6040";
  223. reg = <0x4b>;
  224. /* IRQ# = 119 */
  225. interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>; /* IRQ_SYS_2N cascaded to gic */
  226. interrupt-parent = <&gic>;
  227. ti,audpwron-gpio = <&gpio4 31 GPIO_ACTIVE_HIGH>; /* gpio line 127 */
  228. vio-supply = <&v1v8>;
  229. v2v1-supply = <&v2v1>;
  230. enable-active-high;
  231. };
  232. };
  233. #include "twl6030.dtsi"
  234. &i2c2 {
  235. pinctrl-names = "default";
  236. pinctrl-0 = <&i2c2_pins>;
  237. clock-frequency = <400000>;
  238. };
  239. &i2c3 {
  240. pinctrl-names = "default";
  241. pinctrl-0 = <&i2c3_pins>;
  242. clock-frequency = <100000>;
  243. /*
  244. * Display monitor features are burnt in their EEPROM as EDID data.
  245. * The EEPROM is connected as I2C slave device.
  246. */
  247. eeprom@50 {
  248. compatible = "ti,eeprom";
  249. reg = <0x50>;
  250. };
  251. };
  252. &i2c4 {
  253. pinctrl-names = "default";
  254. pinctrl-0 = <&i2c4_pins>;
  255. clock-frequency = <400000>;
  256. };
  257. &mmc1 {
  258. vmmc-supply = <&vmmc>;
  259. bus-width = <8>;
  260. };
  261. &mmc2 {
  262. status = "disabled";
  263. };
  264. &mmc3 {
  265. status = "disabled";
  266. };
  267. &mmc4 {
  268. status = "disabled";
  269. };
  270. &mmc5 {
  271. ti,non-removable;
  272. bus-width = <4>;
  273. };
  274. &emif1 {
  275. cs1-used;
  276. device-handle = <&elpida_ECB240ABACN>;
  277. };
  278. &emif2 {
  279. cs1-used;
  280. device-handle = <&elpida_ECB240ABACN>;
  281. };
  282. &mcbsp2 {
  283. status = "disabled";
  284. };
  285. &mcbsp3 {
  286. status = "disabled";
  287. };
  288. &dmic {
  289. status = "disabled";
  290. };
  291. &twl_usb_comparator {
  292. usb-supply = <&vusb>;
  293. };
  294. &usb_otg_hs {
  295. interface-type = <1>;
  296. mode = <3>;
  297. power = <50>;
  298. };
  299. &usbhshost {
  300. port1-mode = "ehci-phy";
  301. };
  302. &usbhsehci {
  303. phys = <&hsusb1_phy>;
  304. };