// SPDX-License-Identifier: (GPL-2.0+ OR MIT)
/*
 * Copyright (c) 2020 Dongjin Kim <tobetter@gmail.com>
 */

/dts-v1/;

#include "meson-sm1-odroid.dtsi"

/ {
	compatible = "hardkernel,odroid-hc4", "amlogic,sm1";
	model = "Hardkernel ODROID-HC4";

	aliases {
		rtc0 = &rtc;
		rtc1 = &vrtc;
	};

	fan0: pwm-fan {
		compatible = "pwm-fan";
		#cooling-cells = <2>;
		cooling-levels = <0 120 170 220>;
		pwms = <&pwm_cd 1 40000 0>;
	};

	leds {
		compatible = "gpio-leds";

		led-blue {
			color = <LED_COLOR_ID_BLUE>;
			function = LED_FUNCTION_STATUS;
			gpios = <&gpio_ao GPIOAO_11 GPIO_ACTIVE_HIGH>;
			linux,default-trigger = "heartbeat";
			panic-indicator;
		};

		led-red {
			color = <LED_COLOR_ID_RED>;
			function = LED_FUNCTION_POWER;
			gpios = <&gpio_ao GPIOAO_7 GPIO_ACTIVE_HIGH>;
			default-state = "on";
		};
	};

	/* Powers the SATA Disk 0 regulator, which is enabled when a disk load is detected */
	p12v_0: regulator-p12v_0 {
		compatible = "regulator-fixed";
		regulator-name = "P12V_0";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		vin-supply = <&main_12v>;

		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
		enable-active-high;
		regulator-always-on;
	};

	/* Powers the SATA Disk 1 regulator, which is enabled when a disk load is detected */
	p12v_1: regulator-p12v_1 {
		compatible = "regulator-fixed";
		regulator-name = "P12V_1";
		regulator-min-microvolt = <12000000>;
		regulator-max-microvolt = <12000000>;
		vin-supply = <&main_12v>;

		gpio = <&gpio GPIOH_8 GPIO_OPEN_DRAIN>;
		enable-active-high;
		regulator-always-on;
	};

	sound {
		model = "ODROID-HC4";
	};
};

&cpu_thermal {
	trips {
		cpu_active: cpu-active {
			temperature = <60000>; /* millicelsius */
			hysteresis = <2000>; /* millicelsius */
			type = "active";
		};
	};

	cooling-maps {
		map {
			trip = <&cpu_active>;
			cooling-device = <&fan0 THERMAL_NO_LIMIT THERMAL_NO_LIMIT>;
		};
	};
};

&ir {
	linux,rc-map-name = "rc-odroid";
};

&i2c2 {
	status = "okay";
	pinctrl-0 = <&i2c2_sda_x_pins>, <&i2c2_sck_x_pins>;
	pinctrl-names = "default";

	rtc: rtc@51 {
		status = "okay";
		compatible = "nxp,pcf8563";
		reg = <0x51>;
		wakeup-source;
	};
};

&pcie {
	status = "okay";
	reset-gpios = <&gpio GPIOH_4 GPIO_ACTIVE_LOW>;
};

&pwm_cd {
	status = "okay";
	pinctrl-names = "default";
	pinctrl-0 = <&pwm_d_x6_pins>;
};

&sd_emmc_c {
	status = "disabled";
};

&spifc {
	status = "okay";
	pinctrl-0 = <&nor_pins>;
	pinctrl-names = "default";

	flash@0 {
		#address-cells = <1>;
		#size-cells = <1>;
		compatible = "jedec,spi-nor";
		reg = <0>;
		spi-max-frequency = <104000000>;
	};
};

&usb {
	phys = <&usb2_phy0>, <&usb2_phy1>;
	phy-names = "usb2-phy0", "usb2-phy1";
};