/*
 * Hardkernel Odroid XU3 board 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>
 *
 * This program is free software; you can redistribute it and/or modify
 * it under the terms of the GNU General Public License version 2 as
 * published by the Free Software Foundation.
*/

#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-min-state = <0>;
		cooling-max-state = <3>;
		#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>;
				};
				map4 {
					trip = <&cpu0_alert3>;
					cooling-device = <&cpu4 0 2>;
				};
				/*
				 * When reaching cpu0_alert4, reduce CPU
				 * further, down to 600 MHz (12 steps for big,
				 * 7 steps for LITTLE).
				 */
				map5 {
					trip = <&cpu0_alert4>;
					cooling-device = <&cpu0 3 7>;
				};
				map6 {
					trip = <&cpu0_alert4>;
					cooling-device = <&cpu4 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>;
				};
				map4 {
					trip = <&cpu1_alert3>;
					cooling-device = <&cpu4 0 2>;
				};
				map5 {
					trip = <&cpu1_alert4>;
					cooling-device = <&cpu0 3 7>;
				};
				map6 {
					trip = <&cpu1_alert4>;
					cooling-device = <&cpu4 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>;
				};
				map4 {
					trip = <&cpu2_alert3>;
					cooling-device = <&cpu4 0 2>;
				};
				map5 {
					trip = <&cpu2_alert4>;
					cooling-device = <&cpu0 3 7>;
				};
				map6 {
					trip = <&cpu2_alert4>;
					cooling-device = <&cpu4 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>;
				};
				map4 {
					trip = <&cpu3_alert3>;
					cooling-device = <&cpu4 0 2>;
				};
				map5 {
					trip = <&cpu3_alert4>;
					cooling-device = <&cpu0 3 7>;
				};
				map6 {
					trip = <&cpu3_alert4>;
					cooling-device = <&cpu4 3 12>;
				};
			};
		};
	};
};

&adc {
	vdd-supply = <&ldo4_reg>;
	status = "okay";
};

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

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