// SPDX-License-Identifier: GPL-2.0+
/*
 * Samsung's Exynos4412 based Trats2 board device tree source
 *
 * Copyright (c) 2014 Samsung Electronics Co., Ltd.
 *		http://www.samsung.com
 */

/dts-v1/;
#include "exynos4412.dtsi"

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

	config {
		samsung,dsim-device-name = "s6e8ax0";
	};

	aliases {
		i2c8 = &i2c_fg;
		i2c9 = &i2c_max77693;
		serial0 = "/serial@13800000";
		console = "/serial@13820000";
		mmc0 = &mshc_0;
		mmc1 = &sdhci2;
	};

	i2c_fg: fuel-gauge {
		compatible = "i2c-gpio";
		gpios = <&gpf1 5 0>,	/* sda */
			<&gpf1 4 0>;	/* scl */
		i2c-gpio,delay-us = <2>;        /* ~100 kHz */
		status = "okay";
	};

	i2c_max77693: max77693 {
		compatible = "i2c-gpio";
		gpio = <&gpm2 0 0>,	/* sda */
		       <&gpm2 1 0>;	/* scl */
		i2c-gpio,delay-us = <2>;        /* ~100 kHz */
		status = "okay";
	};

	fimd@11c00000 {
		compatible = "samsung,exynos-fimd";
		reg = <0x11c00000 0xa4>;

		samsung,vl-freq = <60>;
		samsung,vl-col = <720>;
		samsung,vl-row = <1280>;
		samsung,vl-width = <720>;
		samsung,vl-height = <1280>;

		samsung,vl-clkp = <0>;
		samsung,vl-oep = <0>;
		samsung,vl-hsp = <1>;
		samsung,vl-vsp = <1>;
		samsung,vl-dp = <1>;
		samsung,vl-bpix = <4>;

		samsung,vl-hspw = <5>;
		samsung,vl-hbpd = <10>;
		samsung,vl-hfpd = <10>;
		samsung,vl-vspw = <2>;
		samsung,vl-vbpd = <1>;
		samsung,vl-vfpd = <13>;
		samsung,vl-cmd-allow-len = <0xf>;

		samsung,winid = <0>;
		samsung,power-on-delay = <30>;
		samsung,interface-mode = <1>;
		samsung,mipi-enabled = <1>;
		samsung,dp-enabled;
		samsung,dual-lcd-enabled;

		samsung,logo-on = <1>;
		samsung,resolution = <0>;
		samsung,rgb-mode = <0>;
	};

	mipidsi@11c80000 {
		compatible = "samsung,exynos-mipi-dsi";
		reg = <0x11c80000 0x5c>;

		samsung,dsim-config-e-interface = <1>;
		samsung,dsim-config-e-virtual-ch = <0>;
		samsung,dsim-config-e-pixel-format = <7>;
		samsung,dsim-config-e-burst-mode = <1>;
		samsung,dsim-config-e-no-data-lane = <3>;
		samsung,dsim-config-e-byte-clk = <0>;
		samsung,dsim-config-hfp = <1>;

		samsung,dsim-config-p = <3>;
		samsung,dsim-config-m = <120>;
		samsung,dsim-config-s = <1>;

		samsung,dsim-config-pll-stable-time = <500>;
		samsung,dsim-config-esc-clk = <20000000>;
		samsung,dsim-config-stop-holding-cnt = <0x7ff>;
		samsung,dsim-config-bta-timeout = <0xff>;
		samsung,dsim-config-rx-timeout = <0xffff>;

		samsung,dsim-device-id = <0xffffffff>;
		samsung,dsim-device-bus-id = <0>;

		samsung,dsim-device-reverse-panel = <1>;
	};

	sdhci@12510000 {
		samsung,bus-width = <8>;
		samsung,timing = <1 3 3>;
		pwr-gpios = <&gpk0 4 0>;
		status = "disabled";
	};
};

&i2c_7 {
	samsung,i2c-sda-delay = <100>;
	samsung,i2c-slave-addr = <0x10>;
	samsung,i2c-max-bus-freq = <100000>;
	status = "okay";

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

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

&sdhci0 {
	samsung,bus-width = <8>;
	samsung,timing = <1 3 3>;
	pwr-gpios = <&gpk0 4 0>;
	status = "disabled";
};

&sdhci2 {
	samsung,bus-width = <4>;
	samsung,timing = <1 2 3>;
	cd-gpios = <&gpk2 2 0>;
	status = "okay";
};

&mshc_0 {
	samsung,bus-width = <8>;
	samsung,timing = <2 1 0>;
	samsung,removable = <0>;
	fifoth_val = <0x203f0040>;
	bus_hz = <400000000>;
	div = <0x3>;
	index = <4>;
	fifo-depth = <0x80>;
	status = "okay";
};