_mt7623.dtsi 15 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433434435436437438439440441442443444445446447448449450451452453454455456457458459460461462463464465466467468469470471472473474475476477478479480481482483484485486487488489490491492493494495496497498499500501502503504505506507508509510511512513514515516517518519520521522523524525526527528529530531532533534535536537538539540541542543544545546547548549550551552553554555556557558559560561562563564565566567568569570571572573574575576577578579580581582583584585586587588589590591592593594595596597598599600601602603604605606607608609610611612613614615
  1. /*
  2. * Copyright (c) 2016 MediaTek Inc.
  3. * Author: John Crispin <blogic@openwrt.org>
  4. *
  5. * This program is free software; you can redistribute it and/or modify
  6. * it under the terms of the GNU General Public License version 2 as
  7. * published by the Free Software Foundation.
  8. *
  9. * This program is distributed in the hope that it will be useful,
  10. * but WITHOUT ANY WARRANTY; without even the implied warranty of
  11. * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
  12. * GNU General Public License for more details.
  13. */
  14. #include <dt-bindings/interrupt-controller/irq.h>
  15. #include <dt-bindings/interrupt-controller/arm-gic.h>
  16. #include <dt-bindings/clock/mt2701-clk.h>
  17. #include <dt-bindings/power/mt2701-power.h>
  18. #include <dt-bindings/phy/phy.h>
  19. #include <dt-bindings/reset-controller/mt2701-resets.h>
  20. #include <dt-bindings/pinctrl/mt7623-pinfunc.h>
  21. #include "skeleton64.dtsi"
  22. / {
  23. compatible = "mediatek,mt7623";
  24. interrupt-parent = <&sysirq>;
  25. cpus {
  26. #address-cells = <1>;
  27. #size-cells = <0>;
  28. enable-method = "mediatek,mt6589-smp";
  29. cpu0: cpu@0 {
  30. device_type = "cpu";
  31. compatible = "arm,cortex-a7";
  32. reg = <0x0>;
  33. clocks = <&infracfg CLK_INFRA_CPUSEL>,
  34. <&apmixedsys CLK_APMIXED_MAINPLL>;
  35. clock-names = "cpu", "intermediate";
  36. operating-points = <
  37. 598000 1150000
  38. 747500 1150000
  39. 1040000 1150000
  40. 1196000 1200000
  41. 1300000 1300000
  42. >;
  43. };
  44. cpu1: cpu@1 {
  45. device_type = "cpu";
  46. compatible = "arm,cortex-a7";
  47. reg = <0x1>;
  48. clocks = <&infracfg CLK_INFRA_CPUSEL>,
  49. <&apmixedsys CLK_APMIXED_MAINPLL>;
  50. clock-names = "cpu", "intermediate";
  51. operating-points = <
  52. 598000 1150000
  53. 747500 1150000
  54. 1040000 1150000
  55. 1196000 1200000
  56. 1300000 1300000
  57. >;
  58. };
  59. cpu2: cpu@2 {
  60. device_type = "cpu";
  61. compatible = "arm,cortex-a7";
  62. reg = <0x2>;
  63. clocks = <&infracfg CLK_INFRA_CPUSEL>,
  64. <&apmixedsys CLK_APMIXED_MAINPLL>;
  65. clock-names = "cpu", "intermediate";
  66. operating-points = <
  67. 598000 1150000
  68. 747500 1150000
  69. 1040000 1150000
  70. 1196000 1200000
  71. 1300000 1300000
  72. >;
  73. };
  74. cpu3: cpu@3 {
  75. device_type = "cpu";
  76. compatible = "arm,cortex-a7";
  77. reg = <0x3>;
  78. clocks = <&infracfg CLK_INFRA_CPUSEL>,
  79. <&apmixedsys CLK_APMIXED_MAINPLL>;
  80. clock-names = "cpu", "intermediate";
  81. operating-points = <
  82. 598000 1150000
  83. 747500 1150000
  84. 1040000 1150000
  85. 1196000 1200000
  86. 1300000 1300000
  87. >;
  88. };
  89. };
  90. system_clk: dummy13m {
  91. compatible = "fixed-clock";
  92. clock-frequency = <13000000>;
  93. #clock-cells = <0>;
  94. };
  95. rtc_clk: dummy32k {
  96. compatible = "fixed-clock";
  97. clock-frequency = <32000>;
  98. #clock-cells = <0>;
  99. clock-output-names = "clk32k";
  100. };
  101. clk26m: dummy26m {
  102. compatible = "fixed-clock";
  103. clock-frequency = <26000000>;
  104. #clock-cells = <0>;
  105. clock-output-names = "clk26m";
  106. };
  107. timer {
  108. compatible = "arm,armv7-timer";
  109. interrupt-parent = <&gic>;
  110. interrupts = <GIC_PPI 13 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  111. <GIC_PPI 14 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  112. <GIC_PPI 11 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>,
  113. <GIC_PPI 10 (GIC_CPU_MASK_SIMPLE(4) | IRQ_TYPE_LEVEL_HIGH)>;
  114. clock-frequency = <13000000>;
  115. arm,cpu-registers-not-fw-configured;
  116. };
  117. topckgen: power-controller@10000000 {
  118. compatible = "mediatek,mt7623-topckgen",
  119. "mediatek,mt2701-topckgen",
  120. "syscon";
  121. reg = <0 0x10000000 0 0x1000>;
  122. #clock-cells = <1>;
  123. };
  124. infracfg: power-controller@10001000 {
  125. compatible = "mediatek,mt7623-infracfg",
  126. "mediatek,mt2701-infracfg",
  127. "syscon";
  128. reg = <0 0x10001000 0 0x1000>;
  129. #clock-cells = <1>;
  130. #reset-cells = <1>;
  131. };
  132. pericfg: pericfg@10003000 {
  133. compatible = "mediatek,mt7623-pericfg",
  134. "mediatek,mt2701-pericfg",
  135. "syscon";
  136. reg = <0 0x10003000 0 0x1000>;
  137. #clock-cells = <1>;
  138. #reset-cells = <1>;
  139. };
  140. pio: pinctrl@10005000 {
  141. compatible = "mediatek,mt7623-pinctrl";
  142. reg = <0 0x1000b000 0 0x1000>;
  143. mediatek,pctl-regmap = <&syscfg_pctl_a>;
  144. pins-are-numbered;
  145. gpio-controller;
  146. #gpio-cells = <2>;
  147. interrupt-controller;
  148. interrupt-parent = <&gic>;
  149. #interrupt-cells = <2>;
  150. interrupts = <GIC_SPI 113 IRQ_TYPE_LEVEL_HIGH>,
  151. <GIC_SPI 114 IRQ_TYPE_LEVEL_HIGH>;
  152. };
  153. syscfg_pctl_a: syscfg@10005000 {
  154. compatible = "mediatek,mt7623-pctl-a-syscfg", "syscon";
  155. reg = <0 0x10005000 0 0x1000>;
  156. };
  157. scpsys: scpsys@10006000 {
  158. #power-domain-cells = <1>;
  159. compatible = "mediatek,mt7623-scpsys",
  160. "mediatek,mt2701-scpsys";
  161. reg = <0 0x10006000 0 0x1000>;
  162. infracfg = <&infracfg>;
  163. clocks = <&clk26m>,
  164. <&topckgen CLK_TOP_MM_SEL>;
  165. clock-names = "mfg", "mm";
  166. };
  167. watchdog: watchdog@10007000 {
  168. compatible = "mediatek,mt7623-wdt",
  169. "mediatek,mt6589-wdt";
  170. reg = <0 0x10007000 0 0x100>;
  171. };
  172. timer: timer@10008000 {
  173. compatible = "mediatek,mt7623-timer",
  174. "mediatek,mt6577-timer";
  175. reg = <0 0x10008000 0 0x80>;
  176. interrupts = <GIC_SPI 112 IRQ_TYPE_LEVEL_LOW>;
  177. clocks = <&system_clk>, <&rtc_clk>;
  178. clock-names = "system-clk", "rtc-clk";
  179. };
  180. pwrap: pwrap@1000d000 {
  181. compatible = "mediatek,mt7623-pwrap",
  182. "mediatek,mt2701-pwrap";
  183. reg = <0 0x1000d000 0 0x1000>;
  184. reg-names = "pwrap";
  185. interrupts = <GIC_SPI 115 IRQ_TYPE_LEVEL_HIGH>;
  186. resets = <&infracfg MT2701_INFRA_PMIC_WRAP_RST>;
  187. reset-names = "pwrap";
  188. clocks = <&infracfg CLK_INFRA_PMICSPI>,
  189. <&infracfg CLK_INFRA_PMICWRAP>;
  190. clock-names = "spi", "wrap";
  191. };
  192. sysirq: interrupt-controller@10200100 {
  193. compatible = "mediatek,mt7623-sysirq",
  194. "mediatek,mt6577-sysirq";
  195. interrupt-controller;
  196. #interrupt-cells = <3>;
  197. interrupt-parent = <&gic>;
  198. reg = <0 0x10200100 0 0x1c>;
  199. };
  200. apmixedsys: apmixedsys@10209000 {
  201. compatible = "mediatek,mt7623-apmixedsys",
  202. "mediatek,mt2701-apmixedsys";
  203. reg = <0 0x10209000 0 0x1000>;
  204. #clock-cells = <1>;
  205. };
  206. gic: interrupt-controller@10211000 {
  207. compatible = "arm,cortex-a7-gic";
  208. interrupt-controller;
  209. #interrupt-cells = <3>;
  210. interrupt-parent = <&gic>;
  211. reg = <0 0x10211000 0 0x1000>,
  212. <0 0x10212000 0 0x1000>,
  213. <0 0x10214000 0 0x2000>,
  214. <0 0x10216000 0 0x2000>;
  215. };
  216. i2c0: i2c@11007000 {
  217. compatible = "mediatek,mt7623-i2c",
  218. "mediatek,mt6577-i2c";
  219. reg = <0 0x11007000 0 0x70>,
  220. <0 0x11000200 0 0x80>;
  221. interrupts = <GIC_SPI 44 IRQ_TYPE_LEVEL_LOW>;
  222. clock-div = <16>;
  223. clocks = <&pericfg CLK_PERI_I2C0>,
  224. <&pericfg CLK_PERI_AP_DMA>;
  225. clock-names = "main", "dma";
  226. #address-cells = <1>;
  227. #size-cells = <0>;
  228. status = "disabled";
  229. };
  230. i2c1: i2c@11008000 {
  231. compatible = "mediatek,mt7623-i2c",
  232. "mediatek,mt6577-i2c";
  233. reg = <0 0x11008000 0 0x70>,
  234. <0 0x11000280 0 0x80>;
  235. interrupts = <GIC_SPI 45 IRQ_TYPE_LEVEL_LOW>;
  236. clock-div = <16>;
  237. clocks = <&pericfg CLK_PERI_I2C1>,
  238. <&pericfg CLK_PERI_AP_DMA>;
  239. clock-names = "main", "dma";
  240. #address-cells = <1>;
  241. #size-cells = <0>;
  242. status = "disabled";
  243. };
  244. i2c2: i2c@11009000 {
  245. compatible = "mediatek,mt7623-i2c",
  246. "mediatek,mt6577-i2c";
  247. reg = <0 0x11009000 0 0x70>,
  248. <0 0x11000300 0 0x80>;
  249. interrupts = <GIC_SPI 46 IRQ_TYPE_LEVEL_LOW>;
  250. clock-div = <16>;
  251. clocks = <&pericfg CLK_PERI_I2C2>,
  252. <&pericfg CLK_PERI_AP_DMA>;
  253. clock-names = "main", "dma";
  254. #address-cells = <1>;
  255. #size-cells = <0>;
  256. status = "disabled";
  257. };
  258. uart0: serial@11002000 {
  259. compatible = "mediatek,mt7623-uart",
  260. "mediatek,mt6577-uart";
  261. reg = <0 0x11002000 0 0x400>;
  262. interrupts = <GIC_SPI 51 IRQ_TYPE_LEVEL_LOW>;
  263. clocks = <&pericfg CLK_PERI_UART0_SEL>,
  264. <&pericfg CLK_PERI_UART0>;
  265. clock-names = "baud", "bus";
  266. status = "disabled";
  267. };
  268. uart1: serial@11003000 {
  269. compatible = "mediatek,mt7623-uart",
  270. "mediatek,mt6577-uart";
  271. reg = <0 0x11003000 0 0x400>;
  272. interrupts = <GIC_SPI 52 IRQ_TYPE_LEVEL_LOW>;
  273. clocks = <&pericfg CLK_PERI_UART1_SEL>,
  274. <&pericfg CLK_PERI_UART1>;
  275. clock-names = "baud", "bus";
  276. status = "disabled";
  277. };
  278. uart2: serial@11004000 {
  279. compatible = "mediatek,mt7623-uart",
  280. "mediatek,mt6577-uart";
  281. reg = <0 0x11004000 0 0x400>;
  282. interrupts = <GIC_SPI 53 IRQ_TYPE_LEVEL_LOW>;
  283. clocks = <&pericfg CLK_PERI_UART2_SEL>,
  284. <&pericfg CLK_PERI_UART2>;
  285. clock-names = "baud", "bus";
  286. status = "disabled";
  287. };
  288. uart3: serial@11005000 {
  289. compatible = "mediatek,mt7623-uart",
  290. "mediatek,mt6577-uart";
  291. reg = <0 0x11005000 0 0x400>;
  292. interrupts = <GIC_SPI 54 IRQ_TYPE_LEVEL_LOW>;
  293. clocks = <&pericfg CLK_PERI_UART3_SEL>,
  294. <&pericfg CLK_PERI_UART3>;
  295. clock-names = "baud", "bus";
  296. status = "disabled";
  297. };
  298. pwm: pwm@11006000 {
  299. compatible = "mediatek,mt7623-pwm";
  300. reg = <0 0x11006000 0 0x1000>;
  301. resets = <&pericfg MT2701_PERI_PWM_SW_RST>;
  302. reset-names = "pwm";
  303. #pwm-cells = <2>;
  304. clocks = <&topckgen CLK_TOP_PWM_SEL>,
  305. <&pericfg CLK_PERI_PWM>,
  306. <&pericfg CLK_PERI_PWM1>,
  307. <&pericfg CLK_PERI_PWM2>,
  308. <&pericfg CLK_PERI_PWM3>,
  309. <&pericfg CLK_PERI_PWM4>,
  310. <&pericfg CLK_PERI_PWM5>;
  311. clock-names = "top", "main", "pwm1", "pwm2",
  312. "pwm3", "pwm4", "pwm5";
  313. status = "disabled";
  314. };
  315. spi: spi@1100a000 {
  316. compatible = "mediatek,mt7623-spi", "mediatek,mt6589-spi";
  317. reg = <0 0x1100a000 0 0x1000>;
  318. interrupts = <GIC_SPI 78 IRQ_TYPE_LEVEL_LOW>;
  319. clocks = <&pericfg CLK_PERI_SPI0>;
  320. clock-names = "main";
  321. status = "disabled";
  322. };
  323. nandc: nfi@1100d000 {
  324. compatible = "mediatek,mt2701-nfc";
  325. reg = <0 0x1100d000 0 0x1000>;
  326. power-domains = <&scpsys MT2701_POWER_DOMAIN_IFR_MSC>;
  327. interrupts = <GIC_SPI 56 IRQ_TYPE_LEVEL_LOW>;
  328. clocks = <&pericfg CLK_PERI_NFI>,
  329. <&pericfg CLK_PERI_NFI_PAD>;
  330. clock-names = "nfi_clk", "pad_clk";
  331. status = "disabled";
  332. ecc-engine = <&bch>;
  333. #address-cells = <1>;
  334. #size-cells = <0>;
  335. };
  336. bch: ecc@1100e000 {
  337. compatible = "mediatek,mt2701-ecc";
  338. reg = <0 0x1100e000 0 0x1000>;
  339. interrupts = <GIC_SPI 55 IRQ_TYPE_LEVEL_LOW>;
  340. clocks = <&pericfg CLK_PERI_NFI_ECC>;
  341. clock-names = "nfiecc_clk";
  342. status = "disabled";
  343. };
  344. mmc0: mmc@11230000 {
  345. compatible = "mediatek,mt7623-mmc",
  346. "mediatek,mt8135-mmc";
  347. reg = <0 0x11230000 0 0x1000>;
  348. interrupts = <GIC_SPI 39 IRQ_TYPE_LEVEL_LOW>;
  349. clocks = <&pericfg CLK_PERI_MSDC30_0>,
  350. <&topckgen CLK_TOP_MSDC30_0_SEL>;
  351. clock-names = "source", "hclk";
  352. status = "disabled";
  353. };
  354. mmc1: mmc@11240000 {
  355. compatible = "mediatek,mt7623-mmc",
  356. "mediatek,mt8135-mmc";
  357. reg = <0 0x11240000 0 0x1000>;
  358. interrupts = <GIC_SPI 40 IRQ_TYPE_LEVEL_LOW>;
  359. clocks = <&pericfg CLK_PERI_MSDC30_1>,
  360. <&topckgen CLK_TOP_MSDC30_1_SEL>;
  361. clock-names = "source", "hclk";
  362. status = "disabled";
  363. };
  364. usb1: usb@1a1c0000 {
  365. compatible = "mediatek,mt2701-xhci",
  366. "mediatek,mt8173-xhci";
  367. reg = <0 0x1a1c0000 0 0x1000>,
  368. <0 0x1a1c4700 0 0x0100>;
  369. interrupts = <GIC_SPI 196 IRQ_TYPE_LEVEL_LOW>;
  370. clocks = <&hifsys CLK_HIFSYS_USB0PHY>,
  371. <&topckgen CLK_TOP_ETHIF_SEL>;
  372. clock-names = "sys_ck", "ethif";
  373. power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
  374. phys = <&phy_port0 PHY_TYPE_USB3>;
  375. status = "disabled";
  376. };
  377. u3phy1: usb-phy@1a1c4000 {
  378. compatible = "mediatek,mt2701-u3phy",
  379. "mediatek,mt8173-u3phy";
  380. reg = <0 0x1a1c4000 0 0x0700>;
  381. clocks = <&clk26m>;
  382. clock-names = "u3phya_ref";
  383. #phy-cells = <1>;
  384. #address-cells = <2>;
  385. #size-cells = <2>;
  386. ranges;
  387. status = "disabled";
  388. phy_port0: phy_port0: port@1a1c4800 {
  389. reg = <0 0x1a1c4800 0 0x800>;
  390. #phy-cells = <1>;
  391. status = "okay";
  392. };
  393. };
  394. usb2: usb@1a240000 {
  395. compatible = "mediatek,mt2701-xhci",
  396. "mediatek,mt8173-xhci";
  397. reg = <0 0x1a240000 0 0x1000>,
  398. <0 0x1a244700 0 0x0100>;
  399. interrupts = <GIC_SPI 197 IRQ_TYPE_LEVEL_LOW>;
  400. clocks = <&hifsys CLK_HIFSYS_USB1PHY>,
  401. <&topckgen CLK_TOP_ETHIF_SEL>;
  402. clock-names = "sys_ck", "ethif";
  403. power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
  404. phys = <&u3phy2 0>;
  405. status = "disabled";
  406. };
  407. u3phy2: usb-phy@1a244000 {
  408. compatible = "mediatek,mt2701-u3phy",
  409. "mediatek,mt8173-u3phy";
  410. reg = <0 0x1a244000 0 0x0700>,
  411. <0 0x1a244800 0 0x0800>;
  412. clocks = <&clk26m>;
  413. clock-names = "u3phya_ref";
  414. #phy-cells = <1>;
  415. status = "disabled";
  416. };
  417. hifsys: clock-controller@1a000000 {
  418. compatible = "mediatek,mt7623-hifsys",
  419. "mediatek,mt2701-hifsys",
  420. "syscon";
  421. reg = <0 0x1a000000 0 0x1000>;
  422. #clock-cells = <1>;
  423. #reset-cells = <1>;
  424. };
  425. pcie: pcie@1a140000 {
  426. compatible = "mediatek,mt7623-pcie";
  427. device_type = "pci";
  428. reg = <0 0x1a140000 0 0x8000>, /* PCI-Express registers */
  429. <0 0x1a149000 0 0x1000>, /* PCI-Express PHY0 */
  430. <0 0x1a14a000 0 0x1000>, /* PCI-Express PHY1 */
  431. <0 0x1a244000 0 0x1000>; /* PCI-Express PHY2 */
  432. reg-names = "pcie", "pcie phy0", "pcie phy1", "pcie phy2";
  433. interrupts = <GIC_SPI 193 IRQ_TYPE_LEVEL_LOW>,
  434. <GIC_SPI 194 IRQ_TYPE_LEVEL_LOW>,
  435. <GIC_SPI 195 IRQ_TYPE_LEVEL_LOW>;
  436. interrupt-names = "pcie0", "pcie1", "pcie2";
  437. clocks = <&topckgen CLK_TOP_ETHIF_SEL>;
  438. clock-names = "pcie";
  439. power-domains = <&scpsys MT2701_POWER_DOMAIN_HIF>;
  440. resets = <&hifsys MT2701_HIFSYS_PCIE0_RST>,
  441. <&hifsys MT2701_HIFSYS_PCIE1_RST>,
  442. <&hifsys MT2701_HIFSYS_PCIE2_RST>;
  443. reset-names = "pcie0", "pcie1", "pcie2";
  444. mediatek,hifsys = <&hifsys>;
  445. bus-range = <0x00 0xff>;
  446. #address-cells = <3>;
  447. #size-cells = <2>;
  448. ranges = <0x81000000 0 0x1a160000 0 0x1a160000 0 0x00010000 /* io space */
  449. 0x83000000 0 0x60000000 0 0x60000000 0 0x10000000>; /* pci memory */
  450. status = "disabled";
  451. pcie@1,0 {
  452. device_type = "pci";
  453. reg = <0x0800 0 0 0 0>;
  454. #address-cells = <3>;
  455. #size-cells = <2>;
  456. ranges;
  457. };
  458. pcie@2,0{
  459. device_type = "pci";
  460. reg = <0x1000 0 0 0 0>;
  461. #address-cells = <3>;
  462. #size-cells = <2>;
  463. ranges;
  464. };
  465. pcie@3,0{
  466. device_type = "pci";
  467. reg = <0x1800 0 0 0 0>;
  468. #address-cells = <3>;
  469. #size-cells = <2>;
  470. ranges;
  471. };
  472. };
  473. ethsys: syscon@1b000000 {
  474. compatible = "mediatek,mt2701-ethsys", "syscon";
  475. reg = <0 0x1b000000 0 0x1000>;
  476. #reset-cells = <1>;
  477. #clock-cells = <1>;
  478. };
  479. eth: ethernet@1b100000 {
  480. compatible = "mediatek,mt7623-eth";
  481. reg = <0 0x1b100000 0 0x20000>;
  482. clocks = <&topckgen CLK_TOP_ETHIF_SEL>,
  483. <&ethsys CLK_ETHSYS_ESW>,
  484. <&ethsys CLK_ETHSYS_GP2>,
  485. <&ethsys CLK_ETHSYS_GP1>;
  486. clock-names = "ethif", "esw", "gp2", "gp1";
  487. interrupts = <GIC_SPI 200 IRQ_TYPE_LEVEL_LOW
  488. GIC_SPI 199 IRQ_TYPE_LEVEL_LOW
  489. GIC_SPI 198 IRQ_TYPE_LEVEL_LOW>;
  490. power-domains = <&scpsys MT2701_POWER_DOMAIN_ETH>;
  491. resets = <&ethsys 6>;
  492. reset-names = "eth";
  493. mediatek,ethsys = <&ethsys>;
  494. mediatek,pctl = <&syscfg_pctl_a>;
  495. mediatek,switch = <&gsw>;
  496. #address-cells = <1>;
  497. #size-cells = <0>;
  498. status = "disabled";
  499. gmac1: mac@0 {
  500. compatible = "mediatek,eth-mac";
  501. reg = <0>;
  502. status = "disabled";
  503. phy-mode = "rgmii";
  504. fixed-link {
  505. speed = <1000>;
  506. full-duplex;
  507. pause;
  508. };
  509. };
  510. gmac2: mac@1 {
  511. compatible = "mediatek,eth-mac";
  512. reg = <1>;
  513. status = "disabled";
  514. };
  515. mdio-bus {
  516. #address-cells = <1>;
  517. #size-cells = <0>;
  518. phy5: ethernet-phy@5 {
  519. reg = <5>;
  520. phy-mode = "rgmii-rxid";
  521. };
  522. phy1f: ethernet-phy@1f {
  523. reg = <0x1f>;
  524. phy-mode = "rgmii";
  525. };
  526. };
  527. };
  528. gsw: switch@1b100000 {
  529. compatible = "mediatek,mt7623-gsw";
  530. interrupt-parent = <&pio>;
  531. interrupts = <168 IRQ_TYPE_EDGE_RISING>;
  532. resets = <&ethsys 2>;
  533. reset-names = "eth";
  534. clocks = <&apmixedsys CLK_APMIXED_TRGPLL>;
  535. clock-names = "trgpll";
  536. mt7530-supply = <&mt6323_vpa_reg>;
  537. mediatek,pctl-regmap = <&syscfg_pctl_a>;
  538. mediatek,ethsys = <&ethsys>;
  539. status = "disabled";
  540. };
  541. };