Files

65 lines
1.3 KiB
C
Executable File

#include <linux/export.h>
#include <linux/init.h>
#include <linux/module.h>
#include <linux/kernel.h>
#include "xmedia_type.h"
#include "xmedia_errcode.h"
#include "drv_isp_export.h"
#include "adp_isp.h"
typedef struct {
xmedia_u32 sensor_num;
xmedia_u32 clk_chn;
} adp_isp_cfg;
static adp_isp_cfg g_cfg[] = {
{ 0, 0 },
};
xmedia_s32 adp_isp_set_mclk(xmedia_u32 sensor_num, xmedia_bool enable, xmedia_sensor_clock_freq clk)
{
xmedia_s32 i;
xmedia_s32 num = sizeof(g_cfg) / sizeof(adp_isp_cfg);
for (i = 0; i < num; i++) {
if (g_cfg[i].sensor_num == sensor_num) {
return drv_isp_set_mclk(g_cfg[i].clk_chn, enable, clk);
}
}
return XMEDIA_ERRCODE_INVALID_PARAM;
}
EXPORT_SYMBOL(adp_isp_set_mclk);
xmedia_s32 adp_isp_set_i2c(xmedia_u32 sensor_num, xmedia_sensor_bus_type bus_type, adp_isp_i2c_callback *i2c_callback)
{
isp_i2c_callback i2c_cb = { 0 };
if (i2c_callback == XMEDIA_NULL) {
return XMEDIA_ERRCODE_INVALID_PARAM;
}
i2c_cb.pfn_i2c_write = i2c_callback->pfn_i2c_write;
return drv_isp_register_i2c(&i2c_cb);
}
EXPORT_SYMBOL(adp_isp_set_i2c);
static int __init adp_isp_init(void)
{
return 0;
}
module_init(adp_isp_init);
static void __exit adp_isp_exit(void)
{
return;
}
module_exit(adp_isp_exit);
MODULE_LICENSE("GPL");