/*
 * Reference 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-reference", "renesas,r8a7779";

	chosen {
		bootargs = "console=ttySC2,115200 earlyprintk=sh-sci.2,115200 ignore_loglevel root=/dev/nfs ip=on rw";
	};

	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>;
		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";
};

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

	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";
	};
};

&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";
};
