// SPDX-License-Identifier: GPL-2.0+
/*
 * Copyright (C) 2017 Álvaro Fernández Rojas <noltari@gmail.com>
 */

/dts-v1/;

#include "brcm,bcm6358.dtsi"

/ {
	model = "SFR NeufBox 4 (Sercomm) Board";
	compatible = "sfr,nb4-ser", "brcm,bcm6358";

	aliases {
		serial0 = &uart0;
	};

	chosen {
		stdout-path = "serial0:115200n8";
	};

	gpio-leds {
		compatible = "gpio-leds";

		traffic_white {
			label = "NB4-SER:white:traffic";
			gpios = <&gpio0 2 GPIO_ACTIVE_LOW>;
		};

		service_blue {
			label = "NB4-SER:blue:service";
			gpios = <&gpio0 4 GPIO_ACTIVE_LOW>;
		};

		wifi_white {
			label = "NB4-SER:white:wifi";
			gpios = <&gpio0 15 GPIO_ACTIVE_LOW>;
		};

		service_red {
			label = "NB4-SER:red:service";
			gpios = <&gpio0 29 GPIO_ACTIVE_LOW>;
		};

		service_green {
			label = "NB4-SER:green:service";
			gpios = <&gpio0 30 GPIO_ACTIVE_LOW>;
		};
	};
};

&ehci {
	status = "okay";
};

&enet0 {
	status = "okay";
	phy = <&enet0phy>;
	phy-mode = "internal";

	enet0phy: fixed-link {
		reg = <1>;
		speed = <100>;
		full-duplex;
	};
};

&enet1 {
	status = "okay";
	phy = <&enet1phy>;
	phy-mode = "mii";

	enet1phy: fixed-link {
		reg = <1>;
		speed = <100>;
		full-duplex;
	};
};

&gpio0 {
	status = "okay";
};

&leds {
	status = "okay";
	brcm,clk-div = <1>;

	led@0 {
		reg = <0>;
		active-low;
		label = "NB4-SER:white:alarm";
	};

	led@2 {
		reg = <2>;
		active-low;
		label = "NB4-SER:white:tv";
	};

	led@3 {
		reg = <3>;
		active-low;
		label = "NB4-SER:white:tel";
	};

	led@4 {
		reg = <4>;
		active-low;
		label = "NB4-SER:white:adsl";
	};
};

&ohci {
	status = "okay";
};

&pflash {
	status = "okay";
};

&uart0 {
	bootph-all;
	status = "okay";
};

&usbh {
	status = "okay";
};
