//set the gpio io status
int vfe_gpio_set_status(struct v4l2_subdev *sd, enum gpio_type gpio_type, unsigned int status)
{
#ifdef VFE_GPIO 
	struct vfe_dev *dev=(struct vfe_dev *)dev_get_drvdata(sd->v4l2_dev->dev);
	__hdle gpio;
	switch(gpio_type) {
		case POWER_EN:
			gpio = dev->gpio->power_en_io;
			break;
		case PWDN:
			gpio = dev->gpio->pwdn_io;
			break;
		case RESET:
			gpio = dev->gpio->reset_io;
			break;
		case AF_PWDN:
			gpio = dev->gpio->af_pwdn_io;
			break;
		case FLASH_EN:
			gpio = dev->gpio->flash_en_io;
			break;
		case FLASH_MODE:
			gpio = dev->gpio->flash_mode_io;
			break;
		default:
			gpio = 0;
			break;
	}
	return os_gpio_set_status(gpio, status, NULL);
#else
	return 0;
#endif
}
Beispiel #2
0
int os_gpio_write(u32 p_handler, __u32 value_to_gpio, const char *gpio_name, int force_value_flag)
{
#ifdef VFE_GPIO
	if(1 == force_value_flag)
	{
		if(p_handler)
		{
			__gpio_set_value(p_handler, value_to_gpio);
		}
		else
		{
			vfe_dbg(0,"os_gpio_write, hdl is NULL\n");
		}

	}
	else
	{
		if(p_handler)
		{
			if(value_to_gpio == 0)
			{
				os_gpio_set_status(p_handler, 1, gpio_name);
				__gpio_set_value(p_handler, value_to_gpio);
			} 
			else
			{
				os_gpio_set_status(p_handler, 0, gpio_name);
			}
		}
		else
		{
			vfe_dbg(0,"os_gpio_write, hdl is NULL\n");
		}

	}
#endif
	return 0;
}