// SPDX-License-Identifier: GPL-2.0-or-later OR MIT
/*
 * Broadcom BCM470X / BCM5301X arm platform code.
 * DTS for SmartRG SR400ac
 *
 * Copyright (C) 2015 Rafał Miłecki <zajec5@gmail.com>
 */

/dts-v1/;

#include "bcm4708.dtsi"
#include "bcm5301x-nand-cs0-bch8.dtsi"

/ {
	compatible = "smartrg,sr400ac", "brcm,bcm4708";
	model = "SmartRG SR400ac";

	chosen {
		bootargs = "console=ttyS0,115200 earlycon";
	};

	memory@0 {
		device_type = "memory";
		reg = <0x00000000 0x08000000>,
		      <0x88000000 0x08000000>;
	};

	leds {
		compatible = "gpio-leds";

		power-white {
			label = "bcm53xx:white:power";
			gpios = <&chipcommon 1 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-on";
		};

		power-amber {
			label = "bcm53xx:amber:power";
			gpios = <&chipcommon 2 GPIO_ACTIVE_HIGH>;
		};

		usb2 {
			label = "bcm53xx:white:usb2";
			gpios = <&chipcommon 3 GPIO_ACTIVE_HIGH>;
			trigger-sources = <&ohci_port2>, <&ehci_port2>;
			linux,default-trigger = "usbport";
		};

		usb3-white {
			label = "bcm53xx:white:usb3";
			gpios = <&chipcommon 4 GPIO_ACTIVE_HIGH>;
			trigger-sources = <&xhci_port1>;
			linux,default-trigger = "usbport";
		};

		usb3-green {
			label = "bcm53xx:green:usb3";
			gpios = <&chipcommon 5 GPIO_ACTIVE_HIGH>;
			trigger-sources = <&ohci_port1>, <&ehci_port1>;
			linux,default-trigger = "usbport";
		};

		wps {
			label = "bcm53xx:white:wps";
			gpios = <&chipcommon 6 GPIO_ACTIVE_HIGH>;
		};

		status-red {
			label = "bcm53xx:red:status";
			gpios = <&chipcommon 8 GPIO_ACTIVE_HIGH>;
		};

		status-green {
			label = "bcm53xx:green:status";
			gpios = <&chipcommon 9 GPIO_ACTIVE_HIGH>;
		};

		status-blue {
			label = "bcm53xx:blue:status";
			gpios = <&chipcommon 10 GPIO_ACTIVE_HIGH>;
		};

		wan-white {
			label = "bcm53xx:white:wan";
			gpios = <&chipcommon 12 GPIO_ACTIVE_HIGH>;
		};

		wan-red {
			label = "bcm53xx:red:wan";
			gpios = <&chipcommon 13 GPIO_ACTIVE_HIGH>;
		};
	};

	gpio-keys {
		compatible = "gpio-keys";

		rfkill {
			label = "WiFi";
			linux,code = <KEY_RFKILL>;
			gpios = <&chipcommon 0 GPIO_ACTIVE_LOW>;
		};

		wps {
			label = "WPS";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&chipcommon 7 GPIO_ACTIVE_LOW>;
		};

		restart {
			label = "Reset";
			linux,code = <KEY_RESTART>;
			gpios = <&chipcommon 11 GPIO_ACTIVE_LOW>;
		};
	};
};

&spi_nor {
	status = "okay";
};

&srab {
	status = "okay";

	ports {
		port@0 {
			reg = <0>;
			label = "lan4";
		};

		port@1 {
			reg = <1>;
			label = "lan3";
		};

		port@2 {
			reg = <2>;
			label = "lan2";
		};

		port@3 {
			reg = <3>;
			label = "lan1";
		};

		port@4 {
			reg = <4>;
			label = "wan";
		};

		port@5 {
			reg = <5>;
			label = "cpu";
			ethernet = <&gmac0>;
		};
	};
};

&usb3_phy {
	status = "okay";
};
