GK SDK 源码库: XMIPCLinuxV100R005C00SPC030 (kernel/tools/open_source excluded)

This commit is contained in:
lai
2026-09-06 03:52:57 +08:00
commit b1928b41c0
21813 changed files with 4413081 additions and 0 deletions
+22
View File
@@ -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
+65
View File
@@ -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");
+31
View File
@@ -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__