hi3660.dtsi 29 KB

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