tegra30-cardhu.dtsi 13 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525
  1. #include "tegra30.dtsi"
  2. /**
  3. * This file contains common DT entry for all fab version of Cardhu.
  4. * There is multiple fab version of Cardhu starting from A01 to A07.
  5. * Cardhu fab version A01 and A03 are not supported. Cardhu fab version
  6. * A02 will have different sets of GPIOs for fixed regulator compare to
  7. * Cardhu fab version A04. The Cardhu fab version A05, A06, A07 are
  8. * compatible with fab version A04. Based on Cardhu fab version, the
  9. * related dts file need to be chosen like for Cardhu fab version A02,
  10. * use tegra30-cardhu-a02.dts, Cardhu fab version A04 and later, use
  11. * tegra30-cardhu-a04.dts.
  12. * The identification of board is done in two ways, by looking the sticker
  13. * on PCB and by reading board id eeprom.
  14. * The stciker will have number like 600-81291-1000-002 C.3. In this 4th
  15. * number is the fab version like here it is 002 and hence fab version A02.
  16. * The (downstream internal) U-Boot of Cardhu display the board-id as
  17. * follows:
  18. * BoardID: 0C5B, SKU: 0A01, Fab: 02, Rev: 45.00
  19. * In this Fab version is 02 i.e. A02.
  20. * The BoardID I2C eeprom is interfaced through i2c5 (pwr_i2c address 0x56).
  21. * The location 0x8 of this eeprom contains the Fab version. It is 1 byte
  22. * wide.
  23. */
  24. / {
  25. model = "NVIDIA Tegra30 Cardhu evaluation board";
  26. compatible = "nvidia,cardhu", "nvidia,tegra30";
  27. memory {
  28. reg = <0x80000000 0x40000000>;
  29. };
  30. pinmux {
  31. pinctrl-names = "default";
  32. pinctrl-0 = <&state_default>;
  33. state_default: pinmux {
  34. sdmmc1_clk_pz0 {
  35. nvidia,pins = "sdmmc1_clk_pz0";
  36. nvidia,function = "sdmmc1";
  37. nvidia,pull = <0>;
  38. nvidia,tristate = <0>;
  39. };
  40. sdmmc1_cmd_pz1 {
  41. nvidia,pins = "sdmmc1_cmd_pz1",
  42. "sdmmc1_dat0_py7",
  43. "sdmmc1_dat1_py6",
  44. "sdmmc1_dat2_py5",
  45. "sdmmc1_dat3_py4";
  46. nvidia,function = "sdmmc1";
  47. nvidia,pull = <2>;
  48. nvidia,tristate = <0>;
  49. };
  50. sdmmc3_clk_pa6 {
  51. nvidia,pins = "sdmmc3_clk_pa6";
  52. nvidia,function = "sdmmc3";
  53. nvidia,pull = <0>;
  54. nvidia,tristate = <0>;
  55. };
  56. sdmmc3_cmd_pa7 {
  57. nvidia,pins = "sdmmc3_cmd_pa7",
  58. "sdmmc3_dat0_pb7",
  59. "sdmmc3_dat1_pb6",
  60. "sdmmc3_dat2_pb5",
  61. "sdmmc3_dat3_pb4";
  62. nvidia,function = "sdmmc3";
  63. nvidia,pull = <2>;
  64. nvidia,tristate = <0>;
  65. };
  66. sdmmc4_clk_pcc4 {
  67. nvidia,pins = "sdmmc4_clk_pcc4",
  68. "sdmmc4_rst_n_pcc3";
  69. nvidia,function = "sdmmc4";
  70. nvidia,pull = <0>;
  71. nvidia,tristate = <0>;
  72. };
  73. sdmmc4_dat0_paa0 {
  74. nvidia,pins = "sdmmc4_dat0_paa0",
  75. "sdmmc4_dat1_paa1",
  76. "sdmmc4_dat2_paa2",
  77. "sdmmc4_dat3_paa3",
  78. "sdmmc4_dat4_paa4",
  79. "sdmmc4_dat5_paa5",
  80. "sdmmc4_dat6_paa6",
  81. "sdmmc4_dat7_paa7";
  82. nvidia,function = "sdmmc4";
  83. nvidia,pull = <2>;
  84. nvidia,tristate = <0>;
  85. };
  86. dap2_fs_pa2 {
  87. nvidia,pins = "dap2_fs_pa2",
  88. "dap2_sclk_pa3",
  89. "dap2_din_pa4",
  90. "dap2_dout_pa5";
  91. nvidia,function = "i2s1";
  92. nvidia,pull = <0>;
  93. nvidia,tristate = <0>;
  94. };
  95. sdio3 {
  96. nvidia,pins = "drive_sdio3";
  97. nvidia,high-speed-mode = <0>;
  98. nvidia,schmitt = <0>;
  99. nvidia,pull-down-strength = <46>;
  100. nvidia,pull-up-strength = <42>;
  101. nvidia,slew-rate-rising = <1>;
  102. nvidia,slew-rate-falling = <1>;
  103. };
  104. uart3_txd_pw6 {
  105. nvidia,pins = "uart3_txd_pw6",
  106. "uart3_cts_n_pa1",
  107. "uart3_rts_n_pc0",
  108. "uart3_rxd_pw7";
  109. nvidia,function = "uartc";
  110. nvidia,pull = <0>;
  111. nvidia,tristate = <0>;
  112. };
  113. };
  114. };
  115. serial@70006000 {
  116. status = "okay";
  117. };
  118. serial@70006200 {
  119. compatible = "nvidia,tegra30-hsuart";
  120. status = "okay";
  121. };
  122. i2c@7000c000 {
  123. status = "okay";
  124. clock-frequency = <100000>;
  125. };
  126. i2c@7000c400 {
  127. status = "okay";
  128. clock-frequency = <100000>;
  129. };
  130. i2c@7000c500 {
  131. status = "okay";
  132. clock-frequency = <100000>;
  133. /* ALS and Proximity sensor */
  134. isl29028@44 {
  135. compatible = "isil,isl29028";
  136. reg = <0x44>;
  137. interrupt-parent = <&gpio>;
  138. interrupts = <TEGRA_GPIO(L, 0) 0x04>;
  139. };
  140. };
  141. i2c@7000c700 {
  142. status = "okay";
  143. clock-frequency = <100000>;
  144. };
  145. i2c@7000d000 {
  146. status = "okay";
  147. clock-frequency = <100000>;
  148. wm8903: wm8903@1a {
  149. compatible = "wlf,wm8903";
  150. reg = <0x1a>;
  151. interrupt-parent = <&gpio>;
  152. interrupts = <TEGRA_GPIO(W, 3) 0x04>;
  153. gpio-controller;
  154. #gpio-cells = <2>;
  155. micdet-cfg = <0>;
  156. micdet-delay = <100>;
  157. gpio-cfg = <0xffffffff 0xffffffff 0 0xffffffff 0xffffffff>;
  158. };
  159. tps62361 {
  160. compatible = "ti,tps62361";
  161. reg = <0x60>;
  162. regulator-name = "tps62361-vout";
  163. regulator-min-microvolt = <500000>;
  164. regulator-max-microvolt = <1500000>;
  165. regulator-boot-on;
  166. regulator-always-on;
  167. ti,vsel0-state-high;
  168. ti,vsel1-state-high;
  169. };
  170. pmic: tps65911@2d {
  171. compatible = "ti,tps65911";
  172. reg = <0x2d>;
  173. interrupts = <0 86 0x4>;
  174. #interrupt-cells = <2>;
  175. interrupt-controller;
  176. ti,system-power-controller;
  177. #gpio-cells = <2>;
  178. gpio-controller;
  179. vcc1-supply = <&vdd_ac_bat_reg>;
  180. vcc2-supply = <&vdd_ac_bat_reg>;
  181. vcc3-supply = <&vio_reg>;
  182. vcc4-supply = <&vdd_5v0_reg>;
  183. vcc5-supply = <&vdd_ac_bat_reg>;
  184. vcc6-supply = <&vdd2_reg>;
  185. vcc7-supply = <&vdd_ac_bat_reg>;
  186. vccio-supply = <&vdd_ac_bat_reg>;
  187. regulators {
  188. vdd1_reg: vdd1 {
  189. regulator-name = "vddio_ddr_1v2";
  190. regulator-min-microvolt = <1200000>;
  191. regulator-max-microvolt = <1200000>;
  192. regulator-always-on;
  193. };
  194. vdd2_reg: vdd2 {
  195. regulator-name = "vdd_1v5_gen";
  196. regulator-min-microvolt = <1500000>;
  197. regulator-max-microvolt = <1500000>;
  198. regulator-always-on;
  199. };
  200. vddctrl_reg: vddctrl {
  201. regulator-name = "vdd_cpu,vdd_sys";
  202. regulator-min-microvolt = <1000000>;
  203. regulator-max-microvolt = <1000000>;
  204. regulator-always-on;
  205. };
  206. vio_reg: vio {
  207. regulator-name = "vdd_1v8_gen";
  208. regulator-min-microvolt = <1800000>;
  209. regulator-max-microvolt = <1800000>;
  210. regulator-always-on;
  211. };
  212. ldo1_reg: ldo1 {
  213. regulator-name = "vdd_pexa,vdd_pexb";
  214. regulator-min-microvolt = <1050000>;
  215. regulator-max-microvolt = <1050000>;
  216. };
  217. ldo2_reg: ldo2 {
  218. regulator-name = "vdd_sata,avdd_plle";
  219. regulator-min-microvolt = <1050000>;
  220. regulator-max-microvolt = <1050000>;
  221. };
  222. /* LDO3 is not connected to anything */
  223. ldo4_reg: ldo4 {
  224. regulator-name = "vdd_rtc";
  225. regulator-min-microvolt = <1200000>;
  226. regulator-max-microvolt = <1200000>;
  227. regulator-always-on;
  228. };
  229. ldo5_reg: ldo5 {
  230. regulator-name = "vddio_sdmmc,avdd_vdac";
  231. regulator-min-microvolt = <3300000>;
  232. regulator-max-microvolt = <3300000>;
  233. regulator-always-on;
  234. };
  235. ldo6_reg: ldo6 {
  236. regulator-name = "avdd_dsi_csi,pwrdet_mipi";
  237. regulator-min-microvolt = <1200000>;
  238. regulator-max-microvolt = <1200000>;
  239. };
  240. ldo7_reg: ldo7 {
  241. regulator-name = "vdd_pllm,x,u,a_p_c_s";
  242. regulator-min-microvolt = <1200000>;
  243. regulator-max-microvolt = <1200000>;
  244. regulator-always-on;
  245. };
  246. ldo8_reg: ldo8 {
  247. regulator-name = "vdd_ddr_hs";
  248. regulator-min-microvolt = <1000000>;
  249. regulator-max-microvolt = <1000000>;
  250. regulator-always-on;
  251. };
  252. };
  253. };
  254. };
  255. spi@7000da00 {
  256. status = "okay";
  257. spi-max-frequency = <25000000>;
  258. spi-flash@1 {
  259. compatible = "winbond,w25q32";
  260. reg = <1>;
  261. spi-max-frequency = <20000000>;
  262. };
  263. };
  264. ahub {
  265. i2s@70080400 {
  266. status = "okay";
  267. };
  268. };
  269. pmc {
  270. status = "okay";
  271. nvidia,invert-interrupt;
  272. nvidia,suspend-mode = <2>;
  273. nvidia,cpu-pwr-good-time = <2000>;
  274. nvidia,cpu-pwr-off-time = <200>;
  275. nvidia,core-pwr-good-time = <3845 3845>;
  276. nvidia,core-pwr-off-time = <0>;
  277. nvidia,core-power-req-active-high;
  278. nvidia,sys-clock-req-active-high;
  279. };
  280. sdhci@78000000 {
  281. status = "okay";
  282. cd-gpios = <&gpio TEGRA_GPIO(I, 5) GPIO_ACTIVE_LOW>;
  283. wp-gpios = <&gpio TEGRA_GPIO(T, 3) GPIO_ACTIVE_HIGH>;
  284. power-gpios = <&gpio TEGRA_GPIO(D, 7) GPIO_ACTIVE_HIGH>;
  285. bus-width = <4>;
  286. };
  287. sdhci@78000600 {
  288. status = "okay";
  289. bus-width = <8>;
  290. non-removable;
  291. };
  292. clocks {
  293. compatible = "simple-bus";
  294. #address-cells = <1>;
  295. #size-cells = <0>;
  296. clk32k_in: clock {
  297. compatible = "fixed-clock";
  298. reg=<0>;
  299. #clock-cells = <0>;
  300. clock-frequency = <32768>;
  301. };
  302. };
  303. regulators {
  304. compatible = "simple-bus";
  305. #address-cells = <1>;
  306. #size-cells = <0>;
  307. vdd_ac_bat_reg: regulator@0 {
  308. compatible = "regulator-fixed";
  309. reg = <0>;
  310. regulator-name = "vdd_ac_bat";
  311. regulator-min-microvolt = <5000000>;
  312. regulator-max-microvolt = <5000000>;
  313. regulator-always-on;
  314. };
  315. cam_1v8_reg: regulator@1 {
  316. compatible = "regulator-fixed";
  317. reg = <1>;
  318. regulator-name = "cam_1v8";
  319. regulator-min-microvolt = <1800000>;
  320. regulator-max-microvolt = <1800000>;
  321. enable-active-high;
  322. gpio = <&gpio TEGRA_GPIO(BB, 4) GPIO_ACTIVE_HIGH>;
  323. vin-supply = <&vio_reg>;
  324. };
  325. cp_5v_reg: regulator@2 {
  326. compatible = "regulator-fixed";
  327. reg = <2>;
  328. regulator-name = "cp_5v";
  329. regulator-min-microvolt = <5000000>;
  330. regulator-max-microvolt = <5000000>;
  331. regulator-boot-on;
  332. regulator-always-on;
  333. enable-active-high;
  334. gpio = <&pmic 0 GPIO_ACTIVE_HIGH>;
  335. };
  336. emmc_3v3_reg: regulator@3 {
  337. compatible = "regulator-fixed";
  338. reg = <3>;
  339. regulator-name = "emmc_3v3";
  340. regulator-min-microvolt = <3300000>;
  341. regulator-max-microvolt = <3300000>;
  342. regulator-always-on;
  343. regulator-boot-on;
  344. enable-active-high;
  345. gpio = <&gpio TEGRA_GPIO(D, 1) GPIO_ACTIVE_HIGH>;
  346. vin-supply = <&sys_3v3_reg>;
  347. };
  348. modem_3v3_reg: regulator@4 {
  349. compatible = "regulator-fixed";
  350. reg = <4>;
  351. regulator-name = "modem_3v3";
  352. regulator-min-microvolt = <3300000>;
  353. regulator-max-microvolt = <3300000>;
  354. enable-active-high;
  355. gpio = <&gpio TEGRA_GPIO(D, 6) GPIO_ACTIVE_HIGH>;
  356. };
  357. pex_hvdd_3v3_reg: regulator@5 {
  358. compatible = "regulator-fixed";
  359. reg = <5>;
  360. regulator-name = "pex_hvdd_3v3";
  361. regulator-min-microvolt = <3300000>;
  362. regulator-max-microvolt = <3300000>;
  363. enable-active-high;
  364. gpio = <&gpio TEGRA_GPIO(L, 7) GPIO_ACTIVE_HIGH>;
  365. vin-supply = <&sys_3v3_reg>;
  366. };
  367. vdd_cam1_ldo_reg: regulator@6 {
  368. compatible = "regulator-fixed";
  369. reg = <6>;
  370. regulator-name = "vdd_cam1_ldo";
  371. regulator-min-microvolt = <2800000>;
  372. regulator-max-microvolt = <2800000>;
  373. enable-active-high;
  374. gpio = <&gpio TEGRA_GPIO(R, 6) GPIO_ACTIVE_HIGH>;
  375. vin-supply = <&sys_3v3_reg>;
  376. };
  377. vdd_cam2_ldo_reg: regulator@7 {
  378. compatible = "regulator-fixed";
  379. reg = <7>;
  380. regulator-name = "vdd_cam2_ldo";
  381. regulator-min-microvolt = <2800000>;
  382. regulator-max-microvolt = <2800000>;
  383. enable-active-high;
  384. gpio = <&gpio TEGRA_GPIO(R, 7) GPIO_ACTIVE_HIGH>;
  385. vin-supply = <&sys_3v3_reg>;
  386. };
  387. vdd_cam3_ldo_reg: regulator@8 {
  388. compatible = "regulator-fixed";
  389. reg = <8>;
  390. regulator-name = "vdd_cam3_ldo";
  391. regulator-min-microvolt = <3300000>;
  392. regulator-max-microvolt = <3300000>;
  393. enable-active-high;
  394. gpio = <&gpio TEGRA_GPIO(S, 0) GPIO_ACTIVE_HIGH>;
  395. vin-supply = <&sys_3v3_reg>;
  396. };
  397. vdd_com_reg: regulator@9 {
  398. compatible = "regulator-fixed";
  399. reg = <9>;
  400. regulator-name = "vdd_com";
  401. regulator-min-microvolt = <3300000>;
  402. regulator-max-microvolt = <3300000>;
  403. regulator-always-on;
  404. regulator-boot-on;
  405. enable-active-high;
  406. gpio = <&gpio TEGRA_GPIO(D, 0) GPIO_ACTIVE_HIGH>;
  407. vin-supply = <&sys_3v3_reg>;
  408. };
  409. vdd_fuse_3v3_reg: regulator@10 {
  410. compatible = "regulator-fixed";
  411. reg = <10>;
  412. regulator-name = "vdd_fuse_3v3";
  413. regulator-min-microvolt = <3300000>;
  414. regulator-max-microvolt = <3300000>;
  415. enable-active-high;
  416. gpio = <&gpio TEGRA_GPIO(L, 6) GPIO_ACTIVE_HIGH>;
  417. vin-supply = <&sys_3v3_reg>;
  418. };
  419. vdd_pnl1_reg: regulator@11 {
  420. compatible = "regulator-fixed";
  421. reg = <11>;
  422. regulator-name = "vdd_pnl1";
  423. regulator-min-microvolt = <3300000>;
  424. regulator-max-microvolt = <3300000>;
  425. regulator-always-on;
  426. regulator-boot-on;
  427. enable-active-high;
  428. gpio = <&gpio TEGRA_GPIO(L, 4) GPIO_ACTIVE_HIGH>;
  429. vin-supply = <&sys_3v3_reg>;
  430. };
  431. vdd_vid_reg: regulator@12 {
  432. compatible = "regulator-fixed";
  433. reg = <12>;
  434. regulator-name = "vddio_vid";
  435. regulator-min-microvolt = <5000000>;
  436. regulator-max-microvolt = <5000000>;
  437. enable-active-high;
  438. gpio = <&gpio TEGRA_GPIO(T, 0) GPIO_ACTIVE_HIGH>;
  439. gpio-open-drain;
  440. vin-supply = <&vdd_5v0_reg>;
  441. };
  442. };
  443. sound {
  444. compatible = "nvidia,tegra-audio-wm8903-cardhu",
  445. "nvidia,tegra-audio-wm8903";
  446. nvidia,model = "NVIDIA Tegra Cardhu";
  447. nvidia,audio-routing =
  448. "Headphone Jack", "HPOUTR",
  449. "Headphone Jack", "HPOUTL",
  450. "Int Spk", "ROP",
  451. "Int Spk", "RON",
  452. "Int Spk", "LOP",
  453. "Int Spk", "LON",
  454. "Mic Jack", "MICBIAS",
  455. "IN1L", "Mic Jack";
  456. nvidia,i2s-controller = <&tegra_i2s1>;
  457. nvidia,audio-codec = <&wm8903>;
  458. nvidia,spkr-en-gpios = <&wm8903 2 GPIO_ACTIVE_HIGH>;
  459. nvidia,hp-det-gpios = <&gpio TEGRA_GPIO(W, 2)
  460. GPIO_ACTIVE_HIGH>;
  461. clocks = <&tegra_car 184>, <&tegra_car 185>, <&tegra_car 120>;
  462. clock-names = "pll_a", "pll_a_out0", "mclk";
  463. };
  464. };