static __s32 camera_request_clk(__u32 csi_index, struct clk **csi_module_clk, struct clk **csi_clk_src, __hdle *csi_pin_hd) { #ifdef VFE_CLK char *csi[2] = {VFE_MASTER_CLK0, VFE_MASTER_CLK1}; __s32 ret = 0; //*csi_pin_hd = gpio_request_ex(csi_para[csi_index], NULL); ret = camera_req_mclk_pin(csi_index); if(ret != 0) { camera_err("request Mclock fail !!\n"); return ret; } *csi_module_clk = clk_get(NULL, csi[csi_index]); if(*csi_module_clk == NULL) { camera_err("get %s module clk error!\n", csi[csi_index]); return -ECLKSRC; } *csi_clk_src = clk_get(NULL, HOSC_CLK); if (*csi_clk_src == NULL) { camera_err("get %s hosc source clk error!\n", csi[csi_index]); return -ECLKSRC; } ret = clk_set_parent(*csi_module_clk, *csi_clk_src); if (ret == -1) { camera_err(" csi set parent failed \n"); return -ECLKSRC; } clk_put(*csi_clk_src); ret = clk_set_rate(*csi_module_clk, CSI_MCLK); if (ret == -1) { camera_err("set %s module clock error\n", csi[csi_index]); return -ECLKSRC; } ret = clk_prepare_enable(*csi_module_clk); if (ret == -1) { camera_err("enable module clock error\n"); return -ECLKSRC; } return 0; #else return 0; #endif }
static __s32 camera_request_clk(__u32 csi_index, struct clk **csi_module_clk, struct clk **csi_clk_src, __hdle *csi_pin_hd) { char *csi[2] = {CLK_MOD_CSI0, CLK_MOD_CSI1}; __s32 ret = 0; //*csi_pin_hd = gpio_request_ex(csi_para[csi_index], NULL); ret = camera_req_mclk_pin(csi_index); if(ret != 0) { camera_err("request Mclock fail !!\n"); return ret; } *csi_module_clk = clk_get(NULL, csi[csi_index]); if(*csi_module_clk == NULL) { camera_err("get %s module clk error!\n", csi[csi_index]); return -ECLKSRC; } *csi_clk_src = clk_get(NULL, CLK_SYS_HOSC);//"hosc" if (*csi_clk_src == NULL) { camera_err("get %s hosc source clk error!\n", csi[csi_index]); return -ECLKSRC; } ret = clk_set_parent(*csi_module_clk, *csi_clk_src); if (ret == -1) { camera_err(" csi set parent failed \n"); return -ECLKSRC; } clk_put(*csi_clk_src); ret = clk_set_rate(*csi_module_clk, CSI_MCLK); if (ret == -1) { camera_err("set %s module clock error\n", csi[csi_index]); return -ECLKSRC; } ret = clk_enable(*csi_module_clk); if (ret == -1) { camera_err("enable module clock error\n"); return -ECLKSRC; } return 0; }