/*
 * Device Tree Source for the APE6EVM 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 "r8a73a4.dtsi"
#include <dt-bindings/gpio/gpio.h>

/ {
	model = "APE6EVM";
	compatible = "renesas,ape6evm-reference", "renesas,r8a73a4";

	chosen {
		bootargs = "console=ttySC0,115200 ignore_loglevel rw";
	};

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

	memory@200000000 {
		device_type = "memory";
		reg = <2 0x00000000 0 0x40000000>;
	};

	vcc_mmc0: regulator@0 {
		compatible = "regulator-fixed";
		regulator-name = "MMC0 Vcc";
		regulator-min-microvolt = <2800000>;
		regulator-max-microvolt = <2800000>;
		regulator-always-on;
	};

	vcc_sdhi0: regulator@1 {
		compatible = "regulator-fixed";

		regulator-name = "SDHI0 Vcc";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;

		gpio = <&pfc 76 GPIO_ACTIVE_HIGH>;
		enable-active-high;
	};

	/* Common 3.3V rail, used by several devices on APE6EVM */
	ape6evm_fixed_3v3: regulator@2 {
		compatible = "regulator-fixed";
		regulator-name = "3V3";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
		regulator-always-on;
	};

	lbsc {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <1>;
		ranges = <0 0 0 0x80000000>;
	};
};

&i2c5 {
	status = "okay";
	vdd_dvfs: max8973@1b {
		compatible = "maxim,max8973";
		reg = <0x1b>;

		regulator-min-microvolt = <935000>;
		regulator-max-microvolt = <1200000>;
		regulator-boot-on;
		regulator-always-on;
	};
};

&cpu0 {
	cpu0-supply = <&vdd_dvfs>;
	operating-points = <
		/* kHz  uV */
		1950000 1115000
		1462500  995000
	>;
	voltage-tolerance = <1>; /* 1% */
};

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

	scifa0_pins: serial0 {
		renesas,groups = "scifa0_data";
		renesas,function = "scifa0";
	};

	mmc0_pins: mmc {
		renesas,groups = "mmc0_data8", "mmc0_ctrl";
		renesas,function = "mmc0";
	};

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

	sdhi1_pins: sd1 {
		renesas,groups = "sdhi1_data4", "sdhi1_ctrl";
		renesas,function = "sdhi1";
	};
};

&mmcif0 {
	vmmc-supply = <&vcc_mmc0>;
	bus-width = <8>;
	non-removable;
	pinctrl-names = "default";
	pinctrl-0 = <&mmc0_pins>;
	status = "okay";
};

&sdhi0 {
	vmmc-supply = <&vcc_sdhi0>;
	bus-width = <4>;
	toshiba,mmc-wrprotect-disable;
	pinctrl-names = "default";
	pinctrl-0 = <&sdhi0_pins>;
	status = "okay";
};

&sdhi1 {
	vmmc-supply = <&ape6evm_fixed_3v3>;
	bus-width = <4>;
	broken-cd;
	toshiba,mmc-wrprotect-disable;
	pinctrl-names = "default";
	pinctrl-0 = <&sdhi1_pins>;
	status = "okay";
};
