tegra30.dtsi 37 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064106510661067106810691070107110721073107410751076107710781079108010811082108310841085108610871088108910901091109210931094109510961097109810991100110111021103110411051106110711081109111011111112111311141115111611171118111911201121112211231124112511261127112811291130113111321133113411351136113711381139114011411142114311441145114611471148114911501151115211531154115511561157115811591160116111621163116411651166116711681169117011711172117311741175117611771178117911801181118211831184118511861187118811891190119111921193119411951196119711981199120012011202120312041205120612071208120912101211121212131214121512161217121812191220122112221223122412251226122712281229123012311232123312341235123612371238123912401241124212431244124512461247124812491250125112521253125412551256125712581259126012611262126312641265126612671268126912701271127212731274127512761277127812791280128112821283128412851286128712881289129012911292129312941295129612971298129913001301130213031304130513061307130813091310131113121313131413151316131713181319132013211322132313241325132613271328132913301331133213331334133513361337133813391340134113421343
  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. pll-c {
  342. compatible = "nvidia,tegra30-pllc";
  343. clocks = <&tegra_car TEGRA30_CLK_PLL_C>;
  344. power-domains = <&pd_core>;
  345. operating-points-v2 = <&pll_c_dvfs_opp_table>;
  346. };
  347. pll-e {
  348. compatible = "nvidia,tegra30-plle";
  349. clocks = <&tegra_car TEGRA30_CLK_PLL_E>;
  350. power-domains = <&pd_core>;
  351. operating-points-v2 = <&pll_e_dvfs_opp_table>;
  352. };
  353. pll-m {
  354. compatible = "nvidia,tegra30-pllm";
  355. clocks = <&tegra_car TEGRA30_CLK_PLL_M>;
  356. power-domains = <&pd_core>;
  357. operating-points-v2 = <&pll_m_dvfs_opp_table>;
  358. };
  359. sclk {
  360. compatible = "nvidia,tegra30-sclk";
  361. clocks = <&tegra_car TEGRA30_CLK_SCLK>;
  362. power-domains = <&pd_core>;
  363. operating-points-v2 = <&sclk_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. dmas = <&apbdma 8>, <&apbdma 8>;
  496. dma-names = "rx", "tx";
  497. status = "disabled";
  498. };
  499. uartb: serial@70006040 {
  500. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  501. reg = <0x70006040 0x40>;
  502. reg-shift = <2>;
  503. interrupts = <GIC_SPI 37 IRQ_TYPE_LEVEL_HIGH>;
  504. clocks = <&tegra_car TEGRA30_CLK_UARTB>;
  505. resets = <&tegra_car 7>;
  506. dmas = <&apbdma 9>, <&apbdma 9>;
  507. dma-names = "rx", "tx";
  508. status = "disabled";
  509. };
  510. uartc: serial@70006200 {
  511. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  512. reg = <0x70006200 0x100>;
  513. reg-shift = <2>;
  514. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  515. clocks = <&tegra_car TEGRA30_CLK_UARTC>;
  516. resets = <&tegra_car 55>;
  517. dmas = <&apbdma 10>, <&apbdma 10>;
  518. dma-names = "rx", "tx";
  519. status = "disabled";
  520. };
  521. uartd: serial@70006300 {
  522. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  523. reg = <0x70006300 0x100>;
  524. reg-shift = <2>;
  525. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  526. clocks = <&tegra_car TEGRA30_CLK_UARTD>;
  527. resets = <&tegra_car 65>;
  528. dmas = <&apbdma 19>, <&apbdma 19>;
  529. dma-names = "rx", "tx";
  530. status = "disabled";
  531. };
  532. uarte: serial@70006400 {
  533. compatible = "nvidia,tegra30-uart", "nvidia,tegra20-uart";
  534. reg = <0x70006400 0x100>;
  535. reg-shift = <2>;
  536. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  537. clocks = <&tegra_car TEGRA30_CLK_UARTE>;
  538. resets = <&tegra_car 66>;
  539. dmas = <&apbdma 20>, <&apbdma 20>;
  540. dma-names = "rx", "tx";
  541. status = "disabled";
  542. };
  543. gmi@70009000 {
  544. compatible = "nvidia,tegra30-gmi";
  545. reg = <0x70009000 0x1000>;
  546. #address-cells = <2>;
  547. #size-cells = <1>;
  548. ranges = <0 0 0x48000000 0x7ffffff>;
  549. clocks = <&tegra_car TEGRA30_CLK_NOR>;
  550. clock-names = "gmi";
  551. resets = <&tegra_car 42>;
  552. reset-names = "gmi";
  553. power-domains = <&pd_core>;
  554. operating-points-v2 = <&nor_dvfs_opp_table>;
  555. status = "disabled";
  556. };
  557. pwm: pwm@7000a000 {
  558. compatible = "nvidia,tegra30-pwm", "nvidia,tegra20-pwm";
  559. reg = <0x7000a000 0x100>;
  560. #pwm-cells = <2>;
  561. clocks = <&tegra_car TEGRA30_CLK_PWM>;
  562. resets = <&tegra_car 17>;
  563. reset-names = "pwm";
  564. power-domains = <&pd_core>;
  565. operating-points-v2 = <&pwm_dvfs_opp_table>;
  566. status = "disabled";
  567. };
  568. i2c@7000c000 {
  569. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  570. reg = <0x7000c000 0x100>;
  571. interrupts = <GIC_SPI 38 IRQ_TYPE_LEVEL_HIGH>;
  572. #address-cells = <1>;
  573. #size-cells = <0>;
  574. clocks = <&tegra_car TEGRA30_CLK_I2C1>,
  575. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  576. clock-names = "div-clk", "fast-clk";
  577. resets = <&tegra_car 12>;
  578. reset-names = "i2c";
  579. dmas = <&apbdma 21>, <&apbdma 21>;
  580. dma-names = "rx", "tx";
  581. status = "disabled";
  582. };
  583. i2c@7000c400 {
  584. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  585. reg = <0x7000c400 0x100>;
  586. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  587. #address-cells = <1>;
  588. #size-cells = <0>;
  589. clocks = <&tegra_car TEGRA30_CLK_I2C2>,
  590. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  591. clock-names = "div-clk", "fast-clk";
  592. resets = <&tegra_car 54>;
  593. reset-names = "i2c";
  594. dmas = <&apbdma 22>, <&apbdma 22>;
  595. dma-names = "rx", "tx";
  596. status = "disabled";
  597. };
  598. i2c@7000c500 {
  599. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  600. reg = <0x7000c500 0x100>;
  601. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  602. #address-cells = <1>;
  603. #size-cells = <0>;
  604. clocks = <&tegra_car TEGRA30_CLK_I2C3>,
  605. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  606. clock-names = "div-clk", "fast-clk";
  607. resets = <&tegra_car 67>;
  608. reset-names = "i2c";
  609. dmas = <&apbdma 23>, <&apbdma 23>;
  610. dma-names = "rx", "tx";
  611. status = "disabled";
  612. };
  613. i2c@7000c700 {
  614. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  615. reg = <0x7000c700 0x100>;
  616. interrupts = <GIC_SPI 120 IRQ_TYPE_LEVEL_HIGH>;
  617. #address-cells = <1>;
  618. #size-cells = <0>;
  619. clocks = <&tegra_car TEGRA30_CLK_I2C4>,
  620. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  621. resets = <&tegra_car 103>;
  622. reset-names = "i2c";
  623. clock-names = "div-clk", "fast-clk";
  624. dmas = <&apbdma 26>, <&apbdma 26>;
  625. dma-names = "rx", "tx";
  626. status = "disabled";
  627. };
  628. i2c@7000d000 {
  629. compatible = "nvidia,tegra30-i2c", "nvidia,tegra20-i2c";
  630. reg = <0x7000d000 0x100>;
  631. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>;
  632. #address-cells = <1>;
  633. #size-cells = <0>;
  634. clocks = <&tegra_car TEGRA30_CLK_I2C5>,
  635. <&tegra_car TEGRA30_CLK_PLL_P_OUT3>;
  636. clock-names = "div-clk", "fast-clk";
  637. resets = <&tegra_car 47>;
  638. reset-names = "i2c";
  639. dmas = <&apbdma 24>, <&apbdma 24>;
  640. dma-names = "rx", "tx";
  641. status = "disabled";
  642. };
  643. spi@7000d400 {
  644. compatible = "nvidia,tegra30-slink";
  645. reg = <0x7000d400 0x200>;
  646. interrupts = <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>;
  647. #address-cells = <1>;
  648. #size-cells = <0>;
  649. clocks = <&tegra_car TEGRA30_CLK_SBC1>;
  650. resets = <&tegra_car 41>;
  651. reset-names = "spi";
  652. dmas = <&apbdma 15>, <&apbdma 15>;
  653. dma-names = "rx", "tx";
  654. power-domains = <&pd_core>;
  655. operating-points-v2 = <&sbc1_dvfs_opp_table>;
  656. status = "disabled";
  657. };
  658. spi@7000d600 {
  659. compatible = "nvidia,tegra30-slink";
  660. reg = <0x7000d600 0x200>;
  661. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  662. #address-cells = <1>;
  663. #size-cells = <0>;
  664. clocks = <&tegra_car TEGRA30_CLK_SBC2>;
  665. resets = <&tegra_car 44>;
  666. reset-names = "spi";
  667. dmas = <&apbdma 16>, <&apbdma 16>;
  668. dma-names = "rx", "tx";
  669. power-domains = <&pd_core>;
  670. operating-points-v2 = <&sbc2_dvfs_opp_table>;
  671. status = "disabled";
  672. };
  673. spi@7000d800 {
  674. compatible = "nvidia,tegra30-slink";
  675. reg = <0x7000d800 0x200>;
  676. interrupts = <GIC_SPI 83 IRQ_TYPE_LEVEL_HIGH>;
  677. #address-cells = <1>;
  678. #size-cells = <0>;
  679. clocks = <&tegra_car TEGRA30_CLK_SBC3>;
  680. resets = <&tegra_car 46>;
  681. reset-names = "spi";
  682. dmas = <&apbdma 17>, <&apbdma 17>;
  683. dma-names = "rx", "tx";
  684. power-domains = <&pd_core>;
  685. operating-points-v2 = <&sbc3_dvfs_opp_table>;
  686. status = "disabled";
  687. };
  688. spi@7000da00 {
  689. compatible = "nvidia,tegra30-slink";
  690. reg = <0x7000da00 0x200>;
  691. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  692. #address-cells = <1>;
  693. #size-cells = <0>;
  694. clocks = <&tegra_car TEGRA30_CLK_SBC4>;
  695. resets = <&tegra_car 68>;
  696. reset-names = "spi";
  697. dmas = <&apbdma 18>, <&apbdma 18>;
  698. dma-names = "rx", "tx";
  699. power-domains = <&pd_core>;
  700. operating-points-v2 = <&sbc4_dvfs_opp_table>;
  701. status = "disabled";
  702. };
  703. spi@7000dc00 {
  704. compatible = "nvidia,tegra30-slink";
  705. reg = <0x7000dc00 0x200>;
  706. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  707. #address-cells = <1>;
  708. #size-cells = <0>;
  709. clocks = <&tegra_car TEGRA30_CLK_SBC5>;
  710. resets = <&tegra_car 104>;
  711. reset-names = "spi";
  712. dmas = <&apbdma 27>, <&apbdma 27>;
  713. dma-names = "rx", "tx";
  714. power-domains = <&pd_core>;
  715. operating-points-v2 = <&sbc5_dvfs_opp_table>;
  716. status = "disabled";
  717. };
  718. spi@7000de00 {
  719. compatible = "nvidia,tegra30-slink";
  720. reg = <0x7000de00 0x200>;
  721. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  722. #address-cells = <1>;
  723. #size-cells = <0>;
  724. clocks = <&tegra_car TEGRA30_CLK_SBC6>;
  725. resets = <&tegra_car 106>;
  726. reset-names = "spi";
  727. dmas = <&apbdma 28>, <&apbdma 28>;
  728. dma-names = "rx", "tx";
  729. power-domains = <&pd_core>;
  730. operating-points-v2 = <&sbc6_dvfs_opp_table>;
  731. status = "disabled";
  732. };
  733. rtc@7000e000 {
  734. compatible = "nvidia,tegra30-rtc", "nvidia,tegra20-rtc";
  735. reg = <0x7000e000 0x100>;
  736. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>;
  737. clocks = <&tegra_car TEGRA30_CLK_RTC>;
  738. };
  739. kbc@7000e200 {
  740. compatible = "nvidia,tegra30-kbc", "nvidia,tegra20-kbc";
  741. reg = <0x7000e200 0x100>;
  742. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  743. clocks = <&tegra_car TEGRA30_CLK_KBC>;
  744. resets = <&tegra_car 36>;
  745. reset-names = "kbc";
  746. status = "disabled";
  747. };
  748. tegra_pmc: pmc@7000e400 {
  749. compatible = "nvidia,tegra30-pmc";
  750. reg = <0x7000e400 0x400>;
  751. clocks = <&tegra_car TEGRA30_CLK_PCLK>, <&clk32k_in>;
  752. clock-names = "pclk", "clk32k_in";
  753. #clock-cells = <1>;
  754. pd_core: core-domain {
  755. #power-domain-cells = <0>;
  756. operating-points-v2 = <&core_opp_table>;
  757. };
  758. powergates {
  759. pd_heg: heg {
  760. clocks = <&tegra_car TEGRA30_CLK_GR2D>,
  761. <&tegra_car TEGRA30_CLK_EPP>,
  762. <&tegra_car TEGRA30_CLK_HOST1X>;
  763. resets = <&mc TEGRA30_MC_RESET_2D>,
  764. <&mc TEGRA30_MC_RESET_EPP>,
  765. <&mc TEGRA30_MC_RESET_HC>,
  766. <&tegra_car TEGRA30_CLK_GR2D>,
  767. <&tegra_car TEGRA30_CLK_EPP>,
  768. <&tegra_car TEGRA30_CLK_HOST1X>;
  769. power-domains = <&pd_core>;
  770. #power-domain-cells = <0>;
  771. };
  772. pd_mpe: mpe {
  773. clocks = <&tegra_car TEGRA30_CLK_MPE>;
  774. resets = <&mc TEGRA30_MC_RESET_MPE>,
  775. <&tegra_car TEGRA30_CLK_MPE>;
  776. power-domains = <&pd_core>;
  777. #power-domain-cells = <0>;
  778. };
  779. pd_3d0: td {
  780. clocks = <&tegra_car TEGRA30_CLK_GR3D>;
  781. resets = <&mc TEGRA30_MC_RESET_3D>,
  782. <&tegra_car TEGRA30_CLK_GR3D>;
  783. power-domains = <&pd_core>;
  784. #power-domain-cells = <0>;
  785. };
  786. pd_3d1: td2 {
  787. clocks = <&tegra_car TEGRA30_CLK_GR3D2>;
  788. resets = <&mc TEGRA30_MC_RESET_3D2>,
  789. <&tegra_car TEGRA30_CLK_GR3D2>;
  790. power-domains = <&pd_core>;
  791. #power-domain-cells = <0>;
  792. };
  793. pd_vde: vdec {
  794. clocks = <&tegra_car TEGRA30_CLK_VDE>;
  795. resets = <&mc TEGRA30_MC_RESET_VDE>,
  796. <&tegra_car TEGRA30_CLK_VDE>;
  797. power-domains = <&pd_core>;
  798. #power-domain-cells = <0>;
  799. };
  800. pd_venc: venc {
  801. clocks = <&tegra_car TEGRA30_CLK_ISP>,
  802. <&tegra_car TEGRA30_CLK_VI>,
  803. <&tegra_car TEGRA30_CLK_CSI>;
  804. resets = <&mc TEGRA30_MC_RESET_ISP>,
  805. <&mc TEGRA30_MC_RESET_VI>,
  806. <&tegra_car TEGRA30_CLK_ISP>,
  807. <&tegra_car 20 /* VI */>,
  808. <&tegra_car TEGRA30_CLK_CSI>;
  809. power-domains = <&pd_core>;
  810. #power-domain-cells = <0>;
  811. };
  812. };
  813. };
  814. mc: memory-controller@7000f000 {
  815. compatible = "nvidia,tegra30-mc";
  816. reg = <0x7000f000 0x400>;
  817. clocks = <&tegra_car TEGRA30_CLK_MC>;
  818. clock-names = "mc";
  819. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  820. #iommu-cells = <1>;
  821. #reset-cells = <1>;
  822. #interconnect-cells = <1>;
  823. };
  824. emc: memory-controller@7000f400 {
  825. compatible = "nvidia,tegra30-emc";
  826. reg = <0x7000f400 0x400>;
  827. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
  828. clocks = <&tegra_car TEGRA30_CLK_EMC>;
  829. power-domains = <&pd_core>;
  830. nvidia,memory-controller = <&mc>;
  831. operating-points-v2 = <&emc_icc_dvfs_opp_table>;
  832. #interconnect-cells = <0>;
  833. };
  834. fuse@7000f800 {
  835. compatible = "nvidia,tegra30-efuse";
  836. reg = <0x7000f800 0x400>;
  837. clocks = <&tegra_car TEGRA30_CLK_FUSE>;
  838. clock-names = "fuse";
  839. resets = <&tegra_car 39>;
  840. reset-names = "fuse";
  841. power-domains = <&pd_core>;
  842. operating-points-v2 = <&fuse_burn_dvfs_opp_table>;
  843. };
  844. tsensor: tsensor@70014000 {
  845. compatible = "nvidia,tegra30-tsensor";
  846. reg = <0x70014000 0x500>;
  847. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  848. clocks = <&tegra_car TEGRA30_CLK_TSENSOR>;
  849. resets = <&tegra_car TEGRA30_CLK_TSENSOR>;
  850. assigned-clocks = <&tegra_car TEGRA30_CLK_TSENSOR>;
  851. assigned-clock-parents = <&tegra_car TEGRA30_CLK_CLK_M>;
  852. assigned-clock-rates = <500000>;
  853. #thermal-sensor-cells = <1>;
  854. };
  855. hda@70030000 {
  856. compatible = "nvidia,tegra30-hda";
  857. reg = <0x70030000 0x10000>;
  858. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  859. clocks = <&tegra_car TEGRA30_CLK_HDA>,
  860. <&tegra_car TEGRA30_CLK_HDA2HDMI>,
  861. <&tegra_car TEGRA30_CLK_HDA2CODEC_2X>;
  862. clock-names = "hda", "hda2hdmi", "hda2codec_2x";
  863. resets = <&tegra_car 125>, /* hda */
  864. <&tegra_car 128>, /* hda2hdmi */
  865. <&tegra_car 111>; /* hda2codec_2x */
  866. reset-names = "hda", "hda2hdmi", "hda2codec_2x";
  867. status = "disabled";
  868. };
  869. ahub@70080000 {
  870. compatible = "nvidia,tegra30-ahub";
  871. reg = <0x70080000 0x200>,
  872. <0x70080200 0x100>;
  873. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  874. clocks = <&tegra_car TEGRA30_CLK_D_AUDIO>,
  875. <&tegra_car TEGRA30_CLK_APBIF>;
  876. clock-names = "d_audio", "apbif";
  877. resets = <&tegra_car 106>, /* d_audio */
  878. <&tegra_car 107>, /* apbif */
  879. <&tegra_car 30>, /* i2s0 */
  880. <&tegra_car 11>, /* i2s1 */
  881. <&tegra_car 18>, /* i2s2 */
  882. <&tegra_car 101>, /* i2s3 */
  883. <&tegra_car 102>, /* i2s4 */
  884. <&tegra_car 108>, /* dam0 */
  885. <&tegra_car 109>, /* dam1 */
  886. <&tegra_car 110>, /* dam2 */
  887. <&tegra_car 10>; /* spdif */
  888. reset-names = "d_audio", "apbif", "i2s0", "i2s1", "i2s2",
  889. "i2s3", "i2s4", "dam0", "dam1", "dam2",
  890. "spdif";
  891. dmas = <&apbdma 1>, <&apbdma 1>,
  892. <&apbdma 2>, <&apbdma 2>,
  893. <&apbdma 3>, <&apbdma 3>,
  894. <&apbdma 4>, <&apbdma 4>;
  895. dma-names = "rx0", "tx0", "rx1", "tx1", "rx2", "tx2",
  896. "rx3", "tx3";
  897. ranges;
  898. #address-cells = <1>;
  899. #size-cells = <1>;
  900. tegra_i2s0: i2s@70080300 {
  901. compatible = "nvidia,tegra30-i2s";
  902. reg = <0x70080300 0x100>;
  903. nvidia,ahub-cif-ids = <4 4>;
  904. clocks = <&tegra_car TEGRA30_CLK_I2S0>;
  905. resets = <&tegra_car 30>;
  906. reset-names = "i2s";
  907. status = "disabled";
  908. };
  909. tegra_i2s1: i2s@70080400 {
  910. compatible = "nvidia,tegra30-i2s";
  911. reg = <0x70080400 0x100>;
  912. nvidia,ahub-cif-ids = <5 5>;
  913. clocks = <&tegra_car TEGRA30_CLK_I2S1>;
  914. resets = <&tegra_car 11>;
  915. reset-names = "i2s";
  916. status = "disabled";
  917. };
  918. tegra_i2s2: i2s@70080500 {
  919. compatible = "nvidia,tegra30-i2s";
  920. reg = <0x70080500 0x100>;
  921. nvidia,ahub-cif-ids = <6 6>;
  922. clocks = <&tegra_car TEGRA30_CLK_I2S2>;
  923. resets = <&tegra_car 18>;
  924. reset-names = "i2s";
  925. status = "disabled";
  926. };
  927. tegra_i2s3: i2s@70080600 {
  928. compatible = "nvidia,tegra30-i2s";
  929. reg = <0x70080600 0x100>;
  930. nvidia,ahub-cif-ids = <7 7>;
  931. clocks = <&tegra_car TEGRA30_CLK_I2S3>;
  932. resets = <&tegra_car 101>;
  933. reset-names = "i2s";
  934. status = "disabled";
  935. };
  936. tegra_i2s4: i2s@70080700 {
  937. compatible = "nvidia,tegra30-i2s";
  938. reg = <0x70080700 0x100>;
  939. nvidia,ahub-cif-ids = <8 8>;
  940. clocks = <&tegra_car TEGRA30_CLK_I2S4>;
  941. resets = <&tegra_car 102>;
  942. reset-names = "i2s";
  943. status = "disabled";
  944. };
  945. };
  946. mmc@78000000 {
  947. compatible = "nvidia,tegra30-sdhci";
  948. reg = <0x78000000 0x200>;
  949. interrupts = <GIC_SPI 14 IRQ_TYPE_LEVEL_HIGH>;
  950. clocks = <&tegra_car TEGRA30_CLK_SDMMC1>;
  951. clock-names = "sdhci";
  952. resets = <&tegra_car 14>;
  953. reset-names = "sdhci";
  954. power-domains = <&pd_core>;
  955. operating-points-v2 = <&sdmmc1_dvfs_opp_table>;
  956. status = "disabled";
  957. };
  958. mmc@78000200 {
  959. compatible = "nvidia,tegra30-sdhci";
  960. reg = <0x78000200 0x200>;
  961. interrupts = <GIC_SPI 15 IRQ_TYPE_LEVEL_HIGH>;
  962. clocks = <&tegra_car TEGRA30_CLK_SDMMC2>;
  963. clock-names = "sdhci";
  964. resets = <&tegra_car 9>;
  965. reset-names = "sdhci";
  966. status = "disabled";
  967. };
  968. mmc@78000400 {
  969. compatible = "nvidia,tegra30-sdhci";
  970. reg = <0x78000400 0x200>;
  971. interrupts = <GIC_SPI 19 IRQ_TYPE_LEVEL_HIGH>;
  972. clocks = <&tegra_car TEGRA30_CLK_SDMMC3>;
  973. clock-names = "sdhci";
  974. resets = <&tegra_car 69>;
  975. reset-names = "sdhci";
  976. power-domains = <&pd_core>;
  977. operating-points-v2 = <&sdmmc3_dvfs_opp_table>;
  978. status = "disabled";
  979. };
  980. mmc@78000600 {
  981. compatible = "nvidia,tegra30-sdhci";
  982. reg = <0x78000600 0x200>;
  983. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  984. clocks = <&tegra_car TEGRA30_CLK_SDMMC4>;
  985. clock-names = "sdhci";
  986. resets = <&tegra_car 15>;
  987. reset-names = "sdhci";
  988. status = "disabled";
  989. };
  990. usb@7d000000 {
  991. compatible = "nvidia,tegra30-ehci";
  992. reg = <0x7d000000 0x4000>;
  993. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  994. phy_type = "utmi";
  995. clocks = <&tegra_car TEGRA30_CLK_USBD>;
  996. resets = <&tegra_car 22>;
  997. reset-names = "usb";
  998. nvidia,needs-double-reset;
  999. nvidia,phy = <&phy1>;
  1000. power-domains = <&pd_core>;
  1001. operating-points-v2 = <&usbd_dvfs_opp_table>;
  1002. status = "disabled";
  1003. };
  1004. phy1: usb-phy@7d000000 {
  1005. compatible = "nvidia,tegra30-usb-phy";
  1006. reg = <0x7d000000 0x4000>,
  1007. <0x7d000000 0x4000>;
  1008. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  1009. phy_type = "utmi";
  1010. clocks = <&tegra_car TEGRA30_CLK_USBD>,
  1011. <&tegra_car TEGRA30_CLK_PLL_U>,
  1012. <&tegra_car TEGRA30_CLK_USBD>;
  1013. clock-names = "reg", "pll_u", "utmi-pads";
  1014. resets = <&tegra_car 22>, <&tegra_car 22>;
  1015. reset-names = "usb", "utmi-pads";
  1016. #phy-cells = <0>;
  1017. nvidia,hssync-start-delay = <9>;
  1018. nvidia,idle-wait-delay = <17>;
  1019. nvidia,elastic-limit = <16>;
  1020. nvidia,term-range-adj = <6>;
  1021. nvidia,xcvr-setup = <51>;
  1022. nvidia,xcvr-setup-use-fuses;
  1023. nvidia,xcvr-lsfslew = <1>;
  1024. nvidia,xcvr-lsrslew = <1>;
  1025. nvidia,xcvr-hsslew = <32>;
  1026. nvidia,hssquelch-level = <2>;
  1027. nvidia,hsdiscon-level = <5>;
  1028. nvidia,has-utmi-pad-registers;
  1029. nvidia,pmc = <&tegra_pmc 0>;
  1030. status = "disabled";
  1031. };
  1032. usb@7d004000 {
  1033. compatible = "nvidia,tegra30-ehci";
  1034. reg = <0x7d004000 0x4000>;
  1035. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  1036. phy_type = "utmi";
  1037. clocks = <&tegra_car TEGRA30_CLK_USB2>;
  1038. resets = <&tegra_car 58>;
  1039. reset-names = "usb";
  1040. nvidia,phy = <&phy2>;
  1041. power-domains = <&pd_core>;
  1042. operating-points-v2 = <&usb2_dvfs_opp_table>;
  1043. status = "disabled";
  1044. };
  1045. phy2: usb-phy@7d004000 {
  1046. compatible = "nvidia,tegra30-usb-phy";
  1047. reg = <0x7d004000 0x4000>,
  1048. <0x7d000000 0x4000>;
  1049. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  1050. phy_type = "utmi";
  1051. clocks = <&tegra_car TEGRA30_CLK_USB2>,
  1052. <&tegra_car TEGRA30_CLK_PLL_U>,
  1053. <&tegra_car TEGRA30_CLK_USBD>;
  1054. clock-names = "reg", "pll_u", "utmi-pads";
  1055. resets = <&tegra_car 58>, <&tegra_car 22>;
  1056. reset-names = "usb", "utmi-pads";
  1057. #phy-cells = <0>;
  1058. nvidia,hssync-start-delay = <9>;
  1059. nvidia,idle-wait-delay = <17>;
  1060. nvidia,elastic-limit = <16>;
  1061. nvidia,term-range-adj = <6>;
  1062. nvidia,xcvr-setup = <51>;
  1063. nvidia,xcvr-setup-use-fuses;
  1064. nvidia,xcvr-lsfslew = <2>;
  1065. nvidia,xcvr-lsrslew = <2>;
  1066. nvidia,xcvr-hsslew = <32>;
  1067. nvidia,hssquelch-level = <2>;
  1068. nvidia,hsdiscon-level = <5>;
  1069. nvidia,pmc = <&tegra_pmc 2>;
  1070. status = "disabled";
  1071. };
  1072. usb@7d008000 {
  1073. compatible = "nvidia,tegra30-ehci";
  1074. reg = <0x7d008000 0x4000>;
  1075. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  1076. phy_type = "utmi";
  1077. clocks = <&tegra_car TEGRA30_CLK_USB3>;
  1078. resets = <&tegra_car 59>;
  1079. reset-names = "usb";
  1080. nvidia,phy = <&phy3>;
  1081. power-domains = <&pd_core>;
  1082. operating-points-v2 = <&usb3_dvfs_opp_table>;
  1083. status = "disabled";
  1084. };
  1085. phy3: usb-phy@7d008000 {
  1086. compatible = "nvidia,tegra30-usb-phy";
  1087. reg = <0x7d008000 0x4000>,
  1088. <0x7d000000 0x4000>;
  1089. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  1090. phy_type = "utmi";
  1091. clocks = <&tegra_car TEGRA30_CLK_USB3>,
  1092. <&tegra_car TEGRA30_CLK_PLL_U>,
  1093. <&tegra_car TEGRA30_CLK_USBD>;
  1094. clock-names = "reg", "pll_u", "utmi-pads";
  1095. resets = <&tegra_car 59>, <&tegra_car 22>;
  1096. reset-names = "usb", "utmi-pads";
  1097. #phy-cells = <0>;
  1098. nvidia,hssync-start-delay = <0>;
  1099. nvidia,idle-wait-delay = <17>;
  1100. nvidia,elastic-limit = <16>;
  1101. nvidia,term-range-adj = <6>;
  1102. nvidia,xcvr-setup = <51>;
  1103. nvidia,xcvr-setup-use-fuses;
  1104. nvidia,xcvr-lsfslew = <2>;
  1105. nvidia,xcvr-lsrslew = <2>;
  1106. nvidia,xcvr-hsslew = <32>;
  1107. nvidia,hssquelch-level = <2>;
  1108. nvidia,hsdiscon-level = <5>;
  1109. nvidia,pmc = <&tegra_pmc 1>;
  1110. status = "disabled";
  1111. };
  1112. cpus {
  1113. #address-cells = <1>;
  1114. #size-cells = <0>;
  1115. cpu0: cpu@0 {
  1116. device_type = "cpu";
  1117. compatible = "arm,cortex-a9";
  1118. reg = <0>;
  1119. clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
  1120. #cooling-cells = <2>;
  1121. };
  1122. cpu1: cpu@1 {
  1123. device_type = "cpu";
  1124. compatible = "arm,cortex-a9";
  1125. reg = <1>;
  1126. clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
  1127. #cooling-cells = <2>;
  1128. };
  1129. cpu2: cpu@2 {
  1130. device_type = "cpu";
  1131. compatible = "arm,cortex-a9";
  1132. reg = <2>;
  1133. clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
  1134. #cooling-cells = <2>;
  1135. };
  1136. cpu3: cpu@3 {
  1137. device_type = "cpu";
  1138. compatible = "arm,cortex-a9";
  1139. reg = <3>;
  1140. clocks = <&tegra_car TEGRA30_CLK_CCLK_G>;
  1141. #cooling-cells = <2>;
  1142. };
  1143. };
  1144. pmu {
  1145. compatible = "arm,cortex-a9-pmu";
  1146. interrupts = <GIC_SPI 144 IRQ_TYPE_LEVEL_HIGH>,
  1147. <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>,
  1148. <GIC_SPI 146 IRQ_TYPE_LEVEL_HIGH>,
  1149. <GIC_SPI 147 IRQ_TYPE_LEVEL_HIGH>;
  1150. interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
  1151. };
  1152. thermal-zones {
  1153. tsensor0-thermal {
  1154. polling-delay-passive = <1000>; /* milliseconds */
  1155. polling-delay = <5000>; /* milliseconds */
  1156. thermal-sensors = <&tsensor 0>;
  1157. trips {
  1158. level1_trip: dvfs-alert {
  1159. /* throttle at 80C until temperature drops to 79.8C */
  1160. temperature = <80000>;
  1161. hysteresis = <200>;
  1162. type = "passive";
  1163. };
  1164. level2_trip: cpu-div2-throttle {
  1165. /* hardware CPU x2 freq throttle at 85C */
  1166. temperature = <85000>;
  1167. hysteresis = <200>;
  1168. type = "hot";
  1169. };
  1170. level3_trip: soc-critical {
  1171. /* hardware shut down at 90C */
  1172. temperature = <90000>;
  1173. hysteresis = <2000>;
  1174. type = "critical";
  1175. };
  1176. };
  1177. cooling-maps {
  1178. map0 {
  1179. trip = <&level1_trip>;
  1180. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1181. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1182. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1183. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1184. <&actmon THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1185. };
  1186. };
  1187. };
  1188. tsensor1-thermal {
  1189. status = "disabled";
  1190. polling-delay-passive = <1000>; /* milliseconds */
  1191. polling-delay = <0>; /* milliseconds */
  1192. thermal-sensors = <&tsensor 1>;
  1193. trips {
  1194. dvfs-alert {
  1195. temperature = <80000>;
  1196. hysteresis = <200>;
  1197. type = "passive";
  1198. };
  1199. };
  1200. };
  1201. };
  1202. };