/*
 * Broadcom BCM470X / BCM5301X ARM platform code.
 * DTS for Buffalo WZR-1750DHP
 *
 * Copyright (C) 2014 Rafał Miłecki <zajec5@gmail.com>
 *
 * Licensed under the GNU/GPL. See COPYING for details.
 */

/dts-v1/;

#include "bcm4708.dtsi"

/ {
	compatible = "buffalo,wzr-1750dhp", "brcm,bcm4708";
	model = "Buffalo WZR-1750DHP (BCM4708)";

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

	memory {
		reg = <0x00000000 0x08000000>;
	};

	spi {
		compatible = "spi-gpio";
		num-chipselects = <1>;
		gpio-sck = <&chipcommon 7 0>;
		gpio-mosi = <&chipcommon 4 0>;
		cs-gpios = <&chipcommon 6 0>;
		#address-cells = <1>;
		#size-cells = <0>;

		hc595: gpio_spi@0 {
			compatible = "fairchild,74hc595";
			reg = <0>;
			registers-number = <1>;
			spi-max-frequency = <100000>;

			gpio-controller;
			#gpio-cells = <2>;

		};
	};

	leds {
		compatible = "gpio-leds";

		power0 {
			label = "bcm53xx:red:power";
			gpios = <&hc595 1 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-off";
		};

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

		router0 {
			label = "bcm53xx:blue:router";
			gpios = <&hc595 3 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-on";
		};

		router1 {
			label = "bcm53xx:amber:router";
			gpios = <&hc595 4 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-off";
		};

		wan {
			label = "bcm53xx:blue:wan";
			gpios = <&hc595 5 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-on";
		};

		wireless0 {
			label = "bcm53xx:blue:wireless";
			gpios = <&hc595 6 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-off";
		};

		wireless1 {
			label = "bcm53xx:amber:wireless";
			gpios = <&hc595 7 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "default-off";
		};
	};

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

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

		aoss {
			label = "AOSS";
			linux,code = <KEY_WPS_BUTTON>;
			gpios = <&chipcommon 12 GPIO_ACTIVE_LOW>;
		};

		/* Commit mode set by switch? */
		mode {
			label = "Mode";
			linux,code = <KEY_SETUP>;
			gpios = <&chipcommon 13 GPIO_ACTIVE_LOW>;
		};

		/* Switch: AP mode */
		sw_ap {
			label = "AP";
			linux,code = <BTN_0>;
			gpios = <&chipcommon 14 GPIO_ACTIVE_LOW>;
		};

		eject {
			label = "USB eject";
			linux,code = <KEY_EJECTCD>;
			gpios = <&chipcommon 15 GPIO_ACTIVE_LOW>;
		};
	};
};
