/*
 * Copyright (c) 2020 Linumiz
 * Author: Parthiban Nallathambi <parthiban@linumiz.com>
 *
 * SPDX-License-Identifier: Apache-2.0
 */

#include <mem.h>
#include <infineon/xmc4xxx.dtsi>

&psram1 {
	reg = <0x10000000 DT_SIZE_K(64)>;
};

&dsram1 {
	reg = <0x20000000 DT_SIZE_K(64)>;
};

&dsram2 {
	reg = <0x30000000 DT_SIZE_K(32)>;
};

&flash0 {
	reg = <0xc000000 DT_SIZE_M(1)>;
};

&gpio0 {
	ngpios = <13>;
};

&gpio1 {
	ngpios = <16>;
};

&gpio2 {
	ngpios = <13>;
};

&pinctrl {
	reg = <0x48028000 0x600>;

	gpio3: gpio@48028300 {
		compatible = "infineon,xmc4xxx-gpio";
		gpio-controller;
		#gpio-cells = <2>;
		reg = <0x48028300 0x100>;
		ngpios = <7>;
		status = "disabled";
	};

	gpio4: gpio@48028400 {
		compatible = "infineon,xmc4xxx-gpio";
		gpio-controller;
		#gpio-cells = <2>;
		reg = <0x48028400 0x100>;
		ngpios = <2>;
		status = "disabled";
	};

	gpio5: gpio@48028500 {
		compatible = "infineon,xmc4xxx-gpio";
		gpio-controller;
		#gpio-cells = <2>;
		reg = <0x48028500 0x100>;
		ngpios = <4>;
		status = "disabled";
	};
};
