* 1) isp_clk 208.8M for 1lane, isp_clk 416.6M for 2lane;
*v0.f.0:
1) mi_mis register may read erro, this may cause mistaken mi frame_end irqs.
+*v0.0x10.0:
+ 1) add flash_prelight control.
*/
-#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0,0xe,0)
+#define CAMSYS_DRIVER_VERSION KERNEL_VERSION(0,0x10,0)
#define CAMSYS_PLATFORM_DRV_NAME "RockChip-CamSys"
} else {
strcpy(state_str,"isp_mipi_fl");
}
+ {
+ //mux triggerout as gpio
+ //get gpio index
+ int flash_trigger_io ;
+ enum of_gpio_flags flags;
+ flash_trigger_io = of_get_named_gpio_flags(camsys_dev->pdev->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");
}
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);
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);