/*
 * 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 "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;
	};

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

	firmware@0205F000 {
		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;
		};
	};

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

		max77836: subpmic@25 {
			compatible = "maxim,max77836";
			interrupt-parent = <&gpx1>;
			interrupts = <5 0>;
			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>;
				};
				map1 {
					/* Corresponds to 200MHz */
					cooling-device = <&cpu0 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";
};

&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,pll-clock-frequency = <24000000>;
	status = "okay";

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

		port@1 {
			reg = <1>;

			dsi_out: endpoint {
				remote-endpoint = <&dsi_in>;
				samsung,burst-clock-frequency = <250000000>;
				samsung,esc-clock-frequency = <20000000>;
			};
		};
	};

	panel@0 {
		compatible = "samsung,s6e63j0x03";
		reg = <0>;
		vdd3-supply = <&ldo16_reg>;
		vci-supply = <&ldo20_reg>;
		reset-gpios = <&gpe0 1 GPIO_ACTIVE_HIGH>;
		te-gpios = <&gpx0 6 GPIO_ACTIVE_HIGH>;
		power-on-delay= <30>;
		power-off-delay= <120>;
		reset-delay = <5>;
		init-delay = <100>;
		flip-horizontal;
		flip-vertical;
		panel-width-mm = <29>;
		panel-height-mm = <29>;

		display-timings {
			timing-0 {
				clock-frequency = <4600000>;
				hactive = <320>;
				vactive = <320>;
				hfront-porch = <1>;
				hback-porch = <1>;
				hsync-len = <1>;
				vfront-porch = <150>;
				vback-porch = <1>;
				vsync-len = <2>;
			};
		};

		port {
			dsi_in: endpoint {
				remote-endpoint = <&dsi_out>;
			};
		};
	};
};

&fimd {
	status = "okay";

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

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

&i2s2 {
	status = "okay";
};

&jpeg {
	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 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);
	};
};
