/*
 * Samsung's Exynos4412 based Trats 2 board device tree source
 *
 * Copyright (c) 2013 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 *
 * Device tree source file for Samsung's Trats 2 board which is based on
 * Samsung's Exynos4412 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 "exynos4412.dtsi"

/ {
	model = "Samsung Trats 2 based on Exynos4412";
	compatible = "samsung,trats2", "samsung,exynos4412";

	aliases {
		i2c8 = &i2c_ak8975;
	};

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

	chosen {
		bootargs = "console=ttySAC2,115200N8 root=/dev/mmcblk0p5 rootwait earlyprintk panic=5";
	};

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

	fixed-rate-clocks {
		xxti {
			compatible = "samsung,clock-xxti", "fixed-clock";
			clock-frequency = <0>;
		};

		xusbxti {
			compatible = "samsung,clock-xusbxti", "fixed-clock";
			clock-frequency = <24000000>;
		};
	};

	regulators {
		compatible = "simple-bus";
		#address-cells = <1>;
		#size-cells = <0>;

		vemmc_reg: regulator-0 {
			compatible = "regulator-fixed";
			regulator-name = "VMEM_VDD_2.8V";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			gpio = <&gpk0 2 0>;
			enable-active-high;
		};

		cam_io_reg: voltage-regulator-1 {
			compatible = "regulator-fixed";
			regulator-name = "CAM_SENSOR_A";
			regulator-min-microvolt = <2800000>;
			regulator-max-microvolt = <2800000>;
			gpio = <&gpm0 2 0>;
			enable-active-high;
		};

		/* More to come */
	};

	gpio-keys {
		compatible = "gpio-keys";

		key-down {
			interrupt-parent = <&gpj1>;
			interrupts = <2 0>;
			gpios = <&gpj1 2 1>;
			linux,code = <114>;
			label = "volume down";
			debounce-interval = <10>;
		};

		key-up {
			interrupt-parent = <&gpj1>;
			interrupts = <1 0>;
			gpios = <&gpj1 1 1>;
			linux,code = <115>;
			label = "volume up";
			debounce-interval = <10>;
		};

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

	i2c@13890000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-slave-addr = <0x10>;
		samsung,i2c-max-bus-freq = <400000>;
		pinctrl-0 = <&i2c3_bus>;
		pinctrl-names = "default";
		status = "okay";

		mms114-touchscreen@48 {
			compatible = "melfas,mms114";
			reg = <0x48>;
			interrupt-parent = <&gpm2>;
			interrupts = <3 2>;
			x-size = <720>;
			y-size = <1280>;
			avdd-supply = <&ldo23_reg>;
			vdd-supply = <&ldo24_reg>;
		};
	};

	i2c@138D0000 {
		samsung,i2c-sda-delay = <100>;
		samsung,i2c-slave-addr = <0x10>;
		samsung,i2c-max-bus-freq = <100000>;
		pinctrl-0 = <&i2c7_bus>;
		pinctrl-names = "default";
		status = "okay";

		max77686_pmic@09 {
			compatible = "maxim,max77686";
			interrupt-parent = <&gpx0>;
			interrupts = <7 0>;
			reg = <0x09>;

			voltage-regulators {
				ldo1_reg: ldo1 {
					regulator-compatible = "LDO1";
					regulator-name = "VALIVE_1.0V_AP";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
					regulator-always-on;
					regulator-mem-on;
				};

				ldo2_reg: ldo2 {
					regulator-compatible = "LDO2";
					regulator-name = "VM1M2_1.2V_AP";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-always-on;
					regulator-mem-on;
				};

				ldo3_reg: ldo3 {
					regulator-compatible = "LDO3";
					regulator-name = "VCC_1.8V_AP";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-mem-on;
				};

				ldo4_reg: ldo4 {
					regulator-compatible = "LDO4";
					regulator-name = "VCC_2.8V_AP";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-always-on;
					regulator-mem-on;
				};

				ldo5_reg: ldo5 {
					regulator-compatible = "LDO5";
					regulator-name = "VCC_1.8V_IO";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-always-on;
					regulator-mem-on;
				};

				ldo6_reg: ldo6 {
					regulator-compatible = "LDO6";
					regulator-name = "VMPLL_1.0V_AP";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
					regulator-always-on;
					regulator-mem-on;
				};

				ldo7_reg: ldo7 {
					regulator-compatible = "LDO7";
					regulator-name = "VPLL_1.0V_AP";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
					regulator-always-on;
					regulator-mem-on;
				};

				ldo8_reg: ldo8 {
					regulator-compatible = "LDO8";
					regulator-name = "VMIPI_1.0V";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
					regulator-mem-off;
				};

				ldo9_reg: ldo9 {
					regulator-compatible = "LDO9";
					regulator-name = "CAM_ISP_MIPI_1.2V";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-mem-idle;
				};

				ldo10_reg: ldo10 {
					regulator-compatible = "LDO10";
					regulator-name = "VMIPI_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-mem-off;
				};

				ldo11_reg: ldo11 {
					regulator-compatible = "LDO11";
					regulator-name = "VABB1_1.95V";
					regulator-min-microvolt = <1950000>;
					regulator-max-microvolt = <1950000>;
					regulator-always-on;
					regulator-mem-off;
				};

				ldo12_reg: ldo12 {
					regulator-compatible = "LDO12";
					regulator-name = "VUOTG_3.0V";
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
					regulator-mem-off;
				};

				ldo13_reg: ldo13 {
					regulator-compatible = "LDO13";
					regulator-name = "NFC_AVDD_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-mem-idle;
				};

				ldo14_reg: ldo14 {
					regulator-compatible = "LDO14";
					regulator-name = "VABB2_1.95V";
					regulator-min-microvolt = <1950000>;
					regulator-max-microvolt = <1950000>;
					regulator-always-on;
					regulator-mem-off;
				};

				ldo15_reg: ldo15 {
					regulator-compatible = "LDO15";
					regulator-name = "VHSIC_1.0V";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1000000>;
					regulator-mem-off;
				};

				ldo16_reg: ldo16 {
					regulator-compatible = "LDO16";
					regulator-name = "VHSIC_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-mem-off;
				};

				ldo17_reg: ldo17 {
					regulator-compatible = "LDO17";
					regulator-name = "CAM_SENSOR_CORE_1.2V";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-mem-idle;
				};

				ldo18_reg: ldo18 {
					regulator-compatible = "LDO18";
					regulator-name = "CAM_ISP_SEN_IO_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-mem-idle;
				};

				ldo19_reg: ldo19 {
					regulator-compatible = "LDO19";
					regulator-name = "VT_CAM_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-mem-idle;
				};

				ldo20_reg: ldo20 {
					regulator-compatible = "LDO20";
					regulator-name = "VDDQ_PRE_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-mem-idle;
				};

				ldo21_reg: ldo21 {
					regulator-compatible = "LDO21";
					regulator-name = "VTF_2.8V";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-mem-idle;
				};

				ldo22_reg: ldo22 {
					regulator-compatible = "LDO22";
					regulator-name = "VMEM_VDD_2.8V";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-always-on;
					regulator-mem-off;
				};

				ldo23_reg: ldo23 {
					regulator-compatible = "LDO23";
					regulator-name = "TSP_AVDD_3.3V";
					regulator-min-microvolt = <3300000>;
					regulator-max-microvolt = <3300000>;
					regulator-mem-idle;
				};

				ldo24_reg: ldo24 {
					regulator-compatible = "LDO24";
					regulator-name = "TSP_VDD_1.8V";
					regulator-min-microvolt = <1800000>;
					regulator-max-microvolt = <1800000>;
					regulator-mem-idle;
				};

				ldo25_reg: ldo25 {
					regulator-compatible = "LDO25";
					regulator-name = "LCD_VCC_3.3V";
					regulator-min-microvolt = <2800000>;
					regulator-max-microvolt = <2800000>;
					regulator-mem-idle;
				};

				ldo26_reg: ldo26 {
					regulator-compatible = "LDO26";
					regulator-name = "MOTOR_VCC_3.0V";
					regulator-min-microvolt = <3000000>;
					regulator-max-microvolt = <3000000>;
					regulator-mem-idle;
				};

				buck1_reg: buck1 {
					regulator-compatible = "BUCK1";
					regulator-name = "vdd_mif";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1100000>;
					regulator-always-on;
					regulator-boot-on;
					regulator-mem-off;
				};

				buck2_reg: buck2 {
					regulator-compatible = "BUCK2";
					regulator-name = "vdd_arm";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1500000>;
					regulator-always-on;
					regulator-boot-on;
					regulator-mem-off;
				};

				buck3_reg: buck3 {
					regulator-compatible = "BUCK3";
					regulator-name = "vdd_int";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
					regulator-always-on;
					regulator-boot-on;
					regulator-mem-off;
				};

				buck4_reg: buck4 {
					regulator-compatible = "BUCK4";
					regulator-name = "vdd_g3d";
					regulator-min-microvolt = <850000>;
					regulator-max-microvolt = <1150000>;
					regulator-boot-on;
					regulator-mem-off;
				};

				buck5_reg: buck5 {
					regulator-compatible = "BUCK5";
					regulator-name = "VMEM_1.2V_AP";
					regulator-min-microvolt = <1200000>;
					regulator-max-microvolt = <1200000>;
					regulator-always-on;
				};

				buck6_reg: buck6 {
					regulator-compatible = "BUCK6";
					regulator-name = "VCC_SUB_1.35V";
					regulator-min-microvolt = <1350000>;
					regulator-max-microvolt = <1350000>;
					regulator-always-on;
				};

				buck7_reg: buck7 {
					regulator-compatible = "BUCK7";
					regulator-name = "VCC_SUB_2.0V";
					regulator-min-microvolt = <2000000>;
					regulator-max-microvolt = <2000000>;
					regulator-always-on;
				};

				buck8_reg: buck8 {
					regulator-compatible = "BUCK8";
					regulator-name = "VMEM_VDDF_3.0V";
					regulator-min-microvolt = <2850000>;
					regulator-max-microvolt = <2850000>;
					regulator-always-on;
					regulator-mem-off;
				};

				buck9_reg: buck9 {
					regulator-compatible = "BUCK9";
					regulator-name = "CAM_ISP_CORE_1.2V";
					regulator-min-microvolt = <1000000>;
					regulator-max-microvolt = <1200000>;
					regulator-mem-off;
				};
			};
		};
	};

	sdhci@12510000 {
		bus-width = <8>;
		non-removable;
		pinctrl-0 = <&sd0_clk &sd0_cmd &sd0_bus8>;
		pinctrl-names = "default";
		vmmc-supply = <&vemmc_reg>;
		status = "okay";
	};

	serial@13800000 {
		status = "okay";
	};

	serial@13810000 {
		status = "okay";
	};

	serial@13820000 {
		status = "okay";
	};

	serial@13830000 {
		status = "okay";
	};

	i2c_ak8975: i2c-gpio-0 {
		compatible = "i2c-gpio";
		gpios = <&gpy2 4 0>, <&gpy2 5 0>;
		i2c-gpio,delay-us = <2>;
		#address-cells = <1>;
		#size-cells = <0>;
		status = "okay";

		ak8975@0c {
			compatible = "ak,ak8975";
			reg = <0x0c>;
			gpios = <&gpj0 7 0>;
		};
	};

	spi_1: spi@13930000 {
		pinctrl-names = "default";
		pinctrl-0 = <&spi1_bus>;
		status = "okay";

		s5c73m3_spi: s5c73m3 {
			compatible = "samsung,s5c73m3";
			spi-max-frequency = <50000000>;
			reg = <0>;
			controller-data {
				cs-gpio = <&gpb 5 0>;
				samsung,spi-feedback-delay = <2>;
			};
		};
	};

	camera {
		pinctrl-0 = <&cam_port_b_clk_active>;
		pinctrl-names = "default";
		status = "okay";

		fimc_0: fimc@11800000 {
			status = "okay";
		};

		fimc_1: fimc@11810000 {
			status = "okay";
		};

		fimc_2: fimc@11820000 {
			status = "okay";
		};

		fimc_3: fimc@11830000 {
			status = "okay";
		};

		csis_1: csis@11890000 {
			vddcore-supply = <&ldo8_reg>;
			vddio-supply = <&ldo10_reg>;
			clock-frequency = <160000000>;
			status = "okay";

			/* Camera D (4) MIPI CSI-2 (CSIS1) */
			port@4 {
				reg = <4>;
				csis1_ep: endpoint {
					remote-endpoint = <&is_s5k6a3_ep>;
					data-lanes = <1>;
					samsung,csis-hs-settle = <18>;
					samsung,csis-wclk;
				};
			};
		};

		fimc_lite_0: fimc-lite@12390000 {
			status = "okay";
		};

		fimc_lite_1: fimc-lite@123A0000 {
			status = "okay";
		};

		fimc-is@12000000 {
			pinctrl-0 = <&fimc_is_uart>;
			pinctrl-names = "default";
			status = "okay";

			i2c1_isp: i2c-isp@12140000 {
				pinctrl-0 = <&fimc_is_i2c1>;
				pinctrl-names = "default";

				s5k6a3@10 {
					compatible = "samsung,s5k6a3";
					reg = <0x10>;
					svdda-supply = <&cam_io_reg>;
					svddio-supply = <&ldo19_reg>;
					clock-frequency = <24000000>;
					/* CAM_B_CLKOUT */
					clocks = <&clock_cam 1>;
					clock-names = "mclk";
					samsung,camclk-out = <1>;
					gpios = <&gpm1 6 0>;

					port {
						is_s5k6a3_ep: endpoint {
							remote-endpoint = <&csis1_ep>;
							data-lanes = <1>;
						};
					};
				};
			};
		};
	};
};
