// 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;

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