/* Copyright (c) 2018 SiFive, Inc. */
/* SPDX-License-Identifier: Apache-2.0 */

/dts-v1/;

#include <sifive/riscv32-fe310.dtsi>
#include "hifive1-pinctrl.dtsi"

/ {
	model = "SiFive HiFive 1";
	compatible = "sifive,hifive1";
	aliases {
		pwm-led0 = &led0;
		pwm-led1 = &led1;
		pwm-led2 = &led2;
		watchdog0 = &wdog0;
	};

	chosen {
		zephyr,console = &uart0;
		zephyr,shell-uart = &uart0;
		zephyr,sram = &dtim;
		zephyr,flash = &flash0;
	};

	leds {
		compatible = "pwm-leds";
		led0: led_0 {
			pwms = <&pwm1 1 PWM_MSEC(20)>;
			label = "Green LED";
		};
		led1: led_1 {
			pwms = <&pwm1 2 PWM_MSEC(20)>;
			label = "Blue LED";
		};
		led2: led_2 {
			pwms = <&pwm1 3 PWM_MSEC(20)>;
			label = "Red LED";
		};
	};
};

&gpio0 {
	status = "okay";
};

&uart0 {
	status = "okay";
	current-speed = <115200>;
	pinctrl-0 = <&uart0_rx_default &uart0_tx_default>;
	pinctrl-names = "default";
};

/* disabled (used by Flash ROM by default) */
&spi0 {
	reg = <0x10014000 0x1000 0x20400000 0xc00000>;
	flash0: flash@0 {
		compatible = "issi,is25lp128", "jedec,spi-nor";
		status = "disabled";
		size = <134217728>;
		jedec-id = [96 60 18];
		reg = <0>;
		spi-max-frequency = <133000000>;
	};
};

&spi1 {
	status = "okay";
	pinctrl-0 = <&spi1_cs0_default &spi1_cs2_default &spi1_cs3_default
		     &spi1_mosi_default &spi1_miso_default &spi1_sck_default>;
	pinctrl-names = "default";
};

&spi2 {
	status = "okay";
};

&pwm0 {
	status = "okay";
};

&pwm1 {
	status = "okay";
	pinctrl-0 = <&pwm1_1_default &pwm1_2_default &pwm1_3_default>;
	pinctrl-names = "default";
};

&pwm2 {
	status = "okay";
	pinctrl-0 = <&pwm2_1_default &pwm2_2_default &pwm2_3_default>;
	pinctrl-names = "default";
};
