meson-gxbb.dtsi 15 KB

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