// SPDX-License-Identifier: GPL-2.0-or-later /dts-v1/; #include #include #include #include #include #include #include / { #address-cells = <1>; #size-cells = <1>; compatible = "brcm,bcm6358"; aliases { pflash = &pflash; pinctrl = &pinctrl; serial0 = &uart0; serial1 = &uart1; spi0 = &lsspi; }; chosen { bootargs = "earlycon"; stdout-path = "serial0:115200n8"; }; clocks { periph_osc: periph-osc { compatible = "fixed-clock"; #clock-cells = <0>; clock-frequency = <50000000>; clock-output-names = "periph"; }; }; cpus { #address-cells = <1>; #size-cells = <0>; brcm,bmips-cbr-reg = <0xff400000>; mips-hpt-frequency = <150000000>; cpu@0 { compatible = "brcm,bmips4350", "mips,mips4Kc"; device_type = "cpu"; reg = <0>; }; cpu@1 { compatible = "brcm,bmips4350", "mips,mips4Kc"; device_type = "cpu"; reg = <1>; }; }; cpu_intc: interrupt-controller { #address-cells = <0>; compatible = "mti,cpu-interrupt-controller"; interrupt-controller; #interrupt-cells = <1>; }; memory@0 { device_type = "memory"; reg = <0 0>; }; pflash: nor@1e000000 { #address-cells = <1>; #size-cells = <1>; compatible = "cfi-flash"; reg = <0x1e000000 0x2000000>; bank-width = <2>; status = "disabled"; }; ubus { #address-cells = <1>; #size-cells = <1>; compatible = "simple-bus"; ranges; periph_clk: clock-controller@fffe0004 { compatible = "brcm,bcm6358-clocks"; reg = <0xfffe0004 0x4>; #clock-cells = <1>; }; pll_cntl: syscon@fffe0008 { compatible = "syscon", "simple-mfd"; reg = <0xfffe0008 0x4>; native-endian; syscon-reboot { compatible = "syscon-reboot"; offset = <0x0>; mask = <0x1>; }; }; periph_intc: interrupt-controller@fffe000c { #address-cells = <1>; compatible = "brcm,bcm6345-l1-intc"; reg = <0xfffe000c 0x8>, <0xfffe0038 0x8>; interrupt-controller; #interrupt-cells = <1>; interrupt-parent = <&cpu_intc>; interrupts = <2>, <3>; }; ext_intc0: interrupt-controller@fffe0014 { #address-cells = <1>; compatible = "brcm,bcm6345-ext-intc"; reg = <0xfffe0014 0x4>; interrupt-controller; #interrupt-cells = <2>; interrupt-parent = <&periph_intc>; interrupts = , , , ; }; ext_intc1: interrupt-controller@fffe001c { #address-cells = <1>; compatible = "brcm,bcm6345-ext-intc"; reg = <0xfffe001c 0x4>; interrupt-controller; #interrupt-cells = <2>; interrupt-parent = <&periph_intc>; interrupts = , ; }; periph_rst: reset-controller@fffe0034 { compatible = "brcm,bcm6345-reset"; reg = <0xfffe0034 0x4>; #reset-cells = <1>; }; wdt: watchdog@fffe005c { compatible = "brcm,bcm7038-wdt"; reg = <0xfffe005c 0xc>; clocks = <&periph_osc>; timeout-sec = <30>; }; gpio_cntl: syscon@fffe0080 { #address-cells = <1>; #size-cells = <1>; compatible = "brcm,bcm6358-gpio-sysctl", "syscon", "simple-mfd"; reg = <0xfffe0080 0x50>; ranges = <0 0xfffe0080 0x80>; native-endian; gpio: gpio@0 { compatible = "brcm,bcm6358-gpio"; reg-names = "dirout", "dat"; reg = <0x0 0x8>, <0x8 0x8>; gpio-controller; gpio-ranges = <&pinctrl 0 0 40>; #gpio-cells = <2>; }; pinctrl: pinctrl@18 { compatible = "brcm,bcm6358-pinctrl"; reg = <0x18 0x4>; pinctrl_ebi_cs: ebi_cs-pins { function = "ebi_cs"; groups = "ebi_cs_grp"; }; pinctrl_uart1: uart1-pins { function = "uart1"; groups = "uart1_grp"; }; pinctrl_serial_led: serial_led-pins { function = "serial_led"; groups = "serial_led_grp"; }; pinctrl_legacy_led: legacy_led-pins { function = "legacy_led"; groups = "legacy_led_grp"; }; pinctrl_led: led-pins { function = "led"; groups = "led_grp"; }; pinctrl_spi_cs_23: spi_cs-pins { function = "spi_cs"; groups = "spi_cs_grp"; }; pinctrl_utopia: utopia-pins { function = "utopia"; groups = "utopia_grp"; }; pinctrl_pwm_syn_clk: pwm_syn_clk-pins { function = "pwm_syn_clk"; groups = "pwm_syn_clk_grp"; }; pinctrl_sys_irq: sys_irq-pins { function = "sys_irq"; groups = "sys_irq_grp"; }; }; }; leds: led-controller@fffe00d0 { #address-cells = <1>; #size-cells = <0>; compatible = "brcm,bcm6358-leds"; reg = <0xfffe00d0 0x8>; status = "disabled"; }; uart0: serial@fffe0100 { compatible = "brcm,bcm6345-uart"; reg = <0xfffe0100 0x18>; interrupt-parent = <&periph_intc>; interrupts = ; clocks = <&periph_osc>; clock-names = "periph"; status = "disabled"; }; uart1: serial@fffe0120 { compatible = "brcm,bcm6345-uart"; reg = <0xfffe0120 0x18>; interrupt-parent = <&periph_intc>; interrupts = ; clocks = <&periph_osc>; clock-names = "periph"; status = "disabled"; }; lsspi: spi@fffe0800 { #address-cells = <1>; #size-cells = <0>; compatible = "brcm,bcm6358-spi"; reg = <0xfffe0800 0x70c>; interrupt-parent = <&periph_intc>; interrupts = ; clocks = <&periph_clk BCM6358_CLK_SPI>; clock-names = "spi"; resets = <&periph_rst BCM6358_RST_SPI>; status = "disabled"; }; pci: pci@fffe1000 { compatible = "brcm,bcm6348-pci"; reg = <0xfffe1000 0x200>; #address-cells = <3>; #size-cells = <2>; device_type = "pci"; bus-range = <0x00 0x01>; ranges = <0x2000000 0 0x30000000 0x30000000 0 0x8000000>, <0x1000000 0 0x08000000 0x08000000 0 0x0010000>; linux,pci-probe-only = <1>; interrupt-parent = <&periph_intc>; interrupts = ; resets = <&periph_rst BCM6358_RST_MPI>; reset-names = "pci"; brcm,remap; status = "disabled"; }; ehci: usb@fffe1300 { compatible = "brcm,bcm6358-ehci", "generic-ehci"; reg = <0xfffe1300 0x100>; big-endian; spurious-oc; interrupt-parent = <&periph_intc>; interrupts = ; phys = <&usbh 0>; phy-names = "usb"; status = "disabled"; }; ohci: usb@fffe1400 { compatible = "brcm,bcm6358-ohci", "generic-ohci"; reg = <0xfffe1400 0x100>; big-endian; no-big-frame-no; interrupt-parent = <&periph_intc>; interrupts = ; phys = <&usbh 0>; phy-names = "usb"; status = "disabled"; }; usbh: usb-phy@fffe1500 { compatible = "brcm,bcm6358-usbh-phy"; reg = <0xfffe1500 0x38>; #phy-cells = <1>; resets = <&periph_rst BCM6358_RST_USBH>; status = "disabled"; }; ethernet0: ethernet@fffe4000 { compatible = "brcm,bcm6358-emac"; reg = <0xfffe4000 0x2dc>; clocks = <&periph_clk BCM6358_CLK_ENET0>; interrupt-parent = <&periph_intc>; interrupts = , , ; interrupt-names = "emac", "rx", "tx"; brcm,iudma = <&iudma>; dma-rx = <0>; dma-tx = <1>; status = "disabled"; mdio0: mdio { #address-cells = <1>; #size-cells = <0>; }; }; ethernet1: ethernet@fffe4800 { compatible = "brcm,bcm6358-emac"; reg = <0xfffe4800 0x2dc>; clocks = <&periph_clk BCM6358_CLK_ENET1>; interrupt-parent = <&periph_intc>; interrupts = , , ; interrupt-names = "emac", "rx", "tx"; brcm,iudma = <&iudma>; brcm,external-mii; dma-rx = <2>; dma-tx = <3>; status = "disabled"; mdio1: mdio { #address-cells = <1>; #size-cells = <0>; }; }; iudma: dma@fffe5000 { #address-cells = <1>; #size-cells = <1>; compatible = "brcm,bcm6358-iudma"; reg = <0xfffe5000 0x24>, <0xfffe5100 0x80>, <0xfffe5200 0x80>; reg-names = "dma", "dma-channels", "dma-sram"; dma-channels = <8>; clocks = <&periph_clk BCM6358_CLK_EMUSB>, <&periph_clk BCM6358_CLK_USBSU>, <&periph_clk BCM6358_CLK_EPHY>, <&periph_clk BCM6358_CLK_ENET>; resets = <&periph_rst BCM6358_RST_ENET>, <&periph_rst BCM6358_RST_EPHY>; status = "disabled"; }; }; };