fsd.dtsi 32 KB

12345678910111213141516171819202122232425262728293031323334353637383940414243444546474849505152535455565758596061626364656667686970717273747576777879808182838485868788899091929394959697989910010110210310410510610710810911011111211311411511611711811912012112212312412512612712812913013113213313413513613713813914014114214314414514614714814915015115215315415515615715815916016116216316416516616716816917017117217317417517617717817918018118218318418518618718818919019119219319419519619719819920020120220320420520620720820921021121221321421521621721821922022122222322422522622722822923023123223323423523623723823924024124224324424524624724824925025125225325425525625725825926026126226326426526626726826927027127227327427527627727827928028128228328428528628728828929029129229329429529629729829930030130230330430530630730830931031131231331431531631731831932032132232332432532632732832933033133233333433533633733833934034134234334434534634734834935035135235335435535635735835936036136236336436536636736836937037137237337437537637737837938038138238338438538638738838939039139239339439539639739839940040140240340440540640740840941041141241341441541641741841942042142242342442542642742842943043143243343443543643743843944044144244344444544644744844945045145245345445545645745845946046146246346446546646746846947047147247347447547647747847948048148248348448548648748848949049149249349449549649749849950050150250350450550650750850951051151251351451551651751851952052152252352452552652752852953053153253353453553653753853954054154254354454554654754854955055155255355455555655755855956056156256356456556656756856957057157257357457557657757857958058158258358458558658758858959059159259359459559659759859960060160260360460560660760860961061161261361461561661761861962062162262362462562662762862963063163263363463563663763863964064164264364464564664764864965065165265365465565665765865966066166266366466566666766866967067167267367467567667767867968068168268368468568668768868969069169269369469569669769869970070170270370470570670770870971071171271371471571671771871972072172272372472572672772872973073173273373473573673773873974074174274374474574674774874975075175275375475575675775875976076176276376476576676776876977077177277377477577677777877978078178278378478578678778878979079179279379479579679779879980080180280380480580680780880981081181281381481581681781881982082182282382482582682782882983083183283383483583683783883984084184284384484584684784884985085185285385485585685785885986086186286386486586686786886987087187287387487587687787887988088188288388488588688788888989089189289389489589689789889990090190290390490590690790890991091191291391491591691791891992092192292392492592692792892993093193293393493593693793893994094194294394494594694794894995095195295395495595695795895996096196296396496596696796896997097197297397497597697797897998098198298398498598698798898999099199299399499599699799899910001001100210031004100510061007100810091010101110121013101410151016101710181019102010211022102310241025102610271028102910301031103210331034103510361037103810391040104110421043104410451046104710481049105010511052105310541055105610571058105910601061106210631064
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * Tesla Full Self-Driving SoC device tree source
  4. *
  5. * Copyright (c) 2017-2022 Samsung Electronics Co., Ltd.
  6. * https://www.samsung.com
  7. * Copyright (c) 2017-2022 Tesla, Inc.
  8. * https://www.tesla.com
  9. */
  10. #include <dt-bindings/clock/fsd-clk.h>
  11. #include <dt-bindings/interrupt-controller/arm-gic.h>
  12. / {
  13. compatible = "tesla,fsd";
  14. interrupt-parent = <&gic>;
  15. #address-cells = <2>;
  16. #size-cells = <2>;
  17. aliases {
  18. i2c0 = &hsi2c_0;
  19. i2c1 = &hsi2c_1;
  20. i2c2 = &hsi2c_2;
  21. i2c3 = &hsi2c_3;
  22. i2c4 = &hsi2c_4;
  23. i2c5 = &hsi2c_5;
  24. i2c6 = &hsi2c_6;
  25. i2c7 = &hsi2c_7;
  26. pinctrl0 = &pinctrl_fsys0;
  27. pinctrl1 = &pinctrl_peric;
  28. pinctrl2 = &pinctrl_pmu;
  29. spi0 = &spi_0;
  30. spi1 = &spi_1;
  31. spi2 = &spi_2;
  32. };
  33. cpus {
  34. #address-cells = <2>;
  35. #size-cells = <0>;
  36. cpu-map {
  37. cluster0 {
  38. core0 {
  39. cpu = <&cpucl0_0>;
  40. };
  41. core1 {
  42. cpu = <&cpucl0_1>;
  43. };
  44. core2 {
  45. cpu = <&cpucl0_2>;
  46. };
  47. core3 {
  48. cpu = <&cpucl0_3>;
  49. };
  50. };
  51. cluster1 {
  52. core0 {
  53. cpu = <&cpucl1_0>;
  54. };
  55. core1 {
  56. cpu = <&cpucl1_1>;
  57. };
  58. core2 {
  59. cpu = <&cpucl1_2>;
  60. };
  61. core3 {
  62. cpu = <&cpucl1_3>;
  63. };
  64. };
  65. cluster2 {
  66. core0 {
  67. cpu = <&cpucl2_0>;
  68. };
  69. core1 {
  70. cpu = <&cpucl2_1>;
  71. };
  72. core2 {
  73. cpu = <&cpucl2_2>;
  74. };
  75. core3 {
  76. cpu = <&cpucl2_3>;
  77. };
  78. };
  79. };
  80. /* Cluster 0 */
  81. cpucl0_0: cpu@0 {
  82. device_type = "cpu";
  83. compatible = "arm,cortex-a72";
  84. reg = <0x0 0x000>;
  85. enable-method = "psci";
  86. clock-frequency = <2400000000>;
  87. cpu-idle-states = <&cpu_sleep>;
  88. i-cache-size = <0xc000>;
  89. i-cache-line-size = <64>;
  90. i-cache-sets = <256>;
  91. d-cache-size = <0x8000>;
  92. d-cache-line-size = <64>;
  93. d-cache-sets = <256>;
  94. next-level-cache = <&cpucl_l2>;
  95. };
  96. cpucl0_1: cpu@1 {
  97. device_type = "cpu";
  98. compatible = "arm,cortex-a72";
  99. reg = <0x0 0x001>;
  100. enable-method = "psci";
  101. clock-frequency = <2400000000>;
  102. cpu-idle-states = <&cpu_sleep>;
  103. i-cache-size = <0xc000>;
  104. i-cache-line-size = <64>;
  105. i-cache-sets = <256>;
  106. d-cache-size = <0x8000>;
  107. d-cache-line-size = <64>;
  108. d-cache-sets = <256>;
  109. next-level-cache = <&cpucl_l2>;
  110. };
  111. cpucl0_2: cpu@2 {
  112. device_type = "cpu";
  113. compatible = "arm,cortex-a72";
  114. reg = <0x0 0x002>;
  115. enable-method = "psci";
  116. clock-frequency = <2400000000>;
  117. cpu-idle-states = <&cpu_sleep>;
  118. i-cache-size = <0xc000>;
  119. i-cache-line-size = <64>;
  120. i-cache-sets = <256>;
  121. d-cache-size = <0x8000>;
  122. d-cache-line-size = <64>;
  123. d-cache-sets = <256>;
  124. next-level-cache = <&cpucl_l2>;
  125. };
  126. cpucl0_3: cpu@3 {
  127. device_type = "cpu";
  128. compatible = "arm,cortex-a72";
  129. reg = <0x0 0x003>;
  130. enable-method = "psci";
  131. cpu-idle-states = <&cpu_sleep>;
  132. i-cache-size = <0xc000>;
  133. i-cache-line-size = <64>;
  134. i-cache-sets = <256>;
  135. d-cache-size = <0x8000>;
  136. d-cache-line-size = <64>;
  137. d-cache-sets = <256>;
  138. next-level-cache = <&cpucl_l2>;
  139. };
  140. /* Cluster 1 */
  141. cpucl1_0: cpu@100 {
  142. device_type = "cpu";
  143. compatible = "arm,cortex-a72";
  144. reg = <0x0 0x100>;
  145. enable-method = "psci";
  146. clock-frequency = <2400000000>;
  147. cpu-idle-states = <&cpu_sleep>;
  148. i-cache-size = <0xc000>;
  149. i-cache-line-size = <64>;
  150. i-cache-sets = <256>;
  151. d-cache-size = <0x8000>;
  152. d-cache-line-size = <64>;
  153. d-cache-sets = <256>;
  154. next-level-cache = <&cpucl_l2>;
  155. };
  156. cpucl1_1: cpu@101 {
  157. device_type = "cpu";
  158. compatible = "arm,cortex-a72";
  159. reg = <0x0 0x101>;
  160. enable-method = "psci";
  161. clock-frequency = <2400000000>;
  162. cpu-idle-states = <&cpu_sleep>;
  163. i-cache-size = <0xc000>;
  164. i-cache-line-size = <64>;
  165. i-cache-sets = <256>;
  166. d-cache-size = <0x8000>;
  167. d-cache-line-size = <64>;
  168. d-cache-sets = <256>;
  169. next-level-cache = <&cpucl_l2>;
  170. };
  171. cpucl1_2: cpu@102 {
  172. device_type = "cpu";
  173. compatible = "arm,cortex-a72";
  174. reg = <0x0 0x102>;
  175. enable-method = "psci";
  176. clock-frequency = <2400000000>;
  177. cpu-idle-states = <&cpu_sleep>;
  178. i-cache-size = <0xc000>;
  179. i-cache-line-size = <64>;
  180. i-cache-sets = <256>;
  181. d-cache-size = <0x8000>;
  182. d-cache-line-size = <64>;
  183. d-cache-sets = <256>;
  184. next-level-cache = <&cpucl_l2>;
  185. };
  186. cpucl1_3: cpu@103 {
  187. device_type = "cpu";
  188. compatible = "arm,cortex-a72";
  189. reg = <0x0 0x103>;
  190. enable-method = "psci";
  191. clock-frequency = <2400000000>;
  192. cpu-idle-states = <&cpu_sleep>;
  193. i-cache-size = <0xc000>;
  194. i-cache-line-size = <64>;
  195. i-cache-sets = <256>;
  196. d-cache-size = <0x8000>;
  197. d-cache-line-size = <64>;
  198. d-cache-sets = <256>;
  199. next-level-cache = <&cpucl_l2>;
  200. };
  201. /* Cluster 2 */
  202. cpucl2_0: cpu@200 {
  203. device_type = "cpu";
  204. compatible = "arm,cortex-a72";
  205. reg = <0x0 0x200>;
  206. enable-method = "psci";
  207. clock-frequency = <2400000000>;
  208. cpu-idle-states = <&cpu_sleep>;
  209. i-cache-size = <0xc000>;
  210. i-cache-line-size = <64>;
  211. i-cache-sets = <256>;
  212. d-cache-size = <0x8000>;
  213. d-cache-line-size = <64>;
  214. d-cache-sets = <256>;
  215. next-level-cache = <&cpucl_l2>;
  216. };
  217. cpucl2_1: cpu@201 {
  218. device_type = "cpu";
  219. compatible = "arm,cortex-a72";
  220. reg = <0x0 0x201>;
  221. enable-method = "psci";
  222. clock-frequency = <2400000000>;
  223. cpu-idle-states = <&cpu_sleep>;
  224. i-cache-size = <0xc000>;
  225. i-cache-line-size = <64>;
  226. i-cache-sets = <256>;
  227. d-cache-size = <0x8000>;
  228. d-cache-line-size = <64>;
  229. d-cache-sets = <256>;
  230. next-level-cache = <&cpucl_l2>;
  231. };
  232. cpucl2_2: cpu@202 {
  233. device_type = "cpu";
  234. compatible = "arm,cortex-a72";
  235. reg = <0x0 0x202>;
  236. enable-method = "psci";
  237. clock-frequency = <2400000000>;
  238. cpu-idle-states = <&cpu_sleep>;
  239. i-cache-size = <0xc000>;
  240. i-cache-line-size = <64>;
  241. i-cache-sets = <256>;
  242. d-cache-size = <0x8000>;
  243. d-cache-line-size = <64>;
  244. d-cache-sets = <256>;
  245. next-level-cache = <&cpucl_l2>;
  246. };
  247. cpucl2_3: cpu@203 {
  248. device_type = "cpu";
  249. compatible = "arm,cortex-a72";
  250. reg = <0x0 0x203>;
  251. enable-method = "psci";
  252. clock-frequency = <2400000000>;
  253. cpu-idle-states = <&cpu_sleep>;
  254. i-cache-size = <0xc000>;
  255. i-cache-line-size = <64>;
  256. i-cache-sets = <256>;
  257. d-cache-size = <0x8000>;
  258. d-cache-line-size = <64>;
  259. d-cache-sets = <256>;
  260. next-level-cache = <&cpucl_l2>;
  261. };
  262. cpucl_l2: l2-cache0 {
  263. compatible = "cache";
  264. cache-level = <2>;
  265. cache-unified;
  266. cache-size = <0x400000>;
  267. cache-line-size = <64>;
  268. cache-sets = <4096>;
  269. };
  270. idle-states {
  271. entry-method = "psci";
  272. cpu_sleep: cpu-sleep {
  273. idle-state-name = "c2";
  274. compatible = "arm,idle-state";
  275. local-timer-stop;
  276. arm,psci-suspend-param = <0x0010000>;
  277. entry-latency-us = <30>;
  278. exit-latency-us = <75>;
  279. min-residency-us = <300>;
  280. };
  281. };
  282. };
  283. arm-pmu {
  284. compatible = "arm,cortex-a72-pmu";
  285. interrupts = <GIC_SPI 356 IRQ_TYPE_LEVEL_HIGH>,
  286. <GIC_SPI 357 IRQ_TYPE_LEVEL_HIGH>,
  287. <GIC_SPI 358 IRQ_TYPE_LEVEL_HIGH>,
  288. <GIC_SPI 359 IRQ_TYPE_LEVEL_HIGH>,
  289. <GIC_SPI 370 IRQ_TYPE_LEVEL_HIGH>,
  290. <GIC_SPI 371 IRQ_TYPE_LEVEL_HIGH>,
  291. <GIC_SPI 372 IRQ_TYPE_LEVEL_HIGH>,
  292. <GIC_SPI 373 IRQ_TYPE_LEVEL_HIGH>,
  293. <GIC_SPI 384 IRQ_TYPE_LEVEL_HIGH>,
  294. <GIC_SPI 385 IRQ_TYPE_LEVEL_HIGH>,
  295. <GIC_SPI 386 IRQ_TYPE_LEVEL_HIGH>,
  296. <GIC_SPI 387 IRQ_TYPE_LEVEL_HIGH>;
  297. interrupt-affinity = <&cpucl0_0>, <&cpucl0_1>, <&cpucl0_2>,
  298. <&cpucl0_3>, <&cpucl1_0>, <&cpucl1_1>,
  299. <&cpucl1_2>, <&cpucl1_3>, <&cpucl2_0>,
  300. <&cpucl2_1>, <&cpucl2_2>, <&cpucl2_3>;
  301. };
  302. psci {
  303. compatible = "arm,psci-1.0";
  304. method = "smc";
  305. };
  306. timer {
  307. compatible = "arm,armv8-timer";
  308. interrupts = <GIC_PPI 13 IRQ_TYPE_LEVEL_LOW>,
  309. <GIC_PPI 14 IRQ_TYPE_LEVEL_LOW>,
  310. <GIC_PPI 11 IRQ_TYPE_LEVEL_LOW>,
  311. <GIC_PPI 10 IRQ_TYPE_LEVEL_LOW>;
  312. };
  313. fin_pll: clock {
  314. compatible = "fixed-clock";
  315. clock-output-names = "fin_pll";
  316. #clock-cells = <0>;
  317. };
  318. reserved-memory {
  319. #address-cells = <2>;
  320. #size-cells = <2>;
  321. ranges;
  322. mfc_left: region@84000000 {
  323. compatible = "shared-dma-pool";
  324. no-map;
  325. reg = <0 0x84000000 0 0x8000000>;
  326. };
  327. };
  328. soc: soc@0 {
  329. compatible = "simple-bus";
  330. #address-cells = <2>;
  331. #size-cells = <2>;
  332. ranges = <0x0 0x0 0x0 0x0 0x0 0x18000000>;
  333. dma-ranges = <0x0 0x0 0x0 0x0 0x10 0x0>;
  334. gic: interrupt-controller@10400000 {
  335. compatible = "arm,gic-v3";
  336. #address-cells = <0>;
  337. #interrupt-cells = <3>;
  338. interrupt-controller;
  339. reg = <0x0 0x10400000 0x0 0x10000>, /* GICD */
  340. <0x0 0x10600000 0x0 0x200000>; /* GICR_RD+GICR_SGI */
  341. interrupts = <GIC_PPI 9 IRQ_TYPE_LEVEL_HIGH>;
  342. };
  343. smmu_imem: iommu@10200000 {
  344. compatible = "arm,mmu-500";
  345. reg = <0x0 0x10200000 0x0 0x10000>;
  346. #iommu-cells = <2>;
  347. #global-interrupts = <7>;
  348. interrupts = <GIC_SPI 438 IRQ_TYPE_LEVEL_HIGH>, /* Global secure fault */
  349. <GIC_SPI 439 IRQ_TYPE_LEVEL_HIGH>, /* Global non-secure fault */
  350. <GIC_SPI 451 IRQ_TYPE_LEVEL_HIGH>, /* Combined secure interrupt */
  351. <GIC_SPI 450 IRQ_TYPE_LEVEL_HIGH>, /* Combined non-secure interrupt */
  352. /* Performance counter interrupts */
  353. <GIC_SPI 441 IRQ_TYPE_LEVEL_HIGH>, /* for FSYS1_0 */
  354. <GIC_SPI 442 IRQ_TYPE_LEVEL_HIGH>, /* for FSYS1_1 */
  355. <GIC_SPI 443 IRQ_TYPE_LEVEL_HIGH>, /* for IMEM_0 */
  356. /* Per context non-secure context interrupts, 0-3 interrupts */
  357. <GIC_SPI 446 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_0 */
  358. <GIC_SPI 447 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_1 */
  359. <GIC_SPI 448 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_2 */
  360. <GIC_SPI 449 IRQ_TYPE_LEVEL_HIGH>; /* for CONTEXT_3 */
  361. };
  362. smmu_isp: iommu@12100000 {
  363. compatible = "arm,mmu-500";
  364. reg = <0x0 0x12100000 0x0 0x10000>;
  365. #iommu-cells = <2>;
  366. #global-interrupts = <11>;
  367. interrupts = <GIC_SPI 321 IRQ_TYPE_LEVEL_HIGH>, /* Global secure fault */
  368. <GIC_SPI 322 IRQ_TYPE_LEVEL_HIGH>, /* Global non-secure fault */
  369. <GIC_SPI 346 IRQ_TYPE_LEVEL_HIGH>, /* Combined secure interrupt */
  370. <GIC_SPI 345 IRQ_TYPE_LEVEL_HIGH>, /* Combined non-secure interrupt */
  371. /* Performance counter interrupts */
  372. <GIC_SPI 323 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_CSI */
  373. <GIC_SPI 324 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_DP_0 */
  374. <GIC_SPI 325 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_DP_1 */
  375. <GIC_SPI 326 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_ISP_0 */
  376. <GIC_SPI 327 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_ISP_1 */
  377. <GIC_SPI 328 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_MFC_0 */
  378. <GIC_SPI 329 IRQ_TYPE_LEVEL_HIGH>, /* for CAM_MFC_1 */
  379. /* Per context non-secure context interrupts, 0-7 interrupts */
  380. <GIC_SPI 330 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_0 */
  381. <GIC_SPI 331 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_1 */
  382. <GIC_SPI 332 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_2 */
  383. <GIC_SPI 333 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_3 */
  384. <GIC_SPI 334 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_4 */
  385. <GIC_SPI 335 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_5 */
  386. <GIC_SPI 336 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_6 */
  387. <GIC_SPI 337 IRQ_TYPE_LEVEL_HIGH>; /* for CONTEXT_7 */
  388. };
  389. smmu_peric: iommu@14900000 {
  390. compatible = "arm,mmu-500";
  391. reg = <0x0 0x14900000 0x0 0x10000>;
  392. #iommu-cells = <2>;
  393. #global-interrupts = <5>;
  394. interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_HIGH>, /* Global secure fault */
  395. <GIC_SPI 196 IRQ_TYPE_LEVEL_HIGH>, /* Global non-secure fault */
  396. <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>, /* Combined secure interrupt */
  397. <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>, /* Combined non-secure interrupt */
  398. /* Performance counter interrupts */
  399. <GIC_SPI 198 IRQ_TYPE_LEVEL_HIGH>, /* for PERIC */
  400. /* Per context non-secure context interrupts, 0-1 interrupts */
  401. <GIC_SPI 194 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_0 */
  402. <GIC_SPI 195 IRQ_TYPE_LEVEL_HIGH>; /* for CONTEXT_1 */
  403. };
  404. smmu_fsys0: iommu@15450000 {
  405. compatible = "arm,mmu-500";
  406. reg = <0x0 0x15450000 0x0 0x10000>;
  407. #iommu-cells = <2>;
  408. #global-interrupts = <5>;
  409. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>, /* Global secure fault */
  410. <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>, /* Global non-secure fault */
  411. <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>, /* Combined secure interrupt */
  412. <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>, /* Combined non-secure interrupt */
  413. /* Performance counter interrupts */
  414. <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>, /* for FSYS0 */
  415. /* Per context non-secure context interrupts, 0-1 interrupts */
  416. <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>, /* for CONTEXT_0 */
  417. <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>; /* for CONTEXT_1 */
  418. };
  419. clock_imem: clock-controller@10010000 {
  420. compatible = "tesla,fsd-clock-imem";
  421. reg = <0x0 0x10010000 0x0 0x3000>;
  422. #clock-cells = <1>;
  423. clocks = <&fin_pll>,
  424. <&clock_cmu DOUT_CMU_IMEM_TCUCLK>,
  425. <&clock_cmu DOUT_CMU_IMEM_ACLK>,
  426. <&clock_cmu DOUT_CMU_IMEM_DMACLK>;
  427. clock-names = "fin_pll",
  428. "dout_cmu_imem_tcuclk",
  429. "dout_cmu_imem_aclk",
  430. "dout_cmu_imem_dmaclk";
  431. };
  432. clock_cmu: clock-controller@11c10000 {
  433. compatible = "tesla,fsd-clock-cmu";
  434. reg = <0x0 0x11c10000 0x0 0x3000>;
  435. #clock-cells = <1>;
  436. clocks = <&fin_pll>;
  437. clock-names = "fin_pll";
  438. };
  439. clock_csi: clock-controller@12610000 {
  440. compatible = "tesla,fsd-clock-cam_csi";
  441. reg = <0x0 0x12610000 0x0 0x3000>;
  442. #clock-cells = <1>;
  443. clocks = <&fin_pll>;
  444. clock-names = "fin_pll";
  445. };
  446. sysreg_cam: system-controller@12630000 {
  447. compatible = "tesla,fsd-cam-sysreg", "syscon";
  448. reg = <0x0 0x12630000 0x0 0x500>;
  449. };
  450. clock_mfc: clock-controller@12810000 {
  451. compatible = "tesla,fsd-clock-mfc";
  452. reg = <0x0 0x12810000 0x0 0x3000>;
  453. #clock-cells = <1>;
  454. clocks = <&fin_pll>;
  455. clock-names = "fin_pll";
  456. };
  457. clock_peric: clock-controller@14010000 {
  458. compatible = "tesla,fsd-clock-peric";
  459. reg = <0x0 0x14010000 0x0 0x3000>;
  460. #clock-cells = <1>;
  461. clocks = <&fin_pll>,
  462. <&clock_cmu DOUT_CMU_PLL_SHARED0_DIV4>,
  463. <&clock_cmu DOUT_CMU_PERIC_SHARED1DIV36>,
  464. <&clock_cmu DOUT_CMU_PERIC_SHARED0DIV3_TBUCLK>,
  465. <&clock_cmu DOUT_CMU_PERIC_SHARED0DIV20>,
  466. <&clock_cmu DOUT_CMU_PERIC_SHARED1DIV4_DMACLK>;
  467. clock-names = "fin_pll",
  468. "dout_cmu_pll_shared0_div4",
  469. "dout_cmu_peric_shared1div36",
  470. "dout_cmu_peric_shared0div3_tbuclk",
  471. "dout_cmu_peric_shared0div20",
  472. "dout_cmu_peric_shared1div4_dmaclk";
  473. };
  474. sysreg_peric: system-controller@14030000 {
  475. compatible = "tesla,fsd-peric-sysreg", "syscon";
  476. reg = <0x0 0x14030000 0x0 0x1000>;
  477. };
  478. clock_fsys0: clock-controller@15010000 {
  479. compatible = "tesla,fsd-clock-fsys0";
  480. reg = <0x0 0x15010000 0x0 0x3000>;
  481. #clock-cells = <1>;
  482. clocks = <&fin_pll>,
  483. <&clock_cmu DOUT_CMU_PLL_SHARED0_DIV6>,
  484. <&clock_cmu DOUT_CMU_FSYS0_SHARED1DIV4>,
  485. <&clock_cmu DOUT_CMU_FSYS0_SHARED0DIV4>;
  486. clock-names = "fin_pll",
  487. "dout_cmu_pll_shared0_div6",
  488. "dout_cmu_fsys0_shared1div4",
  489. "dout_cmu_fsys0_shared0div4";
  490. };
  491. sysreg_fsys0: system-controller@15030000 {
  492. compatible = "tesla,fsd-fsys0-sysreg", "syscon";
  493. reg = <0x0 0x15030000 0x0 0x1000>;
  494. };
  495. clock_fsys1: clock-controller@16810000 {
  496. compatible = "tesla,fsd-clock-fsys1";
  497. reg = <0x0 0x16810000 0x0 0x3000>;
  498. #clock-cells = <1>;
  499. clocks = <&fin_pll>,
  500. <&clock_cmu DOUT_CMU_FSYS1_SHARED0DIV8>,
  501. <&clock_cmu DOUT_CMU_FSYS1_SHARED0DIV4>;
  502. clock-names = "fin_pll",
  503. "dout_cmu_fsys1_shared0div8",
  504. "dout_cmu_fsys1_shared0div4";
  505. };
  506. sysreg_fsys1: system-controller@16830000 {
  507. compatible = "tesla,fsd-fsys1-sysreg", "syscon";
  508. reg = <0x0 0x16830000 0x0 0x1000>;
  509. };
  510. mdma0: dma-controller@10100000 {
  511. compatible = "arm,pl330", "arm,primecell";
  512. reg = <0x0 0x10100000 0x0 0x1000>;
  513. interrupts = <GIC_SPI 424 IRQ_TYPE_LEVEL_HIGH>;
  514. #dma-cells = <1>;
  515. clocks = <&clock_imem IMEM_DMA0_IPCLKPORT_ACLK>;
  516. clock-names = "apb_pclk";
  517. iommus = <&smmu_imem 0x800 0x0>;
  518. };
  519. mdma1: dma-controller@10110000 {
  520. compatible = "arm,pl330", "arm,primecell";
  521. reg = <0x0 0x10110000 0x0 0x1000>;
  522. interrupts = <GIC_SPI 425 IRQ_TYPE_LEVEL_HIGH>;
  523. #dma-cells = <1>;
  524. clocks = <&clock_imem IMEM_DMA1_IPCLKPORT_ACLK>;
  525. clock-names = "apb_pclk";
  526. iommus = <&smmu_imem 0x801 0x0>;
  527. };
  528. pdma0: dma-controller@14280000 {
  529. compatible = "arm,pl330", "arm,primecell";
  530. reg = <0x0 0x14280000 0x0 0x1000>;
  531. interrupts = <GIC_SPI 190 IRQ_TYPE_LEVEL_HIGH>;
  532. #dma-cells = <1>;
  533. clocks = <&clock_peric PERIC_DMA0_IPCLKPORT_ACLK>;
  534. clock-names = "apb_pclk";
  535. iommus = <&smmu_peric 0x2 0x0>;
  536. };
  537. pdma1: dma-controller@14290000 {
  538. compatible = "arm,pl330", "arm,primecell";
  539. reg = <0x0 0x14290000 0x0 0x1000>;
  540. interrupts = <GIC_SPI 191 IRQ_TYPE_LEVEL_HIGH>;
  541. #dma-cells = <1>;
  542. clocks = <&clock_peric PERIC_DMA1_IPCLKPORT_ACLK>;
  543. clock-names = "apb_pclk";
  544. iommus = <&smmu_peric 0x1 0x0>;
  545. };
  546. serial_0: serial@14180000 {
  547. compatible = "tesla,fsd-uart", "samsung,exynos4210-uart";
  548. reg = <0x0 0x14180000 0x0 0x100>;
  549. interrupts = <GIC_SPI 171 IRQ_TYPE_LEVEL_HIGH>;
  550. dmas = <&pdma1 1>, <&pdma1 0>;
  551. dma-names = "rx", "tx";
  552. clocks = <&clock_peric PERIC_PCLK_UART0>,
  553. <&clock_peric PERIC_SCLK_UART0>;
  554. clock-names = "uart", "clk_uart_baud0";
  555. samsung,uart-fifosize = <64>;
  556. status = "disabled";
  557. };
  558. serial_1: serial@14190000 {
  559. compatible = "tesla,fsd-uart", "samsung,exynos4210-uart";
  560. reg = <0x0 0x14190000 0x0 0x100>;
  561. interrupts = <GIC_SPI 172 IRQ_TYPE_LEVEL_HIGH>;
  562. dmas = <&pdma1 3>, <&pdma1 2>;
  563. dma-names = "rx", "tx";
  564. clocks = <&clock_peric PERIC_PCLK_UART1>,
  565. <&clock_peric PERIC_SCLK_UART1>;
  566. clock-names = "uart", "clk_uart_baud0";
  567. samsung,uart-fifosize = <64>;
  568. status = "disabled";
  569. };
  570. pmu_system_controller: system-controller@11400000 {
  571. compatible = "tesla,fsd-pmu", "samsung,exynos7-pmu", "syscon";
  572. reg = <0x0 0x11400000 0x0 0x5000>;
  573. };
  574. watchdog_0: watchdog@100a0000 {
  575. compatible = "tesla,fsd-wdt", "samsung,exynos7-wdt";
  576. reg = <0x0 0x100a0000 0x0 0x100>;
  577. interrupts = <GIC_SPI 471 IRQ_TYPE_LEVEL_HIGH>;
  578. samsung,syscon-phandle = <&pmu_system_controller>;
  579. clocks = <&fin_pll>;
  580. clock-names = "watchdog";
  581. };
  582. watchdog_1: watchdog@100b0000 {
  583. compatible = "tesla,fsd-wdt", "samsung,exynos7-wdt";
  584. reg = <0x0 0x100b0000 0x0 0x100>;
  585. interrupts = <GIC_SPI 472 IRQ_TYPE_LEVEL_HIGH>;
  586. samsung,syscon-phandle = <&pmu_system_controller>;
  587. clocks = <&fin_pll>;
  588. clock-names = "watchdog";
  589. };
  590. watchdog_2: watchdog@100c0000 {
  591. compatible = "tesla,fsd-wdt", "samsung,exynos7-wdt";
  592. reg = <0x0 0x100c0000 0x0 0x100>;
  593. interrupts = <GIC_SPI 473 IRQ_TYPE_LEVEL_HIGH>;
  594. samsung,syscon-phandle = <&pmu_system_controller>;
  595. clocks = <&fin_pll>;
  596. clock-names = "watchdog";
  597. };
  598. pwm_0: pwm@14100000 {
  599. compatible = "tesla,fsd-pwm", "samsung,exynos4210-pwm";
  600. reg = <0x0 0x14100000 0x0 0x100>;
  601. samsung,pwm-outputs = <0>, <1>, <2>, <3>;
  602. #pwm-cells = <3>;
  603. clocks = <&clock_peric PERIC_PWM0_IPCLKPORT_I_PCLK_S0>;
  604. clock-names = "timers";
  605. status = "disabled";
  606. };
  607. pwm_1: pwm@14110000 {
  608. compatible = "tesla,fsd-pwm", "samsung,exynos4210-pwm";
  609. reg = <0x0 0x14110000 0x0 0x100>;
  610. samsung,pwm-outputs = <0>, <1>, <2>, <3>;
  611. #pwm-cells = <3>;
  612. clocks = <&clock_peric PERIC_PWM1_IPCLKPORT_I_PCLK_S0>;
  613. clock-names = "timers";
  614. status = "disabled";
  615. };
  616. hsi2c_0: i2c@14200000 {
  617. compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
  618. reg = <0x0 0x14200000 0x0 0x1000>;
  619. interrupts = <GIC_SPI 148 IRQ_TYPE_LEVEL_HIGH>;
  620. #address-cells = <1>;
  621. #size-cells = <0>;
  622. pinctrl-names = "default";
  623. pinctrl-0 = <&hs_i2c0_bus>;
  624. clocks = <&clock_peric PERIC_PCLK_HSI2C0>;
  625. clock-names = "hsi2c";
  626. status = "disabled";
  627. };
  628. hsi2c_1: i2c@14210000 {
  629. compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
  630. reg = <0x0 0x14210000 0x0 0x1000>;
  631. interrupts = <GIC_SPI 149 IRQ_TYPE_LEVEL_HIGH>;
  632. #address-cells = <1>;
  633. #size-cells = <0>;
  634. pinctrl-names = "default";
  635. pinctrl-0 = <&hs_i2c1_bus>;
  636. clocks = <&clock_peric PERIC_PCLK_HSI2C1>;
  637. clock-names = "hsi2c";
  638. status = "disabled";
  639. };
  640. hsi2c_2: i2c@14220000 {
  641. compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
  642. reg = <0x0 0x14220000 0x0 0x1000>;
  643. interrupts = <GIC_SPI 150 IRQ_TYPE_LEVEL_HIGH>;
  644. #address-cells = <1>;
  645. #size-cells = <0>;
  646. pinctrl-names = "default";
  647. pinctrl-0 = <&hs_i2c2_bus>;
  648. clocks = <&clock_peric PERIC_PCLK_HSI2C2>;
  649. clock-names = "hsi2c";
  650. status = "disabled";
  651. };
  652. hsi2c_3: i2c@14230000 {
  653. compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
  654. reg = <0x0 0x14230000 0x0 0x1000>;
  655. interrupts = <GIC_SPI 151 IRQ_TYPE_LEVEL_HIGH>;
  656. #address-cells = <1>;
  657. #size-cells = <0>;
  658. pinctrl-names = "default";
  659. pinctrl-0 = <&hs_i2c3_bus>;
  660. clocks = <&clock_peric PERIC_PCLK_HSI2C3>;
  661. clock-names = "hsi2c";
  662. status = "disabled";
  663. };
  664. hsi2c_4: i2c@14240000 {
  665. compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
  666. reg = <0x0 0x14240000 0x0 0x1000>;
  667. interrupts = <GIC_SPI 152 IRQ_TYPE_LEVEL_HIGH>;
  668. #address-cells = <1>;
  669. #size-cells = <0>;
  670. pinctrl-names = "default";
  671. pinctrl-0 = <&hs_i2c4_bus>;
  672. clocks = <&clock_peric PERIC_PCLK_HSI2C4>;
  673. clock-names = "hsi2c";
  674. status = "disabled";
  675. };
  676. hsi2c_5: i2c@14250000 {
  677. compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
  678. reg = <0x0 0x14250000 0x0 0x1000>;
  679. interrupts = <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>;
  680. #address-cells = <1>;
  681. #size-cells = <0>;
  682. pinctrl-names = "default";
  683. pinctrl-0 = <&hs_i2c5_bus>;
  684. clocks = <&clock_peric PERIC_PCLK_HSI2C5>;
  685. clock-names = "hsi2c";
  686. status = "disabled";
  687. };
  688. hsi2c_6: i2c@14260000 {
  689. compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
  690. reg = <0x0 0x14260000 0x0 0x1000>;
  691. interrupts = <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  692. #address-cells = <1>;
  693. #size-cells = <0>;
  694. pinctrl-names = "default";
  695. pinctrl-0 = <&hs_i2c6_bus>;
  696. clocks = <&clock_peric PERIC_PCLK_HSI2C6>;
  697. clock-names = "hsi2c";
  698. status = "disabled";
  699. };
  700. hsi2c_7: i2c@14270000 {
  701. compatible = "tesla,fsd-hsi2c", "samsung,exynos7-hsi2c";
  702. reg = <0x0 0x14270000 0x0 0x1000>;
  703. interrupts = <GIC_SPI 155 IRQ_TYPE_LEVEL_HIGH>;
  704. #address-cells = <1>;
  705. #size-cells = <0>;
  706. pinctrl-names = "default";
  707. pinctrl-0 = <&hs_i2c7_bus>;
  708. clocks = <&clock_peric PERIC_PCLK_HSI2C7>;
  709. clock-names = "hsi2c";
  710. status = "disabled";
  711. };
  712. i2s_0: i2s@140e0000 {
  713. compatible = "tesla,fsd-i2s";
  714. reg = <0x0 0x140e0000 0x0 0x100>;
  715. interrupts = <GIC_SPI 206 IRQ_TYPE_LEVEL_HIGH>;
  716. dmas = <&pdma1 14>, <&pdma1 13>, <&pdma1 12>;
  717. dma-names = "tx", "rx", "tx-sec";
  718. #clock-cells = <1>;
  719. clocks = <&clock_peric PERIC_PCLK_TDM0>,
  720. <&clock_peric PERIC_HCLK_TDM0>,
  721. <&clock_peric PERIC_HCLK_TDM0>;
  722. clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
  723. pinctrl-names = "default";
  724. pinctrl-0 = <&i2s0_bus>;
  725. #sound-dai-cells = <1>;
  726. status = "disabled";
  727. };
  728. i2s_1: i2s@140f0000 {
  729. compatible = "tesla,fsd-i2s";
  730. reg = <0x0 0x140f0000 0x0 0x100>;
  731. interrupts = <GIC_SPI 207 IRQ_TYPE_LEVEL_HIGH>;
  732. dmas = <&pdma1 17>, <&pdma1 16>, <&pdma1 15>;
  733. dma-names = "tx", "rx", "tx-sec";
  734. #clock-cells = <1>;
  735. clocks = <&clock_peric PERIC_PCLK_TDM1>,
  736. <&clock_peric PERIC_HCLK_TDM1>,
  737. <&clock_peric PERIC_HCLK_TDM1>;
  738. clock-names = "iis", "i2s_opclk0", "i2s_opclk1";
  739. pinctrl-names = "default";
  740. pinctrl-0 = <&i2s1_bus>;
  741. #sound-dai-cells = <1>;
  742. status = "disabled";
  743. };
  744. pinctrl_pmu: pinctrl@114f0000 {
  745. compatible = "tesla,fsd-pinctrl";
  746. reg = <0x0 0x114f0000 0x0 0x1000>;
  747. };
  748. pinctrl_peric: pinctrl@141f0000 {
  749. compatible = "tesla,fsd-pinctrl";
  750. reg = <0x0 0x141f0000 0x0 0x1000>;
  751. interrupts = <GIC_SPI 189 IRQ_TYPE_LEVEL_HIGH>;
  752. };
  753. pinctrl_fsys0: pinctrl@15020000 {
  754. compatible = "tesla,fsd-pinctrl";
  755. reg = <0x0 0x15020000 0x0 0x1000>;
  756. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  757. };
  758. m_can0: can@14088000 {
  759. compatible = "bosch,m_can";
  760. reg = <0x0 0x14088000 0x0 0x0200>,
  761. <0x0 0x14080000 0x0 0x8000>;
  762. reg-names = "m_can", "message_ram";
  763. interrupts = <GIC_SPI 159 IRQ_TYPE_LEVEL_HIGH>,
  764. <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>;
  765. interrupt-names = "int0", "int1";
  766. pinctrl-names = "default";
  767. pinctrl-0 = <&m_can0_bus>;
  768. clocks = <&clock_peric PERIC_MCAN0_IPCLKPORT_PCLK>,
  769. <&clock_peric PERIC_MCAN0_IPCLKPORT_CCLK>;
  770. clock-names = "hclk", "cclk";
  771. bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
  772. status = "disabled";
  773. };
  774. m_can1: can@14098000 {
  775. compatible = "bosch,m_can";
  776. reg = <0x0 0x14098000 0x0 0x0200>,
  777. <0x0 0x14090000 0x0 0x8000>;
  778. reg-names = "m_can", "message_ram";
  779. interrupts = <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
  780. <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>;
  781. interrupt-names = "int0", "int1";
  782. pinctrl-names = "default";
  783. pinctrl-0 = <&m_can1_bus>;
  784. clocks = <&clock_peric PERIC_MCAN1_IPCLKPORT_PCLK>,
  785. <&clock_peric PERIC_MCAN1_IPCLKPORT_CCLK>;
  786. clock-names = "hclk", "cclk";
  787. bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
  788. status = "disabled";
  789. };
  790. m_can2: can@140a8000 {
  791. compatible = "bosch,m_can";
  792. reg = <0x0 0x140a8000 0x0 0x0200>,
  793. <0x0 0x140a0000 0x0 0x8000>;
  794. reg-names = "m_can", "message_ram";
  795. interrupts = <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
  796. <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>;
  797. interrupt-names = "int0", "int1";
  798. pinctrl-names = "default";
  799. pinctrl-0 = <&m_can2_bus>;
  800. clocks = <&clock_peric PERIC_MCAN2_IPCLKPORT_PCLK>,
  801. <&clock_peric PERIC_MCAN2_IPCLKPORT_CCLK>;
  802. clock-names = "hclk", "cclk";
  803. bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
  804. status = "disabled";
  805. };
  806. m_can3: can@140b8000 {
  807. compatible = "bosch,m_can";
  808. reg = <0x0 0x140b8000 0x0 0x0200>,
  809. <0x0 0x140b0000 0x0 0x8000>;
  810. reg-names = "m_can", "message_ram";
  811. interrupts = <GIC_SPI 168 IRQ_TYPE_LEVEL_HIGH>,
  812. <GIC_SPI 169 IRQ_TYPE_LEVEL_HIGH>;
  813. interrupt-names = "int0", "int1";
  814. pinctrl-names = "default";
  815. pinctrl-0 = <&m_can3_bus>;
  816. clocks = <&clock_peric PERIC_MCAN3_IPCLKPORT_PCLK>,
  817. <&clock_peric PERIC_MCAN3_IPCLKPORT_CCLK>;
  818. clock-names = "hclk", "cclk";
  819. bosch,mram-cfg = <0x0 128 64 64 64 64 32 32>;
  820. status = "disabled";
  821. };
  822. spi_0: spi@14140000 {
  823. compatible = "tesla,fsd-spi";
  824. reg = <0x0 0x14140000 0x0 0x100>;
  825. interrupts = <GIC_SPI 156 IRQ_TYPE_LEVEL_HIGH>;
  826. dmas = <&pdma1 4>, <&pdma1 5>;
  827. dma-names = "tx", "rx";
  828. #address-cells = <1>;
  829. #size-cells = <0>;
  830. clocks = <&clock_peric PERIC_PCLK_SPI0>,
  831. <&clock_peric PERIC_SCLK_SPI0>;
  832. clock-names = "spi", "spi_busclk0";
  833. samsung,spi-src-clk = <0>;
  834. pinctrl-names = "default";
  835. pinctrl-0 = <&spi0_bus>;
  836. num-cs = <1>;
  837. status = "disabled";
  838. };
  839. spi_1: spi@14150000 {
  840. compatible = "tesla,fsd-spi";
  841. reg = <0x0 0x14150000 0x0 0x100>;
  842. interrupts = <GIC_SPI 157 IRQ_TYPE_LEVEL_HIGH>;
  843. dmas = <&pdma1 6>, <&pdma1 7>;
  844. dma-names = "tx", "rx";
  845. #address-cells = <1>;
  846. #size-cells = <0>;
  847. clocks = <&clock_peric PERIC_PCLK_SPI1>,
  848. <&clock_peric PERIC_SCLK_SPI1>;
  849. clock-names = "spi", "spi_busclk0";
  850. samsung,spi-src-clk = <0>;
  851. pinctrl-names = "default";
  852. pinctrl-0 = <&spi1_bus>;
  853. num-cs = <1>;
  854. status = "disabled";
  855. };
  856. spi_2: spi@14160000 {
  857. compatible = "tesla,fsd-spi";
  858. reg = <0x0 0x14160000 0x0 0x100>;
  859. interrupts = <GIC_SPI 158 IRQ_TYPE_LEVEL_HIGH>;
  860. dmas = <&pdma1 8>, <&pdma1 9>;
  861. dma-names = "tx", "rx";
  862. #address-cells = <1>;
  863. #size-cells = <0>;
  864. clocks = <&clock_peric PERIC_PCLK_SPI2>,
  865. <&clock_peric PERIC_SCLK_SPI2>;
  866. clock-names = "spi", "spi_busclk0";
  867. samsung,spi-src-clk = <0>;
  868. pinctrl-names = "default";
  869. pinctrl-0 = <&spi2_bus>;
  870. num-cs = <1>;
  871. status = "disabled";
  872. };
  873. timer@10040000 {
  874. compatible = "tesla,fsd-mct", "samsung,exynos4210-mct";
  875. reg = <0x0 0x10040000 0x0 0x800>;
  876. interrupts = <GIC_SPI 455 IRQ_TYPE_LEVEL_HIGH>,
  877. <GIC_SPI 456 IRQ_TYPE_LEVEL_HIGH>,
  878. <GIC_SPI 457 IRQ_TYPE_LEVEL_HIGH>,
  879. <GIC_SPI 458 IRQ_TYPE_LEVEL_HIGH>,
  880. <GIC_SPI 459 IRQ_TYPE_LEVEL_HIGH>,
  881. <GIC_SPI 460 IRQ_TYPE_LEVEL_HIGH>,
  882. <GIC_SPI 461 IRQ_TYPE_LEVEL_HIGH>,
  883. <GIC_SPI 462 IRQ_TYPE_LEVEL_HIGH>,
  884. <GIC_SPI 463 IRQ_TYPE_LEVEL_HIGH>,
  885. <GIC_SPI 464 IRQ_TYPE_LEVEL_HIGH>,
  886. <GIC_SPI 465 IRQ_TYPE_LEVEL_HIGH>,
  887. <GIC_SPI 466 IRQ_TYPE_LEVEL_HIGH>,
  888. <GIC_SPI 467 IRQ_TYPE_LEVEL_HIGH>,
  889. <GIC_SPI 468 IRQ_TYPE_LEVEL_HIGH>,
  890. <GIC_SPI 469 IRQ_TYPE_LEVEL_HIGH>,
  891. <GIC_SPI 470 IRQ_TYPE_LEVEL_HIGH>;
  892. clocks = <&fin_pll>, <&clock_imem IMEM_MCT_PCLK>;
  893. clock-names = "fin_pll", "mct";
  894. };
  895. mfc: mfc@12880000 {
  896. compatible = "tesla,fsd-mfc";
  897. reg = <0x0 0x12880000 0x0 0x10000>;
  898. interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>;
  899. clock-names = "mfc";
  900. clocks = <&clock_mfc MFC_MFC_IPCLKPORT_ACLK>;
  901. memory-region = <&mfc_left>;
  902. };
  903. ethernet1: ethernet@14300000 {
  904. compatible = "tesla,fsd-ethqos";
  905. reg = <0x0 0x14300000 0x0 0x10000>;
  906. interrupts = <GIC_SPI 176 IRQ_TYPE_LEVEL_HIGH>;
  907. interrupt-names = "macirq";
  908. clocks = <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_CLK_PTP_REF_I>,
  909. <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_ACLK_I>,
  910. <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_HCLK_I>,
  911. <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_RGMII_CLK_I>,
  912. <&clock_peric PERIC_EQOS_TOP_IPCLKPORT_CLK_RX_I>,
  913. <&clock_peric PERIC_BUS_D_PERIC_IPCLKPORT_EQOSCLK>,
  914. <&clock_peric PERIC_BUS_P_PERIC_IPCLKPORT_EQOSCLK>,
  915. <&clock_peric PERIC_EQOS_PHYRXCLK_MUX>,
  916. <&clock_peric PERIC_EQOS_PHYRXCLK>,
  917. <&clock_peric PERIC_DOUT_RGMII_CLK>;
  918. clock-names = "ptp_ref", "master_bus", "slave_bus", "tx", "rx",
  919. "master2_bus", "slave2_bus", "eqos_rxclk_mux",
  920. "eqos_phyrxclk", "dout_peric_rgmii_clk";
  921. assigned-clocks = <&clock_peric PERIC_EQOS_PHYRXCLK_MUX>,
  922. <&clock_peric PERIC_EQOS_PHYRXCLK>;
  923. assigned-clock-parents = <&clock_peric PERIC_EQOS_PHYRXCLK>;
  924. pinctrl-names = "default";
  925. pinctrl-0 = <&eth1_tx_clk>, <&eth1_tx_data>, <&eth1_tx_ctrl>,
  926. <&eth1_phy_intr>, <&eth1_rx_clk>, <&eth1_rx_data>,
  927. <&eth1_rx_ctrl>, <&eth1_mdio>;
  928. local-mac-address = [00 00 00 00 00 00];
  929. iommus = <&smmu_peric 0x0 0x1>;
  930. status = "disabled";
  931. };
  932. ufs: ufs@15120000 {
  933. compatible = "tesla,fsd-ufs";
  934. reg = <0x0 0x15120000 0x0 0x200>, /* 0: HCI standard */
  935. <0x0 0x15121100 0x0 0x200>, /* 1: Vendor specified */
  936. <0x0 0x15110000 0x0 0x8000>, /* 2: UNIPRO */
  937. <0x0 0x15130000 0x0 0x100>; /* 3: UFS protector */
  938. reg-names = "hci", "vs_hci", "unipro", "ufsp";
  939. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  940. clocks = <&clock_fsys0 UFS0_TOP0_HCLK_BUS>,
  941. <&clock_fsys0 UFS0_TOP0_CLK_UNIPRO>;
  942. clock-names = "core_clk", "sclk_unipro_main";
  943. freq-table-hz = <0 0>, <0 0>;
  944. pinctrl-names = "default";
  945. pinctrl-0 = <&ufs_rst_n &ufs_refclk_out>;
  946. phys = <&ufs_phy>;
  947. phy-names = "ufs-phy";
  948. status = "disabled";
  949. };
  950. ufs_phy: ufs-phy@15124000 {
  951. compatible = "tesla,fsd-ufs-phy";
  952. reg = <0x0 0x15124000 0x0 0x800>;
  953. reg-names = "phy-pma";
  954. samsung,pmu-syscon = <&pmu_system_controller>;
  955. #phy-cells = <0>;
  956. clocks = <&clock_fsys0 UFS0_MPHY_REFCLK_IXTAL26>;
  957. clock-names = "ref_clk";
  958. };
  959. ethernet0: ethernet@15300000 {
  960. compatible = "tesla,fsd-ethqos";
  961. reg = <0x0 0x15300000 0x0 0x10000>;
  962. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  963. interrupt-names = "macirq";
  964. clocks = <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_CLK_PTP_REF_I>,
  965. <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_ACLK_I>,
  966. <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_HCLK_I>,
  967. <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_RGMII_CLK_I>,
  968. <&clock_fsys0 FSYS0_EQOS_TOP0_IPCLKPORT_CLK_RX_I>;
  969. clock-names = "ptp_ref", "master_bus", "slave_bus", "tx", "rx";
  970. pinctrl-names = "default";
  971. pinctrl-0 = <&eth0_tx_clk>, <&eth0_tx_data>, <&eth0_tx_ctrl>,
  972. <&eth0_phy_intr>, <&eth0_rx_clk>, <&eth0_rx_data>,
  973. <&eth0_rx_ctrl>, <&eth0_mdio>;
  974. local-mac-address = [00 00 00 00 00 00];
  975. iommus = <&smmu_fsys0 0x0 0x1>;
  976. status = "disabled";
  977. };
  978. };
  979. };
  980. #include "fsd-pinctrl.dtsi"