// 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>
#include <dt-bindings/leds/common.h>
#include <dt-bindings/pwm/pwm.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>;
	};

	led-controller-1 {
		compatible = "pwm-leds";

		led-d12 {
			pwms = <&pwm0 0 7812500 PWM_POLARITY_INVERTED>;
			active-low;
			color = <LED_COLOR_ID_GREEN>;
			max-brightness = <255>;
			label = "d12";
		};
	};

	led-controller-2 {
		compatible = "pwm-leds-multicolor";

		multi-led {
			color = <LED_COLOR_ID_RGB>;
			max-brightness = <255>;
			label = "d2";

			led-red {
				pwms = <&pwm0 2 7812500 PWM_POLARITY_INVERTED>;
				active-low;
				color = <LED_COLOR_ID_RED>;
			};

			led-green {
				pwms = <&pwm0 1 7812500 PWM_POLARITY_INVERTED>;
				active-low;
				color = <LED_COLOR_ID_GREEN>;
			};

			led-blue {
				pwms = <&pwm0 3 7812500 PWM_POLARITY_INVERTED>;
				active-low;
				color = <LED_COLOR_ID_BLUE>;
			};
		};
	};
};

&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;
		#interrupt-cells = <2>;

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

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

		watchdog {
			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";
};
