meson-axg.dtsi 32 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465666768697071727374757677787980818283848586878889909192939495969798991001011021031041051061071081091101111121131141151161171181191201211221231241251261271281291301311321331341351361371381391401411421431441451461471481491501511521531541551561571581591601611621631641651661671681691701711721731741751761771781791801811821831841851861871881891901911921931941951961971981992002012022032042052062072082092102112122132142152162172182192202212222232242252262272282292302312322332342352362372382392402412422432442452462472482492502512522532542552562572582592602612622632642652662672682692702712722732742752762772782792802812822832842852862872882892902912922932942952962972982993003013023033043053063073083093103113123133143153163173183193203213223233243253263273283293303313323333343353363373383393403413423433443453463473483493503513523533543553563573583593603613623633643653663673683693703713723733743753763773783793803813823833843853863873883893903913923933943953963973983994004014024034044054064074084094104114124134144154164174184194204214224234244254264274284294304314324334344354364374384394404414424434444454464474484494504514524534544554564574584594604614624634644654664674684694704714724734744754764774784794804814824834844854864874884894904914924934944954964974984995005015025035045055065075085095105115125135145155165175185195205215225235245255265275285295305315325335345355365375385395405415425435445455465475485495505515525535545555565575585595605615625635645655665675685695705715725735745755765775785795805815825835845855865875885895905915925935945955965975985996006016026036046056066076086096106116126136146156166176186196206216226236246256266276286296306316326336346356366376386396406416426436446456466476486496506516526536546556566576586596606616626636646656666676686696706716726736746756766776786796806816826836846856866876886896906916926936946956966976986997007017027037047057067077087097107117127137147157167177187197207217227237247257267277287297307317327337347357367377387397407417427437447457467477487497507517527537547557567577587597607617627637647657667677687697707717727737747757767777787797807817827837847857867877887897907917927937947957967977987998008018028038048058068078088098108118128138148158168178188198208218228238248258268278288298308318328338348358368378388398408418428438448458468478488498508518528538548558568578588598608618628638648658668678688698708718728738748758768778788798808818828838848858868878888898908918928938948958968978988999009019029039049059069079089099109119129139149159169179189199209219229239249259269279289299309319329339349359369379389399409419429439449459469479489499509519529539549559569579589599609619629639649659669679689699709719729739749759769779789799809819829839849859869879889899909919929939949959969979989991000100110021003100410051006100710081009101010111012101310141015101610171018101910201021102210231024102510261027102810291030103110321033103410351036103710381039104010411042104310441045104610471048104910501051105210531054105510561057105810591060106110621063106410651066106710681069107010711072107310741075107610771078107910801081108210831084108510861087108810891090109110921093109410951096109710981099110011011102110311041105110611071108110911101111111211131114111511161117111811191120112111221123112411251126112711281129113011311132113311341135113611371138113911401141114211431144114511461147114811491150115111521153115411551156115711581159116011611162116311641165116611671168116911701171117211731174117511761177117811791180118111821183118411851186118711881189119011911192119311941195119611971198119912001201120212031204120512061207120812091210121112121213121412151216121712181219122012211222122312241225122612271228122912301231123212331234123512361237123812391240124112421243124412451246124712481249125012511252125312541255125612571258125912601261126212631264126512661267126812691270127112721273127412751276127712781279128012811282128312841285128612871288128912901291129212931294129512961297129812991300130113021303130413051306130713081309131013111312131313141315131613171318131913201321132213231324132513261327132813291330133113321333133413351336133713381339134013411342134313441345134613471348134913501351135213531354135513561357135813591360136113621363136413651366136713681369137013711372137313741375137613771378137913801381138213831384138513861387138813891390139113921393139413951396139713981399140014011402140314041405140614071408140914101411141214131414141514161417141814191420142114221423142414251426142714281429143014311432143314341435143614371438143914401441144214431444144514461447144814491450145114521453145414551456145714581459146014611462146314641465146614671468146914701471147214731474147514761477147814791480148114821483148414851486148714881489149014911492149314941495149614971498149915001501150215031504150515061507150815091510
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2017 Amlogic, Inc. All rights reserved.
  4. */
  5. #include <dt-bindings/gpio/gpio.h>
  6. #include <dt-bindings/interrupt-controller/irq.h>
  7. #include <dt-bindings/interrupt-controller/arm-gic.h>
  8. #include <dt-bindings/clock/axg-audio-clkc.h>
  9. #include <dt-bindings/clock/axg-clkc.h>
  10. #include <dt-bindings/clock/axg-aoclkc.h>
  11. #include <dt-bindings/gpio/meson-axg-gpio.h>
  12. #include <dt-bindings/reset/amlogic,meson-axg-reset.h>
  13. / {
  14. compatible = "amlogic,meson-axg";
  15. interrupt-parent = <&gic>;
  16. #address-cells = <2>;
  17. #size-cells = <2>;
  18. reserved-memory {
  19. #address-cells = <2>;
  20. #size-cells = <2>;
  21. ranges;
  22. /* 16 MiB reserved for Hardware ROM Firmware */
  23. hwrom_reserved: hwrom@0 {
  24. reg = <0x0 0x0 0x0 0x1000000>;
  25. no-map;
  26. };
  27. /* Alternate 3 MiB reserved for ARM Trusted Firmware (BL31) */
  28. secmon_reserved: secmon@5000000 {
  29. reg = <0x0 0x05000000 0x0 0x300000>;
  30. no-map;
  31. };
  32. };
  33. cpus {
  34. #address-cells = <0x2>;
  35. #size-cells = <0x0>;
  36. cpu0: cpu@0 {
  37. device_type = "cpu";
  38. compatible = "arm,cortex-a53", "arm,armv8";
  39. reg = <0x0 0x0>;
  40. enable-method = "psci";
  41. next-level-cache = <&l2>;
  42. };
  43. cpu1: cpu@1 {
  44. device_type = "cpu";
  45. compatible = "arm,cortex-a53", "arm,armv8";
  46. reg = <0x0 0x1>;
  47. enable-method = "psci";
  48. next-level-cache = <&l2>;
  49. };
  50. cpu2: cpu@2 {
  51. device_type = "cpu";
  52. compatible = "arm,cortex-a53", "arm,armv8";
  53. reg = <0x0 0x2>;
  54. enable-method = "psci";
  55. next-level-cache = <&l2>;
  56. };
  57. cpu3: cpu@3 {
  58. device_type = "cpu";
  59. compatible = "arm,cortex-a53", "arm,armv8";
  60. reg = <0x0 0x3>;
  61. enable-method = "psci";
  62. next-level-cache = <&l2>;
  63. };
  64. l2: l2-cache0 {
  65. compatible = "cache";
  66. };
  67. };
  68. arm-pmu {
  69. compatible = "arm,cortex-a53-pmu";
  70. interrupts = <GIC_SPI 137 IRQ_TYPE_LEVEL_HIGH>,
  71. <GIC_SPI 138 IRQ_TYPE_LEVEL_HIGH>,
  72. <GIC_SPI 153 IRQ_TYPE_LEVEL_HIGH>,
  73. <GIC_SPI 154 IRQ_TYPE_LEVEL_HIGH>;
  74. interrupt-affinity = <&cpu0>, <&cpu1>, <&cpu2>, <&cpu3>;
  75. };
  76. psci {
  77. compatible = "arm,psci-1.0";
  78. method = "smc";
  79. };
  80. tdmif_a: audio-controller@0 {
  81. compatible = "amlogic,axg-tdm-iface";
  82. #sound-dai-cells = <0>;
  83. sound-name-prefix = "TDM_A";
  84. clocks = <&clkc_audio AUD_CLKID_MST_A_MCLK>,
  85. <&clkc_audio AUD_CLKID_MST_A_SCLK>,
  86. <&clkc_audio AUD_CLKID_MST_A_LRCLK>;
  87. clock-names = "mclk", "sclk", "lrclk";
  88. status = "disabled";
  89. };
  90. tdmif_b: audio-controller@1 {
  91. compatible = "amlogic,axg-tdm-iface";
  92. #sound-dai-cells = <0>;
  93. sound-name-prefix = "TDM_B";
  94. clocks = <&clkc_audio AUD_CLKID_MST_B_MCLK>,
  95. <&clkc_audio AUD_CLKID_MST_B_SCLK>,
  96. <&clkc_audio AUD_CLKID_MST_B_LRCLK>;
  97. clock-names = "mclk", "sclk", "lrclk";
  98. status = "disabled";
  99. };
  100. tdmif_c: audio-controller@2 {
  101. compatible = "amlogic,axg-tdm-iface";
  102. #sound-dai-cells = <0>;
  103. sound-name-prefix = "TDM_C";
  104. clocks = <&clkc_audio AUD_CLKID_MST_C_MCLK>,
  105. <&clkc_audio AUD_CLKID_MST_C_SCLK>,
  106. <&clkc_audio AUD_CLKID_MST_C_LRCLK>;
  107. clock-names = "mclk", "sclk", "lrclk";
  108. status = "disabled";
  109. };
  110. timer {
  111. compatible = "arm,armv8-timer";
  112. interrupts = <GIC_PPI 13
  113. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  114. <GIC_PPI 14
  115. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  116. <GIC_PPI 11
  117. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>,
  118. <GIC_PPI 10
  119. (GIC_CPU_MASK_RAW(0xff) | IRQ_TYPE_LEVEL_LOW)>;
  120. };
  121. xtal: xtal-clk {
  122. compatible = "fixed-clock";
  123. clock-frequency = <24000000>;
  124. clock-output-names = "xtal";
  125. #clock-cells = <0>;
  126. };
  127. ao_alt_xtal: ao_alt_xtal-clk {
  128. compatible = "fixed-clock";
  129. clock-frequency = <32000000>;
  130. clock-output-names = "ao_alt_xtal";
  131. #clock-cells = <0>;
  132. };
  133. soc {
  134. compatible = "simple-bus";
  135. #address-cells = <2>;
  136. #size-cells = <2>;
  137. ranges;
  138. apb: apb@ffe00000 {
  139. compatible = "simple-bus";
  140. reg = <0x0 0xffe00000 0x0 0x200000>;
  141. #address-cells = <2>;
  142. #size-cells = <2>;
  143. ranges = <0x0 0x0 0x0 0xffe00000 0x0 0x200000>;
  144. sd_emmc_b: sd@5000 {
  145. compatible = "amlogic,meson-axg-mmc";
  146. reg = <0x0 0x5000 0x0 0x800>;
  147. interrupts = <GIC_SPI 217 IRQ_TYPE_EDGE_RISING>;
  148. status = "disabled";
  149. clocks = <&clkc CLKID_SD_EMMC_B>,
  150. <&clkc CLKID_SD_EMMC_B_CLK0>,
  151. <&clkc CLKID_FCLK_DIV2>;
  152. clock-names = "core", "clkin0", "clkin1";
  153. resets = <&reset RESET_SD_EMMC_B>;
  154. };
  155. sd_emmc_c: mmc@7000 {
  156. compatible = "amlogic,meson-axg-mmc";
  157. reg = <0x0 0x7000 0x0 0x800>;
  158. interrupts = <GIC_SPI 218 IRQ_TYPE_EDGE_RISING>;
  159. status = "disabled";
  160. clocks = <&clkc CLKID_SD_EMMC_C>,
  161. <&clkc CLKID_SD_EMMC_C_CLK0>,
  162. <&clkc CLKID_FCLK_DIV2>;
  163. clock-names = "core", "clkin0", "clkin1";
  164. resets = <&reset RESET_SD_EMMC_C>;
  165. };
  166. };
  167. audio: bus@ff642000 {
  168. compatible = "simple-bus";
  169. reg = <0x0 0xff642000 0x0 0x2000>;
  170. #address-cells = <2>;
  171. #size-cells = <2>;
  172. ranges = <0x0 0x0 0x0 0xff642000 0x0 0x2000>;
  173. clkc_audio: clock-controller@0 {
  174. compatible = "amlogic,axg-audio-clkc";
  175. reg = <0x0 0x0 0x0 0xb4>;
  176. #clock-cells = <1>;
  177. clocks = <&clkc CLKID_AUDIO>,
  178. <&clkc CLKID_MPLL0>,
  179. <&clkc CLKID_MPLL1>,
  180. <&clkc CLKID_MPLL2>,
  181. <&clkc CLKID_MPLL3>,
  182. <&clkc CLKID_HIFI_PLL>,
  183. <&clkc CLKID_FCLK_DIV3>,
  184. <&clkc CLKID_FCLK_DIV4>,
  185. <&clkc CLKID_GP0_PLL>;
  186. clock-names = "pclk",
  187. "mst_in0",
  188. "mst_in1",
  189. "mst_in2",
  190. "mst_in3",
  191. "mst_in4",
  192. "mst_in5",
  193. "mst_in6",
  194. "mst_in7";
  195. resets = <&reset RESET_AUDIO>;
  196. };
  197. arb: reset-controller@280 {
  198. compatible = "amlogic,meson-axg-audio-arb";
  199. reg = <0x0 0x280 0x0 0x4>;
  200. #reset-cells = <1>;
  201. clocks = <&clkc_audio AUD_CLKID_DDR_ARB>;
  202. };
  203. tdmin_a: audio-controller@300 {
  204. compatible = "amlogic,axg-tdmin";
  205. reg = <0x0 0x300 0x0 0x40>;
  206. sound-name-prefix = "TDMIN_A";
  207. clocks = <&clkc_audio AUD_CLKID_TDMIN_A>,
  208. <&clkc_audio AUD_CLKID_TDMIN_A_SCLK>,
  209. <&clkc_audio AUD_CLKID_TDMIN_A_SCLK_SEL>,
  210. <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>,
  211. <&clkc_audio AUD_CLKID_TDMIN_A_LRCLK>;
  212. clock-names = "pclk", "sclk", "sclk_sel",
  213. "lrclk", "lrclk_sel";
  214. status = "disabled";
  215. };
  216. tdmin_b: audio-controller@340 {
  217. compatible = "amlogic,axg-tdmin";
  218. reg = <0x0 0x340 0x0 0x40>;
  219. sound-name-prefix = "TDMIN_B";
  220. clocks = <&clkc_audio AUD_CLKID_TDMIN_B>,
  221. <&clkc_audio AUD_CLKID_TDMIN_B_SCLK>,
  222. <&clkc_audio AUD_CLKID_TDMIN_B_SCLK_SEL>,
  223. <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>,
  224. <&clkc_audio AUD_CLKID_TDMIN_B_LRCLK>;
  225. clock-names = "pclk", "sclk", "sclk_sel",
  226. "lrclk", "lrclk_sel";
  227. status = "disabled";
  228. };
  229. tdmin_c: audio-controller@380 {
  230. compatible = "amlogic,axg-tdmin";
  231. reg = <0x0 0x380 0x0 0x40>;
  232. sound-name-prefix = "TDMIN_C";
  233. clocks = <&clkc_audio AUD_CLKID_TDMIN_C>,
  234. <&clkc_audio AUD_CLKID_TDMIN_C_SCLK>,
  235. <&clkc_audio AUD_CLKID_TDMIN_C_SCLK_SEL>,
  236. <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>,
  237. <&clkc_audio AUD_CLKID_TDMIN_C_LRCLK>;
  238. clock-names = "pclk", "sclk", "sclk_sel",
  239. "lrclk", "lrclk_sel";
  240. status = "disabled";
  241. };
  242. tdmin_lb: audio-controller@3c0 {
  243. compatible = "amlogic,axg-tdmin";
  244. reg = <0x0 0x3c0 0x0 0x40>;
  245. sound-name-prefix = "TDMIN_LB";
  246. clocks = <&clkc_audio AUD_CLKID_TDMIN_LB>,
  247. <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK>,
  248. <&clkc_audio AUD_CLKID_TDMIN_LB_SCLK_SEL>,
  249. <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>,
  250. <&clkc_audio AUD_CLKID_TDMIN_LB_LRCLK>;
  251. clock-names = "pclk", "sclk", "sclk_sel",
  252. "lrclk", "lrclk_sel";
  253. status = "disabled";
  254. };
  255. spdifout: audio-controller@480 {
  256. compatible = "amlogic,axg-spdifout";
  257. reg = <0x0 0x480 0x0 0x50>;
  258. #sound-dai-cells = <0>;
  259. sound-name-prefix = "SPDIFOUT";
  260. clocks = <&clkc_audio AUD_CLKID_SPDIFOUT>,
  261. <&clkc_audio AUD_CLKID_SPDIFOUT_CLK>;
  262. clock-names = "pclk", "mclk";
  263. status = "disabled";
  264. };
  265. tdmout_a: audio-controller@500 {
  266. compatible = "amlogic,axg-tdmout";
  267. reg = <0x0 0x500 0x0 0x40>;
  268. sound-name-prefix = "TDMOUT_A";
  269. clocks = <&clkc_audio AUD_CLKID_TDMOUT_A>,
  270. <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK>,
  271. <&clkc_audio AUD_CLKID_TDMOUT_A_SCLK_SEL>,
  272. <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>,
  273. <&clkc_audio AUD_CLKID_TDMOUT_A_LRCLK>;
  274. clock-names = "pclk", "sclk", "sclk_sel",
  275. "lrclk", "lrclk_sel";
  276. status = "disabled";
  277. };
  278. tdmout_b: audio-controller@540 {
  279. compatible = "amlogic,axg-tdmout";
  280. reg = <0x0 0x540 0x0 0x40>;
  281. sound-name-prefix = "TDMOUT_B";
  282. clocks = <&clkc_audio AUD_CLKID_TDMOUT_B>,
  283. <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK>,
  284. <&clkc_audio AUD_CLKID_TDMOUT_B_SCLK_SEL>,
  285. <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>,
  286. <&clkc_audio AUD_CLKID_TDMOUT_B_LRCLK>;
  287. clock-names = "pclk", "sclk", "sclk_sel",
  288. "lrclk", "lrclk_sel";
  289. status = "disabled";
  290. };
  291. tdmout_c: audio-controller@580 {
  292. compatible = "amlogic,axg-tdmout";
  293. reg = <0x0 0x580 0x0 0x40>;
  294. sound-name-prefix = "TDMOUT_C";
  295. clocks = <&clkc_audio AUD_CLKID_TDMOUT_C>,
  296. <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK>,
  297. <&clkc_audio AUD_CLKID_TDMOUT_C_SCLK_SEL>,
  298. <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>,
  299. <&clkc_audio AUD_CLKID_TDMOUT_C_LRCLK>;
  300. clock-names = "pclk", "sclk", "sclk_sel",
  301. "lrclk", "lrclk_sel";
  302. status = "disabled";
  303. };
  304. };
  305. cbus: bus@ffd00000 {
  306. compatible = "simple-bus";
  307. reg = <0x0 0xffd00000 0x0 0x25000>;
  308. #address-cells = <2>;
  309. #size-cells = <2>;
  310. ranges = <0x0 0x0 0x0 0xffd00000 0x0 0x25000>;
  311. gpio_intc: interrupt-controller@f080 {
  312. compatible = "amlogic,meson-gpio-intc";
  313. reg = <0x0 0xf080 0x0 0x10>;
  314. interrupt-controller;
  315. #interrupt-cells = <2>;
  316. amlogic,channel-interrupts = <64 65 66 67 68 69 70 71>;
  317. status = "disabled";
  318. };
  319. pwm_ab: pwm@1b000 {
  320. compatible = "amlogic,meson-axg-ee-pwm";
  321. reg = <0x0 0x1b000 0x0 0x20>;
  322. #pwm-cells = <3>;
  323. status = "disabled";
  324. };
  325. pwm_cd: pwm@1a000 {
  326. compatible = "amlogic,meson-axg-ee-pwm";
  327. reg = <0x0 0x1a000 0x0 0x20>;
  328. #pwm-cells = <3>;
  329. status = "disabled";
  330. };
  331. reset: reset-controller@1004 {
  332. compatible = "amlogic,meson-axg-reset";
  333. reg = <0x0 0x01004 0x0 0x9c>;
  334. #reset-cells = <1>;
  335. };
  336. spicc0: spi@13000 {
  337. compatible = "amlogic,meson-axg-spicc";
  338. reg = <0x0 0x13000 0x0 0x3c>;
  339. interrupts = <GIC_SPI 81 IRQ_TYPE_LEVEL_HIGH>;
  340. clocks = <&clkc CLKID_SPICC0>;
  341. clock-names = "core";
  342. #address-cells = <1>;
  343. #size-cells = <0>;
  344. status = "disabled";
  345. };
  346. spicc1: spi@15000 {
  347. compatible = "amlogic,meson-axg-spicc";
  348. reg = <0x0 0x15000 0x0 0x3c>;
  349. interrupts = <GIC_SPI 82 IRQ_TYPE_LEVEL_HIGH>;
  350. clocks = <&clkc CLKID_SPICC1>;
  351. clock-names = "core";
  352. #address-cells = <1>;
  353. #size-cells = <0>;
  354. status = "disabled";
  355. };
  356. i2c0: i2c@1f000 {
  357. compatible = "amlogic,meson-axg-i2c";
  358. reg = <0x0 0x1f000 0x0 0x20>;
  359. interrupts = <GIC_SPI 21 IRQ_TYPE_EDGE_RISING>;
  360. clocks = <&clkc CLKID_I2C>;
  361. #address-cells = <1>;
  362. #size-cells = <0>;
  363. status = "disabled";
  364. };
  365. i2c1: i2c@1e000 {
  366. compatible = "amlogic,meson-axg-i2c";
  367. reg = <0x0 0x1e000 0x0 0x20>;
  368. interrupts = <GIC_SPI 214 IRQ_TYPE_EDGE_RISING>;
  369. clocks = <&clkc CLKID_I2C>;
  370. #address-cells = <1>;
  371. #size-cells = <0>;
  372. status = "disabled";
  373. };
  374. i2c2: i2c@1d000 {
  375. compatible = "amlogic,meson-axg-i2c";
  376. reg = <0x0 0x1d000 0x0 0x20>;
  377. interrupts = <GIC_SPI 215 IRQ_TYPE_EDGE_RISING>;
  378. clocks = <&clkc CLKID_I2C>;
  379. #address-cells = <1>;
  380. #size-cells = <0>;
  381. status = "disabled";
  382. };
  383. i2c3: i2c@1c000 {
  384. compatible = "amlogic,meson-axg-i2c";
  385. reg = <0x0 0x1c000 0x0 0x20>;
  386. interrupts = <GIC_SPI 39 IRQ_TYPE_EDGE_RISING>;
  387. clocks = <&clkc CLKID_I2C>;
  388. #address-cells = <1>;
  389. #size-cells = <0>;
  390. status = "disabled";
  391. };
  392. uart_A: serial@24000 {
  393. compatible = "amlogic,meson-gx-uart";
  394. reg = <0x0 0x24000 0x0 0x18>;
  395. interrupts = <GIC_SPI 26 IRQ_TYPE_EDGE_RISING>;
  396. status = "disabled";
  397. clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
  398. clock-names = "xtal", "pclk", "baud";
  399. };
  400. uart_B: serial@23000 {
  401. compatible = "amlogic,meson-gx-uart";
  402. reg = <0x0 0x23000 0x0 0x18>;
  403. interrupts = <GIC_SPI 75 IRQ_TYPE_EDGE_RISING>;
  404. status = "disabled";
  405. clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
  406. clock-names = "xtal", "pclk", "baud";
  407. };
  408. };
  409. ethmac: ethernet@ff3f0000 {
  410. compatible = "amlogic,meson-axg-dwmac", "snps,dwmac";
  411. reg = <0x0 0xff3f0000 0x0 0x10000
  412. 0x0 0xff634540 0x0 0x8>;
  413. interrupts = <GIC_SPI 8 IRQ_TYPE_EDGE_RISING>;
  414. interrupt-names = "macirq";
  415. clocks = <&clkc CLKID_ETH>,
  416. <&clkc CLKID_FCLK_DIV2>,
  417. <&clkc CLKID_MPLL2>;
  418. clock-names = "stmmaceth", "clkin0", "clkin1";
  419. status = "disabled";
  420. };
  421. gic: interrupt-controller@ffc01000 {
  422. compatible = "arm,gic-400";
  423. reg = <0x0 0xffc01000 0 0x1000>,
  424. <0x0 0xffc02000 0 0x2000>,
  425. <0x0 0xffc04000 0 0x2000>,
  426. <0x0 0xffc06000 0 0x2000>;
  427. interrupt-controller;
  428. interrupts = <GIC_PPI 9
  429. (GIC_CPU_MASK_SIMPLE(8) | IRQ_TYPE_LEVEL_HIGH)>;
  430. #interrupt-cells = <3>;
  431. #address-cells = <0>;
  432. };
  433. hiubus: bus@ff63c000 {
  434. compatible = "simple-bus";
  435. reg = <0x0 0xff63c000 0x0 0x1c00>;
  436. #address-cells = <2>;
  437. #size-cells = <2>;
  438. ranges = <0x0 0x0 0x0 0xff63c000 0x0 0x1c00>;
  439. sysctrl: system-controller@0 {
  440. compatible = "amlogic,meson-axg-hhi-sysctrl", "syscon", "simple-mfd";
  441. reg = <0 0 0 0x400>;
  442. clkc: clock-controller {
  443. compatible = "amlogic,axg-clkc";
  444. #clock-cells = <1>;
  445. };
  446. };
  447. };
  448. mailbox: mailbox@ff63dc00 {
  449. compatible = "amlogic,meson-gx-mhu", "amlogic,meson-gxbb-mhu";
  450. reg = <0 0xff63dc00 0 0x400>;
  451. interrupts = <GIC_SPI 208 IRQ_TYPE_EDGE_RISING>,
  452. <GIC_SPI 209 IRQ_TYPE_EDGE_RISING>,
  453. <GIC_SPI 210 IRQ_TYPE_EDGE_RISING>;
  454. #mbox-cells = <1>;
  455. };
  456. periphs: periphs@ff634000 {
  457. compatible = "simple-bus";
  458. reg = <0x0 0xff634000 0x0 0x2000>;
  459. #address-cells = <2>;
  460. #size-cells = <2>;
  461. ranges = <0x0 0x0 0x0 0xff634000 0x0 0x2000>;
  462. hwrng: rng {
  463. compatible = "amlogic,meson-rng";
  464. reg = <0x0 0x18 0x0 0x4>;
  465. clocks = <&clkc CLKID_RNG0>;
  466. clock-names = "core";
  467. };
  468. pinctrl_periphs: pinctrl@480 {
  469. compatible = "amlogic,meson-axg-periphs-pinctrl";
  470. #address-cells = <2>;
  471. #size-cells = <2>;
  472. ranges;
  473. gpio: bank@480 {
  474. reg = <0x0 0x00480 0x0 0x40>,
  475. <0x0 0x004e8 0x0 0x14>,
  476. <0x0 0x00520 0x0 0x14>,
  477. <0x0 0x00430 0x0 0x3c>;
  478. reg-names = "mux", "pull", "pull-enable", "gpio";
  479. gpio-controller;
  480. #gpio-cells = <2>;
  481. gpio-ranges = <&pinctrl_periphs 0 0 86>;
  482. };
  483. emmc_pins: emmc {
  484. mux {
  485. groups = "emmc_nand_d0",
  486. "emmc_nand_d1",
  487. "emmc_nand_d2",
  488. "emmc_nand_d3",
  489. "emmc_nand_d4",
  490. "emmc_nand_d5",
  491. "emmc_nand_d6",
  492. "emmc_nand_d7",
  493. "emmc_clk",
  494. "emmc_cmd",
  495. "emmc_ds";
  496. function = "emmc";
  497. };
  498. };
  499. emmc_clk_gate_pins: emmc_clk_gate {
  500. mux {
  501. groups = "BOOT_8";
  502. function = "gpio_periphs";
  503. };
  504. cfg-pull-down {
  505. pins = "BOOT_8";
  506. bias-pull-down;
  507. };
  508. };
  509. sdio_pins: sdio {
  510. mux {
  511. groups = "sdio_d0",
  512. "sdio_d1",
  513. "sdio_d2",
  514. "sdio_d3",
  515. "sdio_cmd",
  516. "sdio_clk";
  517. function = "sdio";
  518. };
  519. };
  520. sdio_clk_gate_pins: sdio_clk_gate {
  521. mux {
  522. groups = "GPIOX_4";
  523. function = "gpio_periphs";
  524. };
  525. cfg-pull-down {
  526. pins = "GPIOX_4";
  527. bias-pull-down;
  528. };
  529. };
  530. eth_rmii_x_pins: eth-x-rmii {
  531. mux {
  532. groups = "eth_mdio_x",
  533. "eth_mdc_x",
  534. "eth_rgmii_rx_clk_x",
  535. "eth_rx_dv_x",
  536. "eth_rxd0_x",
  537. "eth_rxd1_x",
  538. "eth_txen_x",
  539. "eth_txd0_x",
  540. "eth_txd1_x";
  541. function = "eth";
  542. };
  543. };
  544. eth_rmii_y_pins: eth-y-rmii {
  545. mux {
  546. groups = "eth_mdio_y",
  547. "eth_mdc_y",
  548. "eth_rgmii_rx_clk_y",
  549. "eth_rx_dv_y",
  550. "eth_rxd0_y",
  551. "eth_rxd1_y",
  552. "eth_txen_y",
  553. "eth_txd0_y",
  554. "eth_txd1_y";
  555. function = "eth";
  556. };
  557. };
  558. eth_rgmii_x_pins: eth-x-rgmii {
  559. mux {
  560. groups = "eth_mdio_x",
  561. "eth_mdc_x",
  562. "eth_rgmii_rx_clk_x",
  563. "eth_rx_dv_x",
  564. "eth_rxd0_x",
  565. "eth_rxd1_x",
  566. "eth_rxd2_rgmii",
  567. "eth_rxd3_rgmii",
  568. "eth_rgmii_tx_clk",
  569. "eth_txen_x",
  570. "eth_txd0_x",
  571. "eth_txd1_x",
  572. "eth_txd2_rgmii",
  573. "eth_txd3_rgmii";
  574. function = "eth";
  575. };
  576. };
  577. eth_rgmii_y_pins: eth-y-rgmii {
  578. mux {
  579. groups = "eth_mdio_y",
  580. "eth_mdc_y",
  581. "eth_rgmii_rx_clk_y",
  582. "eth_rx_dv_y",
  583. "eth_rxd0_y",
  584. "eth_rxd1_y",
  585. "eth_rxd2_rgmii",
  586. "eth_rxd3_rgmii",
  587. "eth_rgmii_tx_clk",
  588. "eth_txen_y",
  589. "eth_txd0_y",
  590. "eth_txd1_y",
  591. "eth_txd2_rgmii",
  592. "eth_txd3_rgmii";
  593. function = "eth";
  594. };
  595. };
  596. pdm_dclk_a14_pins: pdm_dclk_a14 {
  597. mux {
  598. groups = "pdm_dclk_a14";
  599. function = "pdm";
  600. };
  601. };
  602. pdm_dclk_a19_pins: pdm_dclk_a19 {
  603. mux {
  604. groups = "pdm_dclk_a19";
  605. function = "pdm";
  606. };
  607. };
  608. pdm_din0_pins: pdm_din0 {
  609. mux {
  610. groups = "pdm_din0";
  611. function = "pdm";
  612. };
  613. };
  614. pdm_din1_pins: pdm_din1 {
  615. mux {
  616. groups = "pdm_din1";
  617. function = "pdm";
  618. };
  619. };
  620. pdm_din2_pins: pdm_din2 {
  621. mux {
  622. groups = "pdm_din2";
  623. function = "pdm";
  624. };
  625. };
  626. pdm_din3_pins: pdm_din3 {
  627. mux {
  628. groups = "pdm_din3";
  629. function = "pdm";
  630. };
  631. };
  632. pwm_a_a_pins: pwm_a_a {
  633. mux {
  634. groups = "pwm_a_a";
  635. function = "pwm_a";
  636. };
  637. };
  638. pwm_a_x18_pins: pwm_a_x18 {
  639. mux {
  640. groups = "pwm_a_x18";
  641. function = "pwm_a";
  642. };
  643. };
  644. pwm_a_x20_pins: pwm_a_x20 {
  645. mux {
  646. groups = "pwm_a_x20";
  647. function = "pwm_a";
  648. };
  649. };
  650. pwm_a_z_pins: pwm_a_z {
  651. mux {
  652. groups = "pwm_a_z";
  653. function = "pwm_a";
  654. };
  655. };
  656. pwm_b_a_pins: pwm_b_a {
  657. mux {
  658. groups = "pwm_b_a";
  659. function = "pwm_b";
  660. };
  661. };
  662. pwm_b_x_pins: pwm_b_x {
  663. mux {
  664. groups = "pwm_b_x";
  665. function = "pwm_b";
  666. };
  667. };
  668. pwm_b_z_pins: pwm_b_z {
  669. mux {
  670. groups = "pwm_b_z";
  671. function = "pwm_b";
  672. };
  673. };
  674. pwm_c_a_pins: pwm_c_a {
  675. mux {
  676. groups = "pwm_c_a";
  677. function = "pwm_c";
  678. };
  679. };
  680. pwm_c_x10_pins: pwm_c_x10 {
  681. mux {
  682. groups = "pwm_c_x10";
  683. function = "pwm_c";
  684. };
  685. };
  686. pwm_c_x17_pins: pwm_c_x17 {
  687. mux {
  688. groups = "pwm_c_x17";
  689. function = "pwm_c";
  690. };
  691. };
  692. pwm_d_x11_pins: pwm_d_x11 {
  693. mux {
  694. groups = "pwm_d_x11";
  695. function = "pwm_d";
  696. };
  697. };
  698. pwm_d_x16_pins: pwm_d_x16 {
  699. mux {
  700. groups = "pwm_d_x16";
  701. function = "pwm_d";
  702. };
  703. };
  704. spdif_in_z_pins: spdif_in_z {
  705. mux {
  706. groups = "spdif_in_z";
  707. function = "spdif_in";
  708. };
  709. };
  710. spdif_in_a1_pins: spdif_in_a1 {
  711. mux {
  712. groups = "spdif_in_a1";
  713. function = "spdif_in";
  714. };
  715. };
  716. spdif_in_a7_pins: spdif_in_a7 {
  717. mux {
  718. groups = "spdif_in_a7";
  719. function = "spdif_in";
  720. };
  721. };
  722. spdif_in_a19_pins: spdif_in_a19 {
  723. mux {
  724. groups = "spdif_in_a19";
  725. function = "spdif_in";
  726. };
  727. };
  728. spdif_in_a20_pins: spdif_in_a20 {
  729. mux {
  730. groups = "spdif_in_a20";
  731. function = "spdif_in";
  732. };
  733. };
  734. spdif_out_z_pins: spdif_out_z {
  735. mux {
  736. groups = "spdif_out_z";
  737. function = "spdif_out";
  738. };
  739. };
  740. spdif_out_a1_pins: spdif_out_a1 {
  741. mux {
  742. groups = "spdif_out_a1";
  743. function = "spdif_out";
  744. };
  745. };
  746. spdif_out_a11_pins: spdif_out_a11 {
  747. mux {
  748. groups = "spdif_out_a11";
  749. function = "spdif_out";
  750. };
  751. };
  752. spdif_out_a19_pins: spdif_out_a19 {
  753. mux {
  754. groups = "spdif_out_a19";
  755. function = "spdif_out";
  756. };
  757. };
  758. spdif_out_a20_pins: spdif_out_a20 {
  759. mux {
  760. groups = "spdif_out_a20";
  761. function = "spdif_out";
  762. };
  763. };
  764. spi0_pins: spi0 {
  765. mux {
  766. groups = "spi0_miso",
  767. "spi0_mosi",
  768. "spi0_clk";
  769. function = "spi0";
  770. };
  771. };
  772. spi0_ss0_pins: spi0_ss0 {
  773. mux {
  774. groups = "spi0_ss0";
  775. function = "spi0";
  776. };
  777. };
  778. spi0_ss1_pins: spi0_ss1 {
  779. mux {
  780. groups = "spi0_ss1";
  781. function = "spi0";
  782. };
  783. };
  784. spi0_ss2_pins: spi0_ss2 {
  785. mux {
  786. groups = "spi0_ss2";
  787. function = "spi0";
  788. };
  789. };
  790. spi1_a_pins: spi1_a {
  791. mux {
  792. groups = "spi1_miso_a",
  793. "spi1_mosi_a",
  794. "spi1_clk_a";
  795. function = "spi1";
  796. };
  797. };
  798. spi1_ss0_a_pins: spi1_ss0_a {
  799. mux {
  800. groups = "spi1_ss0_a";
  801. function = "spi1";
  802. };
  803. };
  804. spi1_ss1_pins: spi1_ss1 {
  805. mux {
  806. groups = "spi1_ss1";
  807. function = "spi1";
  808. };
  809. };
  810. spi1_x_pins: spi1_x {
  811. mux {
  812. groups = "spi1_miso_x",
  813. "spi1_mosi_x",
  814. "spi1_clk_x";
  815. function = "spi1";
  816. };
  817. };
  818. spi1_ss0_x_pins: spi1_ss0_x {
  819. mux {
  820. groups = "spi1_ss0_x";
  821. function = "spi1";
  822. };
  823. };
  824. i2c0_pins: i2c0 {
  825. mux {
  826. groups = "i2c0_sck",
  827. "i2c0_sda";
  828. function = "i2c0";
  829. };
  830. };
  831. i2c1_z_pins: i2c1_z {
  832. mux {
  833. groups = "i2c1_sck_z",
  834. "i2c1_sda_z";
  835. function = "i2c1";
  836. };
  837. };
  838. i2c1_x_pins: i2c1_x {
  839. mux {
  840. groups = "i2c1_sck_x",
  841. "i2c1_sda_x";
  842. function = "i2c1";
  843. };
  844. };
  845. i2c2_x_pins: i2c2_x {
  846. mux {
  847. groups = "i2c2_sck_x",
  848. "i2c2_sda_x";
  849. function = "i2c2";
  850. };
  851. };
  852. i2c2_a_pins: i2c2_a {
  853. mux {
  854. groups = "i2c2_sck_a",
  855. "i2c2_sda_a";
  856. function = "i2c2";
  857. };
  858. };
  859. i2c3_a6_pins: i2c3_a6 {
  860. mux {
  861. groups = "i2c3_sda_a6",
  862. "i2c3_sck_a7";
  863. function = "i2c3";
  864. };
  865. };
  866. i2c3_a12_pins: i2c3_a12 {
  867. mux {
  868. groups = "i2c3_sda_a12",
  869. "i2c3_sck_a13";
  870. function = "i2c3";
  871. };
  872. };
  873. i2c3_a19_pins: i2c3_a19 {
  874. mux {
  875. groups = "i2c3_sda_a19",
  876. "i2c3_sck_a20";
  877. function = "i2c3";
  878. };
  879. };
  880. uart_a_pins: uart_a {
  881. mux {
  882. groups = "uart_tx_a",
  883. "uart_rx_a";
  884. function = "uart_a";
  885. };
  886. };
  887. uart_a_cts_rts_pins: uart_a_cts_rts {
  888. mux {
  889. groups = "uart_cts_a",
  890. "uart_rts_a";
  891. function = "uart_a";
  892. };
  893. };
  894. uart_b_x_pins: uart_b_x {
  895. mux {
  896. groups = "uart_tx_b_x",
  897. "uart_rx_b_x";
  898. function = "uart_b";
  899. };
  900. };
  901. uart_b_x_cts_rts_pins: uart_b_x_cts_rts {
  902. mux {
  903. groups = "uart_cts_b_x",
  904. "uart_rts_b_x";
  905. function = "uart_b";
  906. };
  907. };
  908. uart_b_z_pins: uart_b_z {
  909. mux {
  910. groups = "uart_tx_b_z",
  911. "uart_rx_b_z";
  912. function = "uart_b";
  913. };
  914. };
  915. uart_b_z_cts_rts_pins: uart_b_z_cts_rts {
  916. mux {
  917. groups = "uart_cts_b_z",
  918. "uart_rts_b_z";
  919. function = "uart_b";
  920. };
  921. };
  922. uart_ao_b_z_pins: uart_ao_b_z {
  923. mux {
  924. groups = "uart_ao_tx_b_z",
  925. "uart_ao_rx_b_z";
  926. function = "uart_ao_b_z";
  927. };
  928. };
  929. uart_ao_b_z_cts_rts_pins: uart_ao_b_z_cts_rts {
  930. mux {
  931. groups = "uart_ao_cts_b_z",
  932. "uart_ao_rts_b_z";
  933. function = "uart_ao_b_z";
  934. };
  935. };
  936. mclk_b_pins: mclk_b {
  937. mux {
  938. groups = "mclk_b";
  939. function = "mclk_b";
  940. };
  941. };
  942. mclk_c_pins: mclk_c {
  943. mux {
  944. groups = "mclk_c";
  945. function = "mclk_c";
  946. };
  947. };
  948. tdma_sclk_pins: tdma_sclk {
  949. mux {
  950. groups = "tdma_sclk";
  951. function = "tdma";
  952. };
  953. };
  954. tdma_sclk_slv_pins: tdma_sclk_slv {
  955. mux {
  956. groups = "tdma_sclk_slv";
  957. function = "tdma";
  958. };
  959. };
  960. tdma_fs_pins: tdma_fs {
  961. mux {
  962. groups = "tdma_fs";
  963. function = "tdma";
  964. };
  965. };
  966. tdma_fs_slv_pins: tdma_fs_slv {
  967. mux {
  968. groups = "tdma_fs_slv";
  969. function = "tdma";
  970. };
  971. };
  972. tdma_din0_pins: tdma_din0 {
  973. mux {
  974. groups = "tdma_din0";
  975. function = "tdma";
  976. };
  977. };
  978. tdma_dout0_x14_pins: tdma_dout0_x14 {
  979. mux {
  980. groups = "tdma_dout0_x14";
  981. function = "tdma";
  982. };
  983. };
  984. tdma_dout0_x15_pins: tdma_dout0_x15 {
  985. mux {
  986. groups = "tdma_dout0_x15";
  987. function = "tdma";
  988. };
  989. };
  990. tdma_dout1_pins: tdma_dout1 {
  991. mux {
  992. groups = "tdma_dout1";
  993. function = "tdma";
  994. };
  995. };
  996. tdma_din1_pins: tdma_din1 {
  997. mux {
  998. groups = "tdma_din1";
  999. function = "tdma";
  1000. };
  1001. };
  1002. tdmb_sclk_pins: tdmb_sclk {
  1003. mux {
  1004. groups = "tdmb_sclk";
  1005. function = "tdmb";
  1006. };
  1007. };
  1008. tdmb_sclk_slv_pins: tdmb_sclk_slv {
  1009. mux {
  1010. groups = "tdmb_sclk_slv";
  1011. function = "tdmb";
  1012. };
  1013. };
  1014. tdmb_fs_pins: tdmb_fs {
  1015. mux {
  1016. groups = "tdmb_fs";
  1017. function = "tdmb";
  1018. };
  1019. };
  1020. tdmb_fs_slv_pins: tdmb_fs_slv {
  1021. mux {
  1022. groups = "tdmb_fs_slv";
  1023. function = "tdmb";
  1024. };
  1025. };
  1026. tdmb_din0_pins: tdmb_din0 {
  1027. mux {
  1028. groups = "tdmb_din0";
  1029. function = "tdmb";
  1030. };
  1031. };
  1032. tdmb_dout0_pins: tdmb_dout0 {
  1033. mux {
  1034. groups = "tdmb_dout0";
  1035. function = "tdmb";
  1036. };
  1037. };
  1038. tdmb_din1_pins: tdmb_din1 {
  1039. mux {
  1040. groups = "tdmb_din1";
  1041. function = "tdmb";
  1042. };
  1043. };
  1044. tdmb_dout1_pins: tdmb_dout1 {
  1045. mux {
  1046. groups = "tdmb_dout1";
  1047. function = "tdmb";
  1048. };
  1049. };
  1050. tdmb_din2_pins: tdmb_din2 {
  1051. mux {
  1052. groups = "tdmb_din2";
  1053. function = "tdmb";
  1054. };
  1055. };
  1056. tdmb_dout2_pins: tdmb_dout2 {
  1057. mux {
  1058. groups = "tdmb_dout2";
  1059. function = "tdmb";
  1060. };
  1061. };
  1062. tdmb_din3_pins: tdmb_din3 {
  1063. mux {
  1064. groups = "tdmb_din3";
  1065. function = "tdmb";
  1066. };
  1067. };
  1068. tdmb_dout3_pins: tdmb_dout3 {
  1069. mux {
  1070. groups = "tdmb_dout3";
  1071. function = "tdmb";
  1072. };
  1073. };
  1074. tdmc_sclk_pins: tdmc_sclk {
  1075. mux {
  1076. groups = "tdmc_sclk";
  1077. function = "tdmc";
  1078. };
  1079. };
  1080. tdmc_sclk_slv_pins: tdmc_sclk_slv {
  1081. mux {
  1082. groups = "tdmc_sclk_slv";
  1083. function = "tdmc";
  1084. };
  1085. };
  1086. tdmc_fs_pins: tdmc_fs {
  1087. mux {
  1088. groups = "tdmc_fs";
  1089. function = "tdmc";
  1090. };
  1091. };
  1092. tdmc_fs_slv_pins: tdmc_fs_slv {
  1093. mux {
  1094. groups = "tdmc_fs_slv";
  1095. function = "tdmc";
  1096. };
  1097. };
  1098. tdmc_din0_pins: tdmc_din0 {
  1099. mux {
  1100. groups = "tdmc_din0";
  1101. function = "tdmc";
  1102. };
  1103. };
  1104. tdmc_dout0_pins: tdmc_dout0 {
  1105. mux {
  1106. groups = "tdmc_dout0";
  1107. function = "tdmc";
  1108. };
  1109. };
  1110. tdmc_din1_pins: tdmc_din1 {
  1111. mux {
  1112. groups = "tdmc_din1";
  1113. function = "tdmc";
  1114. };
  1115. };
  1116. tdmc_dout1_pins: tdmc_dout1 {
  1117. mux {
  1118. groups = "tdmc_dout1";
  1119. function = "tdmc";
  1120. };
  1121. };
  1122. tdmc_din2_pins: tdmc_din2 {
  1123. mux {
  1124. groups = "tdmc_din2";
  1125. function = "tdmc";
  1126. };
  1127. };
  1128. tdmc_dout2_pins: tdmc_dout2 {
  1129. mux {
  1130. groups = "tdmc_dout2";
  1131. function = "tdmc";
  1132. };
  1133. };
  1134. tdmc_din3_pins: tdmc_din3 {
  1135. mux {
  1136. groups = "tdmc_din3";
  1137. function = "tdmc";
  1138. };
  1139. };
  1140. tdmc_dout3_pins: tdmc_dout3 {
  1141. mux {
  1142. groups = "tdmc_dout3";
  1143. function = "tdmc";
  1144. };
  1145. };
  1146. };
  1147. };
  1148. sram: sram@fffc0000 {
  1149. compatible = "amlogic,meson-axg-sram", "mmio-sram";
  1150. reg = <0x0 0xfffc0000 0x0 0x20000>;
  1151. #address-cells = <1>;
  1152. #size-cells = <1>;
  1153. ranges = <0 0x0 0xfffc0000 0x20000>;
  1154. cpu_scp_lpri: scp-shmem@0 {
  1155. compatible = "amlogic,meson-axg-scp-shmem";
  1156. reg = <0x13000 0x400>;
  1157. };
  1158. cpu_scp_hpri: scp-shmem@200 {
  1159. compatible = "amlogic,meson-axg-scp-shmem";
  1160. reg = <0x13400 0x400>;
  1161. };
  1162. };
  1163. aobus: bus@ff800000 {
  1164. compatible = "simple-bus";
  1165. reg = <0x0 0xff800000 0x0 0x100000>;
  1166. #address-cells = <2>;
  1167. #size-cells = <2>;
  1168. ranges = <0x0 0x0 0x0 0xff800000 0x0 0x100000>;
  1169. sysctrl_AO: sys-ctrl@0 {
  1170. compatible = "amlogic,meson-axg-ao-sysctrl", "syscon", "simple-mfd";
  1171. reg = <0x0 0x0 0x0 0x100>;
  1172. clkc_AO: clock-controller {
  1173. compatible = "amlogic,meson-axg-aoclkc";
  1174. #clock-cells = <1>;
  1175. #reset-cells = <1>;
  1176. };
  1177. };
  1178. pinctrl_aobus: pinctrl@14 {
  1179. compatible = "amlogic,meson-axg-aobus-pinctrl";
  1180. #address-cells = <2>;
  1181. #size-cells = <2>;
  1182. ranges;
  1183. gpio_ao: bank@14 {
  1184. reg = <0x0 0x00014 0x0 0x8>,
  1185. <0x0 0x0002c 0x0 0x4>,
  1186. <0x0 0x00024 0x0 0x8>;
  1187. reg-names = "mux", "pull", "gpio";
  1188. gpio-controller;
  1189. #gpio-cells = <2>;
  1190. gpio-ranges = <&pinctrl_aobus 0 0 15>;
  1191. };
  1192. i2c_ao_sck_4_pins: i2c_ao_sck_4 {
  1193. mux {
  1194. groups = "i2c_ao_sck_4";
  1195. function = "i2c_ao";
  1196. };
  1197. };
  1198. i2c_ao_sck_8_pins: i2c_ao_sck_8 {
  1199. mux {
  1200. groups = "i2c_ao_sck_8";
  1201. function = "i2c_ao";
  1202. };
  1203. };
  1204. i2c_ao_sck_10_pins: i2c_ao_sck_10 {
  1205. mux {
  1206. groups = "i2c_ao_sck_10";
  1207. function = "i2c_ao";
  1208. };
  1209. };
  1210. i2c_ao_sda_5_pins: i2c_ao_sda_5 {
  1211. mux {
  1212. groups = "i2c_ao_sda_5";
  1213. function = "i2c_ao";
  1214. };
  1215. };
  1216. i2c_ao_sda_9_pins: i2c_ao_sda_9 {
  1217. mux {
  1218. groups = "i2c_ao_sda_9";
  1219. function = "i2c_ao";
  1220. };
  1221. };
  1222. i2c_ao_sda_11_pins: i2c_ao_sda_11 {
  1223. mux {
  1224. groups = "i2c_ao_sda_11";
  1225. function = "i2c_ao";
  1226. };
  1227. };
  1228. remote_input_ao_pins: remote_input_ao {
  1229. mux {
  1230. groups = "remote_input_ao";
  1231. function = "remote_input_ao";
  1232. };
  1233. };
  1234. uart_ao_a_pins: uart_ao_a {
  1235. mux {
  1236. groups = "uart_ao_tx_a",
  1237. "uart_ao_rx_a";
  1238. function = "uart_ao_a";
  1239. };
  1240. };
  1241. uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
  1242. mux {
  1243. groups = "uart_ao_cts_a",
  1244. "uart_ao_rts_a";
  1245. function = "uart_ao_a";
  1246. };
  1247. };
  1248. uart_ao_b_pins: uart_ao_b {
  1249. mux {
  1250. groups = "uart_ao_tx_b",
  1251. "uart_ao_rx_b";
  1252. function = "uart_ao_b";
  1253. };
  1254. };
  1255. uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
  1256. mux {
  1257. groups = "uart_ao_cts_b",
  1258. "uart_ao_rts_b";
  1259. function = "uart_ao_b";
  1260. };
  1261. };
  1262. };
  1263. sec_AO: ao-secure@140 {
  1264. compatible = "amlogic,meson-gx-ao-secure", "syscon";
  1265. reg = <0x0 0x140 0x0 0x140>;
  1266. amlogic,has-chip-id;
  1267. };
  1268. pwm_AO_ab: pwm@7000 {
  1269. compatible = "amlogic,meson-axg-ao-pwm";
  1270. reg = <0x0 0x07000 0x0 0x20>;
  1271. #pwm-cells = <3>;
  1272. status = "disabled";
  1273. };
  1274. pwm_AO_cd: pwm@2000 {
  1275. compatible = "amlogic,meson-axg-ao-pwm";
  1276. reg = <0x0 0x02000 0x0 0x20>;
  1277. #pwm-cells = <3>;
  1278. status = "disabled";
  1279. };
  1280. i2c_AO: i2c@5000 {
  1281. compatible = "amlogic,meson-axg-i2c";
  1282. reg = <0x0 0x05000 0x0 0x20>;
  1283. interrupts = <GIC_SPI 195 IRQ_TYPE_EDGE_RISING>;
  1284. clocks = <&clkc CLKID_AO_I2C>;
  1285. #address-cells = <1>;
  1286. #size-cells = <0>;
  1287. status = "disabled";
  1288. };
  1289. uart_AO: serial@3000 {
  1290. compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
  1291. reg = <0x0 0x3000 0x0 0x18>;
  1292. interrupts = <GIC_SPI 193 IRQ_TYPE_EDGE_RISING>;
  1293. clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
  1294. clock-names = "xtal", "pclk", "baud";
  1295. status = "disabled";
  1296. };
  1297. uart_AO_B: serial@4000 {
  1298. compatible = "amlogic,meson-gx-uart", "amlogic,meson-ao-uart";
  1299. reg = <0x0 0x4000 0x0 0x18>;
  1300. interrupts = <GIC_SPI 197 IRQ_TYPE_EDGE_RISING>;
  1301. clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
  1302. clock-names = "xtal", "pclk", "baud";
  1303. status = "disabled";
  1304. };
  1305. ir: ir@8000 {
  1306. compatible = "amlogic,meson-gxbb-ir";
  1307. reg = <0x0 0x8000 0x0 0x20>;
  1308. interrupts = <GIC_SPI 196 IRQ_TYPE_EDGE_RISING>;
  1309. status = "disabled";
  1310. };
  1311. saradc: adc@9000 {
  1312. compatible = "amlogic,meson-axg-saradc",
  1313. "amlogic,meson-saradc";
  1314. reg = <0x0 0x9000 0x0 0x38>;
  1315. #io-channel-cells = <1>;
  1316. interrupts = <GIC_SPI 73 IRQ_TYPE_EDGE_RISING>;
  1317. clocks = <&xtal>,
  1318. <&clkc_AO CLKID_AO_SAR_ADC>,
  1319. <&clkc_AO CLKID_AO_SAR_ADC_CLK>,
  1320. <&clkc_AO CLKID_AO_SAR_ADC_SEL>;
  1321. clock-names = "clkin", "core", "adc_clk", "adc_sel";
  1322. status = "disabled";
  1323. };
  1324. };
  1325. };
  1326. };