blob: de354fe2ce26173903fff8c844937d4febadc2cb [file] [log] [blame]
// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
* Copyright (c) 2018 Microsemi Corporation
*/
#include <dt-bindings/gpio/gpio.h>
/ {
#address-cells = <1>;
#size-cells = <1>;
compatible = "mscc,luton";
cpus {
#address-cells = <1>;
#size-cells = <0>;
cpu@0 {
compatible = "mips,mips24KEc";
device_type = "cpu";
reg = <0>;
};
};
aliases {
serial0 = &uart0;
};
sys_clk: sys-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <250000000>;
};
ahb_clk: ahb-clk {
compatible = "fixed-clock";
#clock-cells = <0>;
clock-frequency = <208333333>;
};
ahb {
compatible = "simple-bus";
#address-cells = <1>;
#size-cells = <1>;
ranges = <0 0x60000000 0x10200000>;
uart0: serial@10100000 {
pinctrl-0 = <&uart_pins>;
pinctrl-names = "default";
compatible = "ns16550a";
reg = <0x10100000 0x20>;
clocks = <&ahb_clk>;
reg-io-width = <4>;
reg-shift = <2>;
status = "disabled";
};
gpio: pinctrl@70068 {
compatible = "mscc,luton-pinctrl";
reg = <0x70068 0x68>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&gpio 0 0 32>;
sgpio_pins: sgpio-pins {
pins = "GPIO_0", "GPIO_1", "GPIO_2", "GPIO_3";
function = "sio";
};
uart_pins: uart-pins {
pins = "GPIO_30", "GPIO_31";
function = "uart";
};
};
sgpio: gpio@70130 {
compatible = "mscc,luton-sgpio";
status = "disabled";
clocks = <&sys_clk>;
pinctrl-0 = <&sgpio_pins>;
pinctrl-names = "default";
reg = <0x0070130 0x100>;
gpio-controller;
#gpio-cells = <2>;
gpio-ranges = <&sgpio 0 0 64>;
};
spi0: spi-bitbang {
compatible = "mscc,luton-bb-spi";
status = "okay";
reg = <0x10000064 0x4>;
num-chipselects = <1>;
#address-cells = <1>;
#size-cells = <0>;
};
switch: switch@1010000 {
compatible = "mscc,vsc7527-switch";
reg = <0x1e0000 0x0100>, // VTSS_TO_DEV_0
<0x1f0000 0x0100>, // VTSS_TO_DEV_1
<0x200000 0x0100>, // VTSS_TO_DEV_2
<0x210000 0x0100>, // VTSS_TO_DEV_3
<0x220000 0x0100>, // VTSS_TO_DEV_4
<0x230000 0x0100>, // VTSS_TO_DEV_5
<0x240000 0x0100>, // VTSS_TO_DEV_6
<0x250000 0x0100>, // VTSS_TO_DEV_7
<0x260000 0x0100>, // VTSS_TO_DEV_8
<0x270000 0x0100>, // VTSS_TO_DEV_9
<0x280000 0x0100>, // VTSS_TO_DEV_10
<0x290000 0x0100>, // VTSS_TO_DEV_11
<0x2a0000 0x0100>, // VTSS_TO_DEV_12
<0x2b0000 0x0100>, // VTSS_TO_DEV_13
<0x2c0000 0x0100>, // VTSS_TO_DEV_14
<0x2d0000 0x0100>, // VTSS_TO_DEV_15
<0x2e0000 0x0100>, // VTSS_TO_DEV_16
<0x2f0000 0x0100>, // VTSS_TO_DEV_17
<0x300000 0x0100>, // VTSS_TO_DEV_18
<0x310000 0x0100>, // VTSS_TO_DEV_19
<0x320000 0x0100>, // VTSS_TO_DEV_20
<0x330000 0x0100>, // VTSS_TO_DEV_21
<0x340000 0x0100>, // VTSS_TO_DEV_22
<0x350000 0x0100>, // VTSS_TO_DEV_23
<0x010000 0x1000>, // VTSS_TO_SYS
<0x020000 0x1000>, // VTSS_TO_ANA
<0x030000 0x1000>, // VTSS_TO_REW
<0x070000 0x1000>, // VTSS_TO_DEVCPU_GCB
<0x080000 0x0100>, // VTSS_TO_DEVCPU_QS
<0x0a0000 0x0100>; // VTSS_TO_HSIO
reg-names = "port0", "port1", "port2", "port3",
"port4", "port5", "port6", "port7",
"port8", "port9", "port10", "port11",
"port12", "port13", "port14", "port15",
"port16", "port17", "port18", "port19",
"port20", "port21", "port22", "port23",
"sys", "ana", "rew", "gcb", "qs", "hsio";
status = "okay";
ethernet-ports {
#address-cells = <1>;
#size-cells = <0>;
port0: port@0 {
reg = <0>;
};
port1: port@1 {
reg = <1>;
};
port2: port@2 {
reg = <2>;
};
port3: port@3 {
reg = <3>;
};
port4: port@4 {
reg = <4>;
};
port5: port@5 {
reg = <5>;
};
port6: port@6 {
reg = <6>;
};
port7: port@7 {
reg = <7>;
};
port8: port@8 {
reg = <8>;
};
port9: port@9 {
reg = <9>;
};
port10: port@10 {
reg = <10>;
};
port11: port@11 {
reg = <11>;
};
port12: port@12 {
reg = <12>;
};
port13: port@13 {
reg = <13>;
};
port14: port@14 {
reg = <14>;
};
port15: port@15 {
reg = <15>;
};
port16: port@16 {
reg = <16>;
};
port17: port@17 {
reg = <17>;
};
port18: port@18 {
reg = <18>;
};
port19: port@19 {
reg = <19>;
};
port20: port@20 {
reg = <20>;
};
port21: port@21 {
reg = <21>;
};
port22: port@22 {
reg = <22>;
};
port23: port@23 {
reg = <23>;
};
};
};
mdio0: mdio@700a0 {
#address-cells = <1>;
#size-cells = <0>;
compatible = "mscc,luton-miim";
reg = <0x700a0 0x24>;
status = "disabled";
phy0: ethernet-phy@0 {
reg = <0>;
};
phy1: ethernet-phy@1 {
reg = <1>;
};
phy2: ethernet-phy@2 {
reg = <2>;
};
phy3: ethernet-phy@3 {
reg = <3>;
};
phy4: ethernet-phy@4 {
reg = <4>;
};
phy5: ethernet-phy@5 {
reg = <5>;
};
phy6: ethernet-phy@6 {
reg = <6>;
};
phy7: ethernet-phy@7 {
reg = <7>;
};
phy8: ethernet-phy@8 {
reg = <8>;
};
phy9: ethernet-phy@9 {
reg = <9>;
};
phy10: ethernet-phy@10 {
reg = <10>;
};
phy11: ethernet-phy@11 {
reg = <11>;
};
};
};
};