meson-gxl.dtsi 17 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615616617618619620621622623624625626627628629630631632633634635636637638639640641642643644645646647648649650651652653654655656657658659660661662663664665666667668669670671672673674675676677678679680681682683684685686687688689690691692693694695696697698699700701702703704705706707708709710711712713714715716717718719720721722723724725726727728729730731732733734735736737738739740741742743744745746747748749750751752753754755756757758759760761762763764765766767768769770771772773774775776777778779780781782783784785786787788789790791792793794795796797798799800801802803804805806807808809810811812813814815816817818819820821822823824825826827828829830831832833834835836837838839840841842843844845846847848849850851852853854855856857858859860861862863864865866867868869870871872873874875876877878879880881882883884885886887888889890891892893894895896897898899900901902903904905906907908909910911912913914915916917918919920921922923924925
  1. // SPDX-License-Identifier: (GPL-2.0+ OR MIT)
  2. /*
  3. * Copyright (c) 2016 Endless Computers, Inc.
  4. * Author: Carlo Caione <[email protected]>
  5. */
  6. #include "meson-gx.dtsi"
  7. #include <dt-bindings/clock/gxbb-clkc.h>
  8. #include <dt-bindings/clock/gxbb-aoclkc.h>
  9. #include <dt-bindings/gpio/meson-gxl-gpio.h>
  10. #include <dt-bindings/reset/amlogic,meson-gxbb-reset.h>
  11. / {
  12. compatible = "amlogic,meson-gxl";
  13. soc {
  14. usb: usb@d0078080 {
  15. compatible = "amlogic,meson-gxl-usb-ctrl";
  16. reg = <0x0 0xd0078080 0x0 0x20>;
  17. interrupts = <GIC_SPI 16 IRQ_TYPE_LEVEL_HIGH>;
  18. #address-cells = <2>;
  19. #size-cells = <2>;
  20. ranges;
  21. clocks = <&clkc CLKID_USB>, <&clkc CLKID_USB1_DDR_BRIDGE>;
  22. clock-names = "usb_ctrl", "ddr";
  23. resets = <&reset RESET_USB_OTG>;
  24. dr_mode = "otg";
  25. phys = <&usb2_phy0>, <&usb2_phy1>;
  26. phy-names = "usb2-phy0", "usb2-phy1";
  27. dwc2: usb@c9100000 {
  28. compatible = "amlogic,meson-g12a-usb", "snps,dwc2";
  29. reg = <0x0 0xc9100000 0x0 0x40000>;
  30. interrupts = <GIC_SPI 31 IRQ_TYPE_LEVEL_HIGH>;
  31. clocks = <&clkc CLKID_USB1>;
  32. clock-names = "otg";
  33. phys = <&usb2_phy1>;
  34. dr_mode = "peripheral";
  35. g-rx-fifo-size = <192>;
  36. g-np-tx-fifo-size = <128>;
  37. g-tx-fifo-size = <128 128 16 16 16>;
  38. };
  39. dwc3: usb@c9000000 {
  40. compatible = "snps,dwc3";
  41. reg = <0x0 0xc9000000 0x0 0x100000>;
  42. interrupts = <GIC_SPI 30 IRQ_TYPE_LEVEL_HIGH>;
  43. dr_mode = "host";
  44. maximum-speed = "high-speed";
  45. snps,dis_u2_susphy_quirk;
  46. };
  47. };
  48. acodec: audio-controller@c8832000 {
  49. compatible = "amlogic,t9015";
  50. reg = <0x0 0xc8832000 0x0 0x14>;
  51. #sound-dai-cells = <0>;
  52. sound-name-prefix = "ACODEC";
  53. clocks = <&clkc CLKID_ACODEC>;
  54. clock-names = "pclk";
  55. resets = <&reset RESET_ACODEC>;
  56. status = "disabled";
  57. };
  58. crypto: crypto@c883e000 {
  59. compatible = "amlogic,gxl-crypto";
  60. reg = <0x0 0xc883e000 0x0 0x36>;
  61. interrupts = <GIC_SPI 188 IRQ_TYPE_EDGE_RISING>,
  62. <GIC_SPI 189 IRQ_TYPE_EDGE_RISING>;
  63. clocks = <&clkc CLKID_BLKMV>;
  64. clock-names = "blkmv";
  65. status = "okay";
  66. };
  67. };
  68. };
  69. &aiu {
  70. compatible = "amlogic,aiu-gxl", "amlogic,aiu";
  71. clocks = <&clkc CLKID_AIU_GLUE>,
  72. <&clkc CLKID_I2S_OUT>,
  73. <&clkc CLKID_AOCLK_GATE>,
  74. <&clkc CLKID_CTS_AMCLK>,
  75. <&clkc CLKID_MIXER_IFACE>,
  76. <&clkc CLKID_IEC958>,
  77. <&clkc CLKID_IEC958_GATE>,
  78. <&clkc CLKID_CTS_MCLK_I958>,
  79. <&clkc CLKID_CTS_I958>;
  80. clock-names = "pclk",
  81. "i2s_pclk",
  82. "i2s_aoclk",
  83. "i2s_mclk",
  84. "i2s_mixer",
  85. "spdif_pclk",
  86. "spdif_aoclk",
  87. "spdif_mclk",
  88. "spdif_mclk_sel";
  89. resets = <&reset RESET_AIU>;
  90. };
  91. &apb {
  92. usb2_phy0: phy@78000 {
  93. compatible = "amlogic,meson-gxl-usb2-phy";
  94. #phy-cells = <0>;
  95. reg = <0x0 0x78000 0x0 0x20>;
  96. clocks = <&clkc CLKID_USB>;
  97. clock-names = "phy";
  98. resets = <&reset RESET_USB_OTG>;
  99. reset-names = "phy";
  100. status = "okay";
  101. };
  102. usb2_phy1: phy@78020 {
  103. compatible = "amlogic,meson-gxl-usb2-phy";
  104. #phy-cells = <0>;
  105. reg = <0x0 0x78020 0x0 0x20>;
  106. clocks = <&clkc CLKID_USB>;
  107. clock-names = "phy";
  108. resets = <&reset RESET_USB_OTG>;
  109. reset-names = "phy";
  110. status = "okay";
  111. };
  112. };
  113. &efuse {
  114. clocks = <&clkc CLKID_EFUSE>;
  115. };
  116. &ethmac {
  117. clocks = <&clkc CLKID_ETH>,
  118. <&clkc CLKID_FCLK_DIV2>,
  119. <&clkc CLKID_MPLL2>,
  120. <&clkc CLKID_FCLK_DIV2>;
  121. clock-names = "stmmaceth", "clkin0", "clkin1", "timing-adjustment";
  122. mdio0: mdio {
  123. #address-cells = <1>;
  124. #size-cells = <0>;
  125. compatible = "snps,dwmac-mdio";
  126. };
  127. };
  128. &aobus {
  129. pinctrl_aobus: pinctrl@14 {
  130. compatible = "amlogic,meson-gxl-aobus-pinctrl";
  131. #address-cells = <2>;
  132. #size-cells = <2>;
  133. ranges;
  134. gpio_ao: bank@14 {
  135. reg = <0x0 0x00014 0x0 0x8>,
  136. <0x0 0x0002c 0x0 0x4>,
  137. <0x0 0x00024 0x0 0x8>;
  138. reg-names = "mux", "pull", "gpio";
  139. gpio-controller;
  140. #gpio-cells = <2>;
  141. gpio-ranges = <&pinctrl_aobus 0 0 14>;
  142. };
  143. uart_ao_a_pins: uart_ao_a {
  144. mux {
  145. groups = "uart_tx_ao_a", "uart_rx_ao_a";
  146. function = "uart_ao";
  147. bias-disable;
  148. };
  149. };
  150. uart_ao_a_cts_rts_pins: uart_ao_a_cts_rts {
  151. mux {
  152. groups = "uart_cts_ao_a",
  153. "uart_rts_ao_a";
  154. function = "uart_ao";
  155. bias-disable;
  156. };
  157. };
  158. uart_ao_b_pins: uart_ao_b {
  159. mux {
  160. groups = "uart_tx_ao_b", "uart_rx_ao_b";
  161. function = "uart_ao_b";
  162. bias-disable;
  163. };
  164. };
  165. uart_ao_b_0_1_pins: uart_ao_b_0_1 {
  166. mux {
  167. groups = "uart_tx_ao_b_0", "uart_rx_ao_b_1";
  168. function = "uart_ao_b";
  169. bias-disable;
  170. };
  171. };
  172. uart_ao_b_cts_rts_pins: uart_ao_b_cts_rts {
  173. mux {
  174. groups = "uart_cts_ao_b",
  175. "uart_rts_ao_b";
  176. function = "uart_ao_b";
  177. bias-disable;
  178. };
  179. };
  180. remote_input_ao_pins: remote_input_ao {
  181. mux {
  182. groups = "remote_input_ao";
  183. function = "remote_input_ao";
  184. bias-disable;
  185. };
  186. };
  187. i2c_ao_pins: i2c_ao {
  188. mux {
  189. groups = "i2c_sck_ao",
  190. "i2c_sda_ao";
  191. function = "i2c_ao";
  192. bias-disable;
  193. };
  194. };
  195. pwm_ao_a_3_pins: pwm_ao_a_3 {
  196. mux {
  197. groups = "pwm_ao_a_3";
  198. function = "pwm_ao_a";
  199. bias-disable;
  200. };
  201. };
  202. pwm_ao_a_8_pins: pwm_ao_a_8 {
  203. mux {
  204. groups = "pwm_ao_a_8";
  205. function = "pwm_ao_a";
  206. bias-disable;
  207. };
  208. };
  209. pwm_ao_b_pins: pwm_ao_b {
  210. mux {
  211. groups = "pwm_ao_b";
  212. function = "pwm_ao_b";
  213. bias-disable;
  214. };
  215. };
  216. pwm_ao_b_6_pins: pwm_ao_b_6 {
  217. mux {
  218. groups = "pwm_ao_b_6";
  219. function = "pwm_ao_b";
  220. bias-disable;
  221. };
  222. };
  223. i2s_out_ch23_ao_pins: i2s_out_ch23_ao {
  224. mux {
  225. groups = "i2s_out_ch23_ao";
  226. function = "i2s_out_ao";
  227. bias-disable;
  228. };
  229. };
  230. i2s_out_ch45_ao_pins: i2s_out_ch45_ao {
  231. mux {
  232. groups = "i2s_out_ch45_ao";
  233. function = "i2s_out_ao";
  234. bias-disable;
  235. };
  236. };
  237. spdif_out_ao_6_pins: spdif_out_ao_6 {
  238. mux {
  239. groups = "spdif_out_ao_6";
  240. function = "spdif_out_ao";
  241. bias-disable;
  242. };
  243. };
  244. spdif_out_ao_9_pins: spdif_out_ao_9 {
  245. mux {
  246. groups = "spdif_out_ao_9";
  247. function = "spdif_out_ao";
  248. bias-disable;
  249. };
  250. };
  251. ao_cec_pins: ao_cec {
  252. mux {
  253. groups = "ao_cec";
  254. function = "cec_ao";
  255. bias-disable;
  256. };
  257. };
  258. ee_cec_pins: ee_cec {
  259. mux {
  260. groups = "ee_cec";
  261. function = "cec_ao";
  262. bias-disable;
  263. };
  264. };
  265. };
  266. };
  267. &cec_AO {
  268. clocks = <&clkc_AO CLKID_AO_CEC_32K>;
  269. clock-names = "core";
  270. };
  271. &clkc_AO {
  272. compatible = "amlogic,meson-gxl-aoclkc", "amlogic,meson-gx-aoclkc";
  273. clocks = <&xtal>, <&clkc CLKID_CLK81>;
  274. clock-names = "xtal", "mpeg-clk";
  275. };
  276. &gpio_intc {
  277. compatible = "amlogic,meson-gpio-intc",
  278. "amlogic,meson-gxl-gpio-intc";
  279. status = "okay";
  280. };
  281. &hdmi_tx {
  282. compatible = "amlogic,meson-gxl-dw-hdmi", "amlogic,meson-gx-dw-hdmi";
  283. resets = <&reset RESET_HDMITX_CAPB3>,
  284. <&reset RESET_HDMI_SYSTEM_RESET>,
  285. <&reset RESET_HDMI_TX>;
  286. reset-names = "hdmitx_apb", "hdmitx", "hdmitx_phy";
  287. clocks = <&clkc CLKID_HDMI_PCLK>,
  288. <&clkc CLKID_CLK81>,
  289. <&clkc CLKID_GCLK_VENCI_INT0>;
  290. clock-names = "isfr", "iahb", "venci";
  291. };
  292. &sysctrl {
  293. clkc: clock-controller {
  294. compatible = "amlogic,gxl-clkc";
  295. #clock-cells = <1>;
  296. clocks = <&xtal>;
  297. clock-names = "xtal";
  298. };
  299. };
  300. &hwrng {
  301. clocks = <&clkc CLKID_RNG0>;
  302. clock-names = "core";
  303. };
  304. &i2c_A {
  305. clocks = <&clkc CLKID_I2C>;
  306. };
  307. &i2c_AO {
  308. clocks = <&clkc CLKID_AO_I2C>;
  309. };
  310. &i2c_B {
  311. clocks = <&clkc CLKID_I2C>;
  312. };
  313. &i2c_C {
  314. clocks = <&clkc CLKID_I2C>;
  315. };
  316. &periphs {
  317. pinctrl_periphs: pinctrl@4b0 {
  318. compatible = "amlogic,meson-gxl-periphs-pinctrl";
  319. #address-cells = <2>;
  320. #size-cells = <2>;
  321. ranges;
  322. gpio: bank@4b0 {
  323. reg = <0x0 0x004b0 0x0 0x28>,
  324. <0x0 0x004e8 0x0 0x14>,
  325. <0x0 0x00520 0x0 0x14>,
  326. <0x0 0x00430 0x0 0x40>;
  327. reg-names = "mux", "pull", "pull-enable", "gpio";
  328. gpio-controller;
  329. #gpio-cells = <2>;
  330. gpio-ranges = <&pinctrl_periphs 0 0 100>;
  331. };
  332. emmc_pins: emmc {
  333. mux-0 {
  334. groups = "emmc_nand_d07",
  335. "emmc_cmd";
  336. function = "emmc";
  337. bias-pull-up;
  338. };
  339. mux-1 {
  340. groups = "emmc_clk";
  341. function = "emmc";
  342. bias-disable;
  343. };
  344. };
  345. emmc_ds_pins: emmc-ds {
  346. mux {
  347. groups = "emmc_ds";
  348. function = "emmc";
  349. bias-pull-down;
  350. };
  351. };
  352. emmc_clk_gate_pins: emmc_clk_gate {
  353. mux {
  354. groups = "BOOT_8";
  355. function = "gpio_periphs";
  356. bias-pull-down;
  357. };
  358. };
  359. nor_pins: nor {
  360. mux {
  361. groups = "nor_d",
  362. "nor_q",
  363. "nor_c",
  364. "nor_cs";
  365. function = "nor";
  366. bias-disable;
  367. };
  368. };
  369. spi_pins: spi-pins {
  370. mux {
  371. groups = "spi_miso",
  372. "spi_mosi",
  373. "spi_sclk";
  374. function = "spi";
  375. bias-disable;
  376. };
  377. };
  378. spi_ss0_pins: spi-ss0 {
  379. mux {
  380. groups = "spi_ss0";
  381. function = "spi";
  382. bias-disable;
  383. };
  384. };
  385. sdcard_pins: sdcard {
  386. mux-0 {
  387. groups = "sdcard_d0",
  388. "sdcard_d1",
  389. "sdcard_d2",
  390. "sdcard_d3",
  391. "sdcard_cmd";
  392. function = "sdcard";
  393. bias-pull-up;
  394. };
  395. mux-1 {
  396. groups = "sdcard_clk";
  397. function = "sdcard";
  398. bias-disable;
  399. };
  400. };
  401. sdcard_clk_gate_pins: sdcard_clk_gate {
  402. mux {
  403. groups = "CARD_2";
  404. function = "gpio_periphs";
  405. bias-pull-down;
  406. };
  407. };
  408. sdio_pins: sdio {
  409. mux-0 {
  410. groups = "sdio_d0",
  411. "sdio_d1",
  412. "sdio_d2",
  413. "sdio_d3",
  414. "sdio_cmd";
  415. function = "sdio";
  416. bias-pull-up;
  417. };
  418. mux-1 {
  419. groups = "sdio_clk";
  420. function = "sdio";
  421. bias-disable;
  422. };
  423. };
  424. sdio_clk_gate_pins: sdio_clk_gate {
  425. mux {
  426. groups = "GPIOX_4";
  427. function = "gpio_periphs";
  428. bias-pull-down;
  429. };
  430. };
  431. sdio_irq_pins: sdio_irq {
  432. mux {
  433. groups = "sdio_irq";
  434. function = "sdio";
  435. bias-disable;
  436. };
  437. };
  438. uart_a_pins: uart_a {
  439. mux {
  440. groups = "uart_tx_a",
  441. "uart_rx_a";
  442. function = "uart_a";
  443. bias-disable;
  444. };
  445. };
  446. uart_a_cts_rts_pins: uart_a_cts_rts {
  447. mux {
  448. groups = "uart_cts_a",
  449. "uart_rts_a";
  450. function = "uart_a";
  451. bias-disable;
  452. };
  453. };
  454. uart_b_pins: uart_b {
  455. mux {
  456. groups = "uart_tx_b",
  457. "uart_rx_b";
  458. function = "uart_b";
  459. bias-disable;
  460. };
  461. };
  462. uart_b_cts_rts_pins: uart_b_cts_rts {
  463. mux {
  464. groups = "uart_cts_b",
  465. "uart_rts_b";
  466. function = "uart_b";
  467. bias-disable;
  468. };
  469. };
  470. uart_c_pins: uart_c {
  471. mux {
  472. groups = "uart_tx_c",
  473. "uart_rx_c";
  474. function = "uart_c";
  475. bias-disable;
  476. };
  477. };
  478. uart_c_cts_rts_pins: uart_c_cts_rts {
  479. mux {
  480. groups = "uart_cts_c",
  481. "uart_rts_c";
  482. function = "uart_c";
  483. bias-disable;
  484. };
  485. };
  486. i2c_a_pins: i2c_a {
  487. mux {
  488. groups = "i2c_sck_a",
  489. "i2c_sda_a";
  490. function = "i2c_a";
  491. bias-disable;
  492. };
  493. };
  494. i2c_b_pins: i2c_b {
  495. mux {
  496. groups = "i2c_sck_b",
  497. "i2c_sda_b";
  498. function = "i2c_b";
  499. bias-disable;
  500. };
  501. };
  502. i2c_c_pins: i2c_c {
  503. mux {
  504. groups = "i2c_sck_c",
  505. "i2c_sda_c";
  506. function = "i2c_c";
  507. bias-disable;
  508. };
  509. };
  510. i2c_c_dv18_pins: i2c_c_dv18 {
  511. mux {
  512. groups = "i2c_sck_c_dv19",
  513. "i2c_sda_c_dv18";
  514. function = "i2c_c";
  515. bias-disable;
  516. };
  517. };
  518. eth_pins: eth_c {
  519. mux {
  520. groups = "eth_mdio",
  521. "eth_mdc",
  522. "eth_clk_rx_clk",
  523. "eth_rx_dv",
  524. "eth_rxd0",
  525. "eth_rxd1",
  526. "eth_rxd2",
  527. "eth_rxd3",
  528. "eth_rgmii_tx_clk",
  529. "eth_tx_en",
  530. "eth_txd0",
  531. "eth_txd1",
  532. "eth_txd2",
  533. "eth_txd3";
  534. function = "eth";
  535. bias-disable;
  536. };
  537. };
  538. eth_link_led_pins: eth_link_led {
  539. mux {
  540. groups = "eth_link_led";
  541. function = "eth_led";
  542. bias-disable;
  543. };
  544. };
  545. eth_act_led_pins: eth_act_led {
  546. mux {
  547. groups = "eth_act_led";
  548. function = "eth_led";
  549. };
  550. };
  551. pwm_a_pins: pwm_a {
  552. mux {
  553. groups = "pwm_a";
  554. function = "pwm_a";
  555. bias-disable;
  556. };
  557. };
  558. pwm_b_pins: pwm_b {
  559. mux {
  560. groups = "pwm_b";
  561. function = "pwm_b";
  562. bias-disable;
  563. };
  564. };
  565. pwm_c_pins: pwm_c {
  566. mux {
  567. groups = "pwm_c";
  568. function = "pwm_c";
  569. bias-disable;
  570. };
  571. };
  572. pwm_d_pins: pwm_d {
  573. mux {
  574. groups = "pwm_d";
  575. function = "pwm_d";
  576. bias-disable;
  577. };
  578. };
  579. pwm_e_pins: pwm_e {
  580. mux {
  581. groups = "pwm_e";
  582. function = "pwm_e";
  583. bias-disable;
  584. };
  585. };
  586. pwm_f_clk_pins: pwm_f_clk {
  587. mux {
  588. groups = "pwm_f_clk";
  589. function = "pwm_f";
  590. bias-disable;
  591. };
  592. };
  593. pwm_f_x_pins: pwm_f_x {
  594. mux {
  595. groups = "pwm_f_x";
  596. function = "pwm_f";
  597. bias-disable;
  598. };
  599. };
  600. hdmi_hpd_pins: hdmi_hpd {
  601. mux {
  602. groups = "hdmi_hpd";
  603. function = "hdmi_hpd";
  604. bias-disable;
  605. };
  606. };
  607. hdmi_i2c_pins: hdmi_i2c {
  608. mux {
  609. groups = "hdmi_sda", "hdmi_scl";
  610. function = "hdmi_i2c";
  611. bias-disable;
  612. };
  613. };
  614. i2s_am_clk_pins: i2s_am_clk {
  615. mux {
  616. groups = "i2s_am_clk";
  617. function = "i2s_out";
  618. bias-disable;
  619. };
  620. };
  621. i2s_out_ao_clk_pins: i2s_out_ao_clk {
  622. mux {
  623. groups = "i2s_out_ao_clk";
  624. function = "i2s_out";
  625. bias-disable;
  626. };
  627. };
  628. i2s_out_lr_clk_pins: i2s_out_lr_clk {
  629. mux {
  630. groups = "i2s_out_lr_clk";
  631. function = "i2s_out";
  632. bias-disable;
  633. };
  634. };
  635. i2s_out_ch01_pins: i2s_out_ch01 {
  636. mux {
  637. groups = "i2s_out_ch01";
  638. function = "i2s_out";
  639. bias-disable;
  640. };
  641. };
  642. i2sout_ch23_z_pins: i2sout_ch23_z {
  643. mux {
  644. groups = "i2sout_ch23_z";
  645. function = "i2s_out";
  646. bias-disable;
  647. };
  648. };
  649. i2sout_ch45_z_pins: i2sout_ch45_z {
  650. mux {
  651. groups = "i2sout_ch45_z";
  652. function = "i2s_out";
  653. bias-disable;
  654. };
  655. };
  656. i2sout_ch67_z_pins: i2sout_ch67_z {
  657. mux {
  658. groups = "i2sout_ch67_z";
  659. function = "i2s_out";
  660. bias-disable;
  661. };
  662. };
  663. spdif_out_h_pins: spdif_out_ao_h {
  664. mux {
  665. groups = "spdif_out_h";
  666. function = "spdif_out";
  667. bias-disable;
  668. };
  669. };
  670. };
  671. eth-phy-mux@55c {
  672. compatible = "mdio-mux-mmioreg", "mdio-mux";
  673. #address-cells = <1>;
  674. #size-cells = <0>;
  675. reg = <0x0 0x55c 0x0 0x4>;
  676. mux-mask = <0xffffffff>;
  677. mdio-parent-bus = <&mdio0>;
  678. internal_mdio: mdio@e40908ff {
  679. reg = <0xe40908ff>;
  680. #address-cells = <1>;
  681. #size-cells = <0>;
  682. internal_phy: ethernet-phy@8 {
  683. compatible = "ethernet-phy-id0181.4400";
  684. interrupts = <GIC_SPI 9 IRQ_TYPE_LEVEL_HIGH>;
  685. reg = <8>;
  686. max-speed = <100>;
  687. };
  688. };
  689. external_mdio: mdio@2009087f {
  690. reg = <0x2009087f>;
  691. #address-cells = <1>;
  692. #size-cells = <0>;
  693. };
  694. };
  695. };
  696. &pwrc {
  697. resets = <&reset RESET_VIU>,
  698. <&reset RESET_VENC>,
  699. <&reset RESET_VCBUS>,
  700. <&reset RESET_BT656>,
  701. <&reset RESET_DVIN_RESET>,
  702. <&reset RESET_RDMA>,
  703. <&reset RESET_VENCI>,
  704. <&reset RESET_VENCP>,
  705. <&reset RESET_VDAC>,
  706. <&reset RESET_VDI6>,
  707. <&reset RESET_VENCL>,
  708. <&reset RESET_VID_LOCK>;
  709. reset-names = "viu", "venc", "vcbus", "bt656",
  710. "dvin", "rdma", "venci", "vencp",
  711. "vdac", "vdi6", "vencl", "vid_lock";
  712. clocks = <&clkc CLKID_VPU>,
  713. <&clkc CLKID_VAPB>;
  714. clock-names = "vpu", "vapb";
  715. /*
  716. * VPU clocking is provided by two identical clock paths
  717. * VPU_0 and VPU_1 muxed to a single clock by a glitch
  718. * free mux to safely change frequency while running.
  719. * Same for VAPB but with a final gate after the glitch free mux.
  720. */
  721. assigned-clocks = <&clkc CLKID_VPU_0_SEL>,
  722. <&clkc CLKID_VPU_0>,
  723. <&clkc CLKID_VPU>, /* Glitch free mux */
  724. <&clkc CLKID_VAPB_0_SEL>,
  725. <&clkc CLKID_VAPB_0>,
  726. <&clkc CLKID_VAPB_SEL>; /* Glitch free mux */
  727. assigned-clock-parents = <&clkc CLKID_FCLK_DIV3>,
  728. <0>, /* Do Nothing */
  729. <&clkc CLKID_VPU_0>,
  730. <&clkc CLKID_FCLK_DIV4>,
  731. <0>, /* Do Nothing */
  732. <&clkc CLKID_VAPB_0>;
  733. assigned-clock-rates = <0>, /* Do Nothing */
  734. <666666666>,
  735. <0>, /* Do Nothing */
  736. <0>, /* Do Nothing */
  737. <250000000>,
  738. <0>; /* Do Nothing */
  739. };
  740. &saradc {
  741. compatible = "amlogic,meson-gxl-saradc", "amlogic,meson-saradc";
  742. clocks = <&xtal>,
  743. <&clkc CLKID_SAR_ADC>,
  744. <&clkc CLKID_SAR_ADC_CLK>,
  745. <&clkc CLKID_SAR_ADC_SEL>;
  746. clock-names = "clkin", "core", "adc_clk", "adc_sel";
  747. };
  748. &sd_emmc_a {
  749. clocks = <&clkc CLKID_SD_EMMC_A>,
  750. <&clkc CLKID_SD_EMMC_A_CLK0>,
  751. <&clkc CLKID_FCLK_DIV2>;
  752. clock-names = "core", "clkin0", "clkin1";
  753. resets = <&reset RESET_SD_EMMC_A>;
  754. };
  755. &sd_emmc_b {
  756. clocks = <&clkc CLKID_SD_EMMC_B>,
  757. <&clkc CLKID_SD_EMMC_B_CLK0>,
  758. <&clkc CLKID_FCLK_DIV2>;
  759. clock-names = "core", "clkin0", "clkin1";
  760. resets = <&reset RESET_SD_EMMC_B>;
  761. };
  762. &sd_emmc_c {
  763. clocks = <&clkc CLKID_SD_EMMC_C>,
  764. <&clkc CLKID_SD_EMMC_C_CLK0>,
  765. <&clkc CLKID_FCLK_DIV2>;
  766. clock-names = "core", "clkin0", "clkin1";
  767. resets = <&reset RESET_SD_EMMC_C>;
  768. };
  769. &simplefb_hdmi {
  770. clocks = <&clkc CLKID_HDMI_PCLK>,
  771. <&clkc CLKID_CLK81>,
  772. <&clkc CLKID_GCLK_VENCI_INT0>;
  773. };
  774. &spicc {
  775. clocks = <&clkc CLKID_SPICC>;
  776. clock-names = "core";
  777. resets = <&reset RESET_PERIPHS_SPICC>;
  778. num-cs = <1>;
  779. };
  780. &spifc {
  781. clocks = <&clkc CLKID_SPI>;
  782. };
  783. &uart_A {
  784. clocks = <&xtal>, <&clkc CLKID_UART0>, <&xtal>;
  785. clock-names = "xtal", "pclk", "baud";
  786. };
  787. &uart_AO {
  788. clocks = <&xtal>, <&clkc_AO CLKID_AO_UART1>, <&xtal>;
  789. clock-names = "xtal", "pclk", "baud";
  790. };
  791. &uart_AO_B {
  792. clocks = <&xtal>, <&clkc_AO CLKID_AO_UART2>, <&xtal>;
  793. clock-names = "xtal", "pclk", "baud";
  794. };
  795. &uart_B {
  796. clocks = <&xtal>, <&clkc CLKID_UART1>, <&xtal>;
  797. clock-names = "xtal", "pclk", "baud";
  798. };
  799. &uart_C {
  800. clocks = <&xtal>, <&clkc CLKID_UART2>, <&xtal>;
  801. clock-names = "xtal", "pclk", "baud";
  802. };
  803. &vpu {
  804. compatible = "amlogic,meson-gxl-vpu", "amlogic,meson-gx-vpu";
  805. power-domains = <&pwrc PWRC_GXBB_VPU_ID>;
  806. };
  807. &vdec {
  808. compatible = "amlogic,gxl-vdec", "amlogic,gx-vdec";
  809. clocks = <&clkc CLKID_DOS_PARSER>,
  810. <&clkc CLKID_DOS>,
  811. <&clkc CLKID_VDEC_1>,
  812. <&clkc CLKID_VDEC_HEVC>;
  813. clock-names = "dos_parser", "dos", "vdec_1", "vdec_hevc";
  814. resets = <&reset RESET_PARSER>;
  815. reset-names = "esparser";
  816. };