tegra30-colibri.dtsi 8.7 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386
  1. #include <dt-bindings/input/input.h>
  2. #include "tegra30.dtsi"
  3. /*
  4. * Toradex Colibri T30 Device Tree
  5. * Compatible for Revisions 1.1B/1.1C/1.1D
  6. */
  7. / {
  8. model = "Toradex Colibri T30";
  9. compatible = "toradex,colibri_t30", "nvidia,tegra30";
  10. memory {
  11. reg = <0x80000000 0x40000000>;
  12. };
  13. host1x@50000000 {
  14. hdmi@54280000 {
  15. vdd-supply = <&sys_3v3_reg>;
  16. pll-supply = <&vio_reg>;
  17. nvidia,hpd-gpio =
  18. <&gpio TEGRA_GPIO(N, 7) GPIO_ACTIVE_HIGH>;
  19. nvidia,ddc-i2c-bus = <&hdmiddc>;
  20. };
  21. };
  22. pinmux@70000868 {
  23. pinctrl-names = "default";
  24. pinctrl-0 = <&state_default>;
  25. state_default: pinmux {
  26. /* Colibri BL_ON */
  27. pv2 {
  28. nvidia,pins = "pv2";
  29. nvidia,function = "rsvd4";
  30. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  31. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  32. };
  33. /* Colibri Backlight PWM<A> */
  34. sdmmc3_dat3_pb4 {
  35. nvidia,pins = "sdmmc3_dat3_pb4";
  36. nvidia,function = "pwm0";
  37. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  38. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  39. };
  40. /* Colibri CAN_INT */
  41. kb_row8_ps0 {
  42. nvidia,pins = "kb_row8_ps0";
  43. nvidia,function = "kbc";
  44. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  45. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  46. nvidia,enable-input = <TEGRA_PIN_ENABLE>;
  47. };
  48. /*
  49. * Colibri L_BIAS, LCD_M1 is muxed with LCD_DE
  50. * todays display need DE, disable LCD_M1
  51. */
  52. lcd_m1_pw1 {
  53. nvidia,pins = "lcd_m1_pw1";
  54. nvidia,function = "rsvd3";
  55. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  56. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  57. nvidia,enable-input = <TEGRA_PIN_ENABLE>;
  58. };
  59. /* Thermal alert, need to be disabled */
  60. lcd_dc1_pd2 {
  61. nvidia,pins = "lcd_dc1_pd2";
  62. nvidia,function = "rsvd3";
  63. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  64. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  65. nvidia,enable-input = <TEGRA_PIN_ENABLE>;
  66. };
  67. /* Colibri MMC */
  68. kb_row10_ps2 {
  69. nvidia,pins = "kb_row10_ps2";
  70. nvidia,function = "sdmmc2";
  71. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  72. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  73. };
  74. kb_row11_ps3 {
  75. nvidia,pins = "kb_row11_ps3",
  76. "kb_row12_ps4",
  77. "kb_row13_ps5",
  78. "kb_row14_ps6",
  79. "kb_row15_ps7";
  80. nvidia,function = "sdmmc2";
  81. nvidia,pull = <TEGRA_PIN_PULL_UP>;
  82. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  83. };
  84. /* Colibri SSP */
  85. ulpi_clk_py0 {
  86. nvidia,pins = "ulpi_clk_py0",
  87. "ulpi_dir_py1",
  88. "ulpi_nxt_py2",
  89. "ulpi_stp_py3";
  90. nvidia,function = "spi1";
  91. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  92. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  93. };
  94. sdmmc3_dat6_pd3 {
  95. nvidia,pins = "sdmmc3_dat6_pd3",
  96. "sdmmc3_dat7_pd4";
  97. nvidia,function = "spdif";
  98. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  99. nvidia,tristate = <TEGRA_PIN_ENABLE>;
  100. };
  101. /* Colibri UART_A */
  102. ulpi_data0 {
  103. nvidia,pins = "ulpi_data0_po1",
  104. "ulpi_data1_po2",
  105. "ulpi_data2_po3",
  106. "ulpi_data3_po4",
  107. "ulpi_data4_po5",
  108. "ulpi_data5_po6",
  109. "ulpi_data6_po7",
  110. "ulpi_data7_po0";
  111. nvidia,function = "uarta";
  112. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  113. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  114. };
  115. /* Colibri UART_B */
  116. gmi_a16_pj7 {
  117. nvidia,pins = "gmi_a16_pj7",
  118. "gmi_a17_pb0",
  119. "gmi_a18_pb1",
  120. "gmi_a19_pk7";
  121. nvidia,function = "uartd";
  122. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  123. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  124. };
  125. /* Colibri UART_C */
  126. uart2_rxd {
  127. nvidia,pins = "uart2_rxd_pc3",
  128. "uart2_txd_pc2";
  129. nvidia,function = "uartb";
  130. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  131. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  132. };
  133. /* eMMC */
  134. sdmmc4_clk_pcc4 {
  135. nvidia,pins = "sdmmc4_clk_pcc4",
  136. "sdmmc4_rst_n_pcc3";
  137. nvidia,function = "sdmmc4";
  138. nvidia,pull = <TEGRA_PIN_PULL_NONE>;
  139. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  140. };
  141. sdmmc4_dat0_paa0 {
  142. nvidia,pins = "sdmmc4_dat0_paa0",
  143. "sdmmc4_dat1_paa1",
  144. "sdmmc4_dat2_paa2",
  145. "sdmmc4_dat3_paa3",
  146. "sdmmc4_dat4_paa4",
  147. "sdmmc4_dat5_paa5",
  148. "sdmmc4_dat6_paa6",
  149. "sdmmc4_dat7_paa7";
  150. nvidia,function = "sdmmc4";
  151. nvidia,pull = <TEGRA_PIN_PULL_UP>;
  152. nvidia,tristate = <TEGRA_PIN_DISABLE>;
  153. };
  154. };
  155. };
  156. hdmiddc: i2c@7000c700 {
  157. clock-frequency = <100000>;
  158. };
  159. /*
  160. * PWR_I2C: power I2C to audio codec, PMIC, temperature sensor and
  161. * touch screen controller
  162. */
  163. i2c@7000d000 {
  164. status = "okay";
  165. clock-frequency = <100000>;
  166. pmic: tps65911@2d {
  167. compatible = "ti,tps65911";
  168. reg = <0x2d>;
  169. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  170. #interrupt-cells = <2>;
  171. interrupt-controller;
  172. ti,system-power-controller;
  173. #gpio-cells = <2>;
  174. gpio-controller;
  175. vcc1-supply = <&sys_3v3_reg>;
  176. vcc2-supply = <&sys_3v3_reg>;
  177. vcc3-supply = <&vio_reg>;
  178. vcc4-supply = <&sys_3v3_reg>;
  179. vcc5-supply = <&sys_3v3_reg>;
  180. vcc6-supply = <&vio_reg>;
  181. vcc7-supply = <&charge_pump_5v0_reg>;
  182. vccio-supply = <&sys_3v3_reg>;
  183. regulators {
  184. /* SW1: +V1.35_VDDIO_DDR */
  185. vdd1_reg: vdd1 {
  186. regulator-name = "vddio_ddr_1v35";
  187. regulator-min-microvolt = <1350000>;
  188. regulator-max-microvolt = <1350000>;
  189. regulator-always-on;
  190. };
  191. /* SW2: unused */
  192. /* SW CTRL: +V1.0_VDD_CPU */
  193. vddctrl_reg: vddctrl {
  194. regulator-name = "vdd_cpu,vdd_sys";
  195. regulator-min-microvolt = <1150000>;
  196. regulator-max-microvolt = <1150000>;
  197. regulator-always-on;
  198. };
  199. /* SWIO: +V1.8 */
  200. vio_reg: vio {
  201. regulator-name = "vdd_1v8_gen";
  202. regulator-min-microvolt = <1800000>;
  203. regulator-max-microvolt = <1800000>;
  204. regulator-always-on;
  205. };
  206. /* LDO1: unused */
  207. /*
  208. * EN_+V3.3 switching via FET:
  209. * +V3.3_AUDIO_AVDD_S, +V3.3 and +V1.8_VDD_LAN
  210. * see also v3_3 fixed supply
  211. */
  212. ldo2_reg: ldo2 {
  213. regulator-name = "en_3v3";
  214. regulator-min-microvolt = <3300000>;
  215. regulator-max-microvolt = <3300000>;
  216. regulator-always-on;
  217. };
  218. /* LDO3: unused */
  219. /* +V1.2_VDD_RTC */
  220. ldo4_reg: ldo4 {
  221. regulator-name = "vdd_rtc";
  222. regulator-min-microvolt = <1200000>;
  223. regulator-max-microvolt = <1200000>;
  224. regulator-always-on;
  225. };
  226. /*
  227. * +V2.8_AVDD_VDAC:
  228. * only required for analog RGB
  229. */
  230. ldo5_reg: ldo5 {
  231. regulator-name = "avdd_vdac";
  232. regulator-min-microvolt = <2800000>;
  233. regulator-max-microvolt = <2800000>;
  234. regulator-always-on;
  235. };
  236. /*
  237. * +V1.05_AVDD_PLLE: avdd_plle should be 1.05V
  238. * but LDO6 can't set voltage in 50mV
  239. * granularity
  240. */
  241. ldo6_reg: ldo6 {
  242. regulator-name = "avdd_plle";
  243. regulator-min-microvolt = <1100000>;
  244. regulator-max-microvolt = <1100000>;
  245. };
  246. /* +V1.2_AVDD_PLL */
  247. ldo7_reg: ldo7 {
  248. regulator-name = "avdd_pll";
  249. regulator-min-microvolt = <1200000>;
  250. regulator-max-microvolt = <1200000>;
  251. regulator-always-on;
  252. };
  253. /* +V1.0_VDD_DDR_HS */
  254. ldo8_reg: ldo8 {
  255. regulator-name = "vdd_ddr_hs";
  256. regulator-min-microvolt = <1000000>;
  257. regulator-max-microvolt = <1000000>;
  258. regulator-always-on;
  259. };
  260. };
  261. };
  262. /*
  263. * LM95245 temperature sensor
  264. * Note: OVERT_N directly connected to PMIC PWRDN
  265. */
  266. temp-sensor@4c {
  267. compatible = "national,lm95245";
  268. reg = <0x4c>;
  269. };
  270. /* SW: +V1.2_VDD_CORE */
  271. tps62362@60 {
  272. compatible = "ti,tps62362";
  273. reg = <0x60>;
  274. regulator-name = "tps62362-vout";
  275. regulator-min-microvolt = <900000>;
  276. regulator-max-microvolt = <1400000>;
  277. regulator-boot-on;
  278. regulator-always-on;
  279. ti,vsel0-state-low;
  280. /* VSEL1: EN_CORE_DVFS_N low for DVFS */
  281. ti,vsel1-state-low;
  282. };
  283. };
  284. pmc@7000e400 {
  285. nvidia,invert-interrupt;
  286. nvidia,suspend-mode = <1>;
  287. nvidia,cpu-pwr-good-time = <5000>;
  288. nvidia,cpu-pwr-off-time = <5000>;
  289. nvidia,core-pwr-good-time = <3845 3845>;
  290. nvidia,core-pwr-off-time = <0>;
  291. nvidia,core-power-req-active-high;
  292. nvidia,sys-clock-req-active-high;
  293. };
  294. emmc: sdhci@78000600 {
  295. status = "okay";
  296. bus-width = <8>;
  297. non-removable;
  298. };
  299. /* EHCI instance 1: USB2_DP/N -> AX88772B */
  300. usb@7d004000 {
  301. status = "okay";
  302. };
  303. usb-phy@7d004000 {
  304. status = "okay";
  305. nvidia,is-wired = <1>;
  306. };
  307. clocks {
  308. compatible = "simple-bus";
  309. #address-cells = <1>;
  310. #size-cells = <0>;
  311. clk32k_in: clk@0 {
  312. compatible = "fixed-clock";
  313. reg=<0>;
  314. #clock-cells = <0>;
  315. clock-frequency = <32768>;
  316. };
  317. };
  318. regulators {
  319. compatible = "simple-bus";
  320. #address-cells = <1>;
  321. #size-cells = <0>;
  322. sys_3v3_reg: regulator@100 {
  323. compatible = "regulator-fixed";
  324. reg = <100>;
  325. regulator-name = "3v3";
  326. regulator-min-microvolt = <3300000>;
  327. regulator-max-microvolt = <3300000>;
  328. regulator-always-on;
  329. };
  330. charge_pump_5v0_reg: regulator@101 {
  331. compatible = "regulator-fixed";
  332. reg = <101>;
  333. regulator-name = "5v0";
  334. regulator-min-microvolt = <5000000>;
  335. regulator-max-microvolt = <5000000>;
  336. regulator-always-on;
  337. };
  338. };
  339. };