18c2ecf20Sopenharmony_ci// SPDX-License-Identifier: (GPL-2.0 OR MIT)
28c2ecf20Sopenharmony_ci/* Copyright (c) 2018-2019 SiFive, Inc */
38c2ecf20Sopenharmony_ci
48c2ecf20Sopenharmony_ci#include "fu540-c000.dtsi"
58c2ecf20Sopenharmony_ci#include <dt-bindings/gpio/gpio.h>
68c2ecf20Sopenharmony_ci#include <dt-bindings/leds/common.h>
78c2ecf20Sopenharmony_ci#include <dt-bindings/pwm/pwm.h>
88c2ecf20Sopenharmony_ci
98c2ecf20Sopenharmony_ci/* Clock frequency (in Hz) of the PCB crystal for rtcclk */
108c2ecf20Sopenharmony_ci#define RTCCLK_FREQ		1000000
118c2ecf20Sopenharmony_ci
128c2ecf20Sopenharmony_ci/ {
138c2ecf20Sopenharmony_ci	#address-cells = <2>;
148c2ecf20Sopenharmony_ci	#size-cells = <2>;
158c2ecf20Sopenharmony_ci	model = "SiFive HiFive Unleashed A00";
168c2ecf20Sopenharmony_ci	compatible = "sifive,hifive-unleashed-a00", "sifive,fu540-c000";
178c2ecf20Sopenharmony_ci
188c2ecf20Sopenharmony_ci	chosen {
198c2ecf20Sopenharmony_ci		stdout-path = "serial0";
208c2ecf20Sopenharmony_ci	};
218c2ecf20Sopenharmony_ci
228c2ecf20Sopenharmony_ci	cpus {
238c2ecf20Sopenharmony_ci		timebase-frequency = <RTCCLK_FREQ>;
248c2ecf20Sopenharmony_ci	};
258c2ecf20Sopenharmony_ci
268c2ecf20Sopenharmony_ci	memory@80000000 {
278c2ecf20Sopenharmony_ci		device_type = "memory";
288c2ecf20Sopenharmony_ci		reg = <0x0 0x80000000 0x2 0x00000000>;
298c2ecf20Sopenharmony_ci	};
308c2ecf20Sopenharmony_ci
318c2ecf20Sopenharmony_ci	soc {
328c2ecf20Sopenharmony_ci	};
338c2ecf20Sopenharmony_ci
348c2ecf20Sopenharmony_ci	hfclk: hfclk {
358c2ecf20Sopenharmony_ci		#clock-cells = <0>;
368c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
378c2ecf20Sopenharmony_ci		clock-frequency = <33333333>;
388c2ecf20Sopenharmony_ci		clock-output-names = "hfclk";
398c2ecf20Sopenharmony_ci	};
408c2ecf20Sopenharmony_ci
418c2ecf20Sopenharmony_ci	rtcclk: rtcclk {
428c2ecf20Sopenharmony_ci		#clock-cells = <0>;
438c2ecf20Sopenharmony_ci		compatible = "fixed-clock";
448c2ecf20Sopenharmony_ci		clock-frequency = <RTCCLK_FREQ>;
458c2ecf20Sopenharmony_ci		clock-output-names = "rtcclk";
468c2ecf20Sopenharmony_ci	};
478c2ecf20Sopenharmony_ci	gpio-restart {
488c2ecf20Sopenharmony_ci		compatible = "gpio-restart";
498c2ecf20Sopenharmony_ci		gpios = <&gpio 10 GPIO_ACTIVE_LOW>;
508c2ecf20Sopenharmony_ci	};
518c2ecf20Sopenharmony_ci
528c2ecf20Sopenharmony_ci	led-controller {
538c2ecf20Sopenharmony_ci		compatible = "pwm-leds";
548c2ecf20Sopenharmony_ci
558c2ecf20Sopenharmony_ci		led-d1 {
568c2ecf20Sopenharmony_ci			pwms = <&pwm0 0 7812500 PWM_POLARITY_INVERTED>;
578c2ecf20Sopenharmony_ci			active-low;
588c2ecf20Sopenharmony_ci			color = <LED_COLOR_ID_GREEN>;
598c2ecf20Sopenharmony_ci			max-brightness = <255>;
608c2ecf20Sopenharmony_ci			label = "d1";
618c2ecf20Sopenharmony_ci		};
628c2ecf20Sopenharmony_ci
638c2ecf20Sopenharmony_ci		led-d2 {
648c2ecf20Sopenharmony_ci			pwms = <&pwm0 1 7812500 PWM_POLARITY_INVERTED>;
658c2ecf20Sopenharmony_ci			active-low;
668c2ecf20Sopenharmony_ci			color = <LED_COLOR_ID_GREEN>;
678c2ecf20Sopenharmony_ci			max-brightness = <255>;
688c2ecf20Sopenharmony_ci			label = "d2";
698c2ecf20Sopenharmony_ci		};
708c2ecf20Sopenharmony_ci
718c2ecf20Sopenharmony_ci		led-d3 {
728c2ecf20Sopenharmony_ci			pwms = <&pwm0 2 7812500 PWM_POLARITY_INVERTED>;
738c2ecf20Sopenharmony_ci			active-low;
748c2ecf20Sopenharmony_ci			color = <LED_COLOR_ID_GREEN>;
758c2ecf20Sopenharmony_ci			max-brightness = <255>;
768c2ecf20Sopenharmony_ci			label = "d3";
778c2ecf20Sopenharmony_ci		};
788c2ecf20Sopenharmony_ci
798c2ecf20Sopenharmony_ci		led-d4 {
808c2ecf20Sopenharmony_ci			pwms = <&pwm0 3 7812500 PWM_POLARITY_INVERTED>;
818c2ecf20Sopenharmony_ci			active-low;
828c2ecf20Sopenharmony_ci			color = <LED_COLOR_ID_GREEN>;
838c2ecf20Sopenharmony_ci			max-brightness = <255>;
848c2ecf20Sopenharmony_ci			label = "d4";
858c2ecf20Sopenharmony_ci		};
868c2ecf20Sopenharmony_ci	};
878c2ecf20Sopenharmony_ci};
888c2ecf20Sopenharmony_ci
898c2ecf20Sopenharmony_ci&uart0 {
908c2ecf20Sopenharmony_ci	status = "okay";
918c2ecf20Sopenharmony_ci};
928c2ecf20Sopenharmony_ci
938c2ecf20Sopenharmony_ci&uart1 {
948c2ecf20Sopenharmony_ci	status = "okay";
958c2ecf20Sopenharmony_ci};
968c2ecf20Sopenharmony_ci
978c2ecf20Sopenharmony_ci&i2c0 {
988c2ecf20Sopenharmony_ci	status = "okay";
998c2ecf20Sopenharmony_ci};
1008c2ecf20Sopenharmony_ci
1018c2ecf20Sopenharmony_ci&qspi0 {
1028c2ecf20Sopenharmony_ci	status = "okay";
1038c2ecf20Sopenharmony_ci	flash@0 {
1048c2ecf20Sopenharmony_ci		compatible = "issi,is25wp256", "jedec,spi-nor";
1058c2ecf20Sopenharmony_ci		reg = <0>;
1068c2ecf20Sopenharmony_ci		spi-max-frequency = <50000000>;
1078c2ecf20Sopenharmony_ci		m25p,fast-read;
1088c2ecf20Sopenharmony_ci		spi-tx-bus-width = <4>;
1098c2ecf20Sopenharmony_ci		spi-rx-bus-width = <4>;
1108c2ecf20Sopenharmony_ci	};
1118c2ecf20Sopenharmony_ci};
1128c2ecf20Sopenharmony_ci
1138c2ecf20Sopenharmony_ci&qspi2 {
1148c2ecf20Sopenharmony_ci	status = "okay";
1158c2ecf20Sopenharmony_ci	mmc@0 {
1168c2ecf20Sopenharmony_ci		compatible = "mmc-spi-slot";
1178c2ecf20Sopenharmony_ci		reg = <0>;
1188c2ecf20Sopenharmony_ci		spi-max-frequency = <20000000>;
1198c2ecf20Sopenharmony_ci		voltage-ranges = <3300 3300>;
1208c2ecf20Sopenharmony_ci		disable-wp;
1218c2ecf20Sopenharmony_ci	};
1228c2ecf20Sopenharmony_ci};
1238c2ecf20Sopenharmony_ci
1248c2ecf20Sopenharmony_ci&eth0 {
1258c2ecf20Sopenharmony_ci	status = "okay";
1268c2ecf20Sopenharmony_ci	phy-mode = "gmii";
1278c2ecf20Sopenharmony_ci	phy-handle = <&phy0>;
1288c2ecf20Sopenharmony_ci	phy0: ethernet-phy@0 {
1298c2ecf20Sopenharmony_ci		compatible = "ethernet-phy-id0007.0771";
1308c2ecf20Sopenharmony_ci		reg = <0>;
1318c2ecf20Sopenharmony_ci	};
1328c2ecf20Sopenharmony_ci};
1338c2ecf20Sopenharmony_ci
1348c2ecf20Sopenharmony_ci&pwm0 {
1358c2ecf20Sopenharmony_ci	status = "okay";
1368c2ecf20Sopenharmony_ci};
1378c2ecf20Sopenharmony_ci
1388c2ecf20Sopenharmony_ci&pwm1 {
1398c2ecf20Sopenharmony_ci	status = "okay";
1408c2ecf20Sopenharmony_ci};
1418c2ecf20Sopenharmony_ci
1428c2ecf20Sopenharmony_ci&gpio {
1438c2ecf20Sopenharmony_ci	status = "okay";
1448c2ecf20Sopenharmony_ci};
145