tegra30-cardhu.dtsi 13 KB

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