// SPDX-License-Identifier: GPL-2.0+
/*
 * Device Tree file for the GARDENA smart Gateway (Article No. 19000)
 *
 *  Copyright (C) 2020 GARDENA GmbH
 */

/dts-v1/;

#include "at91sam9g25.dtsi"
#include "at91sam9x5ek.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "GARDENA smart Gateway (Article No. 19000)";
	compatible = "gardena,smart-gateway-at91sam", "atmel,at91sam9g25", "atmel,at91sam9x5",
		"atmel,at91sam9";

	aliases {
		serial1 = &usart3;
	};

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

		button {
			label = "USER_BTN1";
			gpios = <&pioA 24 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_PROG1>;
		};
	};

	1wire_cm {
		status = "disabled";
	};

	leds {
		compatible = "gpio-leds";

		led-power-blue {
			label = "smartgw:power:blue";
			gpios = <&pioC 21 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-power-green {
			label = "smartgw:power:green";
			gpios = <&pioC 20 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "timer";
		};

		led-power-red {
			label = "smartgw:power:red";
			gpios = <&pioC 19 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-radio-blue {
			label = "smartgw:radio:blue";
			gpios = <&pioC 18 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-radio-green {
			label = "smartgw:radio:green";
			gpios = <&pioC 17 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-radio-red {
			label = "smartgw:radio:red";
			gpios = <&pioC 16 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-internet-blue {
			label = "smartgw:internet:blue";
			gpios = <&pioC 15 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-internet-green {
			label = "smartgw:internet:green";
			gpios = <&pioC 14 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-internet-red {
			label = "smartgw:internet:red";
			gpios = <&pioC 13 GPIO_ACTIVE_HIGH>;
			default-state = "off";
		};

		led-heartbeat {
			label = "smartgw:heartbeat";
			gpios = <&pioB 8 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
		};

		led-pb18 {
			status = "disabled";
		};

		led-pd21 {
			status = "disabled";
		};
	};
};

&macb0 {
	phy-mode = "rmii";
	status = "okay";
};

&usart0 {
	status = "disabled";
};

&usart2 {
	status = "disabled";
};

&usart3 {
	atmel,use-dma-rx;
	atmel,use-dma-tx;
	status = "okay";

	pinctrl-0 = <&pinctrl_usart3
		     &pinctrl_usart3_rts
		     &pinctrl_usart3_cts
		    >;
};

&watchdog {
	status = "okay";
};

&mmc0 {
	status = "disabled";
};

&mmc1 {
	status = "disabled";
};

&spi0 {
	status = "disabled";
};

&i2c0 {
	status = "disabled";
};

&adc0 {
	status = "disabled";
};

&ssc0 {
	status = "disabled";
};
