/*
 * DTS file for AMD Seattle Overdrive Development Board
 * Note: For Seattle Rev.B1
 *
 * Copyright (C) 2015 Advanced Micro Devices, Inc.
 */

/dts-v1/;

/include/ "amd-seattle-soc.dtsi"

/ {
	model = "AMD Seattle (Rev.B1) Development Board (Overdrive)";
	compatible = "amd,seattle-overdrive", "amd,seattle";

	chosen {
		stdout-path = &serial0;
	};

	psci {
		compatible   = "arm,psci-0.2";
		method       = "smc";
	};
};

&ccp0 {
	status = "ok";
	amd,zlib-support = <1>;
};

/**
 * NOTE: In Rev.B, gpio0 is reserved.
 */
&gpio1 {
	status = "ok";
};

&gpio2 {
	status = "ok";
};

&gpio3 {
	status = "ok";
};

&gpio4 {
	status = "ok";
};

&i2c0 {
	status = "ok";
};

&i2c1 {
	status = "ok";
};

&pcie0 {
	status = "ok";
};

&sata1 {
	status = "ok";
};

&spi0 {
	status = "ok";
};

&spi1 {
	status = "ok";
	sdcard0: sdcard@0 {
		compatible = "mmc-spi-slot";
		reg = <0>;
		spi-max-frequency = <20000000>;
		voltage-ranges = <3200 3400>;
		pl022,hierarchy = <0>;
		pl022,interface = <0>;
		pl022,com-mode = <0x0>;
		pl022,rx-level-trig = <0>;
		pl022,tx-level-trig = <0>;
	};
};

&ipmi_kcs {
	status = "ok";
};

&smb0 {
	/include/ "amd-seattle-xgbe-b.dtsi"
};
