// 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";

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

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

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

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

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

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

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

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

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

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

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

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

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

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

		button-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";
};
