meson-axg.dtsi 34 KB

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