meson-gx.dtsi 16 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2016 Andreas Färber
  4. *
  5. * Copyright (c) 2016 BayLibre, SAS.
  6. * Author: Neil Armstrong <[email protected]>
  7. *
  8. * Copyright (c) 2016 Endless Computers, Inc.
  9. * Author: Carlo Caione <[email protected]>
  10. */
  11. #include <dt-bindings/gpio/gpio.h>
  12. #include <dt-bindings/interrupt-controller/irq.h>
  13. #include <dt-bindings/interrupt-controller/arm-gic.h>
  14. #include <dt-bindings/power/meson-gxbb-power.h>
  15. #include <dt-bindings/thermal/thermal.h>
  16. / {
  17. interrupt-parent = <&gic>;
  18. #address-cells = <2>;
  19. #size-cells = <2>;
  20. aliases {
  21. mmc0 = &sd_emmc_b; /* SD card */
  22. mmc1 = &sd_emmc_c; /* eMMC */
  23. mmc2 = &sd_emmc_a; /* SDIO */
  24. };
  25. reserved-memory {
  26. #address-cells = <2>;
  27. #size-cells = <2>;
  28. ranges;
  29. /* 16 MiB reserved for Hardware ROM Firmware */
  30. hwrom_reserved: hwrom@0 {
  31. reg = <0x0 0x0 0x0 0x1000000>;
  32. no-map;
  33. };
  34. /* 2 MiB reserved for ARM Trusted Firmware (BL31) */
  35. secmon_reserved: secmon@10000000 {
  36. reg = <0x0 0x10000000 0x0 0x200000>;
  37. no-map;
  38. };
  39. /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
  40. secmon_reserved_alt: secmon@5000000 {
  41. reg = <0x0 0x05000000 0x0 0x300000>;
  42. no-map;
  43. };
  44. /* 32 MiB reserved for ARM Trusted Firmware (BL32) */
  45. secmon_reserved_bl32: secmon@5300000 {
  46. reg = <0x0 0x05300000 0x0 0x2000000>;
  47. no-map;
  48. };
  49. linux,cma {
  50. compatible = "shared-dma-pool";
  51. reusable;
  52. size = <0x0 0x10000000>;
  53. alignment = <0x0 0x400000>;
  54. linux,cma-default;
  55. };
  56. };
  57. chosen {
  58. #address-cells = <2>;
  59. #size-cells = <2>;
  60. ranges;
  61. simplefb_cvbs: framebuffer-cvbs {
  62. compatible = "amlogic,simple-framebuffer",
  63. "simple-framebuffer";
  64. amlogic,pipeline = "vpu-cvbs";
  65. power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
  66. status = "disabled";
  67. };
  68. simplefb_hdmi: framebuffer-hdmi {
  69. compatible = "amlogic,simple-framebuffer",
  70. "simple-framebuffer";
  71. amlogic,pipeline = "vpu-hdmi";
  72. power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
  73. status = "disabled";
  74. };
  75. };
  76. cpus {
  77. #address-cells = <0x2>;
  78. #size-cells = <0x0>;
  79. cpu0: cpu@0 {
  80. device_type = "cpu";
  81. compatible = "arm,cortex-a53";
  82. reg = <0x0 0x0>;
  83. enable-method = "psci";
  84. next-level-cache = <&l2>;
  85. clocks = <&scpi_dvfs 0>;
  86. #cooling-cells = <2>;
  87. };
  88. cpu1: cpu@1 {
  89. device_type = "cpu";
  90. compatible = "arm,cortex-a53";
  91. reg = <0x0 0x1>;
  92. enable-method = "psci";
  93. next-level-cache = <&l2>;
  94. clocks = <&scpi_dvfs 0>;
  95. #cooling-cells = <2>;
  96. };
  97. cpu2: cpu@2 {
  98. device_type = "cpu";
  99. compatible = "arm,cortex-a53";
  100. reg = <0x0 0x2>;
  101. enable-method = "psci";
  102. next-level-cache = <&l2>;
  103. clocks = <&scpi_dvfs 0>;
  104. #cooling-cells = <2>;
  105. };
  106. cpu3: cpu@3 {
  107. device_type = "cpu";
  108. compatible = "arm,cortex-a53";
  109. reg = <0x0 0x3>;
  110. enable-method = "psci";
  111. next-level-cache = <&l2>;
  112. clocks = <&scpi_dvfs 0>;
  113. #cooling-cells = <2>;
  114. };
  115. l2: l2-cache0 {
  116. compatible = "cache";
  117. };
  118. };
  119. thermal-zones {
  120. cpu-thermal {
  121. polling-delay-passive = <250>; /* milliseconds */
  122. polling-delay = <1000>; /* milliseconds */
  123. thermal-sensors = <&scpi_sensors 0>;
  124. trips {
  125. cpu_passive: cpu-passive {
  126. temperature = <80000>; /* millicelsius */
  127. hysteresis = <2000>; /* millicelsius */
  128. type = "passive";
  129. };
  130. cpu_hot: cpu-hot {
  131. temperature = <90000>; /* millicelsius */
  132. hysteresis = <2000>; /* millicelsius */
  133. type = "hot";
  134. };
  135. cpu_critical: cpu-critical {
  136. temperature = <110000>; /* millicelsius */
  137. hysteresis = <2000>; /* millicelsius */
  138. type = "critical";
  139. };
  140. };
  141. cpu_cooling_maps: cooling-maps {
  142. map0 {
  143. trip = <&cpu_passive>;
  144. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  145. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  146. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  147. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  148. };
  149. map1 {
  150. trip = <&cpu_hot>;
  151. cooling-device = <&cpu0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  152. <&cpu1 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  153. <&cpu2 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>,
  154. <&cpu3 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
  155. };
  156. };
  157. };
  158. };
  159. arm-pmu {
  160. compatible = "arm,cortex-a53-pmu";
  161. interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
  162. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
  163. <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
  164. <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  165. interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
  166. };
  167. psci {
  168. compatible = "arm,psci-0.2";
  169. method = "smc";
  170. };
  171. timer {
  172. compatible = "arm,armv8-timer";
  173. interrupts = <GIC_PPI 13
  174. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  175. <GIC_PPI 14
  176. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  177. <GIC_PPI 11
  178. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  179. <GIC_PPI 10
  180. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
  181. };
  182. xtal: xtal-clk {
  183. compatible = "fixed-clock";
  184. clock-frequency = <24000000>;
  185. clock-output-names = "xtal";
  186. #clock-cells = <0>;
  187. };
  188. firmware {
  189. sm: secure-monitor {
  190. compatible = "amlogic,meson-gx-sm", "amlogic,meson-gxbb-sm";
  191. };
  192. };
  193. efuse: efuse {
  194. compatible = "amlogic,meson-gx-efuse", "amlogic,meson-gxbb-efuse";
  195. #address-cells = <1>;
  196. #size-cells = <1>;
  197. read-only;
  198. secure-monitor = <&sm>;
  199. sn: sn@14 {
  200. reg = <0x14 0x10>;
  201. };
  202. eth_mac: eth-mac@34 {
  203. reg = <0x34 0x10>;
  204. };
  205. bid: bid@46 {
  206. reg = <0x46 0x30>;
  207. };
  208. };
  209. scpi {
  210. compatible = "amlogic,meson-gxbb-scpi", "arm,scpi-pre-1.0";
  211. mboxes = <&mailbox 1 &mailbox 2>;
  212. shmem = <&cpu_scp_lpri &cpu_scp_hpri>;
  213. scpi_clocks: clocks {
  214. compatible = "arm,scpi-clocks";
  215. scpi_dvfs: clocks-0 {
  216. compatible = "arm,scpi-dvfs-clocks";
  217. #clock-cells = <1>;
  218. clock-indices = <0>;
  219. clock-output-names = "vcpu";
  220. };
  221. };
  222. scpi_sensors: sensors {
  223. compatible = "amlogic,meson-gxbb-scpi-sensors", "arm,scpi-sensors";
  224. #thermal-sensor-cells = <1>;
  225. };
  226. };
  227. soc {
  228. compatible = "simple-bus";
  229. #address-cells = <2>;
  230. #size-cells = <2>;
  231. ranges;
  232. cbus: bus@c1100000 {
  233. compatible = "simple-bus";
  234. reg = <0x0 0xc1100000 0x0 0x100000>;
  235. #address-cells = <2>;
  236. #size-cells = <2>;
  237. ranges = <0x0 0x0 0x0 0xc1100000 0x0 0x100000>;
  238. gpio_intc: interrupt-controller@9880 {
  239. compatible = "amlogic,meson-gpio-intc";
  240. reg = <0x0 0x9880 0x0 0x10>;
  241. interrupt-controller;
  242. #interrupt-cells = <2>;
  243. amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
  244. status = "disabled";
  245. };
  246. reset: reset-controller@4404 {
  247. compatible = "amlogic,meson-gxbb-reset";
  248. reg = <0x0 0x04404 0x0 0x9c>;
  249. #reset-cells = <1>;
  250. };
  251. aiu: audio-controller@5400 {
  252. compatible = "amlogic,aiu";
  253. #sound-dai-cells = <2>;
  254. sound-name-prefix = "AIU";
  255. reg = <0x0 0x5400 0x0 0x2ac>;
  256. interrupts = <GIC_SPI 48 IRQ_TYPE_EDGE_RISING>,
  257. <GIC_SPI 50 IRQ_TYPE_EDGE_RISING>;
  258. interrupt-names = "i2s", "spdif";
  259. status = "disabled";
  260. };
  261. uart_A: serial@84c0 {
  262. compatible = "amlogic,meson-gx-uart";
  263. reg = <0x0 0x84c0 0x0 0x18>;
  264. interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
  265. status = "disabled";
  266. fifo-size = <128>;
  267. };
  268. uart_B: serial@84dc {
  269. compatible = "amlogic,meson-gx-uart";
  270. reg = <0x0 0x84dc 0x0 0x18>;
  271. interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
  272. status = "disabled";
  273. };
  274. i2c_A: i2c@8500 {
  275. compatible = "amlogic,meson-gxbb-i2c";
  276. reg = <0x0 0x08500 0x0 0x20>;
  277. interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
  278. #address-cells = <1>;
  279. #size-cells = <0>;
  280. status = "disabled";
  281. };
  282. pwm_ab: pwm@8550 {
  283. compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm";
  284. reg = <0x0 0x08550 0x0 0x10>;
  285. #pwm-cells = <3>;
  286. status = "disabled";
  287. };
  288. pwm_cd: pwm@8650 {
  289. compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm";
  290. reg = <0x0 0x08650 0x0 0x10>;
  291. #pwm-cells = <3>;
  292. status = "disabled";
  293. };
  294. saradc: adc@8680 {
  295. compatible = "amlogic,meson-saradc";
  296. reg = <0x0 0x8680 0x0 0x34>;
  297. #io-channel-cells = <1>;
  298. interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
  299. status = "disabled";
  300. };
  301. pwm_ef: pwm@86c0 {
  302. compatible = "amlogic,meson-gx-pwm", "amlogic,meson-gxbb-pwm";
  303. reg = <0x0 0x086c0 0x0 0x10>;
  304. #pwm-cells = <3>;
  305. status = "disabled";
  306. };
  307. uart_C: serial@8700 {
  308. compatible = "amlogic,meson-gx-uart";
  309. reg = <0x0 0x8700 0x0 0x18>;
  310. interrupts = <GIC_SPI 93 IRQ_TYPE_EDGE_RISING>;
  311. status = "disabled";
  312. };
  313. clock-measure@8758 {
  314. compatible = "amlogic,meson-gx-clk-measure";
  315. reg = <0x0 0x8758 0x0 0x10>;
  316. };
  317. i2c_B: i2c@87c0 {
  318. compatible = "amlogic,meson-gxbb-i2c";
  319. reg = <0x0 0x087c0 0x0 0x20>;
  320. interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
  321. #address-cells = <1>;
  322. #size-cells = <0>;
  323. status = "disabled";
  324. };
  325. i2c_C: i2c@87e0 {
  326. compatible = "amlogic,meson-gxbb-i2c";
  327. reg = <0x0 0x087e0 0x0 0x20>;
  328. interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
  329. #address-cells = <1>;
  330. #size-cells = <0>;
  331. status = "disabled";
  332. };
  333. spicc: spi@8d80 {
  334. compatible = "amlogic,meson-gx-spicc";
  335. reg = <0x0 0x08d80 0x0 0x80>;
  336. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  337. #address-cells = <1>;
  338. #size-cells = <0>;
  339. status = "disabled";
  340. };
  341. spifc: spi@8c80 {
  342. compatible = "amlogic,meson-gxbb-spifc";
  343. reg = <0x0 0x08c80 0x0 0x80>;
  344. #address-cells = <1>;
  345. #size-cells = <0>;
  346. status = "disabled";
  347. };
  348. watchdog@98d0 {
  349. compatible = "amlogic,meson-gxbb-wdt";
  350. reg = <0x0 0x098d0 0x0 0x10>;
  351. clocks = <&xtal>;
  352. };
  353. };
  354. gic: interrupt-controller@c4301000 {
  355. compatible = "arm,gic-400";
  356. reg = <0x0 0xc4301000 0 0x1000>,
  357. <0x0 0xc4302000 0 0x2000>,
  358. <0x0 0xc4304000 0 0x2000>,
  359. <0x0 0xc4306000 0 0x2000>;
  360. interrupt-controller;
  361. interrupts = <GIC_PPI 9
  362. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  363. #interrupt-cells = <3>;
  364. #address-cells = <0>;
  365. };
  366. sram: sram@c8000000 {
  367. compatible = "mmio-sram";
  368. reg = <0x0 0xc8000000 0x0 0x14000>;
  369. #address-cells = <1>;
  370. #size-cells = <1>;
  371. ranges = <0 0x0 0xc8000000 0x14000>;
  372. cpu_scp_lpri: scp-sram@0 {
  373. compatible = "amlogic,meson-gxbb-scp-shmem";
  374. reg = <0x13000 0x400>;
  375. };
  376. cpu_scp_hpri: scp-sram@200 {
  377. compatible = "amlogic,meson-gxbb-scp-shmem";
  378. reg = <0x13400 0x400>;
  379. };
  380. };
  381. aobus: bus@c8100000 {
  382. compatible = "simple-bus";
  383. reg = <0x0 0xc8100000 0x0 0x100000>;
  384. #address-cells = <2>;
  385. #size-cells = <2>;
  386. ranges = <0x0 0x0 0x0 0xc8100000 0x0 0x100000>;
  387. sysctrl_AO: sys-ctrl@0 {
  388. compatible = "amlogic,meson-gx-ao-sysctrl", "simple-mfd", "syscon";
  389. reg = <0x0 0x0 0x0 0x100>;
  390. clkc_AO: clock-controller {
  391. compatible = "amlogic,meson-gx-aoclkc";
  392. #clock-cells = <1>;
  393. #reset-cells = <1>;
  394. };
  395. };
  396. cec_AO: cec@100 {
  397. compatible = "amlogic,meson-gx-ao-cec";
  398. reg = <0x0 0x00100 0x0 0x14>;
  399. interrupts = <GIC_SPI 199 IRQ_TYPE_EDGE_RISING>;
  400. status = "disabled";
  401. };
  402. sec_AO: ao-secure@140 {
  403. compatible = "amlogic,meson-gx-ao-secure", "syscon";
  404. reg = <0x0 0x140 0x0 0x140>;
  405. amlogic,has-chip-id;
  406. };
  407. uart_AO: serial@4c0 {
  408. compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
  409. reg = <0x0 0x004c0 0x0 0x18>;
  410. interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
  411. status = "disabled";
  412. };
  413. uart_AO_B: serial@4e0 {
  414. compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
  415. reg = <0x0 0x004e0 0x0 0x18>;
  416. interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
  417. status = "disabled";
  418. };
  419. i2c_AO: i2c@500 {
  420. compatible = "amlogic,meson-gxbb-i2c";
  421. reg = <0x0 0x500 0x0 0x20>;
  422. interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
  423. #address-cells = <1>;
  424. #size-cells = <0>;
  425. status = "disabled";
  426. };
  427. pwm_AO_ab: pwm@550 {
  428. compatible = "amlogic,meson-gx-ao-pwm", "amlogic,meson-gxbb-ao-pwm";
  429. reg = <0x0 0x00550 0x0 0x10>;
  430. #pwm-cells = <3>;
  431. status = "disabled";
  432. };
  433. ir: ir@580 {
  434. compatible = "amlogic,meson-gx-ir", "amlogic,meson-gxbb-ir";
  435. reg = <0x0 0x00580 0x0 0x40>;
  436. interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
  437. status = "disabled";
  438. };
  439. };
  440. vdec: video-codec@c8820000 {
  441. compatible = "amlogic,gx-vdec";
  442. reg = <0x0 0xc8820000 0x0 0x10000>,
  443. <0x0 0xc110a580 0x0 0xe4>;
  444. reg-names = "dos", "esparser";
  445. interrupts = <GIC_SPI 44 IRQ_TYPE_EDGE_RISING>,
  446. <GIC_SPI 32 IRQ_TYPE_EDGE_RISING>;
  447. interrupt-names = "vdec", "esparser";
  448. amlogic,ao-sysctrl = <&sysctrl_AO>;
  449. amlogic,canvas = <&canvas>;
  450. };
  451. periphs: bus@c8834000 {
  452. compatible = "simple-bus";
  453. reg = <0x0 0xc8834000 0x0 0x2000>;
  454. #address-cells = <2>;
  455. #size-cells = <2>;
  456. ranges = <0x0 0x0 0x0 0xc8834000 0x0 0x2000>;
  457. hwrng: rng@0 {
  458. compatible = "amlogic,meson-rng";
  459. reg = <0x0 0x0 0x0 0x4>;
  460. };
  461. };
  462. dmcbus: bus@c8838000 {
  463. compatible = "simple-bus";
  464. reg = <0x0 0xc8838000 0x0 0x400>;
  465. #address-cells = <2>;
  466. #size-cells = <2>;
  467. ranges = <0x0 0x0 0x0 0xc8838000 0x0 0x400>;
  468. canvas: video-lut@48 {
  469. compatible = "amlogic,canvas";
  470. reg = <0x0 0x48 0x0 0x14>;
  471. };
  472. };
  473. hiubus: bus@c883c000 {
  474. compatible = "simple-bus";
  475. reg = <0x0 0xc883c000 0x0 0x2000>;
  476. #address-cells = <2>;
  477. #size-cells = <2>;
  478. ranges = <0x0 0x0 0x0 0xc883c000 0x0 0x2000>;
  479. sysctrl: system-controller@0 {
  480. compatible = "amlogic,meson-gx-hhi-sysctrl", "simple-mfd", "syscon";
  481. reg = <0 0 0 0x400>;
  482. pwrc: power-controller {
  483. compatible = "amlogic,meson-gxbb-pwrc";
  484. #power-domain-cells = <1>;
  485. amlogic,ao-sysctrl = <&sysctrl_AO>;
  486. };
  487. };
  488. mailbox: mailbox@404 {
  489. compatible = "amlogic,meson-gxbb-mhu";
  490. reg = <0 0x404 0 0x4c>;
  491. interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
  492. <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
  493. <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
  494. #mbox-cells = <1>;
  495. };
  496. };
  497. ethmac: ethernet@c9410000 {
  498. compatible = "amlogic,meson-gxbb-dwmac",
  499. "snps,dwmac-3.70a",
  500. "snps,dwmac";
  501. reg = <0x0 0xc9410000 0x0 0x10000>,
  502. <0x0 0xc8834540 0x0 0x4>;
  503. interrupts = <GIC_SPI 8 IRQ_TYPE_LEVEL_HIGH>;
  504. interrupt-names = "macirq";
  505. rx-fifo-depth = <4096>;
  506. tx-fifo-depth = <2048>;
  507. power-domains = <&pwrc PWRC_GXBB_ETHERNET_MEM_ID>;
  508. status = "disabled";
  509. };
  510. apb: apb@d0000000 {
  511. compatible = "simple-bus";
  512. reg = <0x0 0xd0000000 0x0 0x200000>;
  513. #address-cells = <2>;
  514. #size-cells = <2>;
  515. ranges = <0x0 0x0 0x0 0xd0000000 0x0 0x200000>;
  516. sd_emmc_a: mmc@70000 {
  517. compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
  518. reg = <0x0 0x70000 0x0 0x800>;
  519. interrupts = <GIC_SPI 216 IRQ_TYPE_LEVEL_HIGH>;
  520. status = "disabled";
  521. };
  522. sd_emmc_b: mmc@72000 {
  523. compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
  524. reg = <0x0 0x72000 0x0 0x800>;
  525. interrupts = <GIC_SPI 217 IRQ_TYPE_LEVEL_HIGH>;
  526. status = "disabled";
  527. };
  528. sd_emmc_c: mmc@74000 {
  529. compatible = "amlogic,meson-gx-mmc", "amlogic,meson-gxbb-mmc";
  530. reg = <0x0 0x74000 0x0 0x800>;
  531. interrupts = <GIC_SPI 218 IRQ_TYPE_LEVEL_HIGH>;
  532. status = "disabled";
  533. };
  534. };
  535. vpu: vpu@d0100000 {
  536. compatible = "amlogic,meson-gx-vpu";
  537. reg = <0x0 0xd0100000 0x0 0x100000>,
  538. <0x0 0xc883c000 0x0 0x1000>;
  539. reg-names = "vpu", "hhi";
  540. interrupts = <GIC_SPI 3 IRQ_TYPE_EDGE_RISING>;
  541. #address-cells = <1>;
  542. #size-cells = <0>;
  543. amlogic,canvas = <&canvas>;
  544. /* CVBS VDAC output port */
  545. cvbs_vdac_port: port@0 {
  546. reg = <0>;
  547. };
  548. /* HDMI-TX output port */
  549. hdmi_tx_port: port@1 {
  550. reg = <1>;
  551. hdmi_tx_out: endpoint {
  552. remote-endpoint = <&hdmi_tx_in>;
  553. };
  554. };
  555. };
  556. hdmi_tx: hdmi-tx@c883a000 {
  557. compatible = "amlogic,meson-gx-dw-hdmi";
  558. reg = <0x0 0xc883a000 0x0 0x1c>;
  559. interrupts = <GIC_SPI 57 IRQ_TYPE_EDGE_RISING>;
  560. #address-cells = <1>;
  561. #size-cells = <0>;
  562. #sound-dai-cells = <0>;
  563. sound-name-prefix = "HDMITX";
  564. status = "disabled";
  565. /* VPU VENC Input */
  566. hdmi_tx_venc_port: port@0 {
  567. reg = <0>;
  568. hdmi_tx_in: endpoint {
  569. remote-endpoint = <&hdmi_tx_out>;
  570. };
  571. };
  572. /* TMDS Output */
  573. hdmi_tx_tmds_port: port@1 {
  574. reg = <1>;
  575. };
  576. };
  577. };
  578. };