/*
 * Copyright (c) 2020-2021 Microchip Technology Inc
 *
 * SPDX-License-Identifier: Apache-2.0
 */

/dts-v1/;
#include <microchip/mpfs-icicle.dtsi>
#include <mem.h>

/ {
	model = "Microchip PolarFire-SoC Icicle Kit";
	compatible = "microchip,mpfs-icicle-kit", "microchip,mpfs";
	aliases {
		led0 = &led0;
		sw0 = &sw0;
	};

	chosen {
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,sram = &sram1;
	};

	leds {
		compatible = "gpio-leds";

		led0: led0 {
			gpios = <&gpio2 16 GPIO_ACTIVE_LOW>;
			label = "LED_0";
		};
	};

	keys {
		compatible = "gpio-keys";
		sw0: sw0 {
			gpios = <&gpio2 30 GPIO_ACTIVE_LOW>;
			label = "SW_0";
		};
	};
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
	clock-frequency = <150000000>;
};

&qspi0 {
	status = "okay";
	qspi_flash: spi-nor-flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <5000000>;
		size = <DT_SIZE_M(256)>;
		jedec-id = [20 ba 19];
	};
};

&gpio2 {
	status = "okay";
};
