/*
 * Device Tree Source for the KZM9D board
 *
 * Copyright (C) 2013 Renesas Solutions Corp.
 *
 * This file is licensed under the terms of the GNU General Public License
 * version 2.  This program is licensed "as is" without any warranty of any
 * kind, whether express or implied.
 */
/dts-v1/;

#include "emev2.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	model = "EMEV2 KZM9D Board";
	compatible = "renesas,kzm9d", "renesas,emev2";

	memory@40000000 {
		device_type = "memory";
		reg = <0x40000000 0x8000000>;
	};

	aliases {
		serial1 = &uart1;
	};

	chosen {
		bootargs = "ignore_loglevel root=/dev/nfs ip=dhcp";
		stdout-path = "serial1:115200n8";
	};

	gpio_keys {
		compatible = "gpio-keys";
		one {
			debounce-interval = <50>;
			wakeup-source;
			label = "DSW2-1";
			linux,code = <KEY_1>;
			gpios = <&gpio0 14 GPIO_ACTIVE_HIGH>;
		};
		two {
			debounce-interval = <50>;
			wakeup-source;
			label = "DSW2-2";
			linux,code = <KEY_2>;
			gpios = <&gpio0 15 GPIO_ACTIVE_HIGH>;
		};
		three {
			debounce-interval = <50>;
			wakeup-source;
			label = "DSW2-3";
			linux,code = <KEY_3>;
			gpios = <&gpio0 16 GPIO_ACTIVE_HIGH>;
		};
		four {
			debounce-interval = <50>;
			wakeup-source;
			label = "DSW2-4";
			linux,code = <KEY_4>;
			gpios = <&gpio0 17 GPIO_ACTIVE_HIGH>;
		};
	};

	reg_1p8v: regulator-1p8v {
		compatible = "regulator-fixed";
		regulator-name = "fixed-1.8V";
		regulator-min-microvolt = <1800000>;
		regulator-max-microvolt = <1800000>;
		regulator-always-on;
		regulator-boot-on;
	};

	reg_3p3v: regulator-3p3v {
		compatible = "regulator-fixed";
		regulator-name = "fixed-3.3V";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
		regulator-boot-on;
	};

	ethernet@20000000 {
		compatible = "smsc,lan9220", "smsc,lan9115";
		reg = <0x20000000 0x10000>;
		phy-mode = "mii";
		interrupt-parent = <&gpio0>;
		interrupts = <1 IRQ_TYPE_EDGE_RISING>;
		reg-io-width = <4>;
		smsc,irq-active-high;
		smsc,irq-push-pull;
		vddvario-supply = <&reg_1p8v>;
		vdd33a-supply = <&reg_3p3v>;
	};
};

&iic0 {
	status = "okay";
};

&iic1 {
	status = "okay";
};

&pfc {
	uart1_pins: uart1 {
		groups = "uart1_ctrl", "uart1_data";
		function = "uart1";
	};
};

&uart1 {
	pinctrl-0 = <&uart1_pins>;
	pinctrl-names = "default";
	status = "okay";
};
