/*
 *  Copyright (C) 2016 Nobuhiro Iwamatsu <iwamatsu@nigauri.org>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License as published by
 * the Free Software Foundation; either version 2 of the License, or
 * (at your option) any later version.
 *
 * This program is distributed in the hope that it will be useful,
 * but WITHOUT ANY WARRANTY; without even the implied warranty of
 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
 * GNU General Public License for more details.
 *
 * You should have received a copy of the GNU General Public License
 * along with this program.  If not, see <http://www.gnu.org/licenses/>.
 */

#include "socfpga_cyclone5.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/input/input.h>

/ {
	model = "Altera SOCFPGA Cyclone V SoC Macnica Sodia board";
	compatible = "macnica,sodia", "altr,socfpga-cyclone5", "altr,socfpga";

	chosen {
		bootargs = "earlyprintk";
		stdout-path = "serial0:115200n8";
	};

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

	aliases {
		ethernet0 = &gmac1;
	};

	regulator_3_3v: 3-3-v-regulator {
		compatible = "regulator-fixed";
		regulator-name = "3.3V";
		regulator-min-microvolt = <3300000>;
		regulator-max-microvolt = <3300000>;
	};

	leds: gpio-leds {
		compatible = "gpio-leds";

		hps_led0 {
			label = "hps:green:led0";
			gpios = <&portb 12 GPIO_ACTIVE_LOW>;
		};

		hps_led1 {
			label = "hps:green:led1";
			gpios = <&portb 13 GPIO_ACTIVE_LOW>;
		};

		hps_led2 {
			label = "hps:green:led2";
			gpios = <&portb 14 GPIO_ACTIVE_LOW>;
		};

		hps_led3 {
			label = "hps:green:led3";
			gpios = <&portb 15 GPIO_ACTIVE_LOW>;
		};
	};
};

&gmac1 {
	status = "okay";
	phy-mode = "rgmii";
	phy = <&phy0>;

	mdio0 {
		#address-cells = <1>;
		#size-cells = <0>;
		phy0: ethernet-phy@0 {
			reg = <0>;
			rxd0-skew-ps = <0>;
			rxd1-skew-ps = <0>;
			rxd2-skew-ps = <0>;
			rxd3-skew-ps = <0>;
			rxdv-skew-ps = <0>;
			rxc-skew-ps = <3000>;
			txen-skew-ps = <0>;
			txc-skew-ps = <3000>;
		};
	};
};

&gpio1 {
	status = "okay";
};

&i2c0 {
	status = "okay";

	eeprom@51 {
		compatible = "atmel,24c32";
		reg = <0x51>;
		pagesize = <32>;
	};

	rtc@68 {
		compatible = "dallas,ds1339";
		reg = <0x68>;
	};
};

&mmc0 {
	cd-gpios = <&portb 18 0>;
	vmmc-supply = <&regulator_3_3v>;
	vqmmc-supply = <&regulator_3_3v>;
	status = "okay";
};

&usb1 {
	status = "okay";
};

&qspi {
        status = "okay";

        flash0: n25q512a@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "n25q512a";
		reg = <0>;
		spi-max-frequency = <100000000>;

		m25p,fast-read;
		cdns,page-size = <256>;
		cdns,block-size = <16>;
		cdns,read-delay = <4>;
		cdns,tshsl-ns = <50>;
		cdns,tsd2d-ns = <50>;
		cdns,tchsh-ns = <4>;
		cdns,tslch-ns = <4>;
	};
};
