// SPDX-License-Identifier: GPL-2.0
/*
 * Hardkernel Odroid XU3/XU3-Lite/XU4 boards common device tree source
 *
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 * Copyright (c) 2014 Collabora Ltd.
 * Copyright (c) 2015 Lukasz Majewski <l.majewski@samsung.com>
 *                    Anand Moon <linux.amoon@gmail.com>
 */

#include <dt-bindings/input/input.h>
#include "exynos5422-odroid-core.dtsi"

/ {
	gpio_keys {
		compatible = "gpio-keys";
		pinctrl-names = "default";
		pinctrl-0 = <&power_key>;

		power_key {
			/*
			 * The power button (SW2) is connected to the PWRON
			 * pin (active high) of the S2MPS11 PMIC, which acts
			 * as a 16ms debouce filter and signal inverter with
			 * output on ONOB pin (active low). ONOB PMIC pin is
			 * then connected to XEINT3 SoC pin.
			 */
			gpios = <&gpx0 3 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
			label = "power key";
			debounce-interval = <0>;
			wakeup-source;
		};
	};

	emmc_pwrseq: pwrseq {
		pinctrl-0 = <&emmc_nrst_pin>;
		pinctrl-names = "default";
		compatible = "mmc-pwrseq-emmc";
		reset-gpios = <&gpd1 0 GPIO_ACTIVE_LOW>;
	};

	fan0: pwm-fan {
		compatible = "pwm-fan";
		pwms = <&pwm 0 20972 0>;
		#cooling-cells = <2>;
		cooling-levels = <0 130 170 230>;
	};

	thermal-zones {
		cpu0_thermal: cpu0-thermal {
			thermal-sensors = <&tmu_cpu0 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu0_alert0: cpu-alert-0 {
					temperature = <50000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu0_alert1: cpu-alert-1 {
					temperature = <60000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu0_alert2: cpu-alert-2 {
					temperature = <70000>; /* millicelsius */
					hysteresis = <5000>; /* millicelsius */
					type = "active";
				};
				cpu0_crit0: cpu-crit-0 {
					temperature = <120000>; /* millicelsius */
					hysteresis = <0>; /* millicelsius */
					type = "critical";
				};
				/*
				 * Exynos542x supports only 4 trip-points
				 * so for these polling mode is required.
				 * Start polling at temperature level of last
				 * interrupt-driven trip: cpu0_alert2
				 */
				cpu0_alert3: cpu-alert-3 {
					temperature = <70000>; /* millicelsius */
					hysteresis = <10000>; /* millicelsius */
					type = "passive";
				};
				cpu0_alert4: cpu-alert-4 {
					temperature = <85000>; /* millicelsius */
					hysteresis = <10000>; /* millicelsius */
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu0_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&cpu0_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&cpu0_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				/*
				 * When reaching cpu0_alert3, reduce CPU
				 * by 2 steps. On Exynos5422/5800 that would
				 * be: 1600 MHz and 1100 MHz.
				 */
				map3 {
					trip = <&cpu0_alert3>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				/*
				 * When reaching cpu0_alert4, reduce CPU
				 * further, down to 600 MHz (12 steps for big,
				 * 7 steps for LITTLE).
				 */
				map4 {
					trip = <&cpu0_alert4>;
					cooling-device = <&cpu0 3 7>,
							 <&cpu1 3 7>,
							 <&cpu2 3 7>,
							 <&cpu3 3 7>,
							 <&cpu4 3 12>,
							 <&cpu5 3 12>,
							 <&cpu6 3 12>,
							 <&cpu7 3 12>;
				};
			};
		};
		cpu1_thermal: cpu1-thermal {
			thermal-sensors = <&tmu_cpu1 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu1_alert0: cpu-alert-0 {
					temperature = <50000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu1_alert1: cpu-alert-1 {
					temperature = <60000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu1_alert2: cpu-alert-2 {
					temperature = <70000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu1_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
				cpu1_alert3: cpu-alert-3 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "passive";
				};
				cpu1_alert4: cpu-alert-4 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu1_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&cpu1_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&cpu1_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				map3 {
					trip = <&cpu1_alert3>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				map4 {
					trip = <&cpu1_alert4>;
					cooling-device = <&cpu0 3 7>,
							 <&cpu1 3 7>,
							 <&cpu2 3 7>,
							 <&cpu3 3 7>,
							 <&cpu4 3 12>,
							 <&cpu5 3 12>,
							 <&cpu6 3 12>,
							 <&cpu7 3 12>;
				};
			};
		};
		cpu2_thermal: cpu2-thermal {
			thermal-sensors = <&tmu_cpu2 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu2_alert0: cpu-alert-0 {
					temperature = <50000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu2_alert1: cpu-alert-1 {
					temperature = <60000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu2_alert2: cpu-alert-2 {
					temperature = <70000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu2_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
				cpu2_alert3: cpu-alert-3 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "passive";
				};
				cpu2_alert4: cpu-alert-4 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu2_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&cpu2_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&cpu2_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				map3 {
					trip = <&cpu2_alert3>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				map4 {
					trip = <&cpu2_alert4>;
					cooling-device = <&cpu0 3 7>,
							 <&cpu1 3 7>,
							 <&cpu2 3 7>,
							 <&cpu3 3 7>,
							 <&cpu4 3 12>,
							 <&cpu5 3 12>,
							 <&cpu6 3 12>,
							 <&cpu7 3 12>;
				};
			};
		};
		cpu3_thermal: cpu3-thermal {
			thermal-sensors = <&tmu_cpu3 0>;
			polling-delay-passive = <250>;
			polling-delay = <0>;
			trips {
				cpu3_alert0: cpu-alert-0 {
					temperature = <50000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu3_alert1: cpu-alert-1 {
					temperature = <60000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu3_alert2: cpu-alert-2 {
					temperature = <70000>;
					hysteresis = <5000>;
					type = "active";
				};
				cpu3_crit0: cpu-crit-0 {
					temperature = <120000>;
					hysteresis = <0>;
					type = "critical";
				};
				cpu3_alert3: cpu-alert-3 {
					temperature = <70000>;
					hysteresis = <10000>;
					type = "passive";
				};
				cpu3_alert4: cpu-alert-4 {
					temperature = <85000>;
					hysteresis = <10000>;
					type = "passive";
				};
			};
			cooling-maps {
				map0 {
					trip = <&cpu3_alert0>;
					cooling-device = <&fan0 0 1>;
				};
				map1 {
					trip = <&cpu3_alert1>;
					cooling-device = <&fan0 1 2>;
				};
				map2 {
					trip = <&cpu3_alert2>;
					cooling-device = <&fan0 2 3>;
				};
				map3 {
					trip = <&cpu3_alert3>;
					cooling-device = <&cpu0 0 2>,
							 <&cpu1 0 2>,
							 <&cpu2 0 2>,
							 <&cpu3 0 2>,
							 <&cpu4 0 2>,
							 <&cpu5 0 2>,
							 <&cpu6 0 2>,
							 <&cpu7 0 2>;
				};
				map4 {
					trip = <&cpu3_alert4>;
					cooling-device = <&cpu0 3 7>,
							 <&cpu1 3 7>,
							 <&cpu2 3 7>,
							 <&cpu3 3 7>,
							 <&cpu4 3 12>,
							 <&cpu5 3 12>,
							 <&cpu6 3 12>,
							 <&cpu7 3 12>;
				};
			};
		};
	};
};

&buck10_reg {
	/* Supplies vmmc-supply of mmc_0 */
	regulator-always-on;
	regulator-boot-on;
};

&hdmi {
	status = "okay";
	ddc = <&i2c_2>;
	hpd-gpios = <&gpx3 7 GPIO_ACTIVE_HIGH>;
	pinctrl-names = "default";
	pinctrl-0 = <&hdmi_hpd_irq>;

	vdd_osc-supply = <&ldo7_reg>;
	vdd_pll-supply = <&ldo6_reg>;
	vdd-supply = <&ldo6_reg>;
};

&hdmicec {
	status = "okay";
	needs-hpd;
};

&i2c_2 {
	samsung,i2c-sda-delay = <100>;
	samsung,i2c-max-bus-freq = <66000>;
	/* used by HDMI DDC */
	status = "okay";
};

&ldo26_reg {
	regulator-min-microvolt = <3000000>;
	regulator-max-microvolt = <3000000>;
	regulator-always-on;
};

&mixer {
	status = "okay";
};

&mmc_0 {
	status = "okay";
	mmc-pwrseq = <&emmc_pwrseq>;
	card-detect-delay = <200>;
	samsung,dw-mshc-ciu-div = <3>;
	samsung,dw-mshc-sdr-timing = <0 4>;
	samsung,dw-mshc-ddr-timing = <0 2>;
	samsung,dw-mshc-hs400-timing = <0 2>;
	samsung,read-strobe-delay = <90>;
	pinctrl-names = "default";
	pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8 &sd0_cd &sd0_rclk>;
	bus-width = <8>;
	cap-mmc-highspeed;
	mmc-hs200-1_8v;
	mmc-hs400-1_8v;
	max-frequency = <200000000>;
	vmmc-supply = <&ldo18_reg>;
	vqmmc-supply = <&ldo3_reg>;
};

&pinctrl_0 {
	power_key: power-key {
		samsung,pins = "gpx0-3";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};

	hdmi_hpd_irq: hdmi-hpd-irq {
		samsung,pins = "gpx3-7";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_DOWN>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};

&pinctrl_1 {
	emmc_nrst_pin: emmc-nrst {
		samsung,pins = "gpd1-0";
		samsung,pin-function = <EXYNOS_PIN_FUNC_INPUT>;
		samsung,pin-pud = <EXYNOS_PIN_PULL_NONE>;
		samsung,pin-drv = <EXYNOS5420_PIN_DRV_LV1>;
	};
};
