tegra30.dtsi 37 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351
  1. // SPDX-License-Identifier: GPL-2.0
  2. #include <dt-bindings/clock/tegra30-car.h>
  3. #include <dt-bindings/gpio/tegra-gpio.h>
  4. #include <dt-bindings/memory/tegra30-mc.h>
  5. #include <dt-bindings/pinctrl/pinctrl-tegra.h>
  6. #include <dt-bindings/interrupt-controller/arm-gic.h>
  7. #include <dt-bindings/soc/tegra-pmc.h>
  8. #include <dt-bindings/thermal/thermal.h>
  9. #include "tegra30-peripherals-opp.dtsi"
  10. / {
  11. compatible = "nvidia,tegra30";
  12. interrupt-parent = <&lic>;
  13. #address-cells = <1>;
  14. #size-cells = <1>;
  15. memory@80000000 {
  16. device_type = "memory";
  17. reg = <0x80000000 0x0>;
  18. };
  19. pcie@3000 {
  20. compatible = "nvidia,tegra30-pcie";
  21. device_type = "pci";
  22. reg = <0x00003000 0x00000800>, /* PADS registers */
  23. <0x00003800 0x00000200>, /* AFI registers */
  24. <0x10000000 0x10000000>; /* configuration space */
  25. reg-names = "pads", "afi", "cs";
  26. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
  27. <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
  28. interrupt-names = "intr", "msi";
  29. #interrupt-cells = <1>;
  30. interrupt-map-mask = <0 0 0 0>;
  31. interrupt-map = <0 0 0 0 &intc GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  32. bus-range = <0x00 0xff>;
  33. #address-cells = <3>;
  34. #size-cells = <2>;
  35. ranges = <0x02000000 0 0x00000000 0x00000000 0 0x00001000>, /* port 0 configuration space */
  36. <0x02000000 0 0x00001000 0x00001000 0 0x00001000>, /* port 1 configuration space */
  37. <0x02000000 0 0x00004000 0x00004000 0 0x00001000>, /* port 2 configuration space */
  38. <0x01000000 0 0 0x02000000 0 0x00010000>, /* downstream I/O */
  39. <0x02000000 0 0x20000000 0x20000000 0 0x08000000>, /* non-prefetchable memory */
  40. <0x42000000 0 0x28000000 0x28000000 0 0x18000000>; /* prefetchable memory */
  41. clocks = <&tegra_car TEGRA30_CLK_PCIE>,
  42. <&tegra_car TEGRA30_CLK_AFI>,
  43. <&tegra_car TEGRA30_CLK_PLL_E>,
  44. <&tegra_car TEGRA30_CLK_CML0>;
  45. clock-names = "pex", "afi", "pll_e", "cml";
  46. resets = <&tegra_car 70>,
  47. <&tegra_car 72>,
  48. <&tegra_car 74>;
  49. reset-names = "pex", "afi", "pcie_x";
  50. power-domains = <&pd_core>;
  51. operating-points-v2 = <&pcie_dvfs_opp_table>;
  52. status = "disabled";
  53. pci@1,0 {
  54. device_type = "pci";
  55. assigned-addresses = <0x82000800 0 0x00000000 0 0x1000>;
  56. reg = <0x000800 0 0 0 0>;
  57. bus-range = <0x00 0xff>;
  58. status = "disabled";
  59. #address-cells = <3>;
  60. #size-cells = <2>;
  61. ranges;
  62. nvidia,num-lanes = <2>;
  63. };
  64. pci@2,0 {
  65. device_type = "pci";
  66. assigned-addresses = <0x82001000 0 0x00001000 0 0x1000>;
  67. reg = <0x001000 0 0 0 0>;
  68. bus-range = <0x00 0xff>;
  69. status = "disabled";
  70. #address-cells = <3>;
  71. #size-cells = <2>;
  72. ranges;
  73. nvidia,num-lanes = <2>;
  74. };
  75. pci@3,0 {
  76. device_type = "pci";
  77. assigned-addresses = <0x82001800 0 0x00004000 0 0x1000>;
  78. reg = <0x001800 0 0 0 0>;
  79. bus-range = <0x00 0xff>;
  80. status = "disabled";
  81. #address-cells = <3>;
  82. #size-cells = <2>;
  83. ranges;
  84. nvidia,num-lanes = <2>;
  85. };
  86. };
  87. sram@40000000 {
  88. compatible = "mmio-sram";
  89. reg = <0x40000000 0x40000>;
  90. #address-cells = <1>;
  91. #size-cells = <1>;
  92. ranges = <0 0x40000000 0x40000>;
  93. vde_pool: sram@400 {
  94. reg = <0x400 0x3fc00>;
  95. pool;
  96. };
  97. };
  98. host1x@50000000 {
  99. compatible = "nvidia,tegra30-host1x";
  100. reg = <0x50000000 0x00024000>;
  101. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>, /* syncpt */
  102. <GIC_SPI 67 IRQ_TYPE_LEVEL_HIGH>; /* general */
  103. interrupt-names = "syncpt", "host1x";
  104. clocks = <&tegra_car TEGRA30_CLK_HOST1X>;
  105. clock-names = "host1x";
  106. resets = <&tegra_car 28>, <&mc TEGRA30_MC_RESET_HC>;
  107. reset-names = "host1x", "mc";
  108. iommus = <&mc TEGRA_SWGROUP_HC>;
  109. power-domains = <&pd_heg>;
  110. operating-points-v2 = <&host1x_dvfs_opp_table>;
  111. #address-cells = <1>;
  112. #size-cells = <1>;
  113. ranges = <0x54000000 0x54000000 0x04000000>;
  114. mpe@54040000 {
  115. compatible = "nvidia,tegra30-mpe";
  116. reg = <0x54040000 0x00040000>;
  117. interrupts = <GIC_SPI 68 IRQ_TYPE_LEVEL_HIGH>;
  118. clocks = <&tegra_car TEGRA30_CLK_MPE>;
  119. resets = <&tegra_car 60>;
  120. reset-names = "mpe";
  121. power-domains = <&pd_mpe>;
  122. operating-points-v2 = <&mpe_dvfs_opp_table>;
  123. iommus = <&mc TEGRA_SWGROUP_MPE>;
  124. status = "disabled";
  125. };
  126. vi@54080000 {
  127. compatible = "nvidia,tegra30-vi";
  128. reg = <0x54080000 0x00040000>;
  129. interrupts = <GIC_SPI 69 IRQ_TYPE_LEVEL_HIGH>;
  130. clocks = <&tegra_car TEGRA30_CLK_VI>;
  131. resets = <&tegra_car 20>;
  132. reset-names = "vi";
  133. power-domains = <&pd_venc>;
  134. operating-points-v2 = <&vi_dvfs_opp_table>;
  135. iommus = <&mc TEGRA_SWGROUP_VI>;
  136. status = "disabled";
  137. };
  138. epp@540c0000 {
  139. compatible = "nvidia,tegra30-epp";
  140. reg = <0x540c0000 0x00040000>;
  141. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH>;
  142. clocks = <&tegra_car TEGRA30_CLK_EPP>;
  143. resets = <&tegra_car 19>;
  144. reset-names = "epp";
  145. power-domains = <&pd_heg>;
  146. operating-points-v2 = <&epp_dvfs_opp_table>;
  147. iommus = <&mc TEGRA_SWGROUP_EPP>;
  148. status = "disabled";
  149. };
  150. isp@54100000 {
  151. compatible = "nvidia,tegra30-isp";
  152. reg = <0x54100000 0x00040000>;
  153. interrupts = <GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  154. clocks = <&tegra_car TEGRA30_CLK_ISP>;
  155. resets = <&tegra_car 23>;
  156. reset-names = "isp";
  157. power-domains = <&pd_venc>;
  158. iommus = <&mc TEGRA_SWGROUP_ISP>;
  159. status = "disabled";
  160. };
  161. gr2d@54140000 {
  162. compatible = "nvidia,tegra30-gr2d";
  163. reg = <0x54140000 0x00040000>;
  164. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
  165. clocks = <&tegra_car TEGRA30_CLK_GR2D>;
  166. resets = <&tegra_car 21>, <&mc TEGRA30_MC_RESET_2D>;
  167. reset-names = "2d", "mc";
  168. power-domains = <&pd_heg>;
  169. operating-points-v2 = <&gr2d_dvfs_opp_table>;
  170. iommus = <&mc TEGRA_SWGROUP_G2>;
  171. };
  172. gr3d@54180000 {
  173. compatible = "nvidia,tegra30-gr3d";
  174. reg = <0x54180000 0x00040000>;
  175. clocks = <&tegra_car TEGRA30_CLK_GR3D>,
  176. <&tegra_car TEGRA30_CLK_GR3D2>;
  177. clock-names = "3d", "3d2";
  178. resets = <&tegra_car 24>,
  179. <&tegra_car 98>,
  180. <&mc TEGRA30_MC_RESET_3D>,
  181. <&mc TEGRA30_MC_RESET_3D2>;
  182. reset-names = "3d", "3d2", "mc", "mc2";
  183. power-domains = <&pd_3d0>, <&pd_3d1>;
  184. power-domain-names = "3d0", "3d1";
  185. operating-points-v2 = <&gr3d_dvfs_opp_table>;
  186. iommus = <&mc TEGRA_SWGROUP_NV>,
  187. <&mc TEGRA_SWGROUP_NV2>;
  188. };
  189. dc@54200000 {
  190. compatible = "nvidia,tegra30-dc";
  191. reg = <0x54200000 0x00040000>;
  192. interrupts = <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>;
  193. clocks = <&tegra_car TEGRA30_CLK_DISP1>,
  194. <&tegra_car TEGRA30_CLK_PLL_P>;
  195. clock-names = "dc", "parent";
  196. resets = <&tegra_car 27>;
  197. reset-names = "dc";
  198. power-domains = <&pd_core>;
  199. operating-points-v2 = <&disp1_dvfs_opp_table>;
  200. iommus = <&mc TEGRA_SWGROUP_DC>;
  201. nvidia,head = <0>;
  202. interconnects = <&mc TEGRA30_MC_DISPLAY0A &emc>,
  203. <&mc TEGRA30_MC_DISPLAY0B &emc>,
  204. <&mc TEGRA30_MC_DISPLAY1B &emc>,
  205. <&mc TEGRA30_MC_DISPLAY0C &emc>,
  206. <&mc TEGRA30_MC_DISPLAYHC &emc>;
  207. interconnect-names = "wina",
  208. "winb",
  209. "winb-vfilter",
  210. "winc",
  211. "cursor";
  212. rgb {
  213. status = "disabled";
  214. };
  215. };
  216. dc@54240000 {
  217. compatible = "nvidia,tegra30-dc";
  218. reg = <0x54240000 0x00040000>;
  219. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  220. clocks = <&tegra_car TEGRA30_CLK_DISP2>,
  221. <&tegra_car TEGRA30_CLK_PLL_P>;
  222. clock-names = "dc", "parent";
  223. resets = <&tegra_car 26>;
  224. reset-names = "dc";
  225. power-domains = <&pd_core>;
  226. operating-points-v2 = <&disp2_dvfs_opp_table>;
  227. iommus = <&mc TEGRA_SWGROUP_DCB>;
  228. nvidia,head = <1>;
  229. interconnects = <&mc TEGRA30_MC_DISPLAY0AB &emc>,
  230. <&mc TEGRA30_MC_DISPLAY0BB &emc>,
  231. <&mc TEGRA30_MC_DISPLAY1BB &emc>,
  232. <&mc TEGRA30_MC_DISPLAY0CB &emc>,
  233. <&mc TEGRA30_MC_DISPLAYHCB &emc>;
  234. interconnect-names = "wina",
  235. "winb",
  236. "winb-vfilter",
  237. "winc",
  238. "cursor";
  239. rgb {
  240. status = "disabled";
  241. };
  242. };
  243. hdmi@54280000 {
  244. compatible = "nvidia,tegra30-hdmi";
  245. reg = <0x54280000 0x00040000>;
  246. interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  247. clocks = <&tegra_car TEGRA30_CLK_HDMI>,
  248. <&tegra_car TEGRA30_CLK_PLL_D2_OUT0>;
  249. clock-names = "hdmi", "parent";
  250. resets = <&tegra_car 51>;
  251. reset-names = "hdmi";
  252. power-domains = <&pd_core>;
  253. operating-points-v2 = <&hdmi_dvfs_opp_table>;
  254. status = "disabled";
  255. };
  256. tvo@542c0000 {
  257. compatible = "nvidia,tegra30-tvo";
  258. reg = <0x542c0000 0x00040000>;
  259. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  260. clocks = <&tegra_car TEGRA30_CLK_TVO>;
  261. power-domains = <&pd_core>;
  262. operating-points-v2 = <&tvo_dvfs_opp_table>;
  263. status = "disabled";
  264. };
  265. dsi@54300000 {
  266. compatible = "nvidia,tegra30-dsi";
  267. reg = <0x54300000 0x00040000>;
  268. clocks = <&tegra_car TEGRA30_CLK_DSIA>,
  269. <&tegra_car TEGRA30_CLK_PLL_D_OUT0>;
  270. clock-names = "dsi", "parent";
  271. resets = <&tegra_car 48>;
  272. reset-names = "dsi";
  273. power-domains = <&pd_core>;
  274. operating-points-v2 = <&dsia_dvfs_opp_table>;
  275. status = "disabled";
  276. };
  277. dsi@54400000 {
  278. compatible = "nvidia,tegra30-dsi";
  279. reg = <0x54400000 0x00040000>;
  280. clocks = <&tegra_car TEGRA30_CLK_DSIB>,
  281. <&tegra_car TEGRA30_CLK_PLL_D_OUT0>;
  282. clock-names = "dsi", "parent";
  283. resets = <&tegra_car 84>;
  284. reset-names = "dsi";
  285. power-domains = <&pd_core>;
  286. operating-points-v2 = <&dsib_dvfs_opp_table>;
  287. status = "disabled";
  288. };
  289. };
  290. timer@50040600 {
  291. compatible = "arm,cortex-a9-twd-timer";
  292. reg = <0x50040600 0x20>;
  293. interrupt-parent = <&intc>;
  294. interrupts = <GIC_PPI 13
  295. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
  296. clocks = <&tegra_car TEGRA30_CLK_TWD>;
  297. };
  298. intc: interrupt-controller@50041000 {
  299. compatible = "arm,cortex-a9-gic";
  300. reg = <0x50041000 0x1000>,
  301. <0x50040100 0x0100>;
  302. interrupt-controller;
  303. #interrupt-cells = <3>;
  304. interrupt-parent = <&intc>;
  305. };
  306. cache-controller@50043000 {
  307. compatible = "arm,pl310-cache";
  308. reg = <0x50043000 0x1000>;
  309. arm,data-latency = <6 6 2>;
  310. arm,tag-latency = <5 5 2>;
  311. cache-unified;
  312. cache-level = <2>;
  313. };
  314. lic: interrupt-controller@60004000 {
  315. compatible = "nvidia,tegra30-ictlr";
  316. reg = <0x60004000 0x100>,
  317. <0x60004100 0x50>,
  318. <0x60004200 0x50>,
  319. <0x60004300 0x50>,
  320. <0x60004400 0x50>;
  321. interrupt-controller;
  322. #interrupt-cells = <3>;
  323. interrupt-parent = <&intc>;
  324. };
  325. timer@60005000 {
  326. compatible = "nvidia,tegra30-timer", "nvidia,tegra20-timer";
  327. reg = <0x60005000 0x400>;
  328. interrupts = <GIC_SPI 0 IRQ_TYPE_LEVEL_HIGH>,
  329. <GIC_SPI 1 IRQ_TYPE_LEVEL_HIGH>,
  330. <GIC_SPI 41 IRQ_TYPE_LEVEL_HIGH>,
  331. <GIC_SPI 42 IRQ_TYPE_LEVEL_HIGH>,
  332. <GIC_SPI 121 IRQ_TYPE_LEVEL_HIGH>,
  333. <GIC_SPI 122 IRQ_TYPE_LEVEL_HIGH>;
  334. clocks = <&tegra_car TEGRA30_CLK_TIMER>;
  335. };
  336. tegra_car: clock@60006000 {
  337. compatible = "nvidia,tegra30-car";
  338. reg = <0x60006000 0x1000>;
  339. #clock-cells = <1>;
  340. #reset-cells = <1>;
  341. sclk {
  342. compatible = "nvidia,tegra30-sclk";
  343. clocks = <&tegra_car TEGRA30_CLK_SCLK>;
  344. power-domains = <&pd_core>;
  345. operating-points-v2 = <&sclk_dvfs_opp_table>;
  346. };
  347. pll-c {
  348. compatible = "nvidia,tegra30-pllc";
  349. clocks = <&tegra_car TEGRA30_CLK_PLL_C>;
  350. power-domains = <&pd_core>;
  351. operating-points-v2 = <&pll_c_dvfs_opp_table>;
  352. };
  353. pll-e {
  354. compatible = "nvidia,tegra30-plle";
  355. clocks = <&tegra_car TEGRA30_CLK_PLL_E>;
  356. power-domains = <&pd_core>;
  357. operating-points-v2 = <&pll_e_dvfs_opp_table>;
  358. };
  359. pll-m {
  360. compatible = "nvidia,tegra30-pllm";
  361. clocks = <&tegra_car TEGRA30_CLK_PLL_M>;
  362. power-domains = <&pd_core>;
  363. operating-points-v2 = <&pll_m_dvfs_opp_table>;
  364. };
  365. };
  366. flow-controller@60007000 {
  367. compatible = "nvidia,tegra30-flowctrl";
  368. reg = <0x60007000 0x1000>;
  369. };
  370. apbdma: dma@6000a000 {
  371. compatible = "nvidia,tegra30-apbdma", "nvidia,tegra20-apbdma";
  372. reg = <0x6000a000 0x1400>;
  373. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>,
  374. <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>,
  375. <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>,
  376. <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>,
  377. <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>,
  378. <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>,
  379. <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>,
  380. <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>,
  381. <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>,
  382. <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  383. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>,
  384. <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>,
  385. <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>,
  386. <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>,
  387. <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>,
  388. <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>,
  389. <GIC_SPI 128 IRQ_TYPE_LEVEL_HIGH>,
  390. <GIC_SPI 129 IRQ_TYPE_LEVEL_HIGH>,
  391. <GIC_SPI 130 IRQ_TYPE_LEVEL_HIGH>,
  392. <GIC_SPI 131 IRQ_TYPE_LEVEL_HIGH>,
  393. <GIC_SPI 132 IRQ_TYPE_LEVEL_HIGH>,
  394. <GIC_SPI 133 IRQ_TYPE_LEVEL_HIGH>,
  395. <GIC_SPI 134 IRQ_TYPE_LEVEL_HIGH>,
  396. <GIC_SPI 135 IRQ_TYPE_LEVEL_HIGH>,
  397. <GIC_SPI 136 IRQ_TYPE_LEVEL_HIGH>,
  398. <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
  399. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
  400. <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>,
  401. <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>,
  402. <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>,
  403. <GIC_SPI 142 IRQ_TYPE_LEVEL_HIGH>,
  404. <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
  405. clocks = <&tegra_car TEGRA30_CLK_APBDMA>;
  406. resets = <&tegra_car 34>;
  407. reset-names = "dma";
  408. #dma-cells = <1>;
  409. };
  410. ahb: ahb@6000c000 {
  411. compatible = "nvidia,tegra30-ahb";
  412. reg = <0x6000c000 0x150>; /* AHB Arbitration + Gizmo Controller */
  413. };
  414. actmon: actmon@6000c800 {
  415. compatible = "nvidia,tegra30-actmon";
  416. reg = <0x6000c800 0x400>;
  417. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  418. clocks = <&tegra_car TEGRA30_CLK_ACTMON>,
  419. <&tegra_car TEGRA30_CLK_EMC>;
  420. clock-names = "actmon", "emc";
  421. resets = <&tegra_car TEGRA30_CLK_ACTMON>;
  422. reset-names = "actmon";
  423. operating-points-v2 = <&emc_bw_dfs_opp_table>;
  424. interconnects = <&mc TEGRA30_MC_MPCORER &emc>;
  425. interconnect-names = "cpu-read";
  426. #cooling-cells = <2>;
  427. };
  428. gpio: gpio@6000d000 {
  429. compatible = "nvidia,tegra30-gpio";
  430. reg = <0x6000d000 0x1000>;
  431. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>,
  432. <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>,
  433. <GIC_SPI 34 IRQ_TYPE_LEVEL_HIGH>,
  434. <GIC_SPI 35 IRQ_TYPE_LEVEL_HIGH>,
  435. <GIC_SPI 55 IRQ_TYPE_LEVEL_HIGH>,
  436. <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>,
  437. <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>,
  438. <GIC_SPI 125 IRQ_TYPE_LEVEL_HIGH>;
  439. #gpio-cells = <2>;
  440. gpio-controller;
  441. #interrupt-cells = <2>;
  442. interrupt-controller;
  443. gpio-ranges = <&pinmux 0 0 248>;
  444. };
  445. vde@6001a000 {
  446. compatible = "nvidia,tegra30-vde", "nvidia,tegra20-vde";
  447. reg = <0x6001a000 0x1000>, /* Syntax Engine */
  448. <0x6001b000 0x1000>, /* Video Bitstream Engine */
  449. <0x6001c000 0x100>, /* Macroblock Engine */
  450. <0x6001c200 0x100>, /* Post-processing Engine */
  451. <0x6001c400 0x100>, /* Motion Compensation Engine */
  452. <0x6001c600 0x100>, /* Transform Engine */
  453. <0x6001c800 0x100>, /* Pixel prediction block */
  454. <0x6001ca00 0x100>, /* Video DMA */
  455. <0x6001d800 0x400>; /* Video frame controls */
  456. reg-names = "sxe", "bsev", "mbe", "ppe", "mce",
  457. "tfe", "ppb", "vdma", "frameid";
  458. iram = <&vde_pool>; /* IRAM region */
  459. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>, /* Sync token interrupt */
  460. <GIC_SPI 10 IRQ_TYPE_LEVEL_HIGH>, /* BSE-V interrupt */
  461. <GIC_SPI 12 IRQ_TYPE_LEVEL_HIGH>; /* SXE interrupt */
  462. interrupt-names = "sync-token", "bsev", "sxe";
  463. clocks = <&tegra_car TEGRA30_CLK_VDE>;
  464. reset-names = "vde", "mc";
  465. resets = <&tegra_car 61>, <&mc TEGRA30_MC_RESET_VDE>;
  466. iommus = <&mc TEGRA_SWGROUP_VDE>;
  467. power-domains = <&pd_vde>;
  468. operating-points-v2 = <&vde_dvfs_opp_table>;
  469. };
  470. apbmisc@70000800 {
  471. compatible = "nvidia,tegra30-apbmisc", "nvidia,tegra20-apbmisc";
  472. reg = <0x70000800 0x64>, /* Chip revision */
  473. <0x70000008 0x04>; /* Strapping options */
  474. };
  475. pinmux: pinmux@70000868 {
  476. compatible = "nvidia,tegra30-pinmux";
  477. reg = <0x70000868 0x0d4>, /* Pad control registers */
  478. <0x70003000 0x3e4>; /* Mux registers */
  479. };
  480. /*
  481. * There are two serial driver i.e. 8250 based simple serial
  482. * driver and APB DMA based serial driver for higher baudrate
  483. * and performace. To enable the 8250 based driver, the compatible
  484. * is "nvidia,tegra30-uart", "nvidia,tegra20-uart" and to enable
  485. * the APB DMA based serial driver, the compatible is
  486. * "nvidia,tegra30-hsuart", "nvidia,tegra20-hsuart".
  487. */
  488. uarta: serial@70006000 {
  489. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  490. reg = <0x70006000 0x40>;
  491. reg-shift = <2>;
  492. interrupts = <GIC_SPI 36 IRQ_TYPE_LEVEL_HIGH>;
  493. clocks = <&tegra_car TEGRA30_CLK_UARTA>;
  494. resets = <&tegra_car 6>;
  495. reset-names = "serial";
  496. dmas = <&apbdma 8>, <&apbdma 8>;
  497. dma-names = "rx", "tx";
  498. status = "disabled";
  499. };
  500. uartb: serial@70006040 {
  501. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  502. reg = <0x70006040 0x40>;
  503. reg-shift = <2>;
  504. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  505. clocks = <&tegra_car TEGRA30_CLK_UARTB>;
  506. resets = <&tegra_car 7>;
  507. reset-names = "serial";
  508. dmas = <&apbdma 9>, <&apbdma 9>;
  509. dma-names = "rx", "tx";
  510. status = "disabled";
  511. };
  512. uartc: serial@70006200 {
  513. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  514. reg = <0x70006200 0x100>;
  515. reg-shift = <2>;
  516. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  517. clocks = <&tegra_car TEGRA30_CLK_UARTC>;
  518. resets = <&tegra_car 55>;
  519. reset-names = "serial";
  520. dmas = <&apbdma 10>, <&apbdma 10>;
  521. dma-names = "rx", "tx";
  522. status = "disabled";
  523. };
  524. uartd: serial@70006300 {
  525. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  526. reg = <0x70006300 0x100>;
  527. reg-shift = <2>;
  528. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  529. clocks = <&tegra_car TEGRA30_CLK_UARTD>;
  530. resets = <&tegra_car 65>;
  531. reset-names = "serial";
  532. dmas = <&apbdma 19>, <&apbdma 19>;
  533. dma-names = "rx", "tx";
  534. status = "disabled";
  535. };
  536. uarte: serial@70006400 {
  537. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  538. reg = <0x70006400 0x100>;
  539. reg-shift = <2>;
  540. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  541. clocks = <&tegra_car TEGRA30_CLK_UARTE>;
  542. resets = <&tegra_car 66>;
  543. reset-names = "serial";
  544. dmas = <&apbdma 20>, <&apbdma 20>;
  545. dma-names = "rx", "tx";
  546. status = "disabled";
  547. };
  548. gmi@70009000 {
  549. compatible = "nvidia,tegra30-gmi";
  550. reg = <0x70009000 0x1000>;
  551. #address-cells = <2>;
  552. #size-cells = <1>;
  553. ranges = <0 0 0x48000000 0x7ffffff>;
  554. clocks = <&tegra_car TEGRA30_CLK_NOR>;
  555. clock-names = "gmi";
  556. resets = <&tegra_car 42>;
  557. reset-names = "gmi";
  558. power-domains = <&pd_core>;
  559. operating-points-v2 = <&nor_dvfs_opp_table>;
  560. status = "disabled";
  561. };
  562. pwm: pwm@7000a000 {
  563. compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm";
  564. reg = <0x7000a000 0x100>;
  565. #pwm-cells = <2>;
  566. clocks = <&tegra_car TEGRA30_CLK_PWM>;
  567. resets = <&tegra_car 17>;
  568. reset-names = "pwm";
  569. power-domains = <&pd_core>;
  570. operating-points-v2 = <&pwm_dvfs_opp_table>;
  571. status = "disabled";
  572. };
  573. rtc@7000e000 {
  574. compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc";
  575. reg = <0x7000e000 0x100>;
  576. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  577. clocks = <&tegra_car TEGRA30_CLK_RTC>;
  578. };
  579. i2c@7000c000 {
  580. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  581. reg = <0x7000c000 0x100>;
  582. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  583. #address-cells = <1>;
  584. #size-cells = <0>;
  585. clocks = <&tegra_car TEGRA30_CLK_I2C1>,
  586. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  587. clock-names = "div-clk", "fast-clk";
  588. resets = <&tegra_car 12>;
  589. reset-names = "i2c";
  590. dmas = <&apbdma 21>, <&apbdma 21>;
  591. dma-names = "rx", "tx";
  592. status = "disabled";
  593. };
  594. i2c@7000c400 {
  595. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  596. reg = <0x7000c400 0x100>;
  597. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  598. #address-cells = <1>;
  599. #size-cells = <0>;
  600. clocks = <&tegra_car TEGRA30_CLK_I2C2>,
  601. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  602. clock-names = "div-clk", "fast-clk";
  603. resets = <&tegra_car 54>;
  604. reset-names = "i2c";
  605. dmas = <&apbdma 22>, <&apbdma 22>;
  606. dma-names = "rx", "tx";
  607. status = "disabled";
  608. };
  609. i2c@7000c500 {
  610. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  611. reg = <0x7000c500 0x100>;
  612. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  613. #address-cells = <1>;
  614. #size-cells = <0>;
  615. clocks = <&tegra_car TEGRA30_CLK_I2C3>,
  616. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  617. clock-names = "div-clk", "fast-clk";
  618. resets = <&tegra_car 67>;
  619. reset-names = "i2c";
  620. dmas = <&apbdma 23>, <&apbdma 23>;
  621. dma-names = "rx", "tx";
  622. status = "disabled";
  623. };
  624. i2c@7000c700 {
  625. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  626. reg = <0x7000c700 0x100>;
  627. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  628. #address-cells = <1>;
  629. #size-cells = <0>;
  630. clocks = <&tegra_car TEGRA30_CLK_I2C4>,
  631. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  632. resets = <&tegra_car 103>;
  633. reset-names = "i2c";
  634. clock-names = "div-clk", "fast-clk";
  635. dmas = <&apbdma 26>, <&apbdma 26>;
  636. dma-names = "rx", "tx";
  637. status = "disabled";
  638. };
  639. i2c@7000d000 {
  640. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  641. reg = <0x7000d000 0x100>;
  642. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  643. #address-cells = <1>;
  644. #size-cells = <0>;
  645. clocks = <&tegra_car TEGRA30_CLK_I2C5>,
  646. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  647. clock-names = "div-clk", "fast-clk";
  648. resets = <&tegra_car 47>;
  649. reset-names = "i2c";
  650. dmas = <&apbdma 24>, <&apbdma 24>;
  651. dma-names = "rx", "tx";
  652. status = "disabled";
  653. };
  654. spi@7000d400 {
  655. compatible = "nvidia,tegra30-slink";
  656. reg = <0x7000d400 0x200>;
  657. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  658. #address-cells = <1>;
  659. #size-cells = <0>;
  660. clocks = <&tegra_car TEGRA30_CLK_SBC1>;
  661. resets = <&tegra_car 41>;
  662. reset-names = "spi";
  663. dmas = <&apbdma 15>, <&apbdma 15>;
  664. dma-names = "rx", "tx";
  665. power-domains = <&pd_core>;
  666. operating-points-v2 = <&sbc1_dvfs_opp_table>;
  667. status = "disabled";
  668. };
  669. spi@7000d600 {
  670. compatible = "nvidia,tegra30-slink";
  671. reg = <0x7000d600 0x200>;
  672. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  673. #address-cells = <1>;
  674. #size-cells = <0>;
  675. clocks = <&tegra_car TEGRA30_CLK_SBC2>;
  676. resets = <&tegra_car 44>;
  677. reset-names = "spi";
  678. dmas = <&apbdma 16>, <&apbdma 16>;
  679. dma-names = "rx", "tx";
  680. power-domains = <&pd_core>;
  681. operating-points-v2 = <&sbc2_dvfs_opp_table>;
  682. status = "disabled";
  683. };
  684. spi@7000d800 {
  685. compatible = "nvidia,tegra30-slink";
  686. reg = <0x7000d800 0x200>;
  687. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  688. #address-cells = <1>;
  689. #size-cells = <0>;
  690. clocks = <&tegra_car TEGRA30_CLK_SBC3>;
  691. resets = <&tegra_car 46>;
  692. reset-names = "spi";
  693. dmas = <&apbdma 17>, <&apbdma 17>;
  694. dma-names = "rx", "tx";
  695. power-domains = <&pd_core>;
  696. operating-points-v2 = <&sbc3_dvfs_opp_table>;
  697. status = "disabled";
  698. };
  699. spi@7000da00 {
  700. compatible = "nvidia,tegra30-slink";
  701. reg = <0x7000da00 0x200>;
  702. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  703. #address-cells = <1>;
  704. #size-cells = <0>;
  705. clocks = <&tegra_car TEGRA30_CLK_SBC4>;
  706. resets = <&tegra_car 68>;
  707. reset-names = "spi";
  708. dmas = <&apbdma 18>, <&apbdma 18>;
  709. dma-names = "rx", "tx";
  710. power-domains = <&pd_core>;
  711. operating-points-v2 = <&sbc4_dvfs_opp_table>;
  712. status = "disabled";
  713. };
  714. spi@7000dc00 {
  715. compatible = "nvidia,tegra30-slink";
  716. reg = <0x7000dc00 0x200>;
  717. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  718. #address-cells = <1>;
  719. #size-cells = <0>;
  720. clocks = <&tegra_car TEGRA30_CLK_SBC5>;
  721. resets = <&tegra_car 104>;
  722. reset-names = "spi";
  723. dmas = <&apbdma 27>, <&apbdma 27>;
  724. dma-names = "rx", "tx";
  725. power-domains = <&pd_core>;
  726. operating-points-v2 = <&sbc5_dvfs_opp_table>;
  727. status = "disabled";
  728. };
  729. spi@7000de00 {
  730. compatible = "nvidia,tegra30-slink";
  731. reg = <0x7000de00 0x200>;
  732. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  733. #address-cells = <1>;
  734. #size-cells = <0>;
  735. clocks = <&tegra_car TEGRA30_CLK_SBC6>;
  736. resets = <&tegra_car 106>;
  737. reset-names = "spi";
  738. dmas = <&apbdma 28>, <&apbdma 28>;
  739. dma-names = "rx", "tx";
  740. power-domains = <&pd_core>;
  741. operating-points-v2 = <&sbc6_dvfs_opp_table>;
  742. status = "disabled";
  743. };
  744. kbc@7000e200 {
  745. compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc";
  746. reg = <0x7000e200 0x100>;
  747. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  748. clocks = <&tegra_car TEGRA30_CLK_KBC>;
  749. resets = <&tegra_car 36>;
  750. reset-names = "kbc";
  751. status = "disabled";
  752. };
  753. tegra_pmc: pmc@7000e400 {
  754. compatible = "nvidia,tegra30-pmc";
  755. reg = <0x7000e400 0x400>;
  756. clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>;
  757. clock-names = "pclk", "clk32k_in";
  758. #clock-cells = <1>;
  759. pd_core: core-domain {
  760. #power-domain-cells = <0>;
  761. operating-points-v2 = <&core_opp_table>;
  762. };
  763. powergates {
  764. pd_3d0: td {
  765. clocks = <&tegra_car TEGRA30_CLK_GR3D>;
  766. resets = <&mc TEGRA30_MC_RESET_3D>,
  767. <&tegra_car TEGRA30_CLK_GR3D>;
  768. power-domains = <&pd_core>;
  769. #power-domain-cells = <0>;
  770. };
  771. pd_3d1: td2 {
  772. clocks = <&tegra_car TEGRA30_CLK_GR3D2>;
  773. resets = <&mc TEGRA30_MC_RESET_3D2>,
  774. <&tegra_car TEGRA30_CLK_GR3D2>;
  775. power-domains = <&pd_core>;
  776. #power-domain-cells = <0>;
  777. };
  778. pd_venc: venc {
  779. clocks = <&tegra_car TEGRA30_CLK_ISP>,
  780. <&tegra_car TEGRA30_CLK_VI>,
  781. <&tegra_car TEGRA30_CLK_CSI>;
  782. resets = <&mc TEGRA30_MC_RESET_ISP>,
  783. <&mc TEGRA30_MC_RESET_VI>,
  784. <&tegra_car TEGRA30_CLK_ISP>,
  785. <&tegra_car 20 /* VI */>,
  786. <&tegra_car TEGRA30_CLK_CSI>;
  787. power-domains = <&pd_core>;
  788. #power-domain-cells = <0>;
  789. };
  790. pd_vde: vdec {
  791. clocks = <&tegra_car TEGRA30_CLK_VDE>;
  792. resets = <&mc TEGRA30_MC_RESET_VDE>,
  793. <&tegra_car TEGRA30_CLK_VDE>;
  794. power-domains = <&pd_core>;
  795. #power-domain-cells = <0>;
  796. };
  797. pd_mpe: mpe {
  798. clocks = <&tegra_car TEGRA30_CLK_MPE>;
  799. resets = <&mc TEGRA30_MC_RESET_MPE>,
  800. <&tegra_car TEGRA30_CLK_MPE>;
  801. power-domains = <&pd_core>;
  802. #power-domain-cells = <0>;
  803. };
  804. pd_heg: heg {
  805. clocks = <&tegra_car TEGRA30_CLK_GR2D>,
  806. <&tegra_car TEGRA30_CLK_EPP>,
  807. <&tegra_car TEGRA30_CLK_HOST1X>;
  808. resets = <&mc TEGRA30_MC_RESET_2D>,
  809. <&mc TEGRA30_MC_RESET_EPP>,
  810. <&mc TEGRA30_MC_RESET_HC>,
  811. <&tegra_car TEGRA30_CLK_GR2D>,
  812. <&tegra_car TEGRA30_CLK_EPP>,
  813. <&tegra_car TEGRA30_CLK_HOST1X>;
  814. power-domains = <&pd_core>;
  815. #power-domain-cells = <0>;
  816. };
  817. };
  818. };
  819. mc: memory-controller@7000f000 {
  820. compatible = "nvidia,tegra30-mc";
  821. reg = <0x7000f000 0x400>;
  822. clocks = <&tegra_car TEGRA30_CLK_MC>;
  823. clock-names = "mc";
  824. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  825. #iommu-cells = <1>;
  826. #reset-cells = <1>;
  827. #interconnect-cells = <1>;
  828. };
  829. emc: memory-controller@7000f400 {
  830. compatible = "nvidia,tegra30-emc";
  831. reg = <0x7000f400 0x400>;
  832. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
  833. clocks = <&tegra_car TEGRA30_CLK_EMC>;
  834. power-domains = <&pd_core>;
  835. nvidia,memory-controller = <&mc>;
  836. operating-points-v2 = <&emc_icc_dvfs_opp_table>;
  837. #interconnect-cells = <0>;
  838. };
  839. fuse@7000f800 {
  840. compatible = "nvidia,tegra30-efuse";
  841. reg = <0x7000f800 0x400>;
  842. clocks = <&tegra_car TEGRA30_CLK_FUSE>;
  843. clock-names = "fuse";
  844. resets = <&tegra_car 39>;
  845. reset-names = "fuse";
  846. power-domains = <&pd_core>;
  847. operating-points-v2 = <&fuse_burn_dvfs_opp_table>;
  848. };
  849. tsensor: tsensor@70014000 {
  850. compatible = "nvidia,tegra30-tsensor";
  851. reg = <0x70014000 0x500>;
  852. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  853. clocks = <&tegra_car TEGRA30_CLK_TSENSOR>;
  854. resets = <&tegra_car TEGRA30_CLK_TSENSOR>;
  855. assigned-clocks = <&tegra_car TEGRA30_CLK_TSENSOR>;
  856. assigned-clock-parents = <&tegra_car TEGRA30_CLK_CLK_M>;
  857. assigned-clock-rates = <500000>;
  858. #thermal-sensor-cells = <1>;
  859. };
  860. hda@70030000 {
  861. compatible = "nvidia,tegra30-hda";
  862. reg = <0x70030000 0x10000>;
  863. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  864. clocks = <&tegra_car TEGRA30_CLK_HDA>,
  865. <&tegra_car TEGRA30_CLK_HDA2HDMI>,
  866. <&tegra_car TEGRA30_CLK_HDA2CODEC_2X>;
  867. clock-names = "hda", "hda2hdmi", "hda2codec_2x";
  868. resets = <&tegra_car 125>, /* hda */
  869. <&tegra_car 128>, /* hda2hdmi */
  870. <&tegra_car 111>; /* hda2codec_2x */
  871. reset-names = "hda", "hda2hdmi", "hda2codec_2x";
  872. status = "disabled";
  873. };
  874. ahub@70080000 {
  875. compatible = "nvidia,tegra30-ahub";
  876. reg = <0x70080000 0x200>,
  877. <0x70080200 0x100>;
  878. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  879. clocks = <&tegra_car TEGRA30_CLK_D_AUDIO>,
  880. <&tegra_car TEGRA30_CLK_APBIF>;
  881. clock-names = "d_audio", "apbif";
  882. resets = <&tegra_car 106>, /* d_audio */
  883. <&tegra_car 107>, /* apbif */
  884. <&tegra_car 30>, /* i2s0 */
  885. <&tegra_car 11>, /* i2s1 */
  886. <&tegra_car 18>, /* i2s2 */
  887. <&tegra_car 101>, /* i2s3 */
  888. <&tegra_car 102>, /* i2s4 */
  889. <&tegra_car 108>, /* dam0 */
  890. <&tegra_car 109>, /* dam1 */
  891. <&tegra_car 110>, /* dam2 */
  892. <&tegra_car 10>; /* spdif */
  893. reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
  894. "i2s3", "i2s4", "dam0", "dam1", "dam2",
  895. "spdif";
  896. dmas = <&apbdma 1>, <&apbdma 1>,
  897. <&apbdma 2>, <&apbdma 2>,
  898. <&apbdma 3>, <&apbdma 3>,
  899. <&apbdma 4>, <&apbdma 4>;
  900. dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2",
  901. "rx3", "tx3";
  902. ranges;
  903. #address-cells = <1>;
  904. #size-cells = <1>;
  905. tegra_i2s0: i2s@70080300 {
  906. compatible = "nvidia,tegra30-i2s";
  907. reg = <0x70080300 0x100>;
  908. nvidia,ahub-cif-ids = <4 4>;
  909. clocks = <&tegra_car TEGRA30_CLK_I2S0>;
  910. resets = <&tegra_car 30>;
  911. reset-names = "i2s";
  912. status = "disabled";
  913. };
  914. tegra_i2s1: i2s@70080400 {
  915. compatible = "nvidia,tegra30-i2s";
  916. reg = <0x70080400 0x100>;
  917. nvidia,ahub-cif-ids = <5 5>;
  918. clocks = <&tegra_car TEGRA30_CLK_I2S1>;
  919. resets = <&tegra_car 11>;
  920. reset-names = "i2s";
  921. status = "disabled";
  922. };
  923. tegra_i2s2: i2s@70080500 {
  924. compatible = "nvidia,tegra30-i2s";
  925. reg = <0x70080500 0x100>;
  926. nvidia,ahub-cif-ids = <6 6>;
  927. clocks = <&tegra_car TEGRA30_CLK_I2S2>;
  928. resets = <&tegra_car 18>;
  929. reset-names = "i2s";
  930. status = "disabled";
  931. };
  932. tegra_i2s3: i2s@70080600 {
  933. compatible = "nvidia,tegra30-i2s";
  934. reg = <0x70080600 0x100>;
  935. nvidia,ahub-cif-ids = <7 7>;
  936. clocks = <&tegra_car TEGRA30_CLK_I2S3>;
  937. resets = <&tegra_car 101>;
  938. reset-names = "i2s";
  939. status = "disabled";
  940. };
  941. tegra_i2s4: i2s@70080700 {
  942. compatible = "nvidia,tegra30-i2s";
  943. reg = <0x70080700 0x100>;
  944. nvidia,ahub-cif-ids = <8 8>;
  945. clocks = <&tegra_car TEGRA30_CLK_I2S4>;
  946. resets = <&tegra_car 102>;
  947. reset-names = "i2s";
  948. status = "disabled";
  949. };
  950. };
  951. mmc@78000000 {
  952. compatible = "nvidia,tegra30-sdhci";
  953. reg = <0x78000000 0x200>;
  954. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  955. clocks = <&tegra_car TEGRA30_CLK_SDMMC1>;
  956. clock-names = "sdhci";
  957. resets = <&tegra_car 14>;
  958. reset-names = "sdhci";
  959. power-domains = <&pd_core>;
  960. operating-points-v2 = <&sdmmc1_dvfs_opp_table>;
  961. status = "disabled";
  962. };
  963. mmc@78000200 {
  964. compatible = "nvidia,tegra30-sdhci";
  965. reg = <0x78000200 0x200>;
  966. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  967. clocks = <&tegra_car TEGRA30_CLK_SDMMC2>;
  968. clock-names = "sdhci";
  969. resets = <&tegra_car 9>;
  970. reset-names = "sdhci";
  971. status = "disabled";
  972. };
  973. mmc@78000400 {
  974. compatible = "nvidia,tegra30-sdhci";
  975. reg = <0x78000400 0x200>;
  976. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
  977. clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
  978. clock-names = "sdhci";
  979. resets = <&tegra_car 69>;
  980. reset-names = "sdhci";
  981. power-domains = <&pd_core>;
  982. operating-points-v2 = <&sdmmc3_dvfs_opp_table>;
  983. status = "disabled";
  984. };
  985. mmc@78000600 {
  986. compatible = "nvidia,tegra30-sdhci";
  987. reg = <0x78000600 0x200>;
  988. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  989. clocks = <&tegra_car TEGRA30_CLK_SDMMC4>;
  990. clock-names = "sdhci";
  991. resets = <&tegra_car 15>;
  992. reset-names = "sdhci";
  993. status = "disabled";
  994. };
  995. usb@7d000000 {
  996. compatible = "nvidia,tegra30-ehci";
  997. reg = <0x7d000000 0x4000>;
  998. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  999. phy_type = "utmi";
  1000. clocks = <&tegra_car TEGRA30_CLK_USBD>;
  1001. resets = <&tegra_car 22>;
  1002. reset-names = "usb";
  1003. nvidia,needs-double-reset;
  1004. nvidia,phy = <&phy1>;
  1005. power-domains = <&pd_core>;
  1006. operating-points-v2 = <&usbd_dvfs_opp_table>;
  1007. status = "disabled";
  1008. };
  1009. phy1: usb-phy@7d000000 {
  1010. compatible = "nvidia,tegra30-usb-phy";
  1011. reg = <0x7d000000 0x4000>,
  1012. <0x7d000000 0x4000>;
  1013. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  1014. phy_type = "utmi";
  1015. clocks = <&tegra_car TEGRA30_CLK_USBD>,
  1016. <&tegra_car TEGRA30_CLK_PLL_U>,
  1017. <&tegra_car TEGRA30_CLK_USBD>;
  1018. clock-names = "reg", "pll_u", "utmi-pads";
  1019. resets = <&tegra_car 22>, <&tegra_car 22>;
  1020. reset-names = "usb", "utmi-pads";
  1021. #phy-cells = <0>;
  1022. nvidia,hssync-start-delay = <9>;
  1023. nvidia,idle-wait-delay = <17>;
  1024. nvidia,elastic-limit = <16>;
  1025. nvidia,term-range-adj = <6>;
  1026. nvidia,xcvr-setup = <51>;
  1027. nvidia,xcvr-setup-use-fuses;
  1028. nvidia,xcvr-lsfslew = <1>;
  1029. nvidia,xcvr-lsrslew = <1>;
  1030. nvidia,xcvr-hsslew = <32>;
  1031. nvidia,hssquelch-level = <2>;
  1032. nvidia,hsdiscon-level = <5>;
  1033. nvidia,has-utmi-pad-registers;
  1034. nvidia,pmc = <&tegra_pmc 0>;
  1035. status = "disabled";
  1036. };
  1037. usb@7d004000 {
  1038. compatible = "nvidia,tegra30-ehci";
  1039. reg = <0x7d004000 0x4000>;
  1040. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  1041. phy_type = "utmi";
  1042. clocks = <&tegra_car TEGRA30_CLK_USB2>;
  1043. resets = <&tegra_car 58>;
  1044. reset-names = "usb";
  1045. nvidia,phy = <&phy2>;
  1046. power-domains = <&pd_core>;
  1047. operating-points-v2 = <&usb2_dvfs_opp_table>;
  1048. status = "disabled";
  1049. };
  1050. phy2: usb-phy@7d004000 {
  1051. compatible = "nvidia,tegra30-usb-phy";
  1052. reg = <0x7d004000 0x4000>,
  1053. <0x7d000000 0x4000>;
  1054. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  1055. phy_type = "utmi";
  1056. clocks = <&tegra_car TEGRA30_CLK_USB2>,
  1057. <&tegra_car TEGRA30_CLK_PLL_U>,
  1058. <&tegra_car TEGRA30_CLK_USBD>;
  1059. clock-names = "reg", "pll_u", "utmi-pads";
  1060. resets = <&tegra_car 58>, <&tegra_car 22>;
  1061. reset-names = "usb", "utmi-pads";
  1062. #phy-cells = <0>;
  1063. nvidia,hssync-start-delay = <9>;
  1064. nvidia,idle-wait-delay = <17>;
  1065. nvidia,elastic-limit = <16>;
  1066. nvidia,term-range-adj = <6>;
  1067. nvidia,xcvr-setup = <51>;
  1068. nvidia,xcvr-setup-use-fuses;
  1069. nvidia,xcvr-lsfslew = <2>;
  1070. nvidia,xcvr-lsrslew = <2>;
  1071. nvidia,xcvr-hsslew = <32>;
  1072. nvidia,hssquelch-level = <2>;
  1073. nvidia,hsdiscon-level = <5>;
  1074. nvidia,pmc = <&tegra_pmc 2>;
  1075. status = "disabled";
  1076. };
  1077. usb@7d008000 {
  1078. compatible = "nvidia,tegra30-ehci";
  1079. reg = <0x7d008000 0x4000>;
  1080. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  1081. phy_type = "utmi";
  1082. clocks = <&tegra_car TEGRA30_CLK_USB3>;
  1083. resets = <&tegra_car 59>;
  1084. reset-names = "usb";
  1085. nvidia,phy = <&phy3>;
  1086. power-domains = <&pd_core>;
  1087. operating-points-v2 = <&usb3_dvfs_opp_table>;
  1088. status = "disabled";
  1089. };
  1090. phy3: usb-phy@7d008000 {
  1091. compatible = "nvidia,tegra30-usb-phy";
  1092. reg = <0x7d008000 0x4000>,
  1093. <0x7d000000 0x4000>;
  1094. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  1095. phy_type = "utmi";
  1096. clocks = <&tegra_car TEGRA30_CLK_USB3>,
  1097. <&tegra_car TEGRA30_CLK_PLL_U>,
  1098. <&tegra_car TEGRA30_CLK_USBD>;
  1099. clock-names = "reg", "pll_u", "utmi-pads";
  1100. resets = <&tegra_car 59>, <&tegra_car 22>;
  1101. reset-names = "usb", "utmi-pads";
  1102. #phy-cells = <0>;
  1103. nvidia,hssync-start-delay = <0>;
  1104. nvidia,idle-wait-delay = <17>;
  1105. nvidia,elastic-limit = <16>;
  1106. nvidia,term-range-adj = <6>;
  1107. nvidia,xcvr-setup = <51>;
  1108. nvidia,xcvr-setup-use-fuses;
  1109. nvidia,xcvr-lsfslew = <2>;
  1110. nvidia,xcvr-lsrslew = <2>;
  1111. nvidia,xcvr-hsslew = <32>;
  1112. nvidia,hssquelch-level = <2>;
  1113. nvidia,hsdiscon-level = <5>;
  1114. nvidia,pmc = <&tegra_pmc 1>;
  1115. status = "disabled";
  1116. };
  1117. cpus {
  1118. #address-cells = <1>;
  1119. #size-cells = <0>;
  1120. cpu0: cpu@0 {
  1121. device_type = "cpu";
  1122. compatible = "arm,cortex-a9";
  1123. reg = <0>;
  1124. clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
  1125. #cooling-cells = <2>;
  1126. };
  1127. cpu1: cpu@1 {
  1128. device_type = "cpu";
  1129. compatible = "arm,cortex-a9";
  1130. reg = <1>;
  1131. clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
  1132. #cooling-cells = <2>;
  1133. };
  1134. cpu2: cpu@2 {
  1135. device_type = "cpu";
  1136. compatible = "arm,cortex-a9";
  1137. reg = <2>;
  1138. clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
  1139. #cooling-cells = <2>;
  1140. };
  1141. cpu3: cpu@3 {
  1142. device_type = "cpu";
  1143. compatible = "arm,cortex-a9";
  1144. reg = <3>;
  1145. clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
  1146. #cooling-cells = <2>;
  1147. };
  1148. };
  1149. pmu {
  1150. compatible = "arm,cortex-a9-pmu";
  1151. interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
  1152. <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
  1153. <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
  1154. <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
  1155. interrupt-affinity = <&{/cpus/cpu@0}>,
  1156. <&{/cpus/cpu@1}>,
  1157. <&{/cpus/cpu@2}>,
  1158. <&{/cpus/cpu@3}>;
  1159. };
  1160. thermal-zones {
  1161. tsensor0-thermal {
  1162. polling-delay-passive = <1000>; /* milliseconds */
  1163. polling-delay = <5000>; /* milliseconds */
  1164. thermal-sensors = <&tsensor 0>;
  1165. trips {
  1166. level1_trip: dvfs-alert {
  1167. /* throttle at 80C until temperature drops to 79.8C */
  1168. temperature = <80000>;
  1169. hysteresis = <200>;
  1170. type = "passive";
  1171. };
  1172. level2_trip: cpu-div2-throttle {
  1173. /* hardware CPU x2 freq throttle at 85C */
  1174. temperature = <85000>;
  1175. hysteresis = <200>;
  1176. type = "hot";
  1177. };
  1178. level3_trip: soc-critical {
  1179. /* hardware shut down at 90C */
  1180. temperature = <90000>;
  1181. hysteresis = <2000>;
  1182. type = "critical";
  1183. };
  1184. };
  1185. cooling-maps {
  1186. map0 {
  1187. trip = <&level1_trip>;
  1188. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1189. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1190. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1191. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1192. <&actmon THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1193. };
  1194. };
  1195. };
  1196. tsensor1-thermal {
  1197. status = "disabled";
  1198. polling-delay-passive = <1000>; /* milliseconds */
  1199. polling-delay = <0>; /* milliseconds */
  1200. thermal-sensors = <&tsensor 1>;
  1201. trips {
  1202. dvfs-alert {
  1203. temperature = <80000>;
  1204. hysteresis = <200>;
  1205. type = "passive";
  1206. };
  1207. };
  1208. };
  1209. };
  1210. };