Beispiel #1
0
static int s5pv210_spdif_cfg_gpio(struct platform_device *pdev)
{
    s3c_gpio_cfgpin(S5PV210_GPC1(0), (0x3)<<0);
    s3c_gpio_cfgpin(S5PV210_GPC1(1), (0x3)<<4);

    return 0;
}
Beispiel #2
0
static int s5pv210_pcm_cfg_gpio(struct platform_device *pdev)
{
    switch (pdev->id) {
    case 0:
        s3c_gpio_cfgpin(S5PV210_GPI(0), S3C_GPIO_SFN(3));
        s3c_gpio_cfgpin(S5PV210_GPI(1), S3C_GPIO_SFN(3));
        s3c_gpio_cfgpin(S5PV210_GPI(2), S3C_GPIO_SFN(3));
        s3c_gpio_cfgpin(S5PV210_GPI(3), S3C_GPIO_SFN(3));
        s3c_gpio_cfgpin(S5PV210_GPI(4), S3C_GPIO_SFN(3));
        break;
    case 1:
        s3c_gpio_cfgpin(S5PV210_GPC0(0), S3C_GPIO_SFN(3));
        s3c_gpio_cfgpin(S5PV210_GPC0(1), S3C_GPIO_SFN(3));
        s3c_gpio_cfgpin(S5PV210_GPC0(2), S3C_GPIO_SFN(3));
        s3c_gpio_cfgpin(S5PV210_GPC0(3), S3C_GPIO_SFN(3));
        s3c_gpio_cfgpin(S5PV210_GPC0(4), S3C_GPIO_SFN(3));
        break;
    case 2:
        s3c_gpio_cfgpin(S5PV210_GPC1(0), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPC1(1), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPC1(2), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPC1(3), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPC1(4), S3C_GPIO_SFN(2));
        break;
    default:
        printk(KERN_DEBUG "Invalid PCM Controller number!");
        return -EINVAL;
    }

    return 0;
}
Beispiel #3
0
static int smdkc110_set_gpio(int id)
{
        switch(id)
        {
        case 0:
                s3c_gpio_cfgpin (S5PV210_GPC1(0), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPC1(1), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPC1(2), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPC1(3), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPC1(4), S3C_GPIO_SFN(3));

                s3c_gpio_setpull(S5PV210_GPC1(0), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPC1(1), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPC1(2), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPC1(3), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPC1(4), S3C_GPIO_PULL_NONE);
                
		break;
        case 1:
                s3c_gpio_cfgpin (S5PV210_GPC0(0), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPC0(1), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPC0(2), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPC0(3), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPC0(4), S3C_GPIO_SFN(3));
		
		s3c_gpio_setpull(S5PV210_GPC0(0), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPC0(1), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPC0(2), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPC0(3), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPC0(4), S3C_GPIO_PULL_NONE);
		break;

	case 2:
                s3c_gpio_cfgpin (S5PV210_GPI(0), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPI(1), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPI(2), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPI(3), S3C_GPIO_SFN(3));
                s3c_gpio_cfgpin (S5PV210_GPI(4), S3C_GPIO_SFN(3));

                s3c_gpio_setpull(S5PV210_GPI(0), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPI(1), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPI(2), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPI(3), S3C_GPIO_PULL_NONE);
                s3c_gpio_setpull(S5PV210_GPI(4), S3C_GPIO_PULL_NONE);
		
		break;
        default:
                debug_msg("Not a valid PCM IP Number. - %d\n", id);
                return -EINVAL;
        }
        return 0;
}
Beispiel #4
0
int s3cfb_lcd_on(struct platform_device *pdev)
{
	int err;
	
	printk("LCD.....on\n");

	//GPC1_0 -->LCD 3.3V enable
	err = gpio_request(S5PV210_GPC1(0), "GPC1");
	if (err) {
		printk(KERN_ERR "failed to request GPH0 for "
			"LVDS chip enable\n");
		return err;
	}

	gpio_direction_output(S5PV210_GPC1(0), 1);
	gpio_set_value(S5PV210_GPC1(0), 1);
	gpio_free(S5PV210_GPC1(0));
	
#ifdef CONFIG_FB_BYD_8688
	//GPG3_6 -->PINCTL
	err = gpio_request(S5PV210_GPG3(6), "GPG3");
	if (err) {
		printk(KERN_ERR "failed to request GPH0 for "
			"LVDS chip enable\n");
		return err;
	}

	gpio_direction_output(S5PV210_GPG3(6), 1);
	gpio_set_value(S5PV210_GPG3(6), 1);
	gpio_free(S5PV210_GPG3(6));
	
	//GPG3_4 -->VCOM enable
	err = gpio_request(S5PV210_GPG3(4), "GPG3");
	if (err) {
		printk(KERN_ERR "failed to request GPH0 for "
			"LVDS chip enable\n");
		return err;
	}
	gpio_direction_input(S5PV210_GPG3(4));

	//gpio_direction_output(S5PV210_GPG3(4), 0);
	//gpio_set_value(S5PV210_GPG3(4), 0);
	gpio_free(S5PV210_GPG3(4));
#endif



	return 0;
}
Beispiel #5
0
static void led_exit(void)
{
    gpio_free(S5PV210_GPC1(3));
    device_remove_file(pled->led_device, &dev_attr_control);
    device_destroy(pled->led_class,MKDEV(0, 0));
    class_destroy(pled->led_class);
    dev_set_drvdata(pled->led_device,NULL);
    kfree(pled);
}
Beispiel #6
0
static int led_init(void)
{
    int ret = 0;

    pled = kmalloc(sizeof(struct led_dev), GFP_KERNEL);
    if (IS_ERR(pled)) {
        printk(KERN_ALERT "Led: No enough memory for private struct\n");
        ret = PTR_ERR(pled);
        goto failure_init_led;
    }

    memset(pled, 0, sizeof(struct led_dev));

    pled->led_class = class_create(THIS_MODULE, "leds");
    if (IS_ERR(pled->led_class)) {
        printk(KERN_ALERT "Led: Cannot create a device class\n");
        ret = PTR_ERR(pled->led_class);
        goto failure_create_class;
    }

    pled->led_device = device_create(pled->led_class, NULL, MKDEV(0, 0), NULL, "leds");
    if (IS_ERR(pled->led_device)) {
        printk(KERN_ALERT "Led: Cannot create a device /dev/leds");
        ret = PTR_ERR(pled->led_device);
        goto failure_create_device;
    }

    ret = device_create_file(pled->led_device, &dev_attr_control);
    if (ret < 0) {
        printk(KERN_ALERT "Led: Cannot create a device attribure\n");
        goto failure_create_attribure;
    }
    pled->config = led_config;
    pled->state = 0;

    ret = gpio_request(S5PV210_GPC1(3), "leds");
    if(ret) {
        printk(KERN_ALERT "Led: Cannot request gpio\n");
        goto failure_request_gpio;
    }
    dev_set_drvdata(pled->led_device, pled);
    return 0;

failure_request_gpio:
    device_remove_file(pled->led_device,&dev_attr_control);
failure_create_attribure:
    device_destroy(pled->led_class, MKDEV(0, 0));
failure_create_device:
    class_destroy(pled->led_class);
failure_create_class:
    kfree(pled);
failure_init_led:
    return ret;
}
int s3cfb_lcd_on(struct platform_device *pdev)
{
	int err;

	err = gpio_request(S5PV210_GPC1(4), "GPC1");
	if (err) {
		printk(KERN_ERR "failed to request GPC1 for "
			"lcd reset control\n");
		return err;
	}

	gpio_direction_output(S5PV210_GPC1(4), 1);
	mdelay(100);

	gpio_set_value(S5PV210_GPC1(4), 0);
	mdelay(10);

	gpio_set_value(S5PV210_GPC1(4), 1);
	mdelay(10);

	gpio_free(S5PV210_GPC1(4));

#if defined(CONFIG_FB_S3C_LTN101NT05)
	err = gpio_request(S5PV210_GPH3(7), "GPH3");
	if (err) {
		printk(KERN_ERR "failed to request GPH3 for "
			"lcd control\n");
		return err;
	}

	gpio_direction_output(S5PV210_GPH3(7), 1);
	mdelay(10);

	gpio_free(S5PV210_GPH3(7));
#endif
	return 0;
}
Beispiel #8
0
static int s5pv210_cfg_i2s(struct platform_device *pdev)
{
    /* configure GPIO for i2s port */
    switch (pdev->id) {
    case 1:
        s3c_gpio_cfgpin(S5PV210_GPC0(0), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPC0(1), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPC0(2), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPC0(3), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPC0(4), S3C_GPIO_SFN(2));
        break;

    case 2:
        s3c_gpio_cfgpin(S5PV210_GPC1(0), S3C_GPIO_SFN(4));
        s3c_gpio_cfgpin(S5PV210_GPC1(1), S3C_GPIO_SFN(4));
        s3c_gpio_cfgpin(S5PV210_GPC1(2), S3C_GPIO_SFN(4));
        s3c_gpio_cfgpin(S5PV210_GPC1(3), S3C_GPIO_SFN(4));
        s3c_gpio_cfgpin(S5PV210_GPC1(4), S3C_GPIO_SFN(4));
        break;

    case 0:
        s3c_gpio_cfgpin(S5PV210_GPI(0), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPI(1), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPI(2), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPI(3), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPI(4), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPI(5), S3C_GPIO_SFN(2));
        s3c_gpio_cfgpin(S5PV210_GPI(6), S3C_GPIO_SFN(2));
        break;

    default:
        printk(KERN_ERR "Invalid Device %d\n", pdev->id);
        return -EINVAL;
    }

    return 0;
}
Beispiel #9
0
static int s5pv210_cfg_i2s(struct platform_device *pdev)
{
	
	switch (pdev->id) {
	case 0:
		s3c_gpio_cfgpin_range(S5PV210_GPI(0), 7, S3C_GPIO_SFN(2));
		break;
	case 1:
		s3c_gpio_cfgpin_range(S5PV210_GPC0(0), 5, S3C_GPIO_SFN(2));
		break;
	case 2:
		s3c_gpio_cfgpin_range(S5PV210_GPC1(0), 5, S3C_GPIO_SFN(4));
		break;
	default:
		printk(KERN_ERR "Invalid Device %d\n", pdev->id);
		return -EINVAL;
	}

	return 0;
}
Beispiel #10
0
module_param(mpstring, charp, 0);
MODULE_PARM_DESC(mpstring, "one character string ");

module_param_array(mparray, int, NULL, 0);
MODULE_PARM_DESC(mparray, "one integer array");

struct led_gpio_table{
	unsigned long gpio;
	char *name;
};

extern void led_control(unsigned long gpio,int flags);

static struct led_gpio_table gpio_info[] = {
	[0] = {
		.gpio 	= S5PV210_GPC1(3),
		.name	= "GPC1_3"
	},
	[1] = {
		.gpio	= S5PV210_GPC1(4),
		.name	= "GPC1_4"
	}
};

static int led_init(void)
{

	int i;
	printk("%s\n", __FUNCTION__);

	for (i = 0; i < ARRAY_SIZE(gpio_info); i++) {
Beispiel #11
0
			.ngpio	= S5PV210_GPIO_B_NR,
			.label	= "GPB",
		},
	}, {
		.base	= S5PV210_GPC0_BASE,
		.config	= &gpio_cfg,
		.chip	= {
			.base	= S5PV210_GPC0(0),
			.ngpio	= S5PV210_GPIO_C0_NR,
			.label	= "GPC0",
		},
	}, {
		.base	= S5PV210_GPC1_BASE,
		.config	= &gpio_cfg,
		.chip	= {
			.base	= S5PV210_GPC1(0),
			.ngpio	= S5PV210_GPIO_C1_NR,
			.label	= "GPC1",
		},
	}, {
		.base	= S5PV210_GPD0_BASE,
		.config	= &gpio_cfg,
		.chip	= {
			.base	= S5PV210_GPD0(0),
			.ngpio	= S5PV210_GPIO_D0_NR,
			.label	= "GPD0",
		},
	}, {
		.base	= S5PV210_GPD1_BASE,
		.config	= &gpio_cfg,
		.chip	= {
Beispiel #12
0
#include <plat/gpio-cfg.h>
#include <plat/gpio-cfg-helpers.h>



#define DEVICE_NAME "led"


/* 应用程序执行ioctl(fd, cmd, arg)时的第2个参数 */
#define IOCTL_GPIO_ON	1
#define IOCTL_GPIO_OFF	0

/* 用来指定LED所用的GPIO引脚 */
static unsigned long gpio_table [] =
{
	S5PV210_GPC1(3),
	S5PV210_GPC1(4),
};

/* 用来指定GPIO引脚的功能:输出 */
static unsigned int gpio_cfg_table [] =
{
	S3C_GPIO_SFN(1),
	S3C_GPIO_SFN(1),
};

//static char gpio_name[][]={{"GPC1_3"},{"GPC1_4"}};



Beispiel #13
0
static void led_config(struct led_dev *dev, int value)
{
    gpio_direction_output(S5PV210_GPC1(3),value);
    dev->state = value;
}
Beispiel #14
0
static int s5pv210_spdif_cfg_gpio(struct platform_device *pdev)
{
	s3c_gpio_cfgpin_range(S5PV210_GPC1(0), 2, S3C_GPIO_SFN(3));

	return 0;
}
Beispiel #15
0
         {
                  .name   = "led_green",
                  .gpio   = S5PV210_GPJ3(2),
                  .active_low = 0,
                  .default_state = LEDS_GPIO_DEFSTATE_ON,
          },
          {
                  .name   = "led_red",
                  .gpio   = S5PV210_GPJ3(3),
                  .active_low = 0,
                  .default_state = LEDS_GPIO_DEFSTATE_OFF,
          },
#endif
	  {
                 .name   = "button-backlight",
                 .gpio   =  S5PV210_GPC1(1),
                 .active_low = 0,
                 .default_state = LEDS_GPIO_DEFSTATE_OFF,
         },
};

static struct gpio_led_platform_data gpio_led_info = {
         .leds           = gpio_leds,
        .num_leds       = ARRAY_SIZE(gpio_leds),
};

struct platform_device s3c_device_led = {
         .name   = "leds-gpio",
         .id     = -1,
         .dev    = {
                 .platform_data  = &gpio_led_info,