From: dalon.zhang Date: Mon, 21 Jul 2014 01:56:45 +0000 (+0800) Subject: camsys: v0.0x10.0 X-Git-Tag: firefly_0821_release~4963 X-Git-Url: http://demsky.eecs.uci.edu/git/?a=commitdiff_plain;h=b3ddb5fbbc29d8d8e72b6a20f20393be5f06f921;p=firefly-linux-kernel-4.4.55.git camsys: v0.0x10.0 --- diff --git a/drivers/media/video/rk_camsys/camsys_drv.c b/drivers/media/video/rk_camsys/camsys_drv.c index c5262861d581..d8ffa4688bba 100755 --- a/drivers/media/video/rk_camsys/camsys_drv.c +++ b/drivers/media/video/rk_camsys/camsys_drv.c @@ -181,7 +181,7 @@ static int camsys_extdev_register(camsys_devio_name_t *devio, camsys_dev_t *cams } extdev->dev_cfg = devio->dev_cfg; - + extdev->fl.fl.active = devio->fl.fl.active; regulator_info = &devio->avdd; regulator = &extdev->avdd; for (i=(CamSys_Vdd_Start_Tag+1); ipdev->dev.of_node, "rockchip,gpios", 0, &flags); + if(gpio_is_valid(flash_trigger_io)){ + flash_trigger_io = of_get_named_gpio_flags(camsys_dev->pdev->dev.of_node, "rockchip,gpios", 0, &flags); + gpio_request(flash_trigger_io,"camsys_gpio"); + gpio_direction_output(flash_trigger_io, (~(extdev->fl.fl.active) & 0x1)); + } + } } else { strcpy(state_str,"default"); } @@ -122,7 +134,8 @@ static int camsys_mrv_flash_trigger_cb(void *ptr,unsigned int on) char state_str[20] = {0}; int retval = 0; enum of_gpio_flags flags; - + camsys_extdev_t *extdev = NULL; + if(!on){ strcpy(state_str,"isp_flash_as_gpio"); pinctrl = devm_pinctrl_get(dev); @@ -148,9 +161,15 @@ static int camsys_mrv_flash_trigger_cb(void *ptr,unsigned int on) if(gpio_is_valid(flash_trigger_io)){ flash_trigger_io = of_get_named_gpio_flags(camsys_dev->pdev->dev.of_node, "rockchip,gpios", 0, &flags); gpio_request(flash_trigger_io,"camsys_gpio"); - gpio_direction_output(flash_trigger_io, 1); - } - + //get flash io active pol + if (!list_empty(&camsys_dev->extdevs.list)) { + list_for_each_entry(extdev, &camsys_dev->extdevs.list, list) { + if (extdev->dev_cfg & CAMSYS_DEVCFG_FLASHLIGHT) { + gpio_direction_output(flash_trigger_io, (~(extdev->fl.fl.active) & 0x1)); + } + } + } + } }else{ strcpy(state_str,"isp_flash_as_trigger_out"); pinctrl = devm_pinctrl_get(dev);