/*
 * Device Tree Source for the Marzen board
 *
 * Copyright (C) 2013 Renesas Solutions Corp.
 * Copyright (C) 2013 Simon Horman
 *
 * 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 "r8a7779.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/ {
	model = "marzen";
	compatible = "renesas,marzen", "renesas,r8a7779";

	aliases {
		serial2 = &scif2;
		serial4 = &scif4;
	};

	chosen {
		bootargs = "console=ttySC2,115200 ignore_loglevel root=/dev/nfs ip=on";
	};

	memory {
		device_type = "memory";
		reg = <0x60000000 0x40000000>;
	};

	fixedregulator3v3: fixedregulator@0 {
		compatible = "regulator-fixed";
		regulator-name = "fixed-3.3V";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-boot-on;
		regulator-always-on;
	};

	lan0@18000000 {
		compatible = "smsc,lan9220", "smsc,lan9115";
		reg = <0x18000000 0x100>;
		pinctrl-0 = <&lan0_pins>;
		pinctrl-names = "default";

		phy-mode = "mii";
		interrupt-parent = <&irqpin0>;
		interrupts = <1 IRQ_TYPE_EDGE_FALLING>;
		smsc,irq-push-pull;
		reg-io-width = <4>;
		vddvario-supply = <&fixedregulator3v3>;
		vdd33a-supply = <&fixedregulator3v3>;
	};

	leds {
		compatible = "gpio-leds";
		led2 {
			gpios = <&gpio4 29 GPIO_ACTIVE_HIGH>;
		};
		led3 {
			gpios = <&gpio4 30 GPIO_ACTIVE_HIGH>;
		};
		led4 {
			gpios = <&gpio4 31 GPIO_ACTIVE_HIGH>;
		};
	};
};

&irqpin0 {
	status = "okay";
};

&extal_clk {
	clock-frequency = <31250000>;
};

&tmu0 {
	status = "okay";
};

&pfc {
	lan0_pins: lan0 {
		intc {
			renesas,groups = "intc_irq1_b";
			renesas,function = "intc";
		};
		lbsc {
			renesas,groups = "lbsc_ex_cs0";
			renesas,function = "lbsc";
		};
	};

	scif2_pins: serial2 {
		renesas,groups = "scif2_data_c";
		renesas,function = "scif2";
	};

	scif4_pins: serial4 {
		renesas,groups = "scif4_data";
		renesas,function = "scif4";
	};

	sdhi0_pins: sd0 {
		renesas,groups = "sdhi0_data4", "sdhi0_ctrl", "sdhi0_cd";
		renesas,function = "sdhi0";
	};

	hspi0_pins: hspi0 {
		renesas,groups = "hspi0";
		renesas,function = "hspi0";
	};
};

&scif2 {
	pinctrl-0 = <&scif2_pins>;
	pinctrl-names = "default";

	status = "okay";
};

&scif4 {
	pinctrl-0 = <&scif4_pins>;
	pinctrl-names = "default";

	status = "okay";
};

&sdhi0 {
	pinctrl-0 = <&sdhi0_pins>;
	pinctrl-names = "default";

	vmmc-supply = <&fixedregulator3v3>;
	bus-width = <4>;
	status = "okay";
};

&hspi0 {
	pinctrl-0 = <&hspi0_pins>;
	pinctrl-names = "default";
	status = "okay";
};
