// SPDX-License-Identifier: (GPL-2.0 OR MIT)
/* Copyright (c) 2020 SiFive, Inc */

#include "fu740-c000.dtsi"
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/interrupt-controller/irq.h>

/* Clock frequency (in Hz) of the PCB crystal for rtcclk */
#define RTCCLK_FREQ		1000000

/ {
	model = "SiFive HiFive Unmatched A00";
	compatible = "sifive,hifive-unmatched-a00", "sifive,fu740-c000",
		     "sifive,fu740";

	chosen {
		stdout-path = "serial0";
	};

	cpus {
		timebase-frequency = <RTCCLK_FREQ>;
	};

	memory@80000000 {
		device_type = "memory";
		reg = <0x0 0x80000000 0x4 0x00000000>;
	};

	hfclk: hfclk {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <26000000>;
		clock-output-names = "hfclk";
	};

	rtcclk: rtcclk {
		#clock-cells = <0>;
		compatible = "fixed-clock";
		clock-frequency = <RTCCLK_FREQ>;
		clock-output-names = "rtcclk";
	};

	gpio-poweroff {
		compatible = "gpio-poweroff";
		gpios = <&gpio 2 GPIO_ACTIVE_LOW>;
	};
};

&uart0 {
	status = "okay";
};

&uart1 {
	status = "okay";
};

&i2c0 {
	status = "okay";

	temperature-sensor@4c {
		compatible = "ti,tmp451";
		reg = <0x4c>;
		vcc-supply = <&vdd_bpro>;
		interrupt-parent = <&gpio>;
		interrupts = <6 IRQ_TYPE_LEVEL_LOW>;
	};

	eeprom@54 {
		compatible = "microchip,24c02", "atmel,24c02";
		reg = <0x54>;
		vcc-supply = <&vdd_bpro>;
		label = "board-id";
		pagesize = <16>;
		read-only;
		size = <256>;
	};

	pmic@58 {
		compatible = "dlg,da9063";
		reg = <0x58>;
		interrupt-parent = <&gpio>;
		interrupts = <1 IRQ_TYPE_LEVEL_LOW>;
		interrupt-controller;

		onkey {
			compatible = "dlg,da9063-onkey";
		};

		rtc {
			compatible = "dlg,da9063-rtc";
		};

		wdt {
			compatible = "dlg,da9063-watchdog";
		};

		regulators {
			vdd_bcore: bcores-merged {
				regulator-min-microvolt = <1050000>;
				regulator-max-microvolt = <1050000>;
				regulator-min-microamp = <4800000>;
				regulator-max-microamp = <4800000>;
				regulator-always-on;
			};

			vdd_bpro: bpro {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-min-microamp = <2400000>;
				regulator-max-microamp = <2400000>;
				regulator-always-on;
			};

			vdd_bperi: bperi {
				regulator-min-microvolt = <1060000>;
				regulator-max-microvolt = <1060000>;
				regulator-min-microamp = <1500000>;
				regulator-max-microamp = <1500000>;
				regulator-always-on;
			};

			vdd_bmem_bio: bmem-bio-merged {
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-min-microamp = <3000000>;
				regulator-max-microamp = <3000000>;
				regulator-always-on;
			};

			vdd_ldo1: ldo1 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			vdd_ldo2: ldo2 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			vdd_ldo3: ldo3 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vdd_ldo4: ldo4 {
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <2500000>;
				regulator-always-on;
			};

			vdd_ldo5: ldo5 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vdd_ldo6: ldo6 {
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			vdd_ldo7: ldo7 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vdd_ldo8: ldo8 {
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;
				regulator-always-on;
			};

			vdd_ld09: ldo9 {
				regulator-min-microvolt = <1050000>;
				regulator-max-microvolt = <1050000>;
				regulator-always-on;
			};

			vdd_ldo10: ldo10 {
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;
			};

			vdd_ldo11: ldo11 {
				regulator-min-microvolt = <2500000>;
				regulator-max-microvolt = <2500000>;
				regulator-always-on;
			};
		};
	};
};

&qspi0 {
	status = "okay";
	flash@0 {
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <50000000>;
		m25p,fast-read;
		spi-tx-bus-width = <4>;
		spi-rx-bus-width = <4>;
	};
};

&spi0 {
	status = "okay";
	mmc@0 {
		compatible = "mmc-spi-slot";
		reg = <0>;
		spi-max-frequency = <20000000>;
		voltage-ranges = <3300 3300>;
		disable-wp;
		gpios = <&gpio 15 GPIO_ACTIVE_LOW>;
	};
};

&eth0 {
	status = "okay";
	phy-mode = "gmii";
	phy-handle = <&phy0>;
	phy0: ethernet-phy@0 {
		reg = <0>;
	};
};

&pwm0 {
	status = "okay";
};

&pwm1 {
	status = "okay";
};

&gpio {
	status = "okay";
	gpio-line-names = "J29.1", "PMICNTB", "PMICSHDN", "J8.1", "J8.3",
		"PCIe_PWREN", "THERM", "UBRDG_RSTN", "PCIe_PERSTN",
		"ULPI_RSTN", "J8.2", "UHUB_RSTN", "GEMGXL_RST", "J8.4",
		"EN_VDD_SD", "SD_CD";
};
