meson-gxl.dtsi 14 KB

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