hi3660.dtsi 31 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195
  1. // SPDX-License-Identifier: GPL-2.0
  2. /*
  3. * dts file for Hisilicon Hi3660 SoC
  4. *
  5. * Copyright (C) 2016, HiSilicon Ltd.
  6. */
  7. #include <dt-bindings/interrupt-controller/arm-gic.h>
  8. #include <dt-bindings/clock/hi3660-clock.h>
  9. #include <dt-bindings/thermal/thermal.h>
  10. / {
  11. compatible = "hisilicon,hi3660";
  12. interrupt-parent = <&gic>;
  13. #address-cells = <2>;
  14. #size-cells = <2>;
  15. psci {
  16. compatible = "arm,psci-0.2";
  17. method = "smc";
  18. };
  19. cpus {
  20. #address-cells = <2>;
  21. #size-cells = <0>;
  22. cpu-map {
  23. cluster0 {
  24. core0 {
  25. cpu = <&cpu0>;
  26. };
  27. core1 {
  28. cpu = <&cpu1>;
  29. };
  30. core2 {
  31. cpu = <&cpu2>;
  32. };
  33. core3 {
  34. cpu = <&cpu3>;
  35. };
  36. };
  37. cluster1 {
  38. core0 {
  39. cpu = <&cpu4>;
  40. };
  41. core1 {
  42. cpu = <&cpu5>;
  43. };
  44. core2 {
  45. cpu = <&cpu6>;
  46. };
  47. core3 {
  48. cpu = <&cpu7>;
  49. };
  50. };
  51. };
  52. cpu0: cpu@0 {
  53. compatible = "arm,cortex-a53";
  54. device_type = "cpu";
  55. reg = <0x0 0x0>;
  56. enable-method = "psci";
  57. next-level-cache = <&A53_L2>;
  58. cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
  59. capacity-dmips-mhz = <592>;
  60. clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
  61. operating-points-v2 = <&cluster0_opp>;
  62. #cooling-cells = <2>;
  63. dynamic-power-coefficient = <110>;
  64. };
  65. cpu1: cpu@1 {
  66. compatible = "arm,cortex-a53";
  67. device_type = "cpu";
  68. reg = <0x0 0x1>;
  69. enable-method = "psci";
  70. next-level-cache = <&A53_L2>;
  71. cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
  72. capacity-dmips-mhz = <592>;
  73. clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
  74. operating-points-v2 = <&cluster0_opp>;
  75. #cooling-cells = <2>;
  76. };
  77. cpu2: cpu@2 {
  78. compatible = "arm,cortex-a53";
  79. device_type = "cpu";
  80. reg = <0x0 0x2>;
  81. enable-method = "psci";
  82. next-level-cache = <&A53_L2>;
  83. cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
  84. capacity-dmips-mhz = <592>;
  85. clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
  86. operating-points-v2 = <&cluster0_opp>;
  87. #cooling-cells = <2>;
  88. };
  89. cpu3: cpu@3 {
  90. compatible = "arm,cortex-a53";
  91. device_type = "cpu";
  92. reg = <0x0 0x3>;
  93. enable-method = "psci";
  94. next-level-cache = <&A53_L2>;
  95. cpu-idle-states = <&CPU_SLEEP_0 &CLUSTER_SLEEP_0>;
  96. capacity-dmips-mhz = <592>;
  97. clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER0>;
  98. operating-points-v2 = <&cluster0_opp>;
  99. #cooling-cells = <2>;
  100. };
  101. cpu4: cpu@100 {
  102. compatible = "arm,cortex-a73";
  103. device_type = "cpu";
  104. reg = <0x0 0x100>;
  105. enable-method = "psci";
  106. next-level-cache = <&A73_L2>;
  107. cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
  108. capacity-dmips-mhz = <1024>;
  109. clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
  110. operating-points-v2 = <&cluster1_opp>;
  111. #cooling-cells = <2>;
  112. dynamic-power-coefficient = <550>;
  113. };
  114. cpu5: cpu@101 {
  115. compatible = "arm,cortex-a73";
  116. device_type = "cpu";
  117. reg = <0x0 0x101>;
  118. enable-method = "psci";
  119. next-level-cache = <&A73_L2>;
  120. cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
  121. capacity-dmips-mhz = <1024>;
  122. clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
  123. operating-points-v2 = <&cluster1_opp>;
  124. #cooling-cells = <2>;
  125. };
  126. cpu6: cpu@102 {
  127. compatible = "arm,cortex-a73";
  128. device_type = "cpu";
  129. reg = <0x0 0x102>;
  130. enable-method = "psci";
  131. next-level-cache = <&A73_L2>;
  132. cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
  133. capacity-dmips-mhz = <1024>;
  134. clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
  135. operating-points-v2 = <&cluster1_opp>;
  136. #cooling-cells = <2>;
  137. };
  138. cpu7: cpu@103 {
  139. compatible = "arm,cortex-a73";
  140. device_type = "cpu";
  141. reg = <0x0 0x103>;
  142. enable-method = "psci";
  143. next-level-cache = <&A73_L2>;
  144. cpu-idle-states = <&CPU_SLEEP_1 &CLUSTER_SLEEP_1>;
  145. capacity-dmips-mhz = <1024>;
  146. clocks = <&stub_clock HI3660_CLK_STUB_CLUSTER1>;
  147. operating-points-v2 = <&cluster1_opp>;
  148. #cooling-cells = <2>;
  149. };
  150. idle-states {
  151. entry-method = "psci";
  152. CPU_SLEEP_0: cpu-sleep-0 {
  153. compatible = "arm,idle-state";
  154. local-timer-stop;
  155. arm,psci-suspend-param = <0x0010000>;
  156. entry-latency-us = <400>;
  157. exit-latency-us = <650>;
  158. min-residency-us = <1500>;
  159. };
  160. CLUSTER_SLEEP_0: cluster-sleep-0 {
  161. compatible = "arm,idle-state";
  162. local-timer-stop;
  163. arm,psci-suspend-param = <0x1010000>;
  164. entry-latency-us = <500>;
  165. exit-latency-us = <1600>;
  166. min-residency-us = <3500>;
  167. };
  168. CPU_SLEEP_1: cpu-sleep-1 {
  169. compatible = "arm,idle-state";
  170. local-timer-stop;
  171. arm,psci-suspend-param = <0x0010000>;
  172. entry-latency-us = <400>;
  173. exit-latency-us = <550>;
  174. min-residency-us = <1500>;
  175. };
  176. CLUSTER_SLEEP_1: cluster-sleep-1 {
  177. compatible = "arm,idle-state";
  178. local-timer-stop;
  179. arm,psci-suspend-param = <0x1010000>;
  180. entry-latency-us = <800>;
  181. exit-latency-us = <2900>;
  182. min-residency-us = <3500>;
  183. };
  184. };
  185. A53_L2: l2-cache0 {
  186. compatible = "cache";
  187. };
  188. A73_L2: l2-cache1 {
  189. compatible = "cache";
  190. };
  191. };
  192. cluster0_opp: opp-table-0 {
  193. compatible = "operating-points-v2";
  194. opp-shared;
  195. opp00 {
  196. opp-hz = /bits/ 64 <533000000>;
  197. opp-microvolt = <700000>;
  198. clock-latency-ns = <300000>;
  199. };
  200. opp01 {
  201. opp-hz = /bits/ 64 <999000000>;
  202. opp-microvolt = <800000>;
  203. clock-latency-ns = <300000>;
  204. };
  205. opp02 {
  206. opp-hz = /bits/ 64 <1402000000>;
  207. opp-microvolt = <900000>;
  208. clock-latency-ns = <300000>;
  209. };
  210. opp03 {
  211. opp-hz = /bits/ 64 <1709000000>;
  212. opp-microvolt = <1000000>;
  213. clock-latency-ns = <300000>;
  214. };
  215. opp04 {
  216. opp-hz = /bits/ 64 <1844000000>;
  217. opp-microvolt = <1100000>;
  218. clock-latency-ns = <300000>;
  219. };
  220. };
  221. cluster1_opp: opp-table-1 {
  222. compatible = "operating-points-v2";
  223. opp-shared;
  224. opp10 {
  225. opp-hz = /bits/ 64 <903000000>;
  226. opp-microvolt = <700000>;
  227. clock-latency-ns = <300000>;
  228. };
  229. opp11 {
  230. opp-hz = /bits/ 64 <1421000000>;
  231. opp-microvolt = <800000>;
  232. clock-latency-ns = <300000>;
  233. };
  234. opp12 {
  235. opp-hz = /bits/ 64 <1805000000>;
  236. opp-microvolt = <900000>;
  237. clock-latency-ns = <300000>;
  238. };
  239. opp13 {
  240. opp-hz = /bits/ 64 <2112000000>;
  241. opp-microvolt = <1000000>;
  242. clock-latency-ns = <300000>;
  243. };
  244. opp14 {
  245. opp-hz = /bits/ 64 <2362000000>;
  246. opp-microvolt = <1100000>;
  247. clock-latency-ns = <300000>;
  248. };
  249. };
  250. gic: interrupt-controller@e82b0000 {
  251. compatible = "arm,gic-400";
  252. reg = <0x0 0xe82b1000 0 0x1000>, /* GICD */
  253. <0x0 0xe82b2000 0 0x2000>, /* GICC */
  254. <0x0 0xe82b4000 0 0x2000>, /* GICH */
  255. <0x0 0xe82b6000 0 0x2000>; /* GICV */
  256. #address-cells = <0>;
  257. #interrupt-cells = <3>;
  258. interrupt-controller;
  259. interrupts = <GIC_PPI 9 (GIC_CPU_MASK_SIMPLE(8) |
  260. IRQ_TYPE_LEVEL_HIGH)>;
  261. };
  262. a53-pmu {
  263. compatible = "arm,cortex-a53-pmu";
  264. interrupts = <GIC_SPI 24 IRQ_TYPE_LEVEL_HIGH>,
  265. <GIC_SPI 25 IRQ_TYPE_LEVEL_HIGH>,
  266. <GIC_SPI 26 IRQ_TYPE_LEVEL_HIGH>,
  267. <GIC_SPI 27 IRQ_TYPE_LEVEL_HIGH>;
  268. interrupt-affinity = <&cpu0>,
  269. <&cpu1>,
  270. <&cpu2>,
  271. <&cpu3>;
  272. };
  273. a73-pmu {
  274. compatible = "arm,cortex-a73-pmu";
  275. interrupts = <GIC_SPI 2 IRQ_TYPE_LEVEL_HIGH>,
  276. <GIC_SPI 3 IRQ_TYPE_LEVEL_HIGH>,
  277. <GIC_SPI 4 IRQ_TYPE_LEVEL_HIGH>,
  278. <GIC_SPI 5 IRQ_TYPE_LEVEL_HIGH>;
  279. interrupt-affinity = <&cpu4>,
  280. <&cpu5>,
  281. <&cpu6>,
  282. <&cpu7>;
  283. };
  284. timer {
  285. compatible = "arm,armv8-timer";
  286. interrupt-parent = <&gic>;
  287. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(8) |
  288. IRQ_TYPE_LEVEL_LOW)>,
  289. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(8) |
  290. IRQ_TYPE_LEVEL_LOW)>,
  291. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(8) |
  292. IRQ_TYPE_LEVEL_LOW)>,
  293. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(8) |
  294. IRQ_TYPE_LEVEL_LOW)>;
  295. };
  296. soc {
  297. compatible = "simple-bus";
  298. #address-cells = <2>;
  299. #size-cells = <2>;
  300. ranges;
  301. crg_ctrl: crg_ctrl@fff35000 {
  302. compatible = "hisilicon,hi3660-crgctrl", "syscon";
  303. reg = <0x0 0xfff35000 0x0 0x1000>;
  304. #clock-cells = <1>;
  305. };
  306. crg_rst: crg_rst_controller {
  307. compatible = "hisilicon,hi3660-reset";
  308. #reset-cells = <2>;
  309. hisi,rst-syscon = <&crg_ctrl>;
  310. };
  311. pctrl: pctrl@e8a09000 {
  312. compatible = "hisilicon,hi3660-pctrl", "syscon";
  313. reg = <0x0 0xe8a09000 0x0 0x2000>;
  314. #clock-cells = <1>;
  315. };
  316. pmuctrl: crg_ctrl@fff34000 {
  317. compatible = "hisilicon,hi3660-pmuctrl", "syscon";
  318. reg = <0x0 0xfff34000 0x0 0x1000>;
  319. #clock-cells = <1>;
  320. };
  321. sctrl: sctrl@fff0a000 {
  322. compatible = "hisilicon,hi3660-sctrl", "syscon";
  323. reg = <0x0 0xfff0a000 0x0 0x1000>;
  324. #clock-cells = <1>;
  325. };
  326. iomcu: iomcu@ffd7e000 {
  327. compatible = "hisilicon,hi3660-iomcu", "syscon";
  328. reg = <0x0 0xffd7e000 0x0 0x1000>;
  329. #clock-cells = <1>;
  330. };
  331. iomcu_rst: reset {
  332. compatible = "hisilicon,hi3660-reset";
  333. hisi,rst-syscon = <&iomcu>;
  334. #reset-cells = <2>;
  335. };
  336. mailbox: mailbox@e896b000 {
  337. compatible = "hisilicon,hi3660-mbox";
  338. reg = <0x0 0xe896b000 0x0 0x1000>;
  339. interrupts = <GIC_SPI 192 IRQ_TYPE_LEVEL_HIGH>,
  340. <GIC_SPI 193 IRQ_TYPE_LEVEL_HIGH>;
  341. #mbox-cells = <3>;
  342. };
  343. stub_clock: stub_clock@e896b500 {
  344. compatible = "hisilicon,hi3660-stub-clk";
  345. reg = <0x0 0xe896b500 0x0 0x0100>;
  346. #clock-cells = <1>;
  347. mboxes = <&mailbox 13 3 0>;
  348. };
  349. dual_timer0: timer@fff14000 {
  350. compatible = "arm,sp804", "arm,primecell";
  351. reg = <0x0 0xfff14000 0x0 0x1000>;
  352. interrupts = <GIC_SPI 48 IRQ_TYPE_LEVEL_HIGH>,
  353. <GIC_SPI 49 IRQ_TYPE_LEVEL_HIGH>;
  354. clocks = <&crg_ctrl HI3660_OSC32K>,
  355. <&crg_ctrl HI3660_OSC32K>,
  356. <&crg_ctrl HI3660_OSC32K>;
  357. clock-names = "timer1", "timer2", "apb_pclk";
  358. };
  359. i2c0: i2c@ffd71000 {
  360. compatible = "snps,designware-i2c";
  361. reg = <0x0 0xffd71000 0x0 0x1000>;
  362. interrupts = <GIC_SPI 118 IRQ_TYPE_LEVEL_HIGH>;
  363. #address-cells = <1>;
  364. #size-cells = <0>;
  365. clock-frequency = <400000>;
  366. clocks = <&crg_ctrl HI3660_CLK_GATE_I2C0>;
  367. resets = <&iomcu_rst 0x20 3>;
  368. pinctrl-names = "default";
  369. pinctrl-0 = <&i2c0_pmx_func &i2c0_cfg_func>;
  370. status = "disabled";
  371. };
  372. i2c1: i2c@ffd72000 {
  373. compatible = "snps,designware-i2c";
  374. reg = <0x0 0xffd72000 0x0 0x1000>;
  375. interrupts = <GIC_SPI 119 IRQ_TYPE_LEVEL_HIGH>;
  376. #address-cells = <1>;
  377. #size-cells = <0>;
  378. clock-frequency = <400000>;
  379. clocks = <&crg_ctrl HI3660_CLK_GATE_I2C1>;
  380. resets = <&iomcu_rst 0x20 4>;
  381. pinctrl-names = "default";
  382. pinctrl-0 = <&i2c1_pmx_func &i2c1_cfg_func>;
  383. status = "disabled";
  384. };
  385. i2c3: i2c@fdf0c000 {
  386. compatible = "snps,designware-i2c";
  387. reg = <0x0 0xfdf0c000 0x0 0x1000>;
  388. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  389. #address-cells = <1>;
  390. #size-cells = <0>;
  391. clock-frequency = <400000>;
  392. clocks = <&crg_ctrl HI3660_CLK_GATE_I2C3>;
  393. resets = <&crg_rst 0x78 7>;
  394. pinctrl-names = "default";
  395. pinctrl-0 = <&i2c3_pmx_func &i2c3_cfg_func>;
  396. status = "disabled";
  397. };
  398. i2c7: i2c@fdf0b000 {
  399. compatible = "snps,designware-i2c";
  400. reg = <0x0 0xfdf0b000 0x0 0x1000>;
  401. interrupts = <GIC_SPI 314 IRQ_TYPE_LEVEL_HIGH>;
  402. #address-cells = <1>;
  403. #size-cells = <0>;
  404. clock-frequency = <400000>;
  405. clocks = <&crg_ctrl HI3660_CLK_GATE_I2C7>;
  406. resets = <&crg_rst 0x60 14>;
  407. pinctrl-names = "default";
  408. pinctrl-0 = <&i2c7_pmx_func &i2c7_cfg_func>;
  409. status = "disabled";
  410. };
  411. uart0: serial@fdf02000 {
  412. compatible = "arm,pl011", "arm,primecell";
  413. reg = <0x0 0xfdf02000 0x0 0x1000>;
  414. interrupts = <GIC_SPI 74 IRQ_TYPE_LEVEL_HIGH>;
  415. clocks = <&crg_ctrl HI3660_CLK_MUX_UART0>,
  416. <&crg_ctrl HI3660_PCLK>;
  417. clock-names = "uartclk", "apb_pclk";
  418. pinctrl-names = "default";
  419. pinctrl-0 = <&uart0_pmx_func &uart0_cfg_func>;
  420. status = "disabled";
  421. };
  422. uart1: serial@fdf00000 {
  423. compatible = "arm,pl011", "arm,primecell";
  424. reg = <0x0 0xfdf00000 0x0 0x1000>;
  425. interrupts = <GIC_SPI 75 IRQ_TYPE_LEVEL_HIGH>;
  426. dma-names = "rx", "tx";
  427. dmas = <&dma0 2 &dma0 3>;
  428. clocks = <&crg_ctrl HI3660_CLK_GATE_UART1>,
  429. <&crg_ctrl HI3660_CLK_GATE_UART1>;
  430. clock-names = "uartclk", "apb_pclk";
  431. pinctrl-names = "default";
  432. pinctrl-0 = <&uart1_pmx_func &uart1_cfg_func>;
  433. status = "disabled";
  434. };
  435. uart2: serial@fdf03000 {
  436. compatible = "arm,pl011", "arm,primecell";
  437. reg = <0x0 0xfdf03000 0x0 0x1000>;
  438. interrupts = <GIC_SPI 76 IRQ_TYPE_LEVEL_HIGH>;
  439. dma-names = "rx", "tx";
  440. dmas = <&dma0 4 &dma0 5>;
  441. clocks = <&crg_ctrl HI3660_CLK_GATE_UART2>,
  442. <&crg_ctrl HI3660_PCLK>;
  443. clock-names = "uartclk", "apb_pclk";
  444. pinctrl-names = "default";
  445. pinctrl-0 = <&uart2_pmx_func &uart2_cfg_func>;
  446. status = "disabled";
  447. };
  448. uart3: serial@ffd74000 {
  449. compatible = "arm,pl011", "arm,primecell";
  450. reg = <0x0 0xffd74000 0x0 0x1000>;
  451. interrupts = <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  452. clocks = <&crg_ctrl HI3660_FACTOR_UART3>,
  453. <&crg_ctrl HI3660_PCLK>;
  454. clock-names = "uartclk", "apb_pclk";
  455. pinctrl-names = "default";
  456. pinctrl-0 = <&uart3_pmx_func &uart3_cfg_func>;
  457. status = "disabled";
  458. };
  459. uart4: serial@fdf01000 {
  460. compatible = "arm,pl011", "arm,primecell";
  461. reg = <0x0 0xfdf01000 0x0 0x1000>;
  462. interrupts = <GIC_SPI 77 IRQ_TYPE_LEVEL_HIGH>;
  463. dma-names = "rx", "tx";
  464. dmas = <&dma0 6 &dma0 7>;
  465. clocks = <&crg_ctrl HI3660_CLK_GATE_UART4>,
  466. <&crg_ctrl HI3660_CLK_GATE_UART4>;
  467. clock-names = "uartclk", "apb_pclk";
  468. pinctrl-names = "default";
  469. pinctrl-0 = <&uart4_pmx_func &uart4_cfg_func>;
  470. status = "disabled";
  471. };
  472. uart5: serial@fdf05000 {
  473. compatible = "arm,pl011", "arm,primecell";
  474. reg = <0x0 0xfdf05000 0x0 0x1000>;
  475. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_HIGH>;
  476. dma-names = "rx", "tx";
  477. dmas = <&dma0 8 &dma0 9>;
  478. clocks = <&crg_ctrl HI3660_CLK_GATE_UART5>,
  479. <&crg_ctrl HI3660_CLK_GATE_UART5>;
  480. clock-names = "uartclk", "apb_pclk";
  481. pinctrl-names = "default";
  482. pinctrl-0 = <&uart5_pmx_func &uart5_cfg_func>;
  483. status = "disabled";
  484. };
  485. uart6: serial@fff32000 {
  486. compatible = "arm,pl011", "arm,primecell";
  487. reg = <0x0 0xfff32000 0x0 0x1000>;
  488. interrupts = <GIC_SPI 79 IRQ_TYPE_LEVEL_HIGH>;
  489. clocks = <&crg_ctrl HI3660_CLK_UART6>,
  490. <&crg_ctrl HI3660_PCLK>;
  491. clock-names = "uartclk", "apb_pclk";
  492. pinctrl-names = "default";
  493. pinctrl-0 = <&uart6_pmx_func &uart6_cfg_func>;
  494. status = "disabled";
  495. };
  496. dma0: dma@fdf30000 {
  497. compatible = "hisilicon,k3-dma-1.0";
  498. reg = <0x0 0xfdf30000 0x0 0x1000>;
  499. #dma-cells = <1>;
  500. dma-channels = <16>;
  501. dma-requests = <32>;
  502. dma-channel-mask = <0xfffe>;
  503. interrupts = <GIC_SPI 143 IRQ_TYPE_LEVEL_HIGH>;
  504. clocks = <&crg_ctrl HI3660_CLK_GATE_DMAC>;
  505. dma-no-cci;
  506. dma-type = "hi3660_dma";
  507. };
  508. asp_dmac: dma-controller@e804b000 {
  509. compatible = "hisilicon,hisi-pcm-asp-dma-1.0";
  510. reg = <0x0 0xe804b000 0x0 0x1000>;
  511. #dma-cells = <1>;
  512. dma-channels = <16>;
  513. dma-requests = <32>;
  514. interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
  515. interrupt-names = "asp_dma_irq";
  516. };
  517. rtc0: rtc@fff04000 {
  518. compatible = "arm,pl031", "arm,primecell";
  519. reg = <0x0 0Xfff04000 0x0 0x1000>;
  520. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_HIGH>;
  521. clocks = <&crg_ctrl HI3660_PCLK>;
  522. clock-names = "apb_pclk";
  523. };
  524. gpio0: gpio@e8a0b000 {
  525. compatible = "arm,pl061", "arm,primecell";
  526. reg = <0 0xe8a0b000 0 0x1000>;
  527. interrupts = <GIC_SPI 84 IRQ_TYPE_LEVEL_HIGH>;
  528. gpio-controller;
  529. #gpio-cells = <2>;
  530. gpio-ranges = <&pmx0 1 0 7>;
  531. interrupt-controller;
  532. #interrupt-cells = <2>;
  533. clocks = <&crg_ctrl HI3660_PCLK_GPIO0>;
  534. clock-names = "apb_pclk";
  535. };
  536. gpio1: gpio@e8a0c000 {
  537. compatible = "arm,pl061", "arm,primecell";
  538. reg = <0 0xe8a0c000 0 0x1000>;
  539. interrupts = <GIC_SPI 85 IRQ_TYPE_LEVEL_HIGH>;
  540. gpio-controller;
  541. #gpio-cells = <2>;
  542. gpio-ranges = <&pmx0 1 7 7>;
  543. interrupt-controller;
  544. #interrupt-cells = <2>;
  545. clocks = <&crg_ctrl HI3660_PCLK_GPIO1>;
  546. clock-names = "apb_pclk";
  547. };
  548. gpio2: gpio@e8a0d000 {
  549. compatible = "arm,pl061", "arm,primecell";
  550. reg = <0 0xe8a0d000 0 0x1000>;
  551. interrupts = <GIC_SPI 86 IRQ_TYPE_LEVEL_HIGH>;
  552. gpio-controller;
  553. #gpio-cells = <2>;
  554. gpio-ranges = <&pmx0 0 14 8>;
  555. interrupt-controller;
  556. #interrupt-cells = <2>;
  557. clocks = <&crg_ctrl HI3660_PCLK_GPIO2>;
  558. clock-names = "apb_pclk";
  559. };
  560. gpio3: gpio@e8a0e000 {
  561. compatible = "arm,pl061", "arm,primecell";
  562. reg = <0 0xe8a0e000 0 0x1000>;
  563. interrupts = <GIC_SPI 87 IRQ_TYPE_LEVEL_HIGH>;
  564. gpio-controller;
  565. #gpio-cells = <2>;
  566. gpio-ranges = <&pmx0 0 22 8>;
  567. interrupt-controller;
  568. #interrupt-cells = <2>;
  569. clocks = <&crg_ctrl HI3660_PCLK_GPIO3>;
  570. clock-names = "apb_pclk";
  571. };
  572. gpio4: gpio@e8a0f000 {
  573. compatible = "arm,pl061", "arm,primecell";
  574. reg = <0 0xe8a0f000 0 0x1000>;
  575. interrupts = <GIC_SPI 88 IRQ_TYPE_LEVEL_HIGH>;
  576. gpio-controller;
  577. #gpio-cells = <2>;
  578. gpio-ranges = <&pmx0 0 30 8>;
  579. interrupt-controller;
  580. #interrupt-cells = <2>;
  581. clocks = <&crg_ctrl HI3660_PCLK_GPIO4>;
  582. clock-names = "apb_pclk";
  583. };
  584. gpio5: gpio@e8a10000 {
  585. compatible = "arm,pl061", "arm,primecell";
  586. reg = <0 0xe8a10000 0 0x1000>;
  587. interrupts = <GIC_SPI 89 IRQ_TYPE_LEVEL_HIGH>;
  588. gpio-controller;
  589. #gpio-cells = <2>;
  590. gpio-ranges = <&pmx0 0 38 8>;
  591. interrupt-controller;
  592. #interrupt-cells = <2>;
  593. clocks = <&crg_ctrl HI3660_PCLK_GPIO5>;
  594. clock-names = "apb_pclk";
  595. };
  596. gpio6: gpio@e8a11000 {
  597. compatible = "arm,pl061", "arm,primecell";
  598. reg = <0 0xe8a11000 0 0x1000>;
  599. interrupts = <GIC_SPI 90 IRQ_TYPE_LEVEL_HIGH>;
  600. gpio-controller;
  601. #gpio-cells = <2>;
  602. gpio-ranges = <&pmx0 0 46 8>;
  603. interrupt-controller;
  604. #interrupt-cells = <2>;
  605. clocks = <&crg_ctrl HI3660_PCLK_GPIO6>;
  606. clock-names = "apb_pclk";
  607. };
  608. gpio7: gpio@e8a12000 {
  609. compatible = "arm,pl061", "arm,primecell";
  610. reg = <0 0xe8a12000 0 0x1000>;
  611. interrupts = <GIC_SPI 91 IRQ_TYPE_LEVEL_HIGH>;
  612. gpio-controller;
  613. #gpio-cells = <2>;
  614. gpio-ranges = <&pmx0 0 54 8>;
  615. interrupt-controller;
  616. #interrupt-cells = <2>;
  617. clocks = <&crg_ctrl HI3660_PCLK_GPIO7>;
  618. clock-names = "apb_pclk";
  619. };
  620. gpio8: gpio@e8a13000 {
  621. compatible = "arm,pl061", "arm,primecell";
  622. reg = <0 0xe8a13000 0 0x1000>;
  623. interrupts = <GIC_SPI 92 IRQ_TYPE_LEVEL_HIGH>;
  624. gpio-controller;
  625. #gpio-cells = <2>;
  626. gpio-ranges = <&pmx0 0 62 8>;
  627. interrupt-controller;
  628. #interrupt-cells = <2>;
  629. clocks = <&crg_ctrl HI3660_PCLK_GPIO8>;
  630. clock-names = "apb_pclk";
  631. };
  632. gpio9: gpio@e8a14000 {
  633. compatible = "arm,pl061", "arm,primecell";
  634. reg = <0 0xe8a14000 0 0x1000>;
  635. interrupts = <GIC_SPI 93 IRQ_TYPE_LEVEL_HIGH>;
  636. gpio-controller;
  637. #gpio-cells = <2>;
  638. gpio-ranges = <&pmx0 0 70 8>;
  639. interrupt-controller;
  640. #interrupt-cells = <2>;
  641. clocks = <&crg_ctrl HI3660_PCLK_GPIO9>;
  642. clock-names = "apb_pclk";
  643. };
  644. gpio10: gpio@e8a15000 {
  645. compatible = "arm,pl061", "arm,primecell";
  646. reg = <0 0xe8a15000 0 0x1000>;
  647. interrupts = <GIC_SPI 94 IRQ_TYPE_LEVEL_HIGH>;
  648. gpio-controller;
  649. #gpio-cells = <2>;
  650. gpio-ranges = <&pmx0 0 78 8>;
  651. interrupt-controller;
  652. #interrupt-cells = <2>;
  653. clocks = <&crg_ctrl HI3660_PCLK_GPIO10>;
  654. clock-names = "apb_pclk";
  655. };
  656. gpio11: gpio@e8a16000 {
  657. compatible = "arm,pl061", "arm,primecell";
  658. reg = <0 0xe8a16000 0 0x1000>;
  659. interrupts = <GIC_SPI 95 IRQ_TYPE_LEVEL_HIGH>;
  660. gpio-controller;
  661. #gpio-cells = <2>;
  662. gpio-ranges = <&pmx0 0 86 8>;
  663. interrupt-controller;
  664. #interrupt-cells = <2>;
  665. clocks = <&crg_ctrl HI3660_PCLK_GPIO11>;
  666. clock-names = "apb_pclk";
  667. };
  668. gpio12: gpio@e8a17000 {
  669. compatible = "arm,pl061", "arm,primecell";
  670. reg = <0 0xe8a17000 0 0x1000>;
  671. interrupts = <GIC_SPI 96 IRQ_TYPE_LEVEL_HIGH>;
  672. gpio-controller;
  673. #gpio-cells = <2>;
  674. gpio-ranges = <&pmx0 0 94 3 &pmx0 7 101 1>;
  675. interrupt-controller;
  676. #interrupt-cells = <2>;
  677. clocks = <&crg_ctrl HI3660_PCLK_GPIO12>;
  678. clock-names = "apb_pclk";
  679. };
  680. gpio13: gpio@e8a18000 {
  681. compatible = "arm,pl061", "arm,primecell";
  682. reg = <0 0xe8a18000 0 0x1000>;
  683. interrupts = <GIC_SPI 97 IRQ_TYPE_LEVEL_HIGH>;
  684. gpio-controller;
  685. #gpio-cells = <2>;
  686. gpio-ranges = <&pmx0 0 102 8>;
  687. interrupt-controller;
  688. #interrupt-cells = <2>;
  689. clocks = <&crg_ctrl HI3660_PCLK_GPIO13>;
  690. clock-names = "apb_pclk";
  691. };
  692. gpio14: gpio@e8a19000 {
  693. compatible = "arm,pl061", "arm,primecell";
  694. reg = <0 0xe8a19000 0 0x1000>;
  695. interrupts = <GIC_SPI 98 IRQ_TYPE_LEVEL_HIGH>;
  696. gpio-controller;
  697. #gpio-cells = <2>;
  698. gpio-ranges = <&pmx0 0 110 8>;
  699. interrupt-controller;
  700. #interrupt-cells = <2>;
  701. clocks = <&crg_ctrl HI3660_PCLK_GPIO14>;
  702. clock-names = "apb_pclk";
  703. };
  704. gpio15: gpio@e8a1a000 {
  705. compatible = "arm,pl061", "arm,primecell";
  706. reg = <0 0xe8a1a000 0 0x1000>;
  707. interrupts = <GIC_SPI 99 IRQ_TYPE_LEVEL_HIGH>;
  708. gpio-controller;
  709. #gpio-cells = <2>;
  710. gpio-ranges = <&pmx0 0 118 6>;
  711. interrupt-controller;
  712. #interrupt-cells = <2>;
  713. clocks = <&crg_ctrl HI3660_PCLK_GPIO15>;
  714. clock-names = "apb_pclk";
  715. };
  716. gpio16: gpio@e8a1b000 {
  717. compatible = "arm,pl061", "arm,primecell";
  718. reg = <0 0xe8a1b000 0 0x1000>;
  719. interrupts = <GIC_SPI 100 IRQ_TYPE_LEVEL_HIGH>;
  720. gpio-controller;
  721. #gpio-cells = <2>;
  722. interrupt-controller;
  723. #interrupt-cells = <2>;
  724. clocks = <&crg_ctrl HI3660_PCLK_GPIO16>;
  725. clock-names = "apb_pclk";
  726. };
  727. gpio17: gpio@e8a1c000 {
  728. compatible = "arm,pl061", "arm,primecell";
  729. reg = <0 0xe8a1c000 0 0x1000>;
  730. interrupts = <GIC_SPI 101 IRQ_TYPE_LEVEL_HIGH>;
  731. gpio-controller;
  732. #gpio-cells = <2>;
  733. interrupt-controller;
  734. #interrupt-cells = <2>;
  735. clocks = <&crg_ctrl HI3660_PCLK_GPIO17>;
  736. clock-names = "apb_pclk";
  737. };
  738. gpio18: gpio@ff3b4000 {
  739. compatible = "arm,pl061", "arm,primecell";
  740. reg = <0 0xff3b4000 0 0x1000>;
  741. interrupts = <GIC_SPI 102 IRQ_TYPE_LEVEL_HIGH>;
  742. gpio-controller;
  743. #gpio-cells = <2>;
  744. gpio-ranges = <&pmx2 0 0 8>;
  745. interrupt-controller;
  746. #interrupt-cells = <2>;
  747. clocks = <&crg_ctrl HI3660_PCLK_GPIO18>;
  748. clock-names = "apb_pclk";
  749. };
  750. gpio19: gpio@ff3b5000 {
  751. compatible = "arm,pl061", "arm,primecell";
  752. reg = <0 0xff3b5000 0 0x1000>;
  753. interrupts = <GIC_SPI 103 IRQ_TYPE_LEVEL_HIGH>;
  754. gpio-controller;
  755. #gpio-cells = <2>;
  756. gpio-ranges = <&pmx2 0 8 4>;
  757. interrupt-controller;
  758. #interrupt-cells = <2>;
  759. clocks = <&crg_ctrl HI3660_PCLK_GPIO19>;
  760. clock-names = "apb_pclk";
  761. };
  762. gpio20: gpio@e8a1f000 {
  763. compatible = "arm,pl061", "arm,primecell";
  764. reg = <0 0xe8a1f000 0 0x1000>;
  765. interrupts = <GIC_SPI 104 IRQ_TYPE_LEVEL_HIGH>;
  766. gpio-controller;
  767. #gpio-cells = <2>;
  768. gpio-ranges = <&pmx1 0 0 6>;
  769. interrupt-controller;
  770. #interrupt-cells = <2>;
  771. clocks = <&crg_ctrl HI3660_PCLK_GPIO20>;
  772. clock-names = "apb_pclk";
  773. };
  774. gpio21: gpio@e8a20000 {
  775. compatible = "arm,pl061", "arm,primecell";
  776. reg = <0 0xe8a20000 0 0x1000>;
  777. interrupts = <GIC_SPI 105 IRQ_TYPE_LEVEL_HIGH>;
  778. gpio-controller;
  779. #gpio-cells = <2>;
  780. interrupt-controller;
  781. #interrupt-cells = <2>;
  782. gpio-ranges = <&pmx3 0 0 6>;
  783. clocks = <&crg_ctrl HI3660_PCLK_GPIO21>;
  784. clock-names = "apb_pclk";
  785. };
  786. gpio22: gpio@fff0b000 {
  787. compatible = "arm,pl061", "arm,primecell";
  788. reg = <0 0xfff0b000 0 0x1000>;
  789. interrupts = <GIC_SPI 106 IRQ_TYPE_LEVEL_HIGH>;
  790. gpio-controller;
  791. #gpio-cells = <2>;
  792. /* GPIO176 */
  793. gpio-ranges = <&pmx4 2 0 6>;
  794. interrupt-controller;
  795. #interrupt-cells = <2>;
  796. clocks = <&sctrl HI3660_PCLK_AO_GPIO0>;
  797. clock-names = "apb_pclk";
  798. };
  799. gpio23: gpio@fff0c000 {
  800. compatible = "arm,pl061", "arm,primecell";
  801. reg = <0 0xfff0c000 0 0x1000>;
  802. interrupts = <GIC_SPI 107 IRQ_TYPE_LEVEL_HIGH>;
  803. gpio-controller;
  804. #gpio-cells = <2>;
  805. /* GPIO184 */
  806. gpio-ranges = <&pmx4 0 6 7>;
  807. interrupt-controller;
  808. #interrupt-cells = <2>;
  809. clocks = <&sctrl HI3660_PCLK_AO_GPIO1>;
  810. clock-names = "apb_pclk";
  811. };
  812. gpio24: gpio@fff0d000 {
  813. compatible = "arm,pl061", "arm,primecell";
  814. reg = <0 0xfff0d000 0 0x1000>;
  815. interrupts = <GIC_SPI 108 IRQ_TYPE_LEVEL_HIGH>;
  816. gpio-controller;
  817. #gpio-cells = <2>;
  818. /* GPIO192 */
  819. gpio-ranges = <&pmx4 0 13 8>;
  820. interrupt-controller;
  821. #interrupt-cells = <2>;
  822. clocks = <&sctrl HI3660_PCLK_AO_GPIO2>;
  823. clock-names = "apb_pclk";
  824. };
  825. gpio25: gpio@fff0e000 {
  826. compatible = "arm,pl061", "arm,primecell";
  827. reg = <0 0xfff0e000 0 0x1000>;
  828. interrupts = <GIC_SPI 109 IRQ_TYPE_LEVEL_HIGH>;
  829. gpio-controller;
  830. #gpio-cells = <2>;
  831. /* GPIO200 */
  832. gpio-ranges = <&pmx4 0 21 4 &pmx4 5 25 3>;
  833. interrupt-controller;
  834. #interrupt-cells = <2>;
  835. clocks = <&sctrl HI3660_PCLK_AO_GPIO3>;
  836. clock-names = "apb_pclk";
  837. };
  838. gpio26: gpio@fff0f000 {
  839. compatible = "arm,pl061", "arm,primecell";
  840. reg = <0 0xfff0f000 0 0x1000>;
  841. interrupts = <GIC_SPI 110 IRQ_TYPE_LEVEL_HIGH>;
  842. gpio-controller;
  843. #gpio-cells = <2>;
  844. /* GPIO208 */
  845. gpio-ranges = <&pmx4 0 28 8>;
  846. interrupt-controller;
  847. #interrupt-cells = <2>;
  848. clocks = <&sctrl HI3660_PCLK_AO_GPIO4>;
  849. clock-names = "apb_pclk";
  850. };
  851. gpio27: gpio@fff10000 {
  852. compatible = "arm,pl061", "arm,primecell";
  853. reg = <0 0xfff10000 0 0x1000>;
  854. interrupts = <GIC_SPI 111 IRQ_TYPE_LEVEL_HIGH>;
  855. gpio-controller;
  856. #gpio-cells = <2>;
  857. /* GPIO216 */
  858. gpio-ranges = <&pmx4 0 36 6>;
  859. interrupt-controller;
  860. #interrupt-cells = <2>;
  861. clocks = <&sctrl HI3660_PCLK_AO_GPIO5>;
  862. clock-names = "apb_pclk";
  863. };
  864. gpio28: gpio@fff1d000 {
  865. compatible = "arm,pl061", "arm,primecell";
  866. reg = <0 0xfff1d000 0 0x1000>;
  867. interrupts = <GIC_SPI 141 IRQ_TYPE_LEVEL_HIGH>;
  868. gpio-controller;
  869. #gpio-cells = <2>;
  870. interrupt-controller;
  871. #interrupt-cells = <2>;
  872. clocks = <&sctrl HI3660_PCLK_AO_GPIO6>;
  873. clock-names = "apb_pclk";
  874. };
  875. spi2: spi@ffd68000 {
  876. compatible = "arm,pl022", "arm,primecell";
  877. reg = <0x0 0xffd68000 0x0 0x1000>;
  878. #address-cells = <1>;
  879. #size-cells = <0>;
  880. interrupts = <GIC_SPI 116 IRQ_TYPE_LEVEL_HIGH>;
  881. clocks = <&crg_ctrl HI3660_CLK_GATE_SPI2>, <&crg_ctrl HI3660_CLK_GATE_SPI2>;
  882. clock-names = "sspclk", "apb_pclk";
  883. pinctrl-names = "default";
  884. pinctrl-0 = <&spi2_pmx_func &spi2_cfg_func>;
  885. num-cs = <1>;
  886. cs-gpios = <&gpio27 2 0>;
  887. status = "disabled";
  888. };
  889. spi3: spi@ff3b3000 {
  890. compatible = "arm,pl022", "arm,primecell";
  891. reg = <0x0 0xff3b3000 0x0 0x1000>;
  892. #address-cells = <1>;
  893. #size-cells = <0>;
  894. interrupts = <GIC_SPI 312 IRQ_TYPE_LEVEL_HIGH>;
  895. clocks = <&crg_ctrl HI3660_CLK_GATE_SPI3>, <&crg_ctrl HI3660_CLK_GATE_SPI3>;
  896. clock-names = "sspclk", "apb_pclk";
  897. pinctrl-names = "default";
  898. pinctrl-0 = <&spi3_pmx_func &spi3_cfg_func>;
  899. num-cs = <1>;
  900. cs-gpios = <&gpio18 5 0>;
  901. status = "disabled";
  902. };
  903. pcie@f4000000 {
  904. compatible = "hisilicon,kirin960-pcie";
  905. reg = <0x0 0xf4000000 0x0 0x1000>,
  906. <0x0 0xff3fe000 0x0 0x1000>,
  907. <0x0 0xf3f20000 0x0 0x40000>,
  908. <0x0 0xf5000000 0x0 0x2000>;
  909. reg-names = "dbi", "apb", "phy", "config";
  910. bus-range = <0x0 0xff>;
  911. #address-cells = <3>;
  912. #size-cells = <2>;
  913. device_type = "pci";
  914. ranges = <0x02000000 0x0 0x00000000
  915. 0x0 0xf6000000
  916. 0x0 0x02000000>;
  917. num-lanes = <1>;
  918. #interrupt-cells = <1>;
  919. interrupts = <0 283 4>;
  920. interrupt-names = "msi";
  921. interrupt-map-mask = <0xf800 0 0 7>;
  922. interrupt-map = <0x0 0 0 1
  923. &gic GIC_SPI 282 IRQ_TYPE_LEVEL_HIGH>,
  924. <0x0 0 0 2
  925. &gic GIC_SPI 283 IRQ_TYPE_LEVEL_HIGH>,
  926. <0x0 0 0 3
  927. &gic GIC_SPI 284 IRQ_TYPE_LEVEL_HIGH>,
  928. <0x0 0 0 4
  929. &gic GIC_SPI 285 IRQ_TYPE_LEVEL_HIGH>;
  930. clocks = <&crg_ctrl HI3660_PCIEPHY_REF>,
  931. <&crg_ctrl HI3660_CLK_GATE_PCIEAUX>,
  932. <&crg_ctrl HI3660_PCLK_GATE_PCIE_PHY>,
  933. <&crg_ctrl HI3660_PCLK_GATE_PCIE_SYS>,
  934. <&crg_ctrl HI3660_ACLK_GATE_PCIE>;
  935. clock-names = "pcie_phy_ref", "pcie_aux",
  936. "pcie_apb_phy", "pcie_apb_sys",
  937. "pcie_aclk";
  938. reset-gpios = <&gpio11 1 0 >;
  939. };
  940. /* UFS */
  941. ufs: ufs@ff3b0000 {
  942. compatible = "hisilicon,hi3660-ufs", "jedec,ufs-1.1";
  943. /* 0: HCI standard */
  944. /* 1: UFS SYS CTRL */
  945. reg = <0x0 0xff3b0000 0x0 0x1000>,
  946. <0x0 0xff3b1000 0x0 0x1000>;
  947. interrupt-parent = <&gic>;
  948. interrupts = <GIC_SPI 278 IRQ_TYPE_LEVEL_HIGH>;
  949. clocks = <&crg_ctrl HI3660_CLK_GATE_UFSIO_REF>,
  950. <&crg_ctrl HI3660_CLK_GATE_UFSPHY_CFG>;
  951. clock-names = "ref_clk", "phy_clk";
  952. freq-table-hz = <0 0>,
  953. <0 0>;
  954. /* offset: 0x84; bit: 12 */
  955. resets = <&crg_rst 0x84 12>;
  956. reset-names = "rst";
  957. };
  958. /* SD */
  959. dwmmc1: dwmmc1@ff37f000 {
  960. compatible = "hisilicon,hi3660-dw-mshc";
  961. reg = <0x0 0xff37f000 0x0 0x1000>;
  962. #address-cells = <1>;
  963. #size-cells = <0>;
  964. interrupts = <GIC_SPI 139 IRQ_TYPE_LEVEL_HIGH>;
  965. clocks = <&crg_ctrl HI3660_CLK_GATE_SD>,
  966. <&crg_ctrl HI3660_HCLK_GATE_SD>;
  967. clock-names = "ciu", "biu";
  968. clock-frequency = <3200000>;
  969. resets = <&crg_rst 0x94 18>;
  970. reset-names = "reset";
  971. hisilicon,peripheral-syscon = <&sctrl>;
  972. card-detect-delay = <200>;
  973. status = "disabled";
  974. };
  975. /* SDIO */
  976. dwmmc2: dwmmc2@ff3ff000 {
  977. compatible = "hisilicon,hi3660-dw-mshc";
  978. reg = <0x0 0xff3ff000 0x0 0x1000>;
  979. #address-cells = <0x1>;
  980. #size-cells = <0x0>;
  981. interrupts = <GIC_SPI 140 IRQ_TYPE_LEVEL_HIGH>;
  982. clocks = <&crg_ctrl HI3660_CLK_GATE_SDIO0>,
  983. <&crg_ctrl HI3660_HCLK_GATE_SDIO0>;
  984. clock-names = "ciu", "biu";
  985. resets = <&crg_rst 0x94 20>;
  986. reset-names = "reset";
  987. card-detect-delay = <200>;
  988. status = "disabled";
  989. };
  990. watchdog0: watchdog@e8a06000 {
  991. compatible = "arm,sp805", "arm,primecell";
  992. reg = <0x0 0xe8a06000 0x0 0x1000>;
  993. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_HIGH>;
  994. clocks = <&crg_ctrl HI3660_OSC32K>,
  995. <&crg_ctrl HI3660_OSC32K>;
  996. clock-names = "wdog_clk", "apb_pclk";
  997. };
  998. watchdog1: watchdog@e8a07000 {
  999. compatible = "arm,sp805", "arm,primecell";
  1000. reg = <0x0 0xe8a07000 0x0 0x1000>;
  1001. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_HIGH>;
  1002. clocks = <&crg_ctrl HI3660_OSC32K>,
  1003. <&crg_ctrl HI3660_OSC32K>;
  1004. clock-names = "wdog_clk", "apb_pclk";
  1005. };
  1006. tsensor: tsensor@fff30000 {
  1007. compatible = "hisilicon,hi3660-tsensor";
  1008. reg = <0x0 0xfff30000 0x0 0x1000>;
  1009. interrupts = <GIC_SPI 145 IRQ_TYPE_LEVEL_HIGH>;
  1010. #thermal-sensor-cells = <1>;
  1011. };
  1012. thermal-zones {
  1013. cls0: cls0-thermal {
  1014. polling-delay = <1000>;
  1015. polling-delay-passive = <100>;
  1016. sustainable-power = <4500>;
  1017. /* sensor ID */
  1018. thermal-sensors = <&tsensor 1>;
  1019. trips {
  1020. threshold: trip-point0 {
  1021. temperature = <65000>;
  1022. hysteresis = <1000>;
  1023. type = "passive";
  1024. };
  1025. target: trip-point1 {
  1026. temperature = <75000>;
  1027. hysteresis = <1000>;
  1028. type = "passive";
  1029. };
  1030. };
  1031. cooling-maps {
  1032. map0 {
  1033. trip = <&target>;
  1034. contribution = <1024>;
  1035. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1036. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1037. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1038. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1039. };
  1040. map1 {
  1041. trip = <&target>;
  1042. contribution = <512>;
  1043. cooling-device = <&cpu4 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1044. <&cpu5 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1045. <&cpu6 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  1046. <&cpu7 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  1047. };
  1048. };
  1049. };
  1050. };
  1051. usb3_otg_bc: usb3_otg_bc@ff200000 {
  1052. compatible = "syscon", "simple-mfd";
  1053. reg = <0x0 0xff200000 0x0 0x1000>;
  1054. usb_phy: usb-phy {
  1055. compatible = "hisilicon,hi3660-usb-phy";
  1056. #phy-cells = <0>;
  1057. hisilicon,pericrg-syscon = <&crg_ctrl>;
  1058. hisilicon,pctrl-syscon = <&pctrl>;
  1059. hisilicon,eye-diagram-param = <0x22466e4>;
  1060. };
  1061. };
  1062. dwc3: usb@ff100000 {
  1063. compatible = "snps,dwc3";
  1064. reg = <0x0 0xff100000 0x0 0x100000>;
  1065. clocks = <&crg_ctrl HI3660_CLK_ABB_USB>,
  1066. <&crg_ctrl HI3660_ACLK_GATE_USB3OTG>;
  1067. clock-names = "ref", "bus_early";
  1068. assigned-clocks = <&crg_ctrl HI3660_ACLK_GATE_USB3OTG>;
  1069. assigned-clock-rates = <229000000>;
  1070. resets = <&crg_rst 0x90 8>,
  1071. <&crg_rst 0x90 7>,
  1072. <&crg_rst 0x90 6>,
  1073. <&crg_rst 0x90 5>;
  1074. interrupts = <0 159 4>, <0 161 4>;
  1075. phys = <&usb_phy>;
  1076. phy-names = "usb3-phy";
  1077. };
  1078. };
  1079. };
  1080. #include "hi3660-coresight.dtsi"