/*
 * Samsung's Exynos3250 based Rinato board device tree source
 *
 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * Device tree source file for Samsung's Rinato board which is based on
 * Samsung Exynos3250 SoC.
 *
 * 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.
 */

/dts-v1/;
#include "exynos3250.dtsi"
#include <dt-bindings/input/input.h>

/ {
	model = "Samsung Rinato board";
	compatible = "samsung,rinato", "samsung,exynos3250", "samsung,exynos3";

	aliases {
		i2c7 = &i2c_max77836;
	};

	memory {
		reg =  <0x40000000 0x1ff00000>;
	};

	firmware@0205F000 {
		compatible = "samsung,secure-firmware";
		reg = <0x0205F000 0x1000>;
	};

	gpio_keys {
		compatible = "gpio-keys";

		power_key {
			interrupt-parent = <&gpx2>;
			interrupts = <7 0>;
			gpios = <&gpx2 7 1>;
			linux,code = <KEY_POWER>;
			label = "power key";
			debounce-interval = <10>;
			gpio-key,wakeup;
		};
	};

	i2c_max77836: i2c-gpio-0 {
		compatible = "i2c-gpio";
		gpios = <&gpd0 2 0>, <&gpd0 3 0>;
		#address-cells = <1>;
		#size-cells = <0>;

		max77836: subpmic@25 {
			compatible = "maxim,max77836";
			interrupt-parent = <&gpx1>;
			interrupts = <5 0>;
			reg = <0x25>;
			wakeup;

			muic: max77836-muic {
				compatible = "maxim,max77836-muic";
			};

			regulators {
				compatible = "maxim,max77836-regulator";
				safeout_reg: SAFEOUT {
					regulator-name = "SAFEOUT";
				};

				charger_reg: CHARGER {
					regulator-name = "CHARGER";
					regulator-min-microamp = <45000>;
					regulator-max-microamp = <475000>;
					regulator-boot-on;
				};

				motor_reg: LDO1 {
					regulator-name = "MOT_2.7V";
					regulator-min-microvolt = <1100000>;
					regulator-max-microvolt = <2700000>;
				};

				LDO2 {
					regulator-name = "UNUSED_LDO2";
					regulator-min-microvolt = <800000>;
					regulator-max-microvolt = <3950000>;
				};
			};

			charger {
				compatible = "maxim,max77836-charger";

				maxim,constant-uvolt = <4350000>;
				maxim,fast-charge-uamp = <225000>;
				maxim,eoc-uamp = <7500>;
				maxim,ovp-uvolt = <6500000>;
			};
		};
	};
};

&adc {
	vdd-supply = <&ldo3_reg>;
	status = "okay";
	assigned-clocks = <&cmu CLK_SCLK_TSADC>;
	assigned-clock-rates = <6000000>;

	thermistor-ap {
		compatible = "ntc,ncp15wb473";
		pullup-uv = <1800000>;
		pullup-ohm = <100000>;
		pulldown-ohm = <100000>;
		io-channels = <&adc 0>;
	};

	thermistor-battery {
		compatible = "ntc,ncp15wb473";
		pullup-uv = <1800000>;
		pullup-ohm = <100000>;
		pulldown-ohm = <100000>;
		io-channels = <&adc 1>;
	};
};

&i2c_0 {
	#address-cells = <1>;
	#size-cells = <0>;
	samsung,i2c-sda-delay = <100>;
	samsung,i2c-slave-addr = <0x10>;
	samsung,i2c-max-bus-freq = <100000>;
	status = "okay";

	s2mps14_pmic@66 {
		compatible = "samsung,s2mps14-pmic";
		interrupt-parent = <&gpx0>;
		interrupts = <7 0>;
		reg = <0x66>;
		wakeup;

		s2mps14_osc: clocks {
			compatible = "samsung,s2mps14-clk";
			#clock-cells = <1>;
			clock-output-names = "s2mps14_ap", "unused",
				"s2mps14_bt";
		};

		regulators {
			ldo1_reg: LDO1 {
				regulator-name = "VAP_ALIVE_1.0V";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			ldo2_reg: LDO2 {
				regulator-name = "VAP_M1_1.2V";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo3_reg: LDO3 {
				regulator-name = "VCC_AP_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo4_reg: LDO4 {
				regulator-name = "VAP_AVDD_PLL1";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo5_reg: LDO5 {
				regulator-name = "VAP_PLL_ISO_1.0V";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo6_reg: LDO6 {
				regulator-name = "VAP_VMIPI_1.0V";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo7_reg: LDO7 {
				regulator-name = "VAP_AVDD_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo8_reg: LDO8 {
				regulator-name = "VAP_USB_3.0V";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo9_reg: LDO9 {
				regulator-name = "V_LPDDR_1.2V";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			ldo10_reg: LDO10 {
				regulator-name = "UNUSED_LDO10";
				regulator-min-microvolt = <1000000>;
				regulator-max-microvolt = <1000000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo11_reg: LDO11 {
				regulator-name = "V_EMMC_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				samsung,ext-control-gpios = <&gpk0 2 0>;
			};

			ldo12_reg: LDO12 {
				regulator-name = "V_EMMC_2.8V";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;
				samsung,ext-control-gpios = <&gpk0 2 0>;
			};

			ldo13_reg: LDO13 {
				regulator-name = "CAM_AVDD_2.8V";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo14_reg: LDO14 {
				regulator-name = "UNUSED_LDO14";
				regulator-min-microvolt = <2700000>;
				regulator-max-microvolt = <2700000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo15_reg: LDO15 {
				regulator-name = "TSP_AVDD_3.3V";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo16_reg: LDO16 {
				regulator-name = "LCD_VDD_3.3V";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo17_reg: LDO17 {
				regulator-name = "V_IRLED_3.3V";
				regulator-min-microvolt = <3300000>;
				regulator-max-microvolt = <3300000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo18_reg: LDO18 {
				regulator-name = "CAM_AF_2.8V";
				regulator-min-microvolt = <2800000>;
				regulator-max-microvolt = <2800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo19_reg: LDO19 {
				regulator-name = "TSP_VDD_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo20_reg: LDO20 {
				regulator-name = "LCD_VDD_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo21_reg: LDO21 {
				regulator-name = "CAM_IO_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo22_reg: LDO22 {
				regulator-name = "CAM_DVDD_1.2V";
				regulator-min-microvolt = <1200000>;
				regulator-max-microvolt = <1200000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo23_reg: LDO23 {
				regulator-name = "HRM_VCC_1.8V";
				regulator-min-microvolt = <1800000>;
				regulator-max-microvolt = <1800000>;
				regulator-always-on;
			};

			ldo24_reg: LDO24 {
				regulator-name = "HRM_VCC_3.3V";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			ldo25_reg: LDO25 {
				regulator-name = "UNUSED_LDO25";
				regulator-min-microvolt = <3000000>;
				regulator-max-microvolt = <3000000>;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck1_reg: BUCK1 {
				regulator-name = "VAP_MIF_1.0V";
				regulator-min-microvolt = <800000>;
				regulator-max-microvolt = <900000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck2_reg: BUCK2 {
				regulator-name = "VAP_ARM_1.0V";
				regulator-min-microvolt = <850000>;
				regulator-max-microvolt = <1150000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck3_reg: BUCK3 {
				regulator-name = "VAP_INT3D_1.0V";
				regulator-min-microvolt = <850000>;
				regulator-max-microvolt = <1000000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-off-in-suspend;
				};
			};

			buck4_reg: BUCK4 {
				regulator-name = "VCC_SUB_1.95V";
				regulator-min-microvolt = <1950000>;
				regulator-max-microvolt = <1950000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};

			buck5_reg: BUCK5 {
				regulator-name = "VCC_SUB_1.35V";
				regulator-min-microvolt = <1350000>;
				regulator-max-microvolt = <1350000>;
				regulator-always-on;

				regulator-state-mem {
					regulator-on-in-suspend;
				};
			};
		};
	};
};

&i2c_1 {
	#address-cells = <1>;
	#size-cells = <0>;
	samsung,i2c-sda-delay = <100>;
	samsung,i2c-slave-addr = <0x10>;
	samsung,i2c-max-bus-freq = <400000>;
	status = "okay";

	fuelgauge@36 {
		compatible = "maxim,max77836-battery";
		interrupt-parent = <&gpx1>;
		interrupts = <2 8>;
		reg = <0x36>;
	};
};

&i2s2 {
	status = "okay";
};

&mfc {
	status = "okay";
};

&mshc_0 {
	#address-cells = <1>;
	#size-cells = <0>;
	num-slots = <1>;
	broken-cd;
	non-removable;
	cap-mmc-highspeed;
	desc-num = <4>;
	mmc-hs200-1_8v;
	card-detect-delay = <200>;
	vmmc-supply = <&ldo12_reg>;
	clock-frequency = <100000000>;
	clock-freq-min-max = <400000 100000000>;
	samsung,dw-mshc-ciu-div = <1>;
	samsung,dw-mshc-sdr-timing = <0 1>;
	samsung,dw-mshc-ddr-timing = <1 2>;
	pinctrl-names = "default";
	pinctrl-0 = <&sd0_cmd &sd0_bus1 &sd0_bus4 &sd0_bus8>;
	bus-width = <8>;
	status = "okay";
};

&serial_0 {
	assigned-clocks = <&cmu CLK_SCLK_UART0>;
	assigned-clock-rates = <100000000>;
	status = "okay";
};

&serial_1 {
	status = "okay";
};

&tmu {
	vtmu-supply = <&ldo7_reg>;
	status = "okay";
};

&rtc {
	clocks = <&cmu CLK_RTC>, <&s2mps14_osc 0>;
	clock-names = "rtc", "rtc_src";
	status = "okay";
};

&xusbxti {
	clock-frequency = <24000000>;
};

&pinctrl_0 {
	pinctrl-names = "default";
	pinctrl-0 = <&sleep0>;

	sleep0: sleep-state {
		PIN_SLP(gpa0-0, INPUT, DOWN);
		PIN_SLP(gpa0-1, INPUT, DOWN);
		PIN_SLP(gpa0-2, INPUT, DOWN);
		PIN_SLP(gpa0-3, INPUT, DOWN);
		PIN_SLP(gpa0-4, INPUT, DOWN);
		PIN_SLP(gpa0-5, INPUT, DOWN);
		PIN_SLP(gpa0-6, INPUT, DOWN);
		PIN_SLP(gpa0-7, INPUT, DOWN);

		PIN_SLP(gpa1-0, INPUT, DOWN);
		PIN_SLP(gpa1-1, INPUT, DOWN);
		PIN_SLP(gpa1-2, INPUT, DOWN);
		PIN_SLP(gpa1-3, INPUT, DOWN);
		PIN_SLP(gpa1-4, INPUT, DOWN);
		PIN_SLP(gpa1-5, INPUT, DOWN);

		PIN_SLP(gpb-0, PREV, NONE);
		PIN_SLP(gpb-1, PREV, NONE);
		PIN_SLP(gpb-2, PREV, NONE);
		PIN_SLP(gpb-3, PREV, NONE);
		PIN_SLP(gpb-4, INPUT, DOWN);
		PIN_SLP(gpb-5, INPUT, DOWN);
		PIN_SLP(gpb-6, INPUT, DOWN);
		PIN_SLP(gpb-7, INPUT, DOWN);

		PIN_SLP(gpc0-0, INPUT, DOWN);
		PIN_SLP(gpc0-1, INPUT, DOWN);
		PIN_SLP(gpc0-2, INPUT, DOWN);
		PIN_SLP(gpc0-3, INPUT, DOWN);
		PIN_SLP(gpc0-4, INPUT, DOWN);

		PIN_SLP(gpc1-0, INPUT, DOWN);
		PIN_SLP(gpc1-1, INPUT, DOWN);
		PIN_SLP(gpc1-2, INPUT, DOWN);
		PIN_SLP(gpc1-3, INPUT, DOWN);
		PIN_SLP(gpc1-4, INPUT, DOWN);

		PIN_SLP(gpd0-0, INPUT, DOWN);
		PIN_SLP(gpd0-1, INPUT, DOWN);
		PIN_SLP(gpd0-2, INPUT, NONE);
		PIN_SLP(gpd0-3, INPUT, NONE);

		PIN_SLP(gpd1-0, INPUT, NONE);
		PIN_SLP(gpd1-1, INPUT, NONE);
		PIN_SLP(gpd1-2, INPUT, NONE);
		PIN_SLP(gpd1-3, INPUT, NONE);
	};
};

&pinctrl_1 {
	pinctrl-names = "default";
	pinctrl-0 = <&sleep1>;

	sleep1: sleep-state {
		PIN_SLP(gpe0-0, PREV, NONE);
		PIN_SLP(gpe0-1, PREV, NONE);
		PIN_SLP(gpe0-2, INPUT, DOWN);
		PIN_SLP(gpe0-3, INPUT, UP);
		PIN_SLP(gpe0-4, INPUT, DOWN);
		PIN_SLP(gpe0-5, INPUT, DOWN);
		PIN_SLP(gpe0-6, INPUT, DOWN);
		PIN_SLP(gpe0-7, INPUT, DOWN);

		PIN_SLP(gpe1-0, INPUT, DOWN);
		PIN_SLP(gpe1-1, PREV, NONE);
		PIN_SLP(gpe1-2, INPUT, DOWN);
		PIN_SLP(gpe1-3, INPUT, DOWN);
		PIN_SLP(gpe1-4, INPUT, DOWN);
		PIN_SLP(gpe1-5, INPUT, DOWN);
		PIN_SLP(gpe1-6, INPUT, DOWN);
		PIN_SLP(gpe1-7, INPUT, NONE);

		PIN_SLP(gpe2-0, INPUT, NONE);
		PIN_SLP(gpe2-1, INPUT, NONE);
		PIN_SLP(gpe2-2, INPUT, NONE);

		PIN_SLP(gpk0-0, INPUT, DOWN);
		PIN_SLP(gpk0-1, INPUT, DOWN);
		PIN_SLP(gpk0-2, OUT0, NONE);
		PIN_SLP(gpk0-3, INPUT, DOWN);
		PIN_SLP(gpk0-4, INPUT, DOWN);
		PIN_SLP(gpk0-5, INPUT, DOWN);
		PIN_SLP(gpk0-6, INPUT, DOWN);
		PIN_SLP(gpk0-7, INPUT, DOWN);

		PIN_SLP(gpk1-0, INPUT, DOWN);
		PIN_SLP(gpk1-1, INPUT, DOWN);
		PIN_SLP(gpk1-2, INPUT, DOWN);
		PIN_SLP(gpk1-3, INPUT, DOWN);
		PIN_SLP(gpk1-4, INPUT, DOWN);
		PIN_SLP(gpk1-5, INPUT, DOWN);
		PIN_SLP(gpk1-6, INPUT, DOWN);

		PIN_SLP(gpk2-0, INPUT, DOWN);
		PIN_SLP(gpk2-1, INPUT, DOWN);
		PIN_SLP(gpk2-2, INPUT, DOWN);
		PIN_SLP(gpk2-3, INPUT, DOWN);
		PIN_SLP(gpk2-4, INPUT, DOWN);
		PIN_SLP(gpk2-5, INPUT, DOWN);
		PIN_SLP(gpk2-6, INPUT, DOWN);

		PIN_SLP(gpl0-0, INPUT, DOWN);
		PIN_SLP(gpl0-1, INPUT, DOWN);
		PIN_SLP(gpl0-2, INPUT, DOWN);
		PIN_SLP(gpl0-3, INPUT, DOWN);

		PIN_SLP(gpm0-0, INPUT, DOWN);
		PIN_SLP(gpm0-1, INPUT, DOWN);
		PIN_SLP(gpm0-2, INPUT, DOWN);
		PIN_SLP(gpm0-3, INPUT, DOWN);
		PIN_SLP(gpm0-4, INPUT, DOWN);
		PIN_SLP(gpm0-5, INPUT, DOWN);
		PIN_SLP(gpm0-6, INPUT, DOWN);
		PIN_SLP(gpm0-7, INPUT, DOWN);

		PIN_SLP(gpm1-0, INPUT, DOWN);
		PIN_SLP(gpm1-1, INPUT, DOWN);
		PIN_SLP(gpm1-2, INPUT, DOWN);
		PIN_SLP(gpm1-3, INPUT, DOWN);
		PIN_SLP(gpm1-4, INPUT, DOWN);
		PIN_SLP(gpm1-5, INPUT, DOWN);
		PIN_SLP(gpm1-6, INPUT, DOWN);

		PIN_SLP(gpm2-0, INPUT, DOWN);
		PIN_SLP(gpm2-1, INPUT, DOWN);
		PIN_SLP(gpm2-2, INPUT, DOWN);
		PIN_SLP(gpm2-3, INPUT, DOWN);
		PIN_SLP(gpm2-4, INPUT, DOWN);

		PIN_SLP(gpm3-0, INPUT, DOWN);
		PIN_SLP(gpm3-1, INPUT, DOWN);
		PIN_SLP(gpm3-2, INPUT, DOWN);
		PIN_SLP(gpm3-3, INPUT, DOWN);
		PIN_SLP(gpm3-4, INPUT, DOWN);
		PIN_SLP(gpm3-5, INPUT, DOWN);
		PIN_SLP(gpm3-6, INPUT, DOWN);
		PIN_SLP(gpm3-7, INPUT, DOWN);

		PIN_SLP(gpm4-0, INPUT, DOWN);
		PIN_SLP(gpm4-1, INPUT, DOWN);
		PIN_SLP(gpm4-2, INPUT, DOWN);
		PIN_SLP(gpm4-3, INPUT, DOWN);
		PIN_SLP(gpm4-4, INPUT, DOWN);
		PIN_SLP(gpm4-5, INPUT, DOWN);
		PIN_SLP(gpm4-6, INPUT, DOWN);
		PIN_SLP(gpm4-7, INPUT, DOWN);
	};
};
