GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)
This commit is contained in:
Executable
+22
@@ -0,0 +1,22 @@
|
||||
|
||||
ifneq ($(srctree),)
|
||||
KERNEL_DIR := $(srctree)
|
||||
SDK_DIR := $(shell cd $(KERNEL_DIR)/../../.. && /bin/pwd)
|
||||
else
|
||||
SDK_DIR := $(shell cd $(CURDIR)/../../../../.. && /bin/pwd)
|
||||
endif
|
||||
|
||||
include $(SDK_DIR)/build/base.mk
|
||||
include $(SDK_DIR)/build/version.mk
|
||||
|
||||
ISP_DIR := $(GMP_DIR)/drv/isp
|
||||
|
||||
MOD_NAME := xm_isp_adp
|
||||
|
||||
SRCS :=
|
||||
SRCS += adp_isp.c
|
||||
|
||||
SDK_KER_CFLAGS += -I$(GMP_DIR)/include
|
||||
SDK_KER_CFLAGS += -I$(GMP_DIR)/drv/include
|
||||
|
||||
include $(SDK_DIR)/build/sdk_ko_rules.mk
|
||||
Executable
+65
@@ -0,0 +1,65 @@
|
||||
#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");
|
||||
Executable
+31
@@ -0,0 +1,31 @@
|
||||
/*
|
||||
* Copyright (c) XMEDIA. All rights reserved.
|
||||
*/
|
||||
|
||||
#ifndef __ADP_ISP_H__
|
||||
#define __ADP_ISP_H__
|
||||
|
||||
#include "xmedia_type.h"
|
||||
#include "xmedia_isp.h"
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
extern "C" {
|
||||
#endif
|
||||
#endif
|
||||
|
||||
typedef struct {
|
||||
xmedia_s32 (*pfn_i2c_write)(xmedia_s8 i2c_dev, xmedia_u32 slave_addr, xmedia_u32 reg_addr,
|
||||
xmedia_u32 reg_addr_byte_num, xmedia_u32 data, xmedia_u32 data_byte_num);
|
||||
} adp_isp_i2c_callback;
|
||||
|
||||
xmedia_s32 adp_isp_set_mclk(xmedia_u32 sensor_num, xmedia_bool enable, xmedia_sensor_clock_freq clk);
|
||||
xmedia_s32 adp_isp_set_i2c(xmedia_u32 sensor_num, xmedia_sensor_bus_type bus_type, adp_isp_i2c_callback *i2c_callback);
|
||||
|
||||
#ifdef __cplusplus
|
||||
#if __cplusplus
|
||||
}
|
||||
#endif
|
||||
#endif
|
||||
|
||||
#endif // __ADP_ISP_H__
|
||||
Reference in New Issue
Block a user