Пример #1
0
//--------for COL is GPL[3:7], ROW is GPN[0:1]---------//
void s3c_setup_keypad_cfg_gpio(int rows, int columns)
{
	unsigned int gpio;
	unsigned int end;

	printk("[KEY]Initialize the GPIO for keybord of OK6410.");	
	end = S3C64XX_GPK(8 + rows);
	//end = S3C64XX_GPN(0+2);//rows);

	// Set all the necessary GPK pins to special-function 0 
	for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_UP);
	}

	/*Set all the necessary GPN pins to special-function 0 
	for (gpio = S3C64XX_GPN(0); gpio < end; gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}*/
	

	end = S3C64XX_GPL(0 + columns);
	//end = S3C64XX_GPL(3 + 5);//columns);

	/* Set all the necessary GPK pins to special-function 0 */
	for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}
}
Пример #2
0
/*
 * set gpio value
 */
static void buddy_set_gpio(int value)
{
	/*
	 * Set pin as output and set value.
	 */
	s3c_gpio_cfgpin(S3C64XX_GPK(2),S3C_GPIO_OUTPUT);
	gpio_set_value(S3C64XX_GPK(2),1);
	/*
	 * Out value and pin was set as output directly.
	 */
	gpio_direction_output(S3C64XX_GPK(6),1);
}
Пример #3
0
static int smartq_speaker_event(struct snd_soc_dapm_widget *w,
				struct snd_kcontrol *k,
				int event)
{
	gpio_set_value(S3C64XX_GPK(12), SND_SOC_DAPM_EVENT_OFF(event));

	return 0;
}
Пример #4
0
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
{
	/* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */
	s3c_gpio_cfgrange_nopull(S3C64XX_GPK(8), 8 + rows, S3C_GPIO_SFN(3));

	/* Set all the necessary GPL pins to special-function 3: KP_COL[x] */
	s3c_gpio_cfgrange_nopull(S3C64XX_GPL(0), cols, S3C_GPIO_SFN(3));
}
Пример #5
0
static void __exit smartq_exit(void)
{
	gpio_free(S3C64XX_GPK(12));
	snd_soc_jack_free_gpios(&smartq_jack, ARRAY_SIZE(smartq_jack_gpios),
				smartq_jack_gpios);

	platform_device_unregister(smartq_snd_device);
}
Пример #6
0
static int __init smartq_power_off_init(void)
{
	int ret;

	ret = gpio_request(S3C64XX_GPK(15), "Power control");
	if (ret < 0) {
		pr_err("%s: failed to get GPK15\n", __func__);
		return ret;
	}

	/* leave power on */
	gpio_direction_output(S3C64XX_GPK(15), 0);

	pm_power_off = smartq_power_off;

	return ret;
}
static void __init hmt_machine_init(void)
{
	s3c_i2c0_set_platdata(NULL);
	s3c_fb_set_platdata(&hmt_lcd_pdata);
	s3c_nand_set_platdata(&hmt_nand_info);

	gpio_request(S3C64XX_GPC(7), "usb power");
	gpio_direction_output(S3C64XX_GPC(7), 0);
	gpio_request(S3C64XX_GPM(0), "usb power");
	gpio_direction_output(S3C64XX_GPM(0), 1);
	gpio_request(S3C64XX_GPK(7), "usb power");
	gpio_direction_output(S3C64XX_GPK(7), 1);
	gpio_request(S3C64XX_GPF(13), "usb power");
	gpio_direction_output(S3C64XX_GPF(13), 1);

	platform_add_devices(hmt_devices, ARRAY_SIZE(hmt_devices));
}
Пример #8
0
static int __init smartq_wifi_init(void)
{
	int ret;

	ret = gpio_request(S3C64XX_GPK(1), "wifi control");
	if (ret < 0) {
		pr_err("%s: failed to get GPK1\n", __func__);
		return ret;
	}

	ret = gpio_request(S3C64XX_GPK(2), "wifi reset");
	if (ret < 0) {
		pr_err("%s: failed to get GPK2\n", __func__);
		gpio_free(S3C64XX_GPK(1));
		return ret;
	}

	/* turn power on */
	gpio_direction_output(S3C64XX_GPK(1), 1);

	/* reset device */
	gpio_direction_output(S3C64XX_GPK(2), 0);
	mdelay(100);
	gpio_set_value(S3C64XX_GPK(2), 1);
	gpio_direction_input(S3C64XX_GPK(2));

	return 0;
}
Пример #9
0
static int __init smartq_init(void)
{
	int ret;

	if (!machine_is_smartq7() && !machine_is_smartq5()) {
		pr_info("Only SmartQ is supported by this ASoC driver\n");
		return -ENODEV;
	}

	smartq_snd_device = platform_device_alloc("soc-audio", -1);
	if (!smartq_snd_device)
		return -ENOMEM;

	platform_set_drvdata(smartq_snd_device, &snd_soc_smartq);

	ret = platform_device_add(smartq_snd_device);
	if (ret) {
		platform_device_put(smartq_snd_device);
		return ret;
	}

	/* Initialise GPIOs used by amplifiers */
	ret = gpio_request(S3C64XX_GPK(12), "amplifiers shutdown");
	if (ret) {
		dev_err(&smartq_snd_device->dev, "Failed to register GPK12\n");
		goto err_unregister_device;
	}

	/* Disable amplifiers */
	ret = gpio_direction_output(S3C64XX_GPK(12), 1);
	if (ret) {
		dev_err(&smartq_snd_device->dev, "Failed to configure GPK12\n");
		goto err_free_gpio_amp_shut;
	}

	return 0;

err_free_gpio_amp_shut:
	gpio_free(S3C64XX_GPK(12));
err_unregister_device:
	platform_device_unregister(smartq_snd_device);

	return ret;
}
void samsung_keypad_cfg_gpio(unsigned int rows, unsigned int cols)
{
	unsigned int gpio;
	unsigned int end;

	/* Set all the necessary GPK pins to special-function 3: KP_ROW[x] */
	end = S3C64XX_GPK(8 + rows);
	for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}

	/* Set all the necessary GPL pins to special-function 3: KP_COL[x] */
	end = S3C64XX_GPL(0 + cols);
	for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}
}
Пример #11
0
void s3c_setup_keypad_cfg_gpio(int rows, int columns)
{
	unsigned int gpio;
	unsigned int end;

	end = S3C64XX_GPK(8 + rows);
#if 0
	/* Set all the necessary GPK pins to special-function 0 */
	for (gpio = S3C64XX_GPK(8); gpio < end; gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}
#endif
	end = S3C64XX_GPL(0 + columns);

	/* Set all the necessary GPL pins to special-function 0 */
	for (gpio = S3C64XX_GPL(0); gpio < end; gpio++) {
		s3c_gpio_cfgpin(gpio, S3C_GPIO_SFN(3));
		s3c_gpio_setpull(gpio, S3C_GPIO_PULL_NONE);
	}
}
Пример #12
0
static void s3c24xx_serial_start_tx(struct uart_port *port)
{
	struct s3c24xx_uart_port *ourport = to_ourport(port);
	static int a =1;//temp
	if (port->line == 3) {
//		printk("485_start_tx\n");

		if(a){
			s3c_gpio_cfgpin(S3C64XX_GPK(5), S3C_GPIO_SFN(1));
			a=0;
		}
		gpio_set_value(S3C64XX_GPK(5), 1);
	}
	if (!tx_enabled(port)) {
		if (port->flags & UPF_CONS_FLOW)
			s3c24xx_serial_rx_disable(port);

		enable_irq(ourport->tx_irq);
		tx_enabled(port) = 1;
	}
}
Пример #13
0
static void s3c24xx_serial_stop_tx(struct uart_port *port)
{
	struct s3c24xx_uart_port *ourport = to_ourport(port);

	if (tx_enabled(port)) {
		disable_irq_nosync(ourport->tx_irq);
		tx_enabled(port) = 0;
		if (port->flags & UPF_CONS_FLOW)
			s3c24xx_serial_rx_enable(port);
	}
	if (port->line == 3) {
		//printk("485_stop_rx\n");
		gpio_set_value(S3C64XX_GPK(5), 1);
	}
}
Пример #14
0
void s3c64xx_ide_setup_gpio(void)
{
	u32 reg;

	reg = readl(S3C_MEM_SYS_CFG) & (~0x3f);

	
	writel(reg | MEM_SYS_CFG_INDEP_CF |
		MEM_SYS_CFG_EBI_FIX_PRI_CFCON, S3C_MEM_SYS_CFG);

	s3c_gpio_cfgpin(S3C64XX_GPB(4), S3C_GPIO_SFN(4));

	
	s3c_gpio_cfgpin_range(S3C64XX_GPK(0), 16, S3C_GPIO_SFN(5));

	
	s3c_gpio_cfgpin_range(S3C64XX_GPL(0), 3, S3C_GPIO_SFN(6));

	
	s3c_gpio_cfgpin(S3C64XX_GPM(5), S3C_GPIO_SFN(1));
	s3c_gpio_cfgpin_range(S3C64XX_GPM(0), 5, S3C_GPIO_SFN(6));
}
Пример #15
0
void s3c64xx_ide_setup_gpio(void)
{
	u32 reg;

	reg = readl(S3C_MEM_SYS_CFG) & (~0x3f);

	/* Independent CF interface, CF chip select configuration */
	writel(reg | MEM_SYS_CFG_INDEP_CF |
		MEM_SYS_CFG_EBI_FIX_PRI_CFCON, S3C_MEM_SYS_CFG);

	s3c_gpio_cfgpin(S3C64XX_GPB(4), S3C_GPIO_SFN(4));

	/* Set XhiDATA[15:0] pins as CF Data[15:0] */
	s3c_gpio_cfgpin_range(S3C64XX_GPK(0), 16, S3C_GPIO_SFN(5));

	/* Set XhiADDR[2:0] pins as CF ADDR[2:0] */
	s3c_gpio_cfgpin_range(S3C64XX_GPL(0), 3, S3C_GPIO_SFN(6));

	/* Set Xhi ctrl pins as CF ctrl pins(IORDY, IOWR, IORD, CE[0:1]) */
	s3c_gpio_cfgpin(S3C64XX_GPM(5), S3C_GPIO_SFN(1));
	s3c_gpio_cfgpin_range(S3C64XX_GPM(0), 5, S3C_GPIO_SFN(6));
}
Пример #16
0
/*
 * Get GPIO_GPKDAT value
 */
static void buddy_get_GPKDAT(void)
{
	printk(KERN_INFO "GPKDAT[%2d]\n",readl(S3C64XX_GPKDAT));
	printk(KERN_INFO "GPK00[%2d]\n",gpio_get_value(S3C64XX_GPK(0)));
	printk(KERN_INFO "GPK01[%2d]\n",gpio_get_value(S3C64XX_GPK(1)));
	printk(KERN_INFO "GPK02[%2d]\n",gpio_get_value(S3C64XX_GPK(2)));
	printk(KERN_INFO "GPK03[%2d]\n",gpio_get_value(S3C64XX_GPK(3)));
	printk(KERN_INFO "GPK04[%2d]\n",gpio_get_value(S3C64XX_GPK(4)));
	printk(KERN_INFO "GPK05[%2d]\n",gpio_get_value(S3C64XX_GPK(5)));
	printk(KERN_INFO "GPK06[%2d]\n",gpio_get_value(S3C64XX_GPK(6)));
	printk(KERN_INFO "GPK07[%2d]\n",gpio_get_value(S3C64XX_GPK(7)));
	printk(KERN_INFO "GPK08[%2d]\n",gpio_get_value(S3C64XX_GPK(8)));
	printk(KERN_INFO "GPK09[%2d]\n",gpio_get_value(S3C64XX_GPK(9)));
	printk(KERN_INFO "GPK10[%2d]\n",gpio_get_value(S3C64XX_GPK(10)));
	printk(KERN_INFO "GPK11[%2d]\n",gpio_get_value(S3C64XX_GPK(11)));
	printk(KERN_INFO "GPK12[%2d]\n",gpio_get_value(S3C64XX_GPK(12)));
	printk(KERN_INFO "GPK13[%2d]\n",gpio_get_value(S3C64XX_GPK(13)));
	printk(KERN_INFO "GPK14[%2d]\n",gpio_get_value(S3C64XX_GPK(14)));
	printk(KERN_INFO "GPK15[%2d]\n",gpio_get_value(S3C64XX_GPK(15)));
}
Пример #17
0
}

static struct s3c_gpio_chip gpio_4bit2[] = {
	{
		.base	= S3C64XX_GPH_BASE + 0x4,
		.config	= &gpio_4bit_cfg_eint0111,
		.chip	= {
			.base	= S3C64XX_GPH(0),
			.ngpio	= S3C64XX_GPIO_H_NR,
			.label	= "GPH",
		},
	}, {
		.base	= S3C64XX_GPK_BASE + 0x4,
		.config	= &gpio_4bit_cfg_noint,
		.chip	= {
			.base	= S3C64XX_GPK(0),
			.ngpio	= S3C64XX_GPIO_K_NR,
			.label	= "GPK",
		},
	}, {
		.base	= S3C64XX_GPL_BASE + 0x4,
		.config	= &gpio_4bit_cfg_eint0011,
		.chip	= {
			.base	= S3C64XX_GPL(0),
			.ngpio	= S3C64XX_GPIO_L_NR,
			.label	= "GPL",
			.to_irq = s3c64xx_gpio2int_gpl,
		},
	},
};
Пример #18
0
static void __exit smartq_exit(void)
{
	gpio_free(S3C64XX_GPK(12));

	platform_device_unregister(smartq_snd_device);
}
Пример #19
0
	&speyside_device,
	&tobermory_device,
	&littlemill_device,
	&lowland_device,
	&wallvdd_device,
};

static struct pca953x_platform_data crag6410_pca_data = {
	.gpio_base	= PCA935X_GPIO_BASE,
	.irq_base	= -1,
};

/* VDDARM is controlled by DVS1 connected to GPK(0) */
static struct wm831x_buckv_pdata vddarm_pdata = {
	.dvs_control_src = 1,
	.dvs_gpio = S3C64XX_GPK(0),
};

static struct regulator_consumer_supply vddarm_consumers[] __initdata = {
	REGULATOR_SUPPLY("vddarm", NULL),
};

static struct regulator_init_data vddarm __initdata = {
	.constraints = {
		.name = "VDDARM",
		.min_uV = 1000000,
		.max_uV = 1300000,
		.always_on = 1,
		.valid_ops_mask = REGULATOR_CHANGE_VOLTAGE,
	},
	.num_consumer_supplies = ARRAY_SIZE(vddarm_consumers),
Пример #20
0
	if (idx == 6) {
		printk("Setup ethernet address to %pM\n", addr);
		memcpy(dm9000_setup.param_addr, addr, 6);
	}

	return 1;
}

__setup("ethmac=", dm9000_set_mac);
#endif

//LED
static struct gpio_led mini6410_led_pins[] = {
	{
		.name		= "LED1",
		.gpio		= S3C64XX_GPK(4),
		.active_low	= true,
	},
	{
		.name		= "LED2",
		.gpio		= S3C64XX_GPK(5) ,
		.active_low	= true,
	},
	{
		.name		= "LED3",
		.gpio		= S3C64XX_GPK(7),
		.active_low	= true,
	},
	{
		.name		= "LED4",
		.gpio		= S3C64XX_GPK(6),
Пример #21
0
static void smartq_power_off(void)
{
	gpio_direction_output(S3C64XX_GPK(15), 1);
}