meson8b.dtsi 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778
  1. // SPDX-License-Identifier: GPL-2.0 OR MIT
  2. /*
  3. * Copyright 2015 Endless Mobile, Inc.
  4. * Author: Carlo Caione <[email protected]>
  5. */
  6. #include <dt-bindings/clock/meson8-ddr-clkc.h>
  7. #include <dt-bindings/clock/meson8b-clkc.h>
  8. #include <dt-bindings/gpio/meson8b-gpio.h>
  9. #include <dt-bindings/power/meson8-power.h>
  10. #include <dt-bindings/reset/amlogic,meson8b-reset.h>
  11. #include <dt-bindings/reset/amlogic,meson8b-clkc-reset.h>
  12. #include <dt-bindings/thermal/thermal.h>
  13. #include "meson.dtsi"
  14. / {
  15. cpus {
  16. #address-cells = <1>;
  17. #size-cells = <0>;
  18. cpu0: cpu@200 {
  19. device_type = "cpu";
  20. compatible = "arm,cortex-a5";
  21. next-level-cache = <&L2>;
  22. reg = <0x200>;
  23. enable-method = "amlogic,meson8b-smp";
  24. resets = <&clkc CLKC_RESET_CPU0_SOFT_RESET>;
  25. operating-points-v2 = <&cpu_opp_table>;
  26. clocks = <&clkc CLKID_CPUCLK>;
  27. #cooling-cells = <2>; /* min followed by max */
  28. };
  29. cpu1: cpu@201 {
  30. device_type = "cpu";
  31. compatible = "arm,cortex-a5";
  32. next-level-cache = <&L2>;
  33. reg = <0x201>;
  34. enable-method = "amlogic,meson8b-smp";
  35. resets = <&clkc CLKC_RESET_CPU1_SOFT_RESET>;
  36. operating-points-v2 = <&cpu_opp_table>;
  37. clocks = <&clkc CLKID_CPUCLK>;
  38. #cooling-cells = <2>; /* min followed by max */
  39. };
  40. cpu2: cpu@202 {
  41. device_type = "cpu";
  42. compatible = "arm,cortex-a5";
  43. next-level-cache = <&L2>;
  44. reg = <0x202>;
  45. enable-method = "amlogic,meson8b-smp";
  46. resets = <&clkc CLKC_RESET_CPU2_SOFT_RESET>;
  47. operating-points-v2 = <&cpu_opp_table>;
  48. clocks = <&clkc CLKID_CPUCLK>;
  49. #cooling-cells = <2>; /* min followed by max */
  50. };
  51. cpu3: cpu@203 {
  52. device_type = "cpu";
  53. compatible = "arm,cortex-a5";
  54. next-level-cache = <&L2>;
  55. reg = <0x203>;
  56. enable-method = "amlogic,meson8b-smp";
  57. resets = <&clkc CLKC_RESET_CPU3_SOFT_RESET>;
  58. operating-points-v2 = <&cpu_opp_table>;
  59. clocks = <&clkc CLKID_CPUCLK>;
  60. #cooling-cells = <2>; /* min followed by max */
  61. };
  62. };
  63. cpu_opp_table: opp-table {
  64. compatible = "operating-points-v2";
  65. opp-shared;
  66. opp-96000000 {
  67. opp-hz = /bits/ 64 <96000000>;
  68. opp-microvolt = <860000>;
  69. };
  70. opp-192000000 {
  71. opp-hz = /bits/ 64 <192000000>;
  72. opp-microvolt = <860000>;
  73. };
  74. opp-312000000 {
  75. opp-hz = /bits/ 64 <312000000>;
  76. opp-microvolt = <860000>;
  77. };
  78. opp-408000000 {
  79. opp-hz = /bits/ 64 <408000000>;
  80. opp-microvolt = <860000>;
  81. };
  82. opp-504000000 {
  83. opp-hz = /bits/ 64 <504000000>;
  84. opp-microvolt = <860000>;
  85. };
  86. opp-600000000 {
  87. opp-hz = /bits/ 64 <600000000>;
  88. opp-microvolt = <860000>;
  89. };
  90. opp-720000000 {
  91. opp-hz = /bits/ 64 <720000000>;
  92. opp-microvolt = <860000>;
  93. };
  94. opp-816000000 {
  95. opp-hz = /bits/ 64 <816000000>;
  96. opp-microvolt = <900000>;
  97. };
  98. opp-1008000000 {
  99. opp-hz = /bits/ 64 <1008000000>;
  100. opp-microvolt = <1140000>;
  101. };
  102. opp-1200000000 {
  103. opp-hz = /bits/ 64 <1200000000>;
  104. opp-microvolt = <1140000>;
  105. };
  106. opp-1320000000 {
  107. opp-hz = /bits/ 64 <1320000000>;
  108. opp-microvolt = <1140000>;
  109. };
  110. opp-1488000000 {
  111. opp-hz = /bits/ 64 <1488000000>;
  112. opp-microvolt = <1140000>;
  113. };
  114. opp-1536000000 {
  115. opp-hz = /bits/ 64 <1536000000>;
  116. opp-microvolt = <1140000>;
  117. };
  118. };
  119. gpu_opp_table: gpu-opp-table {
  120. compatible = "operating-points-v2";
  121. opp-255000000 {
  122. opp-hz = /bits/ 64 <255000000>;
  123. opp-microvolt = <1100000>;
  124. };
  125. opp-364285714 {
  126. opp-hz = /bits/ 64 <364285714>;
  127. opp-microvolt = <1100000>;
  128. };
  129. opp-425000000 {
  130. opp-hz = /bits/ 64 <425000000>;
  131. opp-microvolt = <1100000>;
  132. };
  133. opp-510000000 {
  134. opp-hz = /bits/ 64 <510000000>;
  135. opp-microvolt = <1100000>;
  136. };
  137. opp-637500000 {
  138. opp-hz = /bits/ 64 <637500000>;
  139. opp-microvolt = <1100000>;
  140. turbo-mode;
  141. };
  142. };
  143. pmu {
  144. compatible = "arm,cortex-a5-pmu";
  145. interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
  146. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
  147. <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
  148. <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  149. interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
  150. };
  151. reserved-memory {
  152. #address-cells = <1>;
  153. #size-cells = <1>;
  154. ranges;
  155. /* 2 MiB reserved for Hardware ROM Firmware? */
  156. hwrom@0 {
  157. reg = <0x0 0x200000>;
  158. no-map;
  159. };
  160. };
  161. thermal-zones {
  162. soc {
  163. polling-delay-passive = <250>; /* milliseconds */
  164. polling-delay = <1000>; /* milliseconds */
  165. thermal-sensors = <&thermal_sensor>;
  166. cooling-maps {
  167. map0 {
  168. trip = <&soc_passive>;
  169. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  170. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  171. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  172. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  173. <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  174. };
  175. map1 {
  176. trip = <&soc_hot>;
  177. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  178. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  179. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  180. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  181. <&mali THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  182. };
  183. };
  184. trips {
  185. soc_passive: soc-passive {
  186. temperature = <80000>; /* millicelsius */
  187. hysteresis = <2000>; /* millicelsius */
  188. type = "passive";
  189. };
  190. soc_hot: soc-hot {
  191. temperature = <90000>; /* millicelsius */
  192. hysteresis = <2000>; /* millicelsius */
  193. type = "hot";
  194. };
  195. soc_critical: soc-critical {
  196. temperature = <110000>; /* millicelsius */
  197. hysteresis = <2000>; /* millicelsius */
  198. type = "critical";
  199. };
  200. };
  201. };
  202. };
  203. mmcbus: bus@c8000000 {
  204. compatible = "simple-bus";
  205. reg = <0xc8000000 0x8000>;
  206. #address-cells = <1>;
  207. #size-cells = <1>;
  208. ranges = <0x0 0xc8000000 0x8000>;
  209. ddr_clkc: clock-controller@400 {
  210. compatible = "amlogic,meson8b-ddr-clkc";
  211. reg = <0x400 0x20>;
  212. clocks = <&xtal>;
  213. clock-names = "xtal";
  214. #clock-cells = <1>;
  215. };
  216. dmcbus: bus@6000 {
  217. compatible = "simple-bus";
  218. reg = <0x6000 0x400>;
  219. #address-cells = <1>;
  220. #size-cells = <1>;
  221. ranges = <0x0 0x6000 0x400>;
  222. canvas: video-lut@48 {
  223. compatible = "amlogic,meson8b-canvas",
  224. "amlogic,canvas";
  225. reg = <0x48 0x14>;
  226. };
  227. };
  228. };
  229. apb: bus@d0000000 {
  230. compatible = "simple-bus";
  231. reg = <0xd0000000 0x200000>;
  232. #address-cells = <1>;
  233. #size-cells = <1>;
  234. ranges = <0x0 0xd0000000 0x200000>;
  235. mali: gpu@c0000 {
  236. compatible = "amlogic,meson8b-mali", "arm,mali-450";
  237. reg = <0xc0000 0x40000>;
  238. interrupts = <GIC_SPI 160 IRQ_TYPE_LEVEL_HIGH>,
  239. <GIC_SPI 161 IRQ_TYPE_LEVEL_HIGH>,
  240. <GIC_SPI 162 IRQ_TYPE_LEVEL_HIGH>,
  241. <GIC_SPI 163 IRQ_TYPE_LEVEL_HIGH>,
  242. <GIC_SPI 164 IRQ_TYPE_LEVEL_HIGH>,
  243. <GIC_SPI 165 IRQ_TYPE_LEVEL_HIGH>,
  244. <GIC_SPI 166 IRQ_TYPE_LEVEL_HIGH>,
  245. <GIC_SPI 167 IRQ_TYPE_LEVEL_HIGH>;
  246. interrupt-names = "gp", "gpmmu", "pp", "pmu",
  247. "pp0", "ppmmu0", "pp1", "ppmmu1";
  248. resets = <&reset RESET_MALI>;
  249. clocks = <&clkc CLKID_CLK81>, <&clkc CLKID_MALI>;
  250. clock-names = "bus", "core";
  251. operating-points-v2 = <&gpu_opp_table>;
  252. #cooling-cells = <2>; /* min followed by max */
  253. };
  254. };
  255. }; /* end of / */
  256. &aiu {
  257. compatible = "amlogic,aiu-meson8b", "amlogic,aiu";
  258. clocks = <&clkc CLKID_AIU_GLUE>,
  259. <&clkc CLKID_I2S_OUT>,
  260. <&clkc CLKID_AOCLK_GATE>,
  261. <&clkc CLKID_CTS_AMCLK>,
  262. <&clkc CLKID_MIXER_IFACE>,
  263. <&clkc CLKID_IEC958>,
  264. <&clkc CLKID_IEC958_GATE>,
  265. <&clkc CLKID_CTS_MCLK_I958>,
  266. <&clkc CLKID_CTS_I958>;
  267. clock-names = "pclk",
  268. "i2s_pclk",
  269. "i2s_aoclk",
  270. "i2s_mclk",
  271. "i2s_mixer",
  272. "spdif_pclk",
  273. "spdif_aoclk",
  274. "spdif_mclk",
  275. "spdif_mclk_sel";
  276. resets = <&reset RESET_AIU>;
  277. };
  278. &aobus {
  279. pmu: pmu@e0 {
  280. compatible = "amlogic,meson8b-pmu", "syscon";
  281. reg = <0xe0 0x18>;
  282. };
  283. pinctrl_aobus: pinctrl@84 {
  284. compatible = "amlogic,meson8b-aobus-pinctrl";
  285. reg = <0x84 0xc>;
  286. #address-cells = <1>;
  287. #size-cells = <1>;
  288. ranges;
  289. gpio_ao: ao-bank@14 {
  290. reg = <0x14 0x4>,
  291. <0x2c 0x4>,
  292. <0x24 0x8>;
  293. reg-names = "mux", "pull", "gpio";
  294. gpio-controller;
  295. #gpio-cells = <2>;
  296. gpio-ranges = <&pinctrl_aobus 0 0 16>;
  297. };
  298. i2s_am_clk_pins: i2s-am-clk-out {
  299. mux {
  300. groups = "i2s_am_clk_out";
  301. function = "i2s";
  302. bias-disable;
  303. };
  304. };
  305. i2s_out_ao_clk_pins: i2s-ao-clk-out {
  306. mux {
  307. groups = "i2s_ao_clk_out";
  308. function = "i2s";
  309. bias-disable;
  310. };
  311. };
  312. i2s_out_lr_clk_pins: i2s-lr-clk-out {
  313. mux {
  314. groups = "i2s_lr_clk_out";
  315. function = "i2s";
  316. bias-disable;
  317. };
  318. };
  319. i2s_out_ch01_ao_pins: i2s-out-ch01 {
  320. mux {
  321. groups = "i2s_out_01";
  322. function = "i2s";
  323. bias-disable;
  324. };
  325. };
  326. spdif_out_1_pins: spdif-out-1 {
  327. mux {
  328. groups = "spdif_out_1";
  329. function = "spdif_1";
  330. bias-disable;
  331. };
  332. };
  333. uart_ao_a_pins: uart_ao_a {
  334. mux {
  335. groups = "uart_tx_ao_a", "uart_rx_ao_a";
  336. function = "uart_ao";
  337. bias-disable;
  338. };
  339. };
  340. ir_recv_pins: remote {
  341. mux {
  342. groups = "remote_input";
  343. function = "remote";
  344. bias-disable;
  345. };
  346. };
  347. };
  348. };
  349. &ao_arc_rproc {
  350. compatible = "amlogic,meson8b-ao-arc", "amlogic,meson-mx-ao-arc";
  351. amlogic,secbus2 = <&secbus2>;
  352. sram = <&ao_arc_sram>;
  353. resets = <&reset RESET_MEDIA_CPU>;
  354. clocks = <&clkc CLKID_AO_MEDIA_CPU>;
  355. };
  356. &cbus {
  357. reset: reset-controller@4404 {
  358. compatible = "amlogic,meson8b-reset";
  359. reg = <0x4404 0x9c>;
  360. #reset-cells = <1>;
  361. };
  362. analog_top: analog-top@81a8 {
  363. compatible = "amlogic,meson8b-analog-top", "syscon";
  364. reg = <0x81a8 0x14>;
  365. };
  366. pwm_ef: pwm@86c0 {
  367. compatible = "amlogic,meson8b-pwm";
  368. reg = <0x86c0 0x10>;
  369. #pwm-cells = <3>;
  370. status = "disabled";
  371. };
  372. clock-measure@8758 {
  373. compatible = "amlogic,meson8b-clk-measure";
  374. reg = <0x8758 0x1c>;
  375. };
  376. pinctrl_cbus: pinctrl@9880 {
  377. compatible = "amlogic,meson8b-cbus-pinctrl";
  378. reg = <0x9880 0x10>;
  379. #address-cells = <1>;
  380. #size-cells = <1>;
  381. ranges;
  382. gpio: banks@80b0 {
  383. reg = <0x80b0 0x28>,
  384. <0x80e8 0x18>,
  385. <0x8120 0x18>,
  386. <0x8030 0x38>;
  387. reg-names = "mux", "pull", "pull-enable", "gpio";
  388. gpio-controller;
  389. #gpio-cells = <2>;
  390. gpio-ranges = <&pinctrl_cbus 0 0 83>;
  391. };
  392. eth_rgmii_pins: eth-rgmii {
  393. mux {
  394. groups = "eth_tx_clk",
  395. "eth_tx_en",
  396. "eth_txd1_0",
  397. "eth_txd0_0",
  398. "eth_rx_clk",
  399. "eth_rx_dv",
  400. "eth_rxd1",
  401. "eth_rxd0",
  402. "eth_mdio_en",
  403. "eth_mdc",
  404. "eth_ref_clk",
  405. "eth_txd2",
  406. "eth_txd3",
  407. "eth_rxd3",
  408. "eth_rxd2";
  409. function = "ethernet";
  410. bias-disable;
  411. };
  412. };
  413. eth_rmii_pins: eth-rmii {
  414. mux {
  415. groups = "eth_tx_en",
  416. "eth_txd1_0",
  417. "eth_txd0_0",
  418. "eth_rx_clk",
  419. "eth_rx_dv",
  420. "eth_rxd1",
  421. "eth_rxd0",
  422. "eth_mdio_en",
  423. "eth_mdc";
  424. function = "ethernet";
  425. bias-disable;
  426. };
  427. };
  428. i2c_a_pins: i2c-a {
  429. mux {
  430. groups = "i2c_sda_a", "i2c_sck_a";
  431. function = "i2c_a";
  432. bias-disable;
  433. };
  434. };
  435. sd_b_pins: sd-b {
  436. mux {
  437. groups = "sd_d0_b", "sd_d1_b", "sd_d2_b",
  438. "sd_d3_b", "sd_clk_b", "sd_cmd_b";
  439. function = "sd_b";
  440. bias-disable;
  441. };
  442. };
  443. sdxc_c_pins: sdxc-c {
  444. mux {
  445. groups = "sdxc_d0_c", "sdxc_d13_c",
  446. "sdxc_d47_c", "sdxc_clk_c",
  447. "sdxc_cmd_c";
  448. function = "sdxc_c";
  449. bias-pull-up;
  450. };
  451. };
  452. pwm_c1_pins: pwm-c1 {
  453. mux {
  454. groups = "pwm_c1";
  455. function = "pwm_c";
  456. bias-disable;
  457. };
  458. };
  459. pwm_d_pins: pwm-d {
  460. mux {
  461. groups = "pwm_d";
  462. function = "pwm_d";
  463. bias-disable;
  464. };
  465. };
  466. uart_b0_pins: uart-b0 {
  467. mux {
  468. groups = "uart_tx_b0",
  469. "uart_rx_b0";
  470. function = "uart_b";
  471. bias-disable;
  472. };
  473. };
  474. uart_b0_cts_rts_pins: uart-b0-cts-rts {
  475. mux {
  476. groups = "uart_cts_b0",
  477. "uart_rts_b0";
  478. function = "uart_b";
  479. bias-disable;
  480. };
  481. };
  482. };
  483. };
  484. &ahb_sram {
  485. ao_arc_sram: ao-arc-sram@0 {
  486. compatible = "amlogic,meson8b-ao-arc-sram";
  487. reg = <0x0 0x8000>;
  488. pool;
  489. };
  490. smp-sram@1ff80 {
  491. compatible = "amlogic,meson8b-smp-sram";
  492. reg = <0x1ff80 0x8>;
  493. };
  494. };
  495. &efuse {
  496. compatible = "amlogic,meson8b-efuse";
  497. clocks = <&clkc CLKID_EFUSE>;
  498. clock-names = "core";
  499. temperature_calib: calib@1f4 {
  500. /* only the upper two bytes are relevant */
  501. reg = <0x1f4 0x4>;
  502. };
  503. };
  504. &ethmac {
  505. compatible = "amlogic,meson8b-dwmac", "snps,dwmac-3.70a", "snps,dwmac";
  506. reg = <0xc9410000 0x10000
  507. 0xc1108140 0x4>;
  508. clocks = <&clkc CLKID_ETH>,
  509. <&clkc CLKID_MPLL2>,
  510. <&clkc CLKID_MPLL2>,
  511. <&clkc CLKID_FCLK_DIV2>;
  512. clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
  513. rx-fifo-depth = <4096>;
  514. tx-fifo-depth = <2048>;
  515. resets = <&reset RESET_ETHERNET>;
  516. reset-names = "stmmaceth";
  517. power-domains = <&pwrc PWRC_MESON8_ETHERNET_MEM_ID>;
  518. };
  519. &gpio_intc {
  520. compatible = "amlogic,meson-gpio-intc",
  521. "amlogic,meson8b-gpio-intc";
  522. status = "okay";
  523. };
  524. &hhi {
  525. clkc: clock-controller {
  526. compatible = "amlogic,meson8b-clkc";
  527. clocks = <&xtal>, <&ddr_clkc DDR_CLKID_DDR_PLL>;
  528. clock-names = "xtal", "ddr_pll";
  529. #clock-cells = <1>;
  530. #reset-cells = <1>;
  531. };
  532. pwrc: power-controller {
  533. compatible = "amlogic,meson8b-pwrc";
  534. #power-domain-cells = <1>;
  535. amlogic,ao-sysctrl = <&pmu>;
  536. resets = <&reset RESET_DBLK>,
  537. <&reset RESET_PIC_DC>,
  538. <&reset RESET_HDMI_APB>,
  539. <&reset RESET_HDMI_SYSTEM_RESET>,
  540. <&reset RESET_VENCI>,
  541. <&reset RESET_VENCP>,
  542. <&reset RESET_VDAC_4>,
  543. <&reset RESET_VENCL>,
  544. <&reset RESET_VIU>,
  545. <&reset RESET_VENC>,
  546. <&reset RESET_RDMA>;
  547. reset-names = "dblk", "pic_dc", "hdmi_apb", "hdmi_system",
  548. "venci", "vencp", "vdac", "vencl", "viu",
  549. "venc", "rdma";
  550. clocks = <&clkc CLKID_VPU>;
  551. clock-names = "vpu";
  552. assigned-clocks = <&clkc CLKID_VPU>;
  553. assigned-clock-rates = <182142857>;
  554. };
  555. };
  556. &hwrng {
  557. compatible = "amlogic,meson8b-rng", "amlogic,meson-rng";
  558. clocks = <&clkc CLKID_RNG0>;
  559. clock-names = "core";
  560. };
  561. &i2c_AO {
  562. clocks = <&clkc CLKID_CLK81>;
  563. };
  564. &i2c_A {
  565. clocks = <&clkc CLKID_I2C>;
  566. };
  567. &i2c_B {
  568. clocks = <&clkc CLKID_I2C>;
  569. };
  570. &L2 {
  571. arm,data-latency = <3 3 3>;
  572. arm,tag-latency = <2 2 2>;
  573. arm,filter-ranges = <0x100000 0xc0000000>;
  574. prefetch-data = <1>;
  575. prefetch-instr = <1>;
  576. arm,shared-override;
  577. };
  578. &periph {
  579. scu@0 {
  580. compatible = "arm,cortex-a5-scu";
  581. reg = <0x0 0x100>;
  582. };
  583. timer@200 {
  584. compatible = "arm,cortex-a5-global-timer";
  585. reg = <0x200 0x20>;
  586. interrupts = <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
  587. clocks = <&clkc CLKID_PERIPH>;
  588. /*
  589. * the arm_global_timer driver currently does not handle clock
  590. * rate changes. Keep it disabled for now.
  591. */
  592. status = "disabled";
  593. };
  594. timer@600 {
  595. compatible = "arm,cortex-a5-twd-timer";
  596. reg = <0x600 0x20>;
  597. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_EDGE_RISING)>;
  598. clocks = <&clkc CLKID_PERIPH>;
  599. };
  600. };
  601. &pwm_ab {
  602. compatible = "amlogic,meson8b-pwm";
  603. };
  604. &pwm_cd {
  605. compatible = "amlogic,meson8b-pwm";
  606. };
  607. &rtc {
  608. compatible = "amlogic,meson8b-rtc";
  609. resets = <&reset RESET_RTC>;
  610. };
  611. &saradc {
  612. compatible = "amlogic,meson8b-saradc", "amlogic,meson-saradc";
  613. clocks = <&xtal>, <&clkc CLKID_SAR_ADC>;
  614. clock-names = "clkin", "core";
  615. amlogic,hhi-sysctrl = <&hhi>;
  616. nvmem-cells = <&temperature_calib>;
  617. nvmem-cell-names = "temperature_calib";
  618. };
  619. &sdhc {
  620. compatible = "amlogic,meson8-sdhc", "amlogic,meson-mx-sdhc";
  621. clocks = <&xtal>,
  622. <&clkc CLKID_FCLK_DIV4>,
  623. <&clkc CLKID_FCLK_DIV3>,
  624. <&clkc CLKID_FCLK_DIV5>,
  625. <&clkc CLKID_SDHC>;
  626. clock-names = "clkin0", "clkin1", "clkin2", "clkin3", "pclk";
  627. };
  628. &secbus {
  629. secbus2: system-controller@4000 {
  630. compatible = "amlogic,meson8b-secbus2", "syscon";
  631. reg = <0x4000 0x2000>;
  632. };
  633. };
  634. &sdio {
  635. compatible = "amlogic,meson8b-sdio", "amlogic,meson-mx-sdio";
  636. clocks = <&clkc CLKID_SDIO>, <&clkc CLKID_CLK81>;
  637. clock-names = "core", "clkin";
  638. };
  639. &timer_abcde {
  640. clocks = <&xtal>, <&clkc CLKID_CLK81>;
  641. clock-names = "xtal", "pclk";
  642. };
  643. &uart_AO {
  644. compatible = "amlogic,meson8b-uart", "amlogic,meson-ao-uart";
  645. clocks = <&xtal>, <&clkc CLKID_CLK81>, <&clkc CLKID_CLK81>;
  646. clock-names = "xtal", "pclk", "baud";
  647. };
  648. &uart_A {
  649. compatible = "amlogic,meson8b-uart";
  650. clocks = <&xtal>, <&clkc CLKID_UART0>, <&clkc CLKID_CLK81>;
  651. clock-names = "xtal", "pclk", "baud";
  652. };
  653. &uart_B {
  654. compatible = "amlogic,meson8b-uart";
  655. clocks = <&xtal>, <&clkc CLKID_UART1>, <&clkc CLKID_CLK81>;
  656. clock-names = "xtal", "pclk", "baud";
  657. };
  658. &uart_C {
  659. compatible = "amlogic,meson8b-uart";
  660. clocks = <&xtal>, <&clkc CLKID_UART2>, <&clkc CLKID_CLK81>;
  661. clock-names = "xtal", "pclk", "baud";
  662. };
  663. &usb0 {
  664. compatible = "amlogic,meson8b-usb", "snps,dwc2";
  665. clocks = <&clkc CLKID_USB0_DDR_BRIDGE>;
  666. clock-names = "otg";
  667. };
  668. &usb1 {
  669. compatible = "amlogic,meson8b-usb", "snps,dwc2";
  670. clocks = <&clkc CLKID_USB1_DDR_BRIDGE>;
  671. clock-names = "otg";
  672. };
  673. &usb0_phy {
  674. compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy";
  675. clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB0>;
  676. clock-names = "usb_general", "usb";
  677. resets = <&reset RESET_USB_OTG>;
  678. };
  679. &usb1_phy {
  680. compatible = "amlogic,meson8b-usb2-phy", "amlogic,meson-mx-usb2-phy";
  681. clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1>;
  682. clock-names = "usb_general", "usb";
  683. resets = <&reset RESET_USB_OTG>;
  684. };
  685. &wdt {
  686. compatible = "amlogic,meson8b-wdt";
  687. };