| // SPDX-License-Identifier: GPL-2.0 |
| /* |
| * Copyright (C) 2022 MediaTek Inc. All rights reserved. |
| * |
| * Author: Weijie Gao <weijie.gao@mediatek.com> |
| */ |
| |
| #include <dt-bindings/clock/mt7621-clk.h> |
| #include <dt-bindings/reset/mt7621-reset.h> |
| #include <dt-bindings/phy/phy.h> |
| |
| / { |
| #address-cells = <1>; |
| #size-cells = <1>; |
| compatible = "mediatek,mt7621-soc"; |
| |
| cpus { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| cpu@0 { |
| device_type = "cpu"; |
| compatible = "mips,mips1004Kc"; |
| reg = <0>; |
| }; |
| |
| cpu@1 { |
| device_type = "cpu"; |
| compatible = "mips,mips1004Kc"; |
| reg = <1>; |
| }; |
| }; |
| |
| clk48m: clk48m { |
| compatible = "fixed-clock"; |
| |
| clock-frequency = <48000000>; |
| |
| #clock-cells = <0>; |
| }; |
| |
| clk50m: clk50m { |
| compatible = "fixed-clock"; |
| |
| clock-frequency = <50000000>; |
| |
| #clock-cells = <0>; |
| }; |
| |
| sysc: sysctrl@1e000000 { |
| compatible = "mediatek,mt7621-sysc", "syscon"; |
| reg = <0x1e000000 0x100>; |
| |
| clkctrl: clock-controller@1e000030 { |
| compatible = "mediatek,mt7621-clk"; |
| mediatek,memc = <&memc>; |
| |
| #clock-cells = <1>; |
| }; |
| }; |
| |
| rstctrl: reset-controller@1e000034 { |
| compatible = "mediatek,mtmips-reset"; |
| reg = <0x1e000034 0x4>; |
| #reset-cells = <1>; |
| }; |
| |
| reboot: resetctl-reboot { |
| compatible = "resetctl-reboot"; |
| |
| resets = <&rstctrl RST_SYS>; |
| reset-names = "sysreset"; |
| }; |
| |
| memc: memctrl@1e005000 { |
| compatible = "mediatek,mt7621-memc", "syscon"; |
| reg = <0x1e005000 0x1000>; |
| }; |
| |
| pinctrl: pinctrl@1e000060 { |
| compatible = "mediatek,mt7621-pinctrl"; |
| reg = <0x1e000048 0x30>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&state_default>; |
| |
| state_default: pin_state { |
| }; |
| |
| uart1_pins: uart1_pins { |
| groups = "uart1"; |
| function = "uart"; |
| }; |
| |
| uart2_pins: uart2_pins { |
| groups = "uart2"; |
| function = "uart"; |
| }; |
| |
| uart3_pins: uart3_pins { |
| groups = "uart3"; |
| function = "uart"; |
| }; |
| |
| sdxc_pins: sdxc_pins { |
| groups = "sdxc"; |
| function = "sdxc"; |
| }; |
| |
| spi_pins: spi_pins { |
| groups = "spi"; |
| function = "spi"; |
| }; |
| |
| eth_pins: eth_pins { |
| mdio_pins { |
| groups = "mdio"; |
| function = "mdio"; |
| }; |
| |
| rgmii1_pins { |
| groups = "rgmii1"; |
| function = "rgmii"; |
| }; |
| |
| esw_pins { |
| groups = "esw int"; |
| function = "esw int"; |
| }; |
| |
| mdio_pconf { |
| groups = "mdio"; |
| drive-strength = <2>; |
| }; |
| }; |
| }; |
| |
| watchdog: watchdog@1e000100 { |
| compatible = "mediatek,mt7621-wdt"; |
| reg = <0x1e000100 0x40>; |
| |
| resets = <&rstctrl RST_TIMER>; |
| reset-names = "wdt"; |
| |
| status = "disabled"; |
| }; |
| |
| gpio: gpio@1e000600 { |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| compatible = "mtk,mt7621-gpio"; |
| reg = <0x1e000600 0x100>; |
| |
| resets = <&rstctrl RST_PIO>; |
| reset-names = "pio"; |
| |
| gpio0: bank@0 { |
| reg = <0>; |
| compatible = "mtk,mt7621-gpio-bank"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| }; |
| |
| gpio1: bank@1 { |
| reg = <1>; |
| compatible = "mtk,mt7621-gpio-bank"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| }; |
| |
| gpio2: bank@2 { |
| reg = <2>; |
| compatible = "mtk,mt7621-gpio-bank"; |
| gpio-controller; |
| #gpio-cells = <2>; |
| }; |
| }; |
| |
| spi: spi@1e000b00 { |
| compatible = "ralink,mt7621-spi"; |
| reg = <0x1e000b00 0x40>; |
| |
| status = "disabled"; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&spi_pins>; |
| |
| resets = <&rstctrl RST_SPI>; |
| reset-names = "spi"; |
| |
| clocks = <&clkctrl MT7621_CLK_SPI>; |
| |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| |
| uart0: uart1@1e000c00 { |
| compatible = "mediatek,hsuart", "ns16550a"; |
| reg = <0x1e000c00 0x100>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&uart1_pins>; |
| |
| clocks = <&clkctrl MT7621_CLK_UART1>; |
| |
| resets = <&rstctrl RST_UART1>; |
| |
| reg-shift = <2>; |
| }; |
| |
| uart1: uart2@1e000d00 { |
| compatible = "mediatek,hsuart", "ns16550a"; |
| reg = <0x1e000d00 0x100>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&uart2_pins>; |
| |
| clocks = <&clkctrl MT7621_CLK_UART2>; |
| |
| resets = <&rstctrl RST_UART2>; |
| |
| reg-shift = <2>; |
| |
| status = "disabled"; |
| }; |
| |
| uart2: uart3@1e000e00 { |
| compatible = "mediatek,hsuart", "ns16550a"; |
| reg = <0x1e000e00 0x100>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&uart3_pins>; |
| |
| clocks = <&clkctrl MT7621_CLK_UART3>; |
| |
| resets = <&rstctrl RST_UART3>; |
| |
| reg-shift = <2>; |
| |
| status = "disabled"; |
| }; |
| |
| eth: eth@1e100000 { |
| compatible = "mediatek,mt7621-eth"; |
| reg = <0x1e100000 0x20000>; |
| mediatek,ethsys = <&sysc>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <ð_pins>; |
| |
| resets = <&rstctrl RST_FE>, <&rstctrl RST_GMAC>, <&rstctrl RST_MCM>; |
| reset-names = "fe", "gmac", "mcm"; |
| |
| clocks = <&clkctrl MT7621_CLK_GDMA>, |
| <&clkctrl MT7621_CLK_ETH>; |
| clock-names = "gmac", "fe"; |
| |
| #address-cells = <1>; |
| #size-cells = <0>; |
| |
| mediatek,gmac-id = <0>; |
| phy-mode = "rgmii"; |
| mediatek,switch = "mt7530"; |
| mediatek,mcm; |
| |
| fixed-link { |
| speed = <1000>; |
| full-duplex; |
| }; |
| }; |
| |
| mmc: mmc@1e130000 { |
| compatible = "mediatek,mt7621-mmc"; |
| reg = <0x1e130000 0x4000>; |
| |
| status = "disabled"; |
| |
| bus-width = <4>; |
| builtin-cd = <1>; |
| r_smpl = <1>; |
| |
| pinctrl-names = "default"; |
| pinctrl-0 = <&sdxc_pins>; |
| |
| clocks = <&clk50m>, <&clkctrl MT7621_CLK_SHXC>; |
| clock-names = "source", "hclk"; |
| |
| resets = <&rstctrl RST_SDXC>; |
| }; |
| |
| ssusb: usb@1e1c0000 { |
| compatible = "mediatek,mt7621-xhci", "mediatek,mtk-xhci"; |
| reg = <0x1e1c0000 0x1000>, <0x1e1d0700 0x100>; |
| reg-names = "mac", "ippc"; |
| |
| clocks = <&clk48m>, <&clk48m>; |
| clock-names = "sys_ck", "ref_ck"; |
| |
| phys = <&u2port0 PHY_TYPE_USB2>, |
| <&u3port0 PHY_TYPE_USB3>, |
| <&u2port1 PHY_TYPE_USB2>; |
| |
| status = "disabled"; |
| }; |
| |
| u3phy: usb-phy@1e1d0000 { |
| compatible = "mediatek,mt7621-u3phy", |
| "mediatek,generic-tphy-v1"; |
| reg = <0x1e1d0000 0x700>; |
| #address-cells = <1>; |
| #size-cells = <1>; |
| ranges; |
| status = "disabled"; |
| |
| u2port0: usb-phy@1e1d0800 { |
| reg = <0x1e1d0800 0x0100>; |
| #phy-cells = <1>; |
| clocks = <&clk48m>; |
| clock-names = "ref"; |
| }; |
| |
| u3port0: usb-phy@1e1d0900 { |
| reg = <0x1e1d0900 0x0100>; |
| #phy-cells = <1>; |
| }; |
| |
| u2port1: usb-phy@1e1d1000 { |
| reg = <0x1e1d1000 0x0100>; |
| #phy-cells = <1>; |
| clocks = <&clk48m>; |
| clock-names = "ref"; |
| }; |
| }; |
| |
| i2c: i2c@1e000900 { |
| compatible = "i2c-gpio"; |
| |
| status = "disabled"; |
| |
| i2c-gpio,delay-us = <3>; |
| |
| gpios = <&gpio0 3 1>, /* PIN3 as SDA */ |
| <&gpio0 4 1>; /* PIN4 as CLK */ |
| |
| #address-cells = <1>; |
| #size-cells = <0>; |
| }; |
| }; |