meson-gxbb.dtsi 16 KB

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