// SPDX-License-Identifier: GPL-2.0
/*
 * 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.
 */

/dts-v1/;
#include "exynos3250.dtsi"
#include "exynos4412-ppmu-common.dtsi"
#include <dt-bindings/input/input.h>
#include <dt-bindings/gpio/gpio.h>
#include <dt-bindings/clock/samsung,s2mps11.h>

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

	aliases {
		i2c7 = &i2c_max77836;
	};

	chosen {
		stdout-path = &serial_1;
	};

	memory@40000000 {
		device_type = "memory";
		reg = <0x40000000 0x1ff00000>;
	};

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

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

		power-key {
			gpios = <&gpx2 7 GPIO_ACTIVE_LOW>;
			linux,code = <KEY_POWER>;
			label = "power key";
			debounce-interval = <10>;
			wakeup-source;
		};
	};

	wlan_pwrseq: mshc1-pwrseq {
		compatible = "mmc-pwrseq-simple";
		reset-gpios = <&gpe0 4 GPIO_ACTIVE_LOW>;
	};

	i2c_max77836: i2c-gpio-0 {
		compatible = "i2c-gpio";
		sda-gpios = <&gpd0 2 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
		scl-gpios = <&gpd0 3 (GPIO_ACTIVE_HIGH | GPIO_OPEN_DRAIN)>;
		#address-cells = <1>;
		#size-cells = <0>;

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

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

	haptics {
		compatible = "regulator-haptic";
		haptic-supply = <&motor_reg>;
		min-microvolt = <1100000>;
		max-microvolt = <2700000>;
	};

	thermal-zones {
		cpu_thermal: cpu-thermal {
			cooling-maps {
				map0 {
					/* Corresponds to 500MHz */
					cooling-device = <&cpu0 5 5>,
							 <&cpu1 5 5>;
				};
				map1 {
					/* Corresponds to 200MHz */
					cooling-device = <&cpu0 8 8>,
							 <&cpu1 8 8>;
				};
			};
		};
	};
};

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

&bus_dmc {
	devfreq-events = <&ppmu_dmc0_3>, <&ppmu_dmc1_3>;
	vdd-supply = <&buck1_reg>;
	status = "okay";
};

&bus_leftbus {
	devfreq-events = <&ppmu_leftbus_3>, <&ppmu_rightbus_3>;
	vdd-supply = <&buck3_reg>;
	status = "okay";
};

&bus_rightbus {
	devfreq = <&bus_leftbus>;
	status = "okay";
};

&bus_lcd0 {
	devfreq = <&bus_leftbus>;
	status = "okay";
};

&bus_fsys {
	devfreq = <&bus_leftbus>;
	status = "okay";
};

&bus_mcuisp {
	devfreq = <&bus_leftbus>;
	status = "okay";
};

&bus_isp {
	devfreq = <&bus_leftbus>;
	status = "okay";
};

&bus_peril {
	devfreq = <&bus_leftbus>;
	status = "okay";
};

&bus_mfc {
	devfreq = <&bus_leftbus>;
	status = "okay";
};

&cmu {
	clocks = <&xusbxti>;
};

&cpu0 {
	cpu0-supply = <&buck2_reg>;
};

&exynos_usbphy {
	status = "okay";
	vbus-supply = <&safeout_reg>;
};

&hsotg {
	vusb_d-supply = <&ldo15_reg>;
	vusb_a-supply = <&ldo12_reg>;
	dr_mode = "peripheral";
	status = "okay";
};

&dsi_0 {
	vddcore-supply = <&ldo6_reg>;
	vddio-supply = <&ldo6_reg>;
	samsung,burst-clock-frequency = <250000000>;
	samsung,esc-clock-frequency = <20000000>;
	samsung,pll-clock-frequency = <24000000>;
	status = "okay";

	panel@0 {
		compatible = "samsung,s6e63j0x03";
		reg = <0>;
		vdd3-supply = <&ldo16_reg>;
		vci-supply = <&ldo20_reg>;
		reset-gpios = <&gpe0 1 GPIO_ACTIVE_LOW>;
		te-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>;
	};
};

&fimd {
	status = "okay";

	i80-if-timings {
		cs-setup = <0>;
		wr-setup = <0>;
		wr-act = <1>;
		wr-hold = <0>;
	};
};

&gpu {
	mali-supply = <&buck3_reg>;
	status = "okay";
};

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

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

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

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

			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 IRQ_TYPE_LEVEL_LOW>;
		reg = <0x36>;
	};
};

&i2s2 {
	status = "okay";
};

&jpeg {
	status = "okay";
};

&mshc_0 {
	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>;
	max-frequency = <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";
};

&mshc_1 {
	status = "okay";

	#address-cells = <1>;
	#size-cells = <0>;

	non-removable;
	cap-sd-highspeed;
	cap-sdio-irq;
	keep-power-in-suspend;
	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 = <&sd1_clk &sd1_cmd &sd1_bus1 &sd1_bus4>;
	bus-width = <4>;

	mmc-pwrseq = <&wlan_pwrseq>;

	brcmf: wifi@1 {
		compatible = "brcm,bcm4334-fmac";
		reg = <1>;

		interrupt-parent = <&gpx1>;
		interrupts = <1 IRQ_TYPE_LEVEL_HIGH>;
		interrupt-names = "host-wake";
	};
};

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

	bluetooth {
		compatible = "brcm,bcm4330-bt";
		max-speed = <3000000>;
		shutdown-gpios = <&gpe0 0 GPIO_ACTIVE_HIGH>;
		device-wakeup-gpios = <&gpx3 1 GPIO_ACTIVE_HIGH>;
		host-wakeup-gpios = <&gpx2 6 GPIO_ACTIVE_HIGH>;
		clocks = <&s2mps14_osc S2MPS11_CLK_BT>;
	};
};

&serial_1 {
	status = "okay";
};

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

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

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

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

	initial0: initial-state {
		PIN_IN(gpa1-4, DOWN, LV1);
		PIN_IN(gpa1-5, DOWN, LV1);

		PIN_IN(gpc0-0, DOWN, LV1);
		PIN_IN(gpc0-1, DOWN, LV1);
		PIN_IN(gpc0-2, DOWN, LV1);
		PIN_IN(gpc0-3, DOWN, LV1);
		PIN_IN(gpc0-4, DOWN, LV1);

		PIN_IN(gpd0-0, DOWN, LV1);
		PIN_IN(gpd0-1, DOWN, LV1);
	};

	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 = <&initial1 &sleep1>;

	initial1: initial-state {
		PIN_IN(gpe0-6, DOWN, LV1);
		PIN_IN(gpe0-7, DOWN, LV1);

		PIN_IN(gpe1-0, DOWN, LV1);
		PIN_IN(gpe1-3, DOWN, LV1);
		PIN_IN(gpe1-4, DOWN, LV1);
		PIN_IN(gpe1-5, DOWN, LV1);
		PIN_IN(gpe1-6, DOWN, LV1);

		PIN_IN(gpk2-0, DOWN, LV1);
		PIN_IN(gpk2-1, DOWN, LV1);
		PIN_IN(gpk2-2, DOWN, LV1);
		PIN_IN(gpk2-3, DOWN, LV1);
		PIN_IN(gpk2-4, DOWN, LV1);
		PIN_IN(gpk2-5, DOWN, LV1);
		PIN_IN(gpk2-6, DOWN, LV1);

		PIN_IN(gpm0-0, DOWN, LV1);
		PIN_IN(gpm0-1, DOWN, LV1);
		PIN_IN(gpm0-2, DOWN, LV1);
		PIN_IN(gpm0-3, DOWN, LV1);
		PIN_IN(gpm0-4, DOWN, LV1);
		PIN_IN(gpm0-5, DOWN, LV1);
		PIN_IN(gpm0-6, DOWN, LV1);
		PIN_IN(gpm0-7, DOWN, LV1);

		PIN_IN(gpm1-0, DOWN, LV1);
		PIN_IN(gpm1-1, DOWN, LV1);
		PIN_IN(gpm1-2, DOWN, LV1);
		PIN_IN(gpm1-3, DOWN, LV1);
		PIN_IN(gpm1-4, DOWN, LV1);
		PIN_IN(gpm1-5, DOWN, LV1);
		PIN_IN(gpm1-6, DOWN, LV1);

		PIN_IN(gpm2-0, DOWN, LV1);
		PIN_IN(gpm2-1, DOWN, LV1);

		PIN_IN(gpm3-0, DOWN, LV1);
		PIN_IN(gpm3-1, DOWN, LV1);
		PIN_IN(gpm3-2, DOWN, LV1);
		PIN_IN(gpm3-3, DOWN, LV1);
		PIN_IN(gpm3-4, DOWN, LV1);

		PIN_IN(gpm4-1, DOWN, LV1);
		PIN_IN(gpm4-2, DOWN, LV1);
		PIN_IN(gpm4-3, DOWN, LV1);
		PIN_IN(gpm4-4, DOWN, LV1);
		PIN_IN(gpm4-5, DOWN, LV1);
		PIN_IN(gpm4-6, DOWN, LV1);
		PIN_IN(gpm4-7, DOWN, LV1);
	};

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