/*
 * wd-mbwe.dtsi - Device tree file for Western Digital My Book World Edition
 *
 * Copyright (C) 2016 Neil Armstrong <narmstrong@baylibre.com>
 *
 * Licensed under GPLv2 or later
 */

/dts-v1/;
#include "ox810se.dtsi"

/ {
	model = "Western Digital My Book World Edition";

	compatible = "wd,mbwe", "oxsemi,ox810se";

	chosen {
		bootargs = "console=ttyS1,115200n8 earlyprintk=serial";
	};

	memory {
		/* 128Mbytes DDR */
		reg = <0x48000000 0x8000000>;
	};

	aliases {
		serial1 = &uart1;
		gpio0 = &gpio0;
		gpio1 = &gpio1;
	};

	gpio-keys-polled {
		compatible = "gpio-keys-polled";
		#address-cells = <1>;
		#size-cells = <0>;
		poll-interval = <100>;

		power {
			label = "power";
			gpios = <&gpio0 0 1>;
			linux,code = <0x198>;
		};

		recovery {
			label = "recovery";
			gpios = <&gpio0 4 1>;
			linux,code = <0xab>;
		};
	};

	leds {
		compatible = "gpio-leds";

		a0 {
			label = "activity0";
			gpios = <&gpio0 25 0>;
			default-state = "keep";
		};

		a1 {
			label = "activity1";
			gpios = <&gpio0 26 0>;
			default-state = "keep";
		};

		a2 {
			label = "activity2";
			gpios = <&gpio0 5 0>;
			default-state = "keep";
		};

		a3 {
			label = "activity3";
			gpios = <&gpio0 6 0>;
			default-state = "keep";
		};

		a4 {
			label = "activity4";
			gpios = <&gpio0 7 0>;
			default-state = "keep";
		};

		a5 {
			label = "activity5";
			gpios = <&gpio1 2 0>;
			default-state = "keep";
		};
	};

	i2c-gpio {
		compatible = "i2c-gpio";
		gpios = <&gpio0 3 0 /* sda */
			 &gpio0 2 0 /* scl */
			 >;
		i2c-gpio,delay-us = <2>;        /* ~100 kHz */
		#address-cells = <1>;
		#size-cells = <0>;

		rtc0: rtc@48 {
			compatible = "st,m41t00";
			reg = <0x68>;
		};
	};
};

&uart1 {
	status = "okay";

	pinctrl-names = "default";
	pinctrl-0 = <&pinctrl_uart1>;
};
