示例#1
0
/* Intialize gpio set in midas board */
void midas_config_gpio_table(void)
{
	u32 i, gpio;

	printk(KERN_DEBUG "%s\n", __func__);

	for (i = 0; i < ARRAY_SIZE(gt3_init_gpios); i++) {
		gpio = gt3_init_gpios[i].num;
		if (gpio <= EXYNOS4212_GPV4(1)) {
			s3c_gpio_cfgpin(gpio, gt3_init_gpios[i].cfg);
			s3c_gpio_setpull(gpio, gt3_init_gpios[i].pud);

			if (gt3_init_gpios[i].val != S3C_GPIO_SETPIN_NONE)
				gpio_set_value(gpio, gt3_init_gpios[i].val);

			s5p_gpio_set_drvstr(gpio, gt3_init_gpios[i].drv);
		}
	}
#if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \
		defined(CONFIG_TARGET_TAB3_LTE8)
	if (system_rev > 1) {
		s3c_gpio_cfgpin(EXYNOS4_GPX3(0), S3C_GPIO_INPUT);
		s3c_gpio_setpull(EXYNOS4_GPX3(0), S3C_GPIO_PULL_DOWN);	
	}
#endif

#if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \
		defined(CONFIG_TARGET_TAB3_LTE8)
	if (system_rev > 5) {
		s3c_gpio_cfgpin(EXYNOS4_GPX1(4), S3C_GPIO_INPUT);
		s3c_gpio_setpull(EXYNOS4_GPX1(4), S3C_GPIO_PULL_DOWN);	
	}
#endif
}
static int reset_lcd(struct lcd_device *ld)
{
	int err = 0;

	if (exynos4_smdk4x12_get_revision() == SMDK4X12_REV_0_1) {
		err = gpio_request_one(EXYNOS4_GPM3(6),
				       GPIOF_OUT_INIT_HIGH, "GPM3");
		if (err) {
			printk(KERN_ERR "failed to request GPM3 for " \
				"lcd reset control\n");
			return err;
		}
		gpio_set_value(EXYNOS4_GPM3(6), 0);
		mdelay(1);
		gpio_set_value(EXYNOS4_GPM3(6), 1);
		gpio_free(EXYNOS4_GPM3(6));
	} else {
		err = gpio_request_one(EXYNOS4_GPX1(5),
				GPIOF_OUT_INIT_HIGH, "GPX1");
		if (err) {
			printk(KERN_ERR "failed to request GPX1 for " \
				"lcd reset control\n");
			return err;
		}
		gpio_set_value(EXYNOS4_GPX1(5), 0);
		mdelay(1);
		gpio_set_value(EXYNOS4_GPX1(5), 1);
		gpio_free(EXYNOS4_GPX1(5));
	}

	return 1;
}
示例#3
0
int s3cfb_lcd_on(struct platform_device *pdev)
{
	int err;

	if (machine_is_smdkc210()) {
		err = gpio_request_one(EXYNOS4_GPX0(6), GPIOF_OUT_INIT_HIGH, "GPX0");
		if (err) {
			printk(KERN_ERR "failed to request GPX0 for "
				"lcd reset control\n");
			return err;
		}

		gpio_set_value(EXYNOS4_GPX0(6), 0);
		mdelay(1);

		gpio_set_value(EXYNOS4_GPX0(6), 1);

		gpio_free(EXYNOS4_GPX0(6));
	} else if (machine_is_smdk4412()) {
		if (samsung_board_rev_is_0_1()) {
			err = gpio_request_one(EXYNOS4212_GPM3(6),
					GPIOF_OUT_INIT_HIGH, "GPM3");
			if (err) {
				printk(KERN_ERR "failed to request GPM3 for "
					"lcd reset control\n");
				return err;
			}

			gpio_set_value(EXYNOS4212_GPM3(6), 0);
			mdelay(1);

			gpio_set_value(EXYNOS4212_GPM3(6), 1);

			gpio_free(EXYNOS4212_GPM3(6));

		} else {
			err = gpio_request_one(EXYNOS4_GPX1(5),
					GPIOF_OUT_INIT_HIGH, "GPX0");
			if (err) {
				printk(KERN_ERR "failed to request GPX0 for "
					"lcd reset control\n");
				return err;
			}

			gpio_set_value(EXYNOS4_GPX1(5), 0);
			mdelay(1);

			gpio_set_value(EXYNOS4_GPX1(5), 1);

			gpio_free(EXYNOS4_GPX1(5));
		}
	}

	return 0;
}
示例#4
0
int s3cfb_lcd_on(struct platform_device *pdev)
{
	int err;

#ifdef CONFIG_MACH_SMDKC210
	err = gpio_request_one(EXYNOS4_GPX0(6), GPIOF_OUT_INIT_HIGH, "GPX0");
	if (err) {
		printk(KERN_ERR "failed to request GPX0 for "
			"lcd reset control\n");
		return err;
	}

	gpio_set_value(EXYNOS4_GPX0(6), 0);
	mdelay(1);

	gpio_set_value(EXYNOS4_GPX0(6), 1);

	gpio_free(EXYNOS4_GPX0(6));
#elif defined(CONFIG_MACH_SMDK4X12)
	if (samsung_board_rev_is_0_1()) {
		err = gpio_request_one(EXYNOS4212_GPM3(6),
				GPIOF_OUT_INIT_HIGH, "GPM3");
		if (err) {
			printk(KERN_ERR "failed to request GPM3 for "
				"lcd reset control\n");
			return err;
		}

		gpio_set_value(EXYNOS4212_GPM3(6), 0);
		mdelay(1);

		gpio_set_value(EXYNOS4212_GPM3(6), 1);

		gpio_free(EXYNOS4212_GPM3(6));

	} else {
		err = gpio_request_one(EXYNOS4_GPX1(5),
				GPIOF_OUT_INIT_HIGH, "GPX0");
		if (err) {
			printk(KERN_ERR "failed to request GPX0 for "
				"lcd reset control\n");
			return err;
		}

		gpio_set_value(EXYNOS4_GPX1(5), 0);
		mdelay(1);

		gpio_set_value(EXYNOS4_GPX1(5), 1);

		gpio_free(EXYNOS4_GPX1(5));
	}
#endif

	return 0;
}
示例#5
0
static void __init armlex4210_wlan_init(void)
{
	/* enable */
	s3c_gpio_cfgpin(EXYNOS4_GPX2(0), S3C_GPIO_SFN(0xf));
	s3c_gpio_setpull(EXYNOS4_GPX2(0), S3C_GPIO_PULL_UP);

	/* reset */
	s3c_gpio_cfgpin(EXYNOS4_GPX1(6), S3C_GPIO_SFN(0xf));
	s3c_gpio_setpull(EXYNOS4_GPX1(6), S3C_GPIO_PULL_UP);

	/* wakeup */
	s3c_gpio_cfgpin(EXYNOS4_GPX1(5), S3C_GPIO_SFN(0xf));
	s3c_gpio_setpull(EXYNOS4_GPX1(5), S3C_GPIO_PULL_UP);
}
示例#6
0
static int wlan_gpio_ldo(unsigned int onoff)
{
        int err;

        err = gpio_request(EXYNOS4_GPX1(4), "WLAN_LDO");
        if (err)
                printk(KERN_ERR "#### failed to request GPX1_4 ####\n");

        s3c_gpio_setpull(EXYNOS4_GPX1(4), S3C_GPIO_PULL_NONE);
        if(onoff)
                gpio_direction_output(EXYNOS4_GPX1(4), 1);
        else
                gpio_direction_output(EXYNOS4_GPX1(4), 0);

        gpio_free(EXYNOS4_GPX1(4));
        return 0;
}
static int lcd_power_on(struct lcd_device *ld, int enable)
{
	struct regulator *regulator_vlcd_1v8;
	struct regulator *regulator_vlcd_3v0 = NULL;

	regulator_vlcd_1v8 = regulator_get(NULL, "vlcd_1v8");
	if (IS_ERR(regulator_vlcd_1v8)) {
		pr_info("%s: failed to get %s\n", __func__, "vlcd_1v8");
		return PTR_ERR(regulator_vlcd_1v8);
	}
	if (system_rev < 5) {
	regulator_vlcd_3v0 = regulator_get(NULL, "vlcd_3v3");
		if (IS_ERR(regulator_vlcd_3v0)) {
			pr_info("%s: failed to get %s\n", __func__, "vlcd_3v3");
			return PTR_ERR(regulator_vlcd_3v0);
		}
	}
	gpio_request_one(EXYNOS4_GPX1(1),GPIOF_OUT_INIT_HIGH, "GPX1");

	if (enable){
		if (system_rev < 5) {
			regulator_enable(regulator_vlcd_3v0);
			regulator_enable(regulator_vlcd_1v8);
		} else {
			gpio_set_value(EXYNOS4_GPX1(1), 1);
			regulator_enable(regulator_vlcd_1v8);
		}
	}else {
		if (system_rev < 5)
			regulator_disable(regulator_vlcd_3v0);
		else
			gpio_set_value(EXYNOS4_GPX1(1), 0);
		regulator_disable(regulator_vlcd_1v8);
		/*LCD RESET low at SLEEP*/
		gpio_request_one(EXYNOS4_GPX2(4),GPIOF_OUT_INIT_LOW, "GPX2");
		gpio_free(EXYNOS4_GPX2(4));
	}
	if (system_rev < 5) {
		regulator_put(regulator_vlcd_3v0);
	}
	regulator_put(regulator_vlcd_1v8);
	gpio_free(EXYNOS4_GPX1(1));

	return 0;
}
示例#8
0
void gt3_config_sleep_gpio_table(void)
{
	int i;
	int index = min(ARRAY_SIZE(gt3_sleep_table), system_rev + 1);

	for (i = 0; i < index; i++) {
		if (gt3_sleep_table[i].ptr == NULL)
			continue;

		config_sleep_gpio_table(gt3_sleep_table[i].size,
				gt3_sleep_table[i].ptr);
	}
#if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) || \
	defined(CONFIG_TARGET_TAB3_LTE8)
	if (system_rev > 5) {
		s3c_gpio_slp_cfgpin(EXYNOS4_GPX1(4), S3C_GPIO_INPUT);
		s3c_gpio_slp_setpull_updown(EXYNOS4_GPX1(4), S3C_GPIO_PULL_DOWN);
	}
#endif
}
static void config_sleep_gpio_table(int array_size,
				    unsigned int (*gpio_table)[3])
{
	u32 i, gpio;

	for (i = 0; i < array_size; i++) {
		gpio = gpio_table[i][0];
		s3c_gpio_slp_cfgpin(gpio, gpio_table[i][1]);
		s3c_gpio_slp_setpull_updown(gpio, gpio_table[i][2]);
	}

	/* GPX GPIO setting */
	s3c_gpio_cfgpin(EXYNOS4_GPX1(7), S3C_GPIO_INPUT);
	s3c_gpio_setpull(EXYNOS4_GPX1(7), S3C_GPIO_PULL_DOWN);

#if defined(CONFIG_MACH_Q1_CMCC_BD)
	s3c_gpio_cfgpin(EXYNOS4_GPX0(5), S3C_GPIO_OUTPUT);
	s3c_gpio_setpull(EXYNOS4_GPX0(5), S3C_GPIO_PULL_NONE);
	gpio_set_value(EXYNOS4_GPX0(5), GPIO_LEVEL_LOW);
#endif
}
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
{
	/* Keypads can be of various combinations, Just making sure */
#if defined(CONFIG_CPU_TYPE_SCP_SUPPER) || defined(CONFIG_CPU_TYPE_POP_SUPPER) || defined(CONFIG_CPU_TYPE_POP2G_SUPPER)
	/* Set all the necessary GPX2 pins: KP_ROW[x] */
	s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 2,
					 S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	/*GPL2: KP_COL[x] */
	s3c_gpio_cfgrange_nopull(EXYNOS4_GPL2(0), 1, S3C_GPIO_SFN(3));
#elif  defined(CONFIG_CPU_TYPE_SCP_ELITE) || defined(CONFIG_CPU_TYPE_POP_ELITE) || defined(CONFIG_CPU_TYPE_POP2G_ELITE)
	//ROW_6
	s3c_gpio_cfgall_range(EXYNOS4_GPX2(6), 1,
                                         S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	//ROW_7
	s3c_gpio_cfgall_range(EXYNOS4_GPX2(7), 1,
                                         S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	//ROW_8
	s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), 1,
                                         S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	//ROW_13
	s3c_gpio_cfgall_range(EXYNOS4_GPX3(5), 1,
                                         S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

	//COL_0
	s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(0), 1, S3C_GPIO_SFN(3));

	//COL_3
	s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(3), 1, S3C_GPIO_SFN(3));

	//COL_5
	s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(5), 1, S3C_GPIO_SFN(3));

	//COL_6
	s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(6), 1, S3C_GPIO_SFN(3));
#endif
}
示例#11
0
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
{
	

	if (rows > 8) {
		
		s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 8, S3C_GPIO_SFN(3),
					S3C_GPIO_PULL_UP);

		
		s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), (rows - 8),
					 S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
	} else {
		
		s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), rows, S3C_GPIO_SFN(3),
					S3C_GPIO_PULL_UP);
	}

	
	s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(0), cols, S3C_GPIO_SFN(3));
}
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
{
	/* Keypads can be of various combinations, Just making sure */

	if (rows > 8) {
		/* Set all the necessary GPX2 pins: KP_ROW[0~7] */
		s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), 8,
					S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);

		/* Set all the necessary GPX3 pins: KP_ROW[8~] */
		s3c_gpio_cfgall_range(EXYNOS4_GPX3(0), (rows - 8),
					 S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
	} else {
		/* Set all the necessary GPX2 pins: KP_ROW[x] */
		s3c_gpio_cfgall_range(EXYNOS4_GPX2(0), rows,
					 S3C_GPIO_SFN(3), S3C_GPIO_PULL_UP);
	}

	/* Set all the necessary GPX1 pins to special-function 3: KP_COL[x] */
	s3c_gpio_cfgrange_nopull(EXYNOS4_GPX1(0), cols, S3C_GPIO_SFN(3));
}
示例#13
0
文件: common.c 项目: rslotte/OGS-Arm
static inline int exynos4_irq_to_gpio(unsigned int irq)
{
    if (irq < IRQ_EINT(0))
        return -EINVAL;

    irq -= IRQ_EINT(0);
    if (irq < 8)
        return EXYNOS4_GPX0(irq);

    irq -= 8;
    if (irq < 8)
        return EXYNOS4_GPX1(irq);

    irq -= 8;
    if (irq < 8)
        return EXYNOS4_GPX2(irq);

    irq -= 8;
    if (irq < 8)
        return EXYNOS4_GPX3(irq);

    return -EINVAL;
}
 {   EXYNOS4_GPX0(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
 },
 {   EXYNOS4_GPX0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
 },
 {   EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
 },
 {   EXYNOS4_GPX0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
 }, /* 3G_DET */
 {   EXYNOS4_GPX0(7), S3C_GPIO_SFN(0xF), S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
 }, /* AP_PMIC_IRQ */
 {   EXYNOS4_GPX1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
 },
 {   EXYNOS4_GPX1(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
 }, /* NFC_IRQ */
 {   EXYNOS4_GPX2(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
 },
 {   EXYNOS4_GPX2(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
 },
 {   EXYNOS4_GPX2(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
     S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
 }, /* V_BUS_INT */
 {   EXYNOS4_GPX2(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
示例#15
0
	}, {
		.base	= (S5P_VA_GPIO2 + 0xC00),
		.config	= &gpio_cfg_noint,
		.irq_base = IRQ_EINT(0),
		.chip	= {
			.base	= EXYNOS4_GPX0(0),
			.ngpio	= EXYNOS4_GPIO_X0_NR,
			.label	= "GPX0",
			.to_irq	= samsung_gpiolib_to_irq,
		},
	}, {
		.base	= (S5P_VA_GPIO2 + 0xC20),
		.config	= &gpio_cfg_noint,
		.irq_base = IRQ_EINT(8),
		.chip	= {
			.base	= EXYNOS4_GPX1(0),
			.ngpio	= EXYNOS4_GPIO_X1_NR,
			.label	= "GPX1",
			.to_irq	= samsung_gpiolib_to_irq,
		},
	}, {
		.base	= (S5P_VA_GPIO2 + 0xC40),
		.config	= &gpio_cfg_noint,
		.irq_base = IRQ_EINT(16),
		.chip	= {
			.base	= EXYNOS4_GPX2(0),
			.ngpio	= EXYNOS4_GPIO_X2_NR,
			.label	= "GPX2",
			.to_irq	= samsung_gpiolib_to_irq,
		},
	}, {
示例#16
0
	.enabled_at_boot = 1,
	.init_data = &max8903_charger_en_data,
};

static struct platform_device max8903_fixed_reg_dev = {
	.name = "reg-fixed-voltage",
	.id = FIXED_REG_ID_MAX8903,
	.dev = { .platform_data	= &max8903_charger_en },
};

static struct max8903_pdata nuri_max8903 = {
	/*
	 * cen: don't control with the driver, let it be
	 * controlled by regulator above
	 */
	.dok = EXYNOS4_GPX1(4), /* TA_nCONNECTED */
	/* uok, usus: not connected */
	.chg = EXYNOS4_GPE2(0), /* TA_nCHG */
	/* flt: vcc_1.8V_pda */
	.dcm = EXYNOS4_GPL0(1), /* CURR_ADJ */

	.dc_valid = true,
	.usb_valid = false, /* USB is not wired to MAX8903 */
};

static struct platform_device nuri_max8903_device = {
	.name			= "max8903-charger",
	.dev			= {
		.platform_data	= &nuri_max8903,
	},
};
示例#17
0
	{EXYNOS4_GPX0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* DOCK_INT */
#if defined(CONFIG_TARGET_TAB3_WIFI8) || defined(CONFIG_TARGET_TAB3_3G8) 
	{EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
#else
	{EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* REMOTE_SENSE_IRQ */
#endif
	{EXYNOS4_GPX0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* ACC_INT1 */
	{EXYNOS4_GPX0(7), S3C_GPIO_SFN(0xF), S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* AP_PMIC_IRQ */

#if defined(CONFIG_TARGET_TAB3_WIFI8)
	{EXYNOS4_GPX1(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
	{EXYNOS4_GPX1(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
	{EXYNOS4_GPX1(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* HOME_KEY */
	{EXYNOS4_GPX1(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* NC */
#else
	{EXYNOS4_GPX1(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* GPIO_IPC_HOST_WAKEUP */
	{EXYNOS4_GPX1(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* HOME_KEY */
#if defined(CONFIG_TARGET_TAB3_LTE8) || defined(CONFIG_TARGET_TAB3_3G8)
	{EXYNOS4_GPX1(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* MDM2AP_ERR_FATAL */
示例#18
0
        S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
    }, /* BOOT_MODE */
    {   EXYNOS4_GPX0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
        S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
    }, /* HALL_SW */
    {   EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
        S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
    }, /* DDI_ESD_INT */
    {   EXYNOS4_GPX0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
        S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
    }, /* MSENSE_RESET */
    {   EXYNOS4_GPX0(7), S3C_GPIO_SFN(0xF), S3C_GPIO_SETPIN_NONE,
        S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
    }, /* AP_PMIC_IRQ */

    {   EXYNOS4_GPX1(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
        S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
    }, /* QT_GPIO_RST */
    {   EXYNOS4_GPX1(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
        S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
    }, /* NFC_IRQ */

    {   EXYNOS4_GPX2(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
        S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1
    }, /* CP2AP_WKUP_HSIC */
    {   EXYNOS4_GPX2(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
        S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
    }, /* QT_GPIO_INT */
    {   EXYNOS4_GPX2(4), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
        S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1
    }, /* QTKEYLED_EN */
	.num_regulators	= ARRAY_SIZE(max8997_regulators),
	.regulators	= max8997_regulators,
	
	.muic_pdata = &max8997_muic_pdata,

	.wakeup = true,
	.buck1_gpiodvs	= true,
	.buck2_gpiodvs	= true,
	.buck5_gpiodvs	= false,

	.ignore_gpiodvs_side_effect = true,

	.buck125_default_idx = 0x0,
	.irq_base		= IRQ_GPIO_END,

	.buck125_gpios[0]	= EXYNOS4_GPX1(6),
	.buck125_gpios[1]	= EXYNOS4_GPX1(7),
	.buck125_gpios[2]	= EXYNOS4_GPX0(4),

	.buck1_voltage[0]	= 1350000,
	.buck1_voltage[1]	= 1300000,
	.buck1_voltage[2]	= 1250000,
	.buck1_voltage[3]	= 1200000,
	.buck1_voltage[4]	= 1150000,
	.buck1_voltage[5]	= 1100000,
	.buck1_voltage[6]	= 1000000,
	.buck1_voltage[7]	= 950000,

	.buck2_voltage[0]	= 1100000,
	.buck2_voltage[1]	= 1100000,
	.buck2_voltage[2]	= 1100000,
示例#20
0
	{EXYNOS4_GPY0(1), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_ZERO,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1},
	/* WIMAX_MODE1 */
	{EXYNOS4_GPY3(6), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4},
	/* WIMAX_MODE0 */
	{  EXYNOS4_GPY3(5), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4},
	 /* WIMAX_CON1 */
	{EXYNOS4_GPL2(7), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4},
	 /* WIMAX_CON0 */
	{EXYNOS4_GPL2(6), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4},
	/* WIMAX_WAKEUP */
	{EXYNOS4_GPX1(3), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4},
	/* WIMAX_CON2 */
	{ EXYNOS4210_GPE2(3), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4},
	/* WIMAX_INT */
	{EXYNOS4_GPX1(1), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4},
	 /* WIMAX_RESET_N */
	{EXYNOS4_GPA0(5),  S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
		S3C_GPIO_PULL_NONE,  S5P_GPIO_DRVSTR_LV4},
	/*WIMAX_DBGEN_2.8V */
	{EXYNOS4_GPA0(4), S3C_GPIO_OUTPUT, S3C_GPIO_SETPIN_ZERO,
	       S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV4},
#endif
};
示例#21
0
	{EXYNOS4_GPL0(4), S3C_GPIO_SLP_PREV,  S3C_GPIO_PULL_NONE},
	{EXYNOS4_GPL0(6), S3C_GPIO_SLP_PREV,  S3C_GPIO_PULL_NONE},

	{EXYNOS4_GPL1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPL1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */

	{EXYNOS4_GPL2(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN},
	{EXYNOS4_GPL2(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPL2(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPL2(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPL2(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPL2(5),  S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE},
	{EXYNOS4_GPL2(6), S3C_GPIO_SLP_PREV,  S3C_GPIO_PULL_NONE},
	{EXYNOS4_GPL2(7), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN},
	/* GPX1(0) VDDMIN (pda active) set to low at Sleep */
	{EXYNOS4_GPX1(0),  S3C_GPIO_SLP_OUT0,  S3C_GPIO_PULL_DOWN},
	/* GPX3(2) T0 LTE HOST PORT PWR, hold previous level */
	{EXYNOS4_GPX3(2),  S3C_GPIO_SLP_PREV,  S3C_GPIO_PULL_NONE},
#ifdef CONFIG_TARGET_LOCALE_EUR
	{EXYNOS4_GPX1(4),  S3C_GPIO_SLP_PREV, S3C_GPIO_PULL_NONE}, /* FM_RST */
#endif
	{EXYNOS4_GPY0(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPY0(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPY0(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPY0(3), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPY0(4), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
	{EXYNOS4_GPY0(5), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */

	{EXYNOS4_GPY1(0), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN},
	{EXYNOS4_GPY1(1), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN},
	{EXYNOS4_GPY1(2), S3C_GPIO_SLP_INPUT, S3C_GPIO_PULL_DOWN}, /* NC */
}

/* USB OHCI */
static struct exynos4_ohci_platdata origen_ohci_pdata;

static void __init origen_ohci_init(void)
{
	struct exynos4_ohci_platdata *pdata = &origen_ohci_pdata;

	exynos4_ohci_set_platdata(pdata);
}

static struct gpio_keys_button origen_gpio_keys_table[] = {
	{
		.code			= KEY_MENU,
		.gpio			= EXYNOS4_GPX1(5),
		.desc			= "gpio-keys: KEY_MENU",
		.type			= EV_KEY,
		.active_low		= 1,
		.wakeup			= 1,
		.debounce_interval	= 1,
	}, {
		.code			= KEY_HOME,
		.gpio			= EXYNOS4_GPX1(6),
		.desc			= "gpio-keys: KEY_HOME",
		.type			= EV_KEY,
		.active_low		= 1,
		.wakeup			= 1,
		.debounce_interval	= 1,
	}, {
		.code			= KEY_BACK,
	{EXYNOS4_GPX0(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* COVER_DET */
	{EXYNOS4_GPX0(4), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* DOCK_INT -> NC*/
#if !defined(CONFIG_QC_MODEM)
	{EXYNOS4_GPX0(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* REMOTE_SENSE_IRQ -> NC */
	{EXYNOS4_GPX0(6), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* CHG_INT -> NC*/
#endif
	{EXYNOS4_GPX0(7), S3C_GPIO_SFN(0xF), S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* AP_PMIC_IRQ */

#if !defined(CONFIG_MACH_KONA_EUR_LTE) && !defined(CONFIG_MACH_KONALTE_USA_ATT) && \
	!defined(CONFIG_MACH_KONA_KOR_WIFI) && !defined(CONFIG_TARGET_LOCALE_CHN) 
	{EXYNOS4_GPX1(2), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1},
#endif

	{EXYNOS4_GPX1(3), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_DOWN, S5P_GPIO_DRVSTR_LV1}, /* ACCESSORY_INT -> NC */

	{EXYNOS4_GPX1(5), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* OVP_FLAG */
#if defined(CONFIG_SEC_MODEM) || defined(CONFIG_QC_MODEM)
	{EXYNOS4_GPX1(7), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,
		S3C_GPIO_PULL_NONE, S5P_GPIO_DRVSTR_LV1}, /* SIM_DETECT */
#endif

#if !defined(CONFIG_QC_MODEM) || defined(CONFIG_MACH_KONA_EUR_LTE)
	{EXYNOS4_GPX2(0), S3C_GPIO_INPUT, S3C_GPIO_SETPIN_NONE,