tegra186.dtsi 31 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925926927928929930931932933934935936937938939940941942943944945946947948949950951952953954955956957958959960961962963964965966967968969970971972973974975976977978979980981982983984985986987988989990991992993994995996997998999100010011002100310041005100610071008100910101011101210131014101510161017101810191020102110221023102410251026102710281029103010311032103310341035103610371038103910401041104210431044104510461047104810491050105110521053105410551056105710581059106010611062106310641065106610671068106910701071107210731074107510761077107810791080108110821083108410851086108710881089109010911092109310941095109610971098109911001101110211031104110511061107110811091110
  1. // SPDX-License-Identifier: GPL-2.0
  2. #include <dt-bindings/clock/tegra186-clock.h>
  3. #include <dt-bindings/gpio/tegra186-gpio.h>
  4. #include <dt-bindings/interrupt-controller/arm-gic.h>
  5. #include <dt-bindings/mailbox/tegra186-hsp.h>
  6. #include <dt-bindings/memory/tegra186-mc.h>
  7. #include <dt-bindings/pinctrl/pinctrl-tegra-io-pad.h>
  8. #include <dt-bindings/power/tegra186-powergate.h>
  9. #include <dt-bindings/reset/tegra186-reset.h>
  10. #include <dt-bindings/thermal/tegra186-bpmp-thermal.h>
  11. / {
  12. compatible = "nvidia,tegra186";
  13. interrupt-parent = <&gic>;
  14. #address-cells = <2>;
  15. #size-cells = <2>;
  16. misc@100000 {
  17. compatible = "nvidia,tegra186-misc";
  18. reg = <0x0 0x00100000 0x0 0xf000>,
  19. <0x0 0x0010f000 0x0 0x1000>;
  20. };
  21. gpio: gpio@2200000 {
  22. compatible = "nvidia,tegra186-gpio";
  23. reg-names = "security", "gpio";
  24. reg = <0x0 0x2200000 0x0 0x10000>,
  25. <0x0 0x2210000 0x0 0x10000>;
  26. interrupts = <GIC_SPI 47 IRQ_TYPE_LEVEL_HIGH>,
  27. <GIC_SPI 50 IRQ_TYPE_LEVEL_HIGH>,
  28. <GIC_SPI 53 IRQ_TYPE_LEVEL_HIGH>,
  29. <GIC_SPI 56 IRQ_TYPE_LEVEL_HIGH>,
  30. <GIC_SPI 59 IRQ_TYPE_LEVEL_HIGH>,
  31. <GIC_SPI 180 IRQ_TYPE_LEVEL_HIGH>;
  32. #interrupt-cells = <2>;
  33. interrupt-controller;
  34. #gpio-cells = <2>;
  35. gpio-controller;
  36. };
  37. ethernet@2490000 {
  38. compatible = "nvidia,tegra186-eqos",
  39. "snps,dwc-qos-ethernet-4.10";
  40. reg = <0x0 0x02490000 0x0 0x10000>;
  41. interrupts = <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, /* common */
  42. <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>, /* power */
  43. <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>, /* rx0 */
  44. <GIC_SPI 186 IRQ_TYPE_LEVEL_HIGH>, /* tx0 */
  45. <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>, /* rx1 */
  46. <GIC_SPI 187 IRQ_TYPE_LEVEL_HIGH>, /* tx1 */
  47. <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>, /* rx2 */
  48. <GIC_SPI 188 IRQ_TYPE_LEVEL_HIGH>, /* tx2 */
  49. <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>, /* rx3 */
  50. <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>; /* tx3 */
  51. clocks = <&bpmp TEGRA186_CLK_AXI_CBB>,
  52. <&bpmp TEGRA186_CLK_EQOS_AXI>,
  53. <&bpmp TEGRA186_CLK_EQOS_RX>,
  54. <&bpmp TEGRA186_CLK_EQOS_TX>,
  55. <&bpmp TEGRA186_CLK_EQOS_PTP_REF>;
  56. clock-names = "master_bus", "slave_bus", "rx", "tx", "ptp_ref";
  57. resets = <&bpmp TEGRA186_RESET_EQOS>;
  58. reset-names = "eqos";
  59. status = "disabled";
  60. snps,write-requests = <1>;
  61. snps,read-requests = <3>;
  62. snps,burst-map = <0x7>;
  63. snps,txpbl = <32>;
  64. snps,rxpbl = <8>;
  65. };
  66. memory-controller@2c00000 {
  67. compatible = "nvidia,tegra186-mc";
  68. reg = <0x0 0x02c00000 0x0 0xb0000>;
  69. status = "disabled";
  70. };
  71. uarta: serial@3100000 {
  72. compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
  73. reg = <0x0 0x03100000 0x0 0x40>;
  74. reg-shift = <2>;
  75. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_HIGH>;
  76. clocks = <&bpmp TEGRA186_CLK_UARTA>;
  77. clock-names = "serial";
  78. resets = <&bpmp TEGRA186_RESET_UARTA>;
  79. reset-names = "serial";
  80. status = "disabled";
  81. };
  82. uartb: serial@3110000 {
  83. compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
  84. reg = <0x0 0x03110000 0x0 0x40>;
  85. reg-shift = <2>;
  86. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>;
  87. clocks = <&bpmp TEGRA186_CLK_UARTB>;
  88. clock-names = "serial";
  89. resets = <&bpmp TEGRA186_RESET_UARTB>;
  90. reset-names = "serial";
  91. status = "disabled";
  92. };
  93. uartd: serial@3130000 {
  94. compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
  95. reg = <0x0 0x03130000 0x0 0x40>;
  96. reg-shift = <2>;
  97. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  98. clocks = <&bpmp TEGRA186_CLK_UARTD>;
  99. clock-names = "serial";
  100. resets = <&bpmp TEGRA186_RESET_UARTD>;
  101. reset-names = "serial";
  102. status = "disabled";
  103. };
  104. uarte: serial@3140000 {
  105. compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
  106. reg = <0x0 0x03140000 0x0 0x40>;
  107. reg-shift = <2>;
  108. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
  109. clocks = <&bpmp TEGRA186_CLK_UARTE>;
  110. clock-names = "serial";
  111. resets = <&bpmp TEGRA186_RESET_UARTE>;
  112. reset-names = "serial";
  113. status = "disabled";
  114. };
  115. uartf: serial@3150000 {
  116. compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
  117. reg = <0x0 0x03150000 0x0 0x40>;
  118. reg-shift = <2>;
  119. interrupts = <GIC_SPI 117 IRQ_TYPE_LEVEL_HIGH>;
  120. clocks = <&bpmp TEGRA186_CLK_UARTF>;
  121. clock-names = "serial";
  122. resets = <&bpmp TEGRA186_RESET_UARTF>;
  123. reset-names = "serial";
  124. status = "disabled";
  125. };
  126. gen1_i2c: i2c@3160000 {
  127. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  128. reg = <0x0 0x03160000 0x0 0x10000>;
  129. interrupts = <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>;
  130. #address-cells = <1>;
  131. #size-cells = <0>;
  132. clocks = <&bpmp TEGRA186_CLK_I2C1>;
  133. clock-names = "div-clk";
  134. resets = <&bpmp TEGRA186_RESET_I2C1>;
  135. reset-names = "i2c";
  136. status = "disabled";
  137. };
  138. cam_i2c: i2c@3180000 {
  139. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  140. reg = <0x0 0x03180000 0x0 0x10000>;
  141. interrupts = <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  142. #address-cells = <1>;
  143. #size-cells = <0>;
  144. clocks = <&bpmp TEGRA186_CLK_I2C3>;
  145. clock-names = "div-clk";
  146. resets = <&bpmp TEGRA186_RESET_I2C3>;
  147. reset-names = "i2c";
  148. status = "disabled";
  149. };
  150. /* shares pads with dpaux1 */
  151. dp_aux_ch1_i2c: i2c@3190000 {
  152. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  153. reg = <0x0 0x03190000 0x0 0x10000>;
  154. interrupts = <GIC_SPI 28 IRQ_TYPE_LEVEL_HIGH>;
  155. #address-cells = <1>;
  156. #size-cells = <0>;
  157. clocks = <&bpmp TEGRA186_CLK_I2C4>;
  158. clock-names = "div-clk";
  159. resets = <&bpmp TEGRA186_RESET_I2C4>;
  160. reset-names = "i2c";
  161. status = "disabled";
  162. };
  163. /* controlled by BPMP, should not be enabled */
  164. pwr_i2c: i2c@31a0000 {
  165. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  166. reg = <0x0 0x031a0000 0x0 0x10000>;
  167. interrupts = <GIC_SPI 29 IRQ_TYPE_LEVEL_HIGH>;
  168. #address-cells = <1>;
  169. #size-cells = <0>;
  170. clocks = <&bpmp TEGRA186_CLK_I2C5>;
  171. clock-names = "div-clk";
  172. resets = <&bpmp TEGRA186_RESET_I2C5>;
  173. reset-names = "i2c";
  174. status = "disabled";
  175. };
  176. /* shares pads with dpaux0 */
  177. dp_aux_ch0_i2c: i2c@31b0000 {
  178. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  179. reg = <0x0 0x031b0000 0x0 0x10000>;
  180. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  181. #address-cells = <1>;
  182. #size-cells = <0>;
  183. clocks = <&bpmp TEGRA186_CLK_I2C6>;
  184. clock-names = "div-clk";
  185. resets = <&bpmp TEGRA186_RESET_I2C6>;
  186. reset-names = "i2c";
  187. status = "disabled";
  188. };
  189. gen7_i2c: i2c@31c0000 {
  190. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  191. reg = <0x0 0x031c0000 0x0 0x10000>;
  192. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  193. #address-cells = <1>;
  194. #size-cells = <0>;
  195. clocks = <&bpmp TEGRA186_CLK_I2C7>;
  196. clock-names = "div-clk";
  197. resets = <&bpmp TEGRA186_RESET_I2C7>;
  198. reset-names = "i2c";
  199. status = "disabled";
  200. };
  201. gen9_i2c: i2c@31e0000 {
  202. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  203. reg = <0x0 0x031e0000 0x0 0x10000>;
  204. interrupts = <GIC_SPI 33 IRQ_TYPE_LEVEL_HIGH>;
  205. #address-cells = <1>;
  206. #size-cells = <0>;
  207. clocks = <&bpmp TEGRA186_CLK_I2C9>;
  208. clock-names = "div-clk";
  209. resets = <&bpmp TEGRA186_RESET_I2C9>;
  210. reset-names = "i2c";
  211. status = "disabled";
  212. };
  213. sdmmc1: sdhci@3400000 {
  214. compatible = "nvidia,tegra186-sdhci";
  215. reg = <0x0 0x03400000 0x0 0x10000>;
  216. interrupts = <GIC_SPI 62 IRQ_TYPE_LEVEL_HIGH>;
  217. clocks = <&bpmp TEGRA186_CLK_SDMMC1>;
  218. clock-names = "sdhci";
  219. resets = <&bpmp TEGRA186_RESET_SDMMC1>;
  220. reset-names = "sdhci";
  221. pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
  222. pinctrl-0 = <&sdmmc1_3v3>;
  223. pinctrl-1 = <&sdmmc1_1v8>;
  224. nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
  225. nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
  226. nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
  227. nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
  228. nvidia,pad-autocal-pull-up-offset-sdr104 = <0x03>;
  229. nvidia,pad-autocal-pull-down-offset-sdr104 = <0x05>;
  230. nvidia,default-tap = <0x5>;
  231. nvidia,default-trim = <0xb>;
  232. assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC1>,
  233. <&bpmp TEGRA186_CLK_PLLP_OUT0>;
  234. assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLP_OUT0>;
  235. status = "disabled";
  236. };
  237. sdmmc2: sdhci@3420000 {
  238. compatible = "nvidia,tegra186-sdhci";
  239. reg = <0x0 0x03420000 0x0 0x10000>;
  240. interrupts = <GIC_SPI 63 IRQ_TYPE_LEVEL_HIGH>;
  241. clocks = <&bpmp TEGRA186_CLK_SDMMC2>;
  242. clock-names = "sdhci";
  243. resets = <&bpmp TEGRA186_RESET_SDMMC2>;
  244. reset-names = "sdhci";
  245. pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
  246. pinctrl-0 = <&sdmmc2_3v3>;
  247. pinctrl-1 = <&sdmmc2_1v8>;
  248. nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
  249. nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
  250. nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
  251. nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
  252. nvidia,default-tap = <0x5>;
  253. nvidia,default-trim = <0xb>;
  254. status = "disabled";
  255. };
  256. sdmmc3: sdhci@3440000 {
  257. compatible = "nvidia,tegra186-sdhci";
  258. reg = <0x0 0x03440000 0x0 0x10000>;
  259. interrupts = <GIC_SPI 64 IRQ_TYPE_LEVEL_HIGH>;
  260. clocks = <&bpmp TEGRA186_CLK_SDMMC3>;
  261. clock-names = "sdhci";
  262. resets = <&bpmp TEGRA186_RESET_SDMMC3>;
  263. reset-names = "sdhci";
  264. pinctrl-names = "sdmmc-3v3", "sdmmc-1v8";
  265. pinctrl-0 = <&sdmmc3_3v3>;
  266. pinctrl-1 = <&sdmmc3_1v8>;
  267. nvidia,pad-autocal-pull-up-offset-1v8 = <0x00>;
  268. nvidia,pad-autocal-pull-down-offset-1v8 = <0x7a>;
  269. nvidia,pad-autocal-pull-up-offset-3v3-timeout = <0x07>;
  270. nvidia,pad-autocal-pull-down-offset-3v3-timeout = <0x06>;
  271. nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x07>;
  272. nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x07>;
  273. nvidia,default-tap = <0x5>;
  274. nvidia,default-trim = <0xb>;
  275. status = "disabled";
  276. };
  277. sdmmc4: sdhci@3460000 {
  278. compatible = "nvidia,tegra186-sdhci";
  279. reg = <0x0 0x03460000 0x0 0x10000>;
  280. interrupts = <GIC_SPI 65 IRQ_TYPE_LEVEL_HIGH>;
  281. clocks = <&bpmp TEGRA186_CLK_SDMMC4>;
  282. clock-names = "sdhci";
  283. assigned-clocks = <&bpmp TEGRA186_CLK_SDMMC4>,
  284. <&bpmp TEGRA186_CLK_PLLC4_VCO>;
  285. assigned-clock-parents = <&bpmp TEGRA186_CLK_PLLC4_VCO>;
  286. resets = <&bpmp TEGRA186_RESET_SDMMC4>;
  287. reset-names = "sdhci";
  288. nvidia,pad-autocal-pull-up-offset-hs400 = <0x05>;
  289. nvidia,pad-autocal-pull-down-offset-hs400 = <0x05>;
  290. nvidia,pad-autocal-pull-up-offset-1v8-timeout = <0x0a>;
  291. nvidia,pad-autocal-pull-down-offset-1v8-timeout = <0x0a>;
  292. nvidia,default-tap = <0x5>;
  293. nvidia,default-trim = <0x9>;
  294. nvidia,dqs-trim = <63>;
  295. mmc-hs400-1_8v;
  296. status = "disabled";
  297. };
  298. fuse@3820000 {
  299. compatible = "nvidia,tegra186-efuse";
  300. reg = <0x0 0x03820000 0x0 0x10000>;
  301. clocks = <&bpmp TEGRA186_CLK_FUSE>;
  302. clock-names = "fuse";
  303. };
  304. gic: interrupt-controller@3881000 {
  305. compatible = "arm,gic-400";
  306. #interrupt-cells = <3>;
  307. interrupt-controller;
  308. reg = <0x0 0x03881000 0x0 0x1000>,
  309. <0x0 0x03882000 0x0 0x2000>;
  310. interrupts = <GIC_PPI 9
  311. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  312. interrupt-parent = <&gic>;
  313. };
  314. hsp_top0: hsp@3c00000 {
  315. compatible = "nvidia,tegra186-hsp";
  316. reg = <0x0 0x03c00000 0x0 0xa0000>;
  317. interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
  318. interrupt-names = "doorbell";
  319. #mbox-cells = <2>;
  320. status = "disabled";
  321. };
  322. gen2_i2c: i2c@c240000 {
  323. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  324. reg = <0x0 0x0c240000 0x0 0x10000>;
  325. interrupts = <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>;
  326. #address-cells = <1>;
  327. #size-cells = <0>;
  328. clocks = <&bpmp TEGRA186_CLK_I2C2>;
  329. clock-names = "div-clk";
  330. resets = <&bpmp TEGRA186_RESET_I2C2>;
  331. reset-names = "i2c";
  332. status = "disabled";
  333. };
  334. gen8_i2c: i2c@c250000 {
  335. compatible = "nvidia,tegra186-i2c", "nvidia,tegra114-i2c";
  336. reg = <0x0 0x0c250000 0x0 0x10000>;
  337. interrupts = <GIC_SPI 32 IRQ_TYPE_LEVEL_HIGH>;
  338. #address-cells = <1>;
  339. #size-cells = <0>;
  340. clocks = <&bpmp TEGRA186_CLK_I2C8>;
  341. clock-names = "div-clk";
  342. resets = <&bpmp TEGRA186_RESET_I2C8>;
  343. reset-names = "i2c";
  344. status = "disabled";
  345. };
  346. uartc: serial@c280000 {
  347. compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
  348. reg = <0x0 0x0c280000 0x0 0x40>;
  349. reg-shift = <2>;
  350. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  351. clocks = <&bpmp TEGRA186_CLK_UARTC>;
  352. clock-names = "serial";
  353. resets = <&bpmp TEGRA186_RESET_UARTC>;
  354. reset-names = "serial";
  355. status = "disabled";
  356. };
  357. uartg: serial@c290000 {
  358. compatible = "nvidia,tegra186-uart", "nvidia,tegra20-uart";
  359. reg = <0x0 0x0c290000 0x0 0x40>;
  360. reg-shift = <2>;
  361. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
  362. clocks = <&bpmp TEGRA186_CLK_UARTG>;
  363. clock-names = "serial";
  364. resets = <&bpmp TEGRA186_RESET_UARTG>;
  365. reset-names = "serial";
  366. status = "disabled";
  367. };
  368. gpio_aon: gpio@c2f0000 {
  369. compatible = "nvidia,tegra186-gpio-aon";
  370. reg-names = "security", "gpio";
  371. reg = <0x0 0xc2f0000 0x0 0x1000>,
  372. <0x0 0xc2f1000 0x0 0x1000>;
  373. interrupts = <GIC_SPI 60 IRQ_TYPE_LEVEL_HIGH>;
  374. gpio-controller;
  375. #gpio-cells = <2>;
  376. interrupt-controller;
  377. #interrupt-cells = <2>;
  378. };
  379. pmc@c360000 {
  380. compatible = "nvidia,tegra186-pmc";
  381. reg = <0 0x0c360000 0 0x10000>,
  382. <0 0x0c370000 0 0x10000>,
  383. <0 0x0c380000 0 0x10000>,
  384. <0 0x0c390000 0 0x10000>;
  385. reg-names = "pmc", "wake", "aotag", "scratch";
  386. sdmmc1_3v3: sdmmc1-3v3 {
  387. pins = "sdmmc1-hv";
  388. power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
  389. };
  390. sdmmc1_1v8: sdmmc1-1v8 {
  391. pins = "sdmmc1-hv";
  392. power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
  393. };
  394. sdmmc2_3v3: sdmmc2-3v3 {
  395. pins = "sdmmc2-hv";
  396. power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
  397. };
  398. sdmmc2_1v8: sdmmc2-1v8 {
  399. pins = "sdmmc2-hv";
  400. power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
  401. };
  402. sdmmc3_3v3: sdmmc3-3v3 {
  403. pins = "sdmmc3-hv";
  404. power-source = <TEGRA_IO_PAD_VOLTAGE_3V3>;
  405. };
  406. sdmmc3_1v8: sdmmc3-1v8 {
  407. pins = "sdmmc3-hv";
  408. power-source = <TEGRA_IO_PAD_VOLTAGE_1V8>;
  409. };
  410. };
  411. ccplex@e000000 {
  412. compatible = "nvidia,tegra186-ccplex-cluster";
  413. reg = <0x0 0x0e000000 0x0 0x3fffff>;
  414. nvidia,bpmp = <&bpmp>;
  415. };
  416. pcie@10003000 {
  417. compatible = "nvidia,tegra186-pcie";
  418. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_PCX>;
  419. device_type = "pci";
  420. reg = <0x0 0x10003000 0x0 0x00000800 /* PADS registers */
  421. 0x0 0x10003800 0x0 0x00000800 /* AFI registers */
  422. 0x0 0x40000000 0x0 0x10000000>; /* configuration space */
  423. reg-names = "pads", "afi", "cs";
  424. interrupts = <GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>, /* controller interrupt */
  425. <GIC_SPI 73 IRQ_TYPE_LEVEL_HIGH>; /* MSI interrupt */
  426. interrupt-names = "intr", "msi";
  427. #interrupt-cells = <1>;
  428. interrupt-map-mask = <0 0 0 0>;
  429. interrupt-map = <0 0 0 0 &gic GIC_SPI 72 IRQ_TYPE_LEVEL_HIGH>;
  430. bus-range = <0x00 0xff>;
  431. #address-cells = <3>;
  432. #size-cells = <2>;
  433. ranges = <0x82000000 0 0x10000000 0x0 0x10000000 0 0x00001000 /* port 0 configuration space */
  434. 0x82000000 0 0x10001000 0x0 0x10001000 0 0x00001000 /* port 1 configuration space */
  435. 0x82000000 0 0x10004000 0x0 0x10004000 0 0x00001000 /* port 2 configuration space */
  436. 0x81000000 0 0x0 0x0 0x50000000 0 0x00010000 /* downstream I/O (64 KiB) */
  437. 0x82000000 0 0x50100000 0x0 0x50100000 0 0x07F00000 /* non-prefetchable memory (127 MiB) */
  438. 0xc2000000 0 0x58000000 0x0 0x58000000 0 0x28000000>; /* prefetchable memory (640 MiB) */
  439. clocks = <&bpmp TEGRA186_CLK_AFI>,
  440. <&bpmp TEGRA186_CLK_PCIE>,
  441. <&bpmp TEGRA186_CLK_PLLE>;
  442. clock-names = "afi", "pex", "pll_e";
  443. resets = <&bpmp TEGRA186_RESET_AFI>,
  444. <&bpmp TEGRA186_RESET_PCIE>,
  445. <&bpmp TEGRA186_RESET_PCIEXCLK>;
  446. reset-names = "afi", "pex", "pcie_x";
  447. status = "disabled";
  448. pci@1,0 {
  449. device_type = "pci";
  450. assigned-addresses = <0x82000800 0 0x10000000 0 0x1000>;
  451. reg = <0x000800 0 0 0 0>;
  452. status = "disabled";
  453. #address-cells = <3>;
  454. #size-cells = <2>;
  455. ranges;
  456. nvidia,num-lanes = <2>;
  457. };
  458. pci@2,0 {
  459. device_type = "pci";
  460. assigned-addresses = <0x82001000 0 0x10001000 0 0x1000>;
  461. reg = <0x001000 0 0 0 0>;
  462. status = "disabled";
  463. #address-cells = <3>;
  464. #size-cells = <2>;
  465. ranges;
  466. nvidia,num-lanes = <1>;
  467. };
  468. pci@3,0 {
  469. device_type = "pci";
  470. assigned-addresses = <0x82001800 0 0x10004000 0 0x1000>;
  471. reg = <0x001800 0 0 0 0>;
  472. status = "disabled";
  473. #address-cells = <3>;
  474. #size-cells = <2>;
  475. ranges;
  476. nvidia,num-lanes = <1>;
  477. };
  478. };
  479. smmu: iommu@12000000 {
  480. compatible = "arm,mmu-500";
  481. reg = <0 0x12000000 0 0x800000>;
  482. interrupts = <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  483. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  484. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  485. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  486. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  487. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  488. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  489. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  490. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  491. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  492. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  493. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  494. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  495. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  496. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  497. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  498. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  499. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  500. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  501. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  502. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  503. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  504. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  505. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  506. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  507. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  508. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  509. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  510. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  511. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  512. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  513. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  514. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  515. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  516. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  517. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  518. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  519. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  520. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  521. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  522. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  523. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  524. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  525. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  526. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  527. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  528. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  529. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  530. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  531. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  532. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  533. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  534. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  535. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  536. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  537. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  538. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  539. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  540. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  541. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  542. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  543. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  544. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  545. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>,
  546. <GIC_SPI 170 IRQ_TYPE_LEVEL_HIGH>;
  547. stream-match-mask = <0x7f80>;
  548. #global-interrupts = <1>;
  549. #iommu-cells = <1>;
  550. };
  551. host1x@13e00000 {
  552. compatible = "nvidia,tegra186-host1x", "simple-bus";
  553. reg = <0x0 0x13e00000 0x0 0x10000>,
  554. <0x0 0x13e10000 0x0 0x10000>;
  555. reg-names = "hypervisor", "vm";
  556. interrupts = <GIC_SPI 265 IRQ_TYPE_LEVEL_HIGH>,
  557. <GIC_SPI 263 IRQ_TYPE_LEVEL_HIGH>;
  558. clocks = <&bpmp TEGRA186_CLK_HOST1X>;
  559. clock-names = "host1x";
  560. resets = <&bpmp TEGRA186_RESET_HOST1X>;
  561. reset-names = "host1x";
  562. #address-cells = <1>;
  563. #size-cells = <1>;
  564. ranges = <0x15000000 0x0 0x15000000 0x01000000>;
  565. iommus = <&smmu TEGRA186_SID_HOST1X>;
  566. dpaux1: dpaux@15040000 {
  567. compatible = "nvidia,tegra186-dpaux";
  568. reg = <0x15040000 0x10000>;
  569. interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
  570. clocks = <&bpmp TEGRA186_CLK_DPAUX1>,
  571. <&bpmp TEGRA186_CLK_PLLDP>;
  572. clock-names = "dpaux", "parent";
  573. resets = <&bpmp TEGRA186_RESET_DPAUX1>;
  574. reset-names = "dpaux";
  575. status = "disabled";
  576. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  577. state_dpaux1_aux: pinmux-aux {
  578. groups = "dpaux-io";
  579. function = "aux";
  580. };
  581. state_dpaux1_i2c: pinmux-i2c {
  582. groups = "dpaux-io";
  583. function = "i2c";
  584. };
  585. state_dpaux1_off: pinmux-off {
  586. groups = "dpaux-io";
  587. function = "off";
  588. };
  589. i2c-bus {
  590. #address-cells = <1>;
  591. #size-cells = <0>;
  592. };
  593. };
  594. display-hub@15200000 {
  595. compatible = "nvidia,tegra186-display", "simple-bus";
  596. resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_MISC>,
  597. <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP0>,
  598. <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP1>,
  599. <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP2>,
  600. <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP3>,
  601. <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP4>,
  602. <&bpmp TEGRA186_RESET_NVDISPLAY0_WGRP5>;
  603. reset-names = "misc", "wgrp0", "wgrp1", "wgrp2",
  604. "wgrp3", "wgrp4", "wgrp5";
  605. clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_DISP>,
  606. <&bpmp TEGRA186_CLK_NVDISPLAY_DSC>,
  607. <&bpmp TEGRA186_CLK_NVDISPLAYHUB>;
  608. clock-names = "disp", "dsc", "hub";
  609. status = "disabled";
  610. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  611. #address-cells = <1>;
  612. #size-cells = <1>;
  613. ranges = <0x15200000 0x15200000 0x40000>;
  614. display@15200000 {
  615. compatible = "nvidia,tegra186-dc";
  616. reg = <0x15200000 0x10000>;
  617. interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
  618. clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P0>;
  619. clock-names = "dc";
  620. resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD0>;
  621. reset-names = "dc";
  622. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  623. iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
  624. nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
  625. nvidia,head = <0>;
  626. };
  627. display@15210000 {
  628. compatible = "nvidia,tegra186-dc";
  629. reg = <0x15210000 0x10000>;
  630. interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  631. clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P1>;
  632. clock-names = "dc";
  633. resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD1>;
  634. reset-names = "dc";
  635. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISPB>;
  636. iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
  637. nvidia,outputs = <&dsia &dsib &sor0 &sor1>;
  638. nvidia,head = <1>;
  639. };
  640. display@15220000 {
  641. compatible = "nvidia,tegra186-dc";
  642. reg = <0x15220000 0x10000>;
  643. interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
  644. clocks = <&bpmp TEGRA186_CLK_NVDISPLAY_P2>;
  645. clock-names = "dc";
  646. resets = <&bpmp TEGRA186_RESET_NVDISPLAY0_HEAD2>;
  647. reset-names = "dc";
  648. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISPC>;
  649. iommus = <&smmu TEGRA186_SID_NVDISPLAY>;
  650. nvidia,outputs = <&sor0 &sor1>;
  651. nvidia,head = <2>;
  652. };
  653. };
  654. dsia: dsi@15300000 {
  655. compatible = "nvidia,tegra186-dsi";
  656. reg = <0x15300000 0x10000>;
  657. interrupts = <GIC_SPI 20 IRQ_TYPE_LEVEL_HIGH>;
  658. clocks = <&bpmp TEGRA186_CLK_DSI>,
  659. <&bpmp TEGRA186_CLK_DSIA_LP>,
  660. <&bpmp TEGRA186_CLK_PLLD>;
  661. clock-names = "dsi", "lp", "parent";
  662. resets = <&bpmp TEGRA186_RESET_DSI>;
  663. reset-names = "dsi";
  664. status = "disabled";
  665. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  666. };
  667. vic@15340000 {
  668. compatible = "nvidia,tegra186-vic";
  669. reg = <0x15340000 0x40000>;
  670. interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
  671. clocks = <&bpmp TEGRA186_CLK_VIC>;
  672. clock-names = "vic";
  673. resets = <&bpmp TEGRA186_RESET_VIC>;
  674. reset-names = "vic";
  675. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_VIC>;
  676. };
  677. dsib: dsi@15400000 {
  678. compatible = "nvidia,tegra186-dsi";
  679. reg = <0x15400000 0x10000>;
  680. interrupts = <GIC_SPI 21 IRQ_TYPE_LEVEL_HIGH>;
  681. clocks = <&bpmp TEGRA186_CLK_DSIB>,
  682. <&bpmp TEGRA186_CLK_DSIB_LP>,
  683. <&bpmp TEGRA186_CLK_PLLD>;
  684. clock-names = "dsi", "lp", "parent";
  685. resets = <&bpmp TEGRA186_RESET_DSIB>;
  686. reset-names = "dsi";
  687. status = "disabled";
  688. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  689. };
  690. sor0: sor@15540000 {
  691. compatible = "nvidia,tegra186-sor";
  692. reg = <0x15540000 0x10000>;
  693. interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
  694. clocks = <&bpmp TEGRA186_CLK_SOR0>,
  695. <&bpmp TEGRA186_CLK_SOR0_OUT>,
  696. <&bpmp TEGRA186_CLK_PLLD2>,
  697. <&bpmp TEGRA186_CLK_PLLDP>,
  698. <&bpmp TEGRA186_CLK_SOR_SAFE>,
  699. <&bpmp TEGRA186_CLK_SOR0_PAD_CLKOUT>;
  700. clock-names = "sor", "out", "parent", "dp", "safe",
  701. "pad";
  702. resets = <&bpmp TEGRA186_RESET_SOR0>;
  703. reset-names = "sor";
  704. pinctrl-0 = <&state_dpaux_aux>;
  705. pinctrl-1 = <&state_dpaux_i2c>;
  706. pinctrl-2 = <&state_dpaux_off>;
  707. pinctrl-names = "aux", "i2c", "off";
  708. status = "disabled";
  709. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  710. nvidia,interface = <0>;
  711. };
  712. sor1: sor@15580000 {
  713. compatible = "nvidia,tegra186-sor1";
  714. reg = <0x15580000 0x10000>;
  715. interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
  716. clocks = <&bpmp TEGRA186_CLK_SOR1>,
  717. <&bpmp TEGRA186_CLK_SOR1_OUT>,
  718. <&bpmp TEGRA186_CLK_PLLD3>,
  719. <&bpmp TEGRA186_CLK_PLLDP>,
  720. <&bpmp TEGRA186_CLK_SOR_SAFE>,
  721. <&bpmp TEGRA186_CLK_SOR1_PAD_CLKOUT>;
  722. clock-names = "sor", "out", "parent", "dp", "safe",
  723. "pad";
  724. resets = <&bpmp TEGRA186_RESET_SOR1>;
  725. reset-names = "sor";
  726. pinctrl-0 = <&state_dpaux1_aux>;
  727. pinctrl-1 = <&state_dpaux1_i2c>;
  728. pinctrl-2 = <&state_dpaux1_off>;
  729. pinctrl-names = "aux", "i2c", "off";
  730. status = "disabled";
  731. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  732. nvidia,interface = <1>;
  733. };
  734. dpaux: dpaux@155c0000 {
  735. compatible = "nvidia,tegra186-dpaux";
  736. reg = <0x155c0000 0x10000>;
  737. interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>;
  738. clocks = <&bpmp TEGRA186_CLK_DPAUX>,
  739. <&bpmp TEGRA186_CLK_PLLDP>;
  740. clock-names = "dpaux", "parent";
  741. resets = <&bpmp TEGRA186_RESET_DPAUX>;
  742. reset-names = "dpaux";
  743. status = "disabled";
  744. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  745. state_dpaux_aux: pinmux-aux {
  746. groups = "dpaux-io";
  747. function = "aux";
  748. };
  749. state_dpaux_i2c: pinmux-i2c {
  750. groups = "dpaux-io";
  751. function = "i2c";
  752. };
  753. state_dpaux_off: pinmux-off {
  754. groups = "dpaux-io";
  755. function = "off";
  756. };
  757. i2c-bus {
  758. #address-cells = <1>;
  759. #size-cells = <0>;
  760. };
  761. };
  762. padctl@15880000 {
  763. compatible = "nvidia,tegra186-dsi-padctl";
  764. reg = <0x15880000 0x10000>;
  765. resets = <&bpmp TEGRA186_RESET_DSI>;
  766. reset-names = "dsi";
  767. status = "disabled";
  768. };
  769. dsic: dsi@15900000 {
  770. compatible = "nvidia,tegra186-dsi";
  771. reg = <0x15900000 0x10000>;
  772. interrupts = <GIC_SPI 22 IRQ_TYPE_LEVEL_HIGH>;
  773. clocks = <&bpmp TEGRA186_CLK_DSIC>,
  774. <&bpmp TEGRA186_CLK_DSIC_LP>,
  775. <&bpmp TEGRA186_CLK_PLLD>;
  776. clock-names = "dsi", "lp", "parent";
  777. resets = <&bpmp TEGRA186_RESET_DSIC>;
  778. reset-names = "dsi";
  779. status = "disabled";
  780. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  781. };
  782. dsid: dsi@15940000 {
  783. compatible = "nvidia,tegra186-dsi";
  784. reg = <0x15940000 0x10000>;
  785. interrupts = <GIC_SPI 23 IRQ_TYPE_LEVEL_HIGH>;
  786. clocks = <&bpmp TEGRA186_CLK_DSID>,
  787. <&bpmp TEGRA186_CLK_DSID_LP>,
  788. <&bpmp TEGRA186_CLK_PLLD>;
  789. clock-names = "dsi", "lp", "parent";
  790. resets = <&bpmp TEGRA186_RESET_DSID>;
  791. reset-names = "dsi";
  792. status = "disabled";
  793. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_DISP>;
  794. };
  795. };
  796. gpu@17000000 {
  797. compatible = "nvidia,gp10b";
  798. reg = <0x0 0x17000000 0x0 0x1000000>,
  799. <0x0 0x18000000 0x0 0x1000000>;
  800. interrupts = <GIC_SPI 70 IRQ_TYPE_LEVEL_HIGH
  801. GIC_SPI 71 IRQ_TYPE_LEVEL_HIGH>;
  802. interrupt-names = "stall", "nonstall";
  803. clocks = <&bpmp TEGRA186_CLK_GPCCLK>,
  804. <&bpmp TEGRA186_CLK_GPU>;
  805. clock-names = "gpu", "pwr";
  806. resets = <&bpmp TEGRA186_RESET_GPU>;
  807. reset-names = "gpu";
  808. status = "disabled";
  809. power-domains = <&bpmp TEGRA186_POWER_DOMAIN_GPU>;
  810. };
  811. sysram@30000000 {
  812. compatible = "nvidia,tegra186-sysram", "mmio-sram";
  813. reg = <0x0 0x30000000 0x0 0x50000>;
  814. #address-cells = <2>;
  815. #size-cells = <2>;
  816. ranges = <0 0x0 0x0 0x30000000 0x0 0x50000>;
  817. cpu_bpmp_tx: shmem@4e000 {
  818. compatible = "nvidia,tegra186-bpmp-shmem";
  819. reg = <0x0 0x4e000 0x0 0x1000>;
  820. label = "cpu-bpmp-tx";
  821. pool;
  822. };
  823. cpu_bpmp_rx: shmem@4f000 {
  824. compatible = "nvidia,tegra186-bpmp-shmem";
  825. reg = <0x0 0x4f000 0x0 0x1000>;
  826. label = "cpu-bpmp-rx";
  827. pool;
  828. };
  829. };
  830. cpus {
  831. #address-cells = <1>;
  832. #size-cells = <0>;
  833. cpu@0 {
  834. compatible = "nvidia,tegra186-denver", "arm,armv8";
  835. device_type = "cpu";
  836. reg = <0x000>;
  837. };
  838. cpu@1 {
  839. compatible = "nvidia,tegra186-denver", "arm,armv8";
  840. device_type = "cpu";
  841. reg = <0x001>;
  842. };
  843. cpu@2 {
  844. compatible = "arm,cortex-a57", "arm,armv8";
  845. device_type = "cpu";
  846. reg = <0x100>;
  847. };
  848. cpu@3 {
  849. compatible = "arm,cortex-a57", "arm,armv8";
  850. device_type = "cpu";
  851. reg = <0x101>;
  852. };
  853. cpu@4 {
  854. compatible = "arm,cortex-a57", "arm,armv8";
  855. device_type = "cpu";
  856. reg = <0x102>;
  857. };
  858. cpu@5 {
  859. compatible = "arm,cortex-a57", "arm,armv8";
  860. device_type = "cpu";
  861. reg = <0x103>;
  862. };
  863. };
  864. bpmp: bpmp {
  865. compatible = "nvidia,tegra186-bpmp";
  866. mboxes = <&hsp_top0 TEGRA_HSP_MBOX_TYPE_DB
  867. TEGRA_HSP_DB_MASTER_BPMP>;
  868. shmem = <&cpu_bpmp_tx &cpu_bpmp_rx>;
  869. #clock-cells = <1>;
  870. #reset-cells = <1>;
  871. #power-domain-cells = <1>;
  872. bpmp_i2c: i2c {
  873. compatible = "nvidia,tegra186-bpmp-i2c";
  874. nvidia,bpmp-bus-id = <5>;
  875. #address-cells = <1>;
  876. #size-cells = <0>;
  877. status = "disabled";
  878. };
  879. bpmp_thermal: thermal {
  880. compatible = "nvidia,tegra186-bpmp-thermal";
  881. #thermal-sensor-cells = <1>;
  882. };
  883. };
  884. thermal-zones {
  885. a57 {
  886. polling-delay = <0>;
  887. polling-delay-passive = <1000>;
  888. thermal-sensors =
  889. <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_CPU>;
  890. trips {
  891. critical {
  892. temperature = <101000>;
  893. hysteresis = <0>;
  894. type = "critical";
  895. };
  896. };
  897. cooling-maps {
  898. };
  899. };
  900. denver {
  901. polling-delay = <0>;
  902. polling-delay-passive = <1000>;
  903. thermal-sensors =
  904. <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AUX>;
  905. trips {
  906. critical {
  907. temperature = <101000>;
  908. hysteresis = <0>;
  909. type = "critical";
  910. };
  911. };
  912. cooling-maps {
  913. };
  914. };
  915. gpu {
  916. polling-delay = <0>;
  917. polling-delay-passive = <1000>;
  918. thermal-sensors =
  919. <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_GPU>;
  920. trips {
  921. critical {
  922. temperature = <101000>;
  923. hysteresis = <0>;
  924. type = "critical";
  925. };
  926. };
  927. cooling-maps {
  928. };
  929. };
  930. pll {
  931. polling-delay = <0>;
  932. polling-delay-passive = <1000>;
  933. thermal-sensors =
  934. <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_PLLX>;
  935. trips {
  936. critical {
  937. temperature = <101000>;
  938. hysteresis = <0>;
  939. type = "critical";
  940. };
  941. };
  942. cooling-maps {
  943. };
  944. };
  945. always_on {
  946. polling-delay = <0>;
  947. polling-delay-passive = <1000>;
  948. thermal-sensors =
  949. <&bpmp_thermal TEGRA186_BPMP_THERMAL_ZONE_AO>;
  950. trips {
  951. critical {
  952. temperature = <101000>;
  953. hysteresis = <0>;
  954. type = "critical";
  955. };
  956. };
  957. cooling-maps {
  958. };
  959. };
  960. };
  961. timer {
  962. compatible = "arm,armv8-timer";
  963. interrupts = <GIC_PPI 13
  964. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  965. <GIC_PPI 14
  966. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  967. <GIC_PPI 11
  968. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>,
  969. <GIC_PPI 10
  970. (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_LOW)>;
  971. interrupt-parent = <&gic>;
  972. };
  973. };