mirror of
https://gitee.com/Vancouver2017/luban-lite.git
synced 2025-12-18 01:58:56 +00:00
v1.1.1
This commit is contained in:
@@ -8,6 +8,13 @@
|
||||
|
||||
#include "aic_core.h"
|
||||
#include "aic_hal_clk.h"
|
||||
#include "drv_camera.h"
|
||||
|
||||
#ifdef RT_USING_DEVICE_OPS
|
||||
#define DEV_IOCTL dev->ops->control
|
||||
#else
|
||||
#define DEV_IOCTL dev->control
|
||||
#endif
|
||||
|
||||
struct rt_i2c_bus_device *camera_i2c_get(void)
|
||||
{
|
||||
@@ -68,3 +75,211 @@ u32 camera_pwdn_pin_get(void)
|
||||
|
||||
return pin;
|
||||
}
|
||||
|
||||
void camera_pin_set_high(u32 pin)
|
||||
{
|
||||
if (!pin)
|
||||
return;
|
||||
|
||||
rt_pin_write(pin, PIN_HIGH);
|
||||
}
|
||||
|
||||
void camera_pin_set_low(u32 pin)
|
||||
{
|
||||
if (!pin)
|
||||
return;
|
||||
|
||||
rt_pin_write(pin, PIN_LOW);
|
||||
}
|
||||
|
||||
int camera_get_fmt(struct rt_device *dev, void *fmt)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || !fmt)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_GET_FMT, fmt);
|
||||
}
|
||||
|
||||
int camera_set_fmt(struct rt_device *dev, void *fmt)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || !fmt)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_FMT, fmt);
|
||||
}
|
||||
|
||||
int camera_set_fps(struct rt_device *dev, u32 fps)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_FPS, &fps);
|
||||
}
|
||||
|
||||
int camera_set_channel(struct rt_device *dev, u32 chan)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_CHANNEL, &chan);
|
||||
}
|
||||
|
||||
int camera_set_brightness(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_BRIGHTNESS, &percent);
|
||||
}
|
||||
|
||||
int camera_set_contrast(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_CONTRAST, &percent);
|
||||
}
|
||||
|
||||
int camera_set_saturation(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_SATURATION, &percent);
|
||||
}
|
||||
|
||||
int camera_set_hue(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_HUE, &percent);
|
||||
}
|
||||
|
||||
int camera_set_sharpness(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_SHARPNESS, &percent);
|
||||
}
|
||||
|
||||
int camera_set_denoise(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_DENOISE, &percent);
|
||||
}
|
||||
|
||||
int camera_set_quality(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_QUALITY, &percent);
|
||||
}
|
||||
|
||||
int camera_set_aec_val(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_AEC_VAL, &percent);
|
||||
}
|
||||
|
||||
int camera_set_autogain(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_AUTOGAIN, &percent);
|
||||
}
|
||||
|
||||
int camera_set_exposure(struct rt_device *dev, u32 percent)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL || percent > 100)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_EXPOSURE, &percent);
|
||||
}
|
||||
|
||||
int camera_set_gain_ctrl(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_GAIN_CTRL, &enable);
|
||||
}
|
||||
|
||||
int camera_set_whitebal(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_WHITEBAL, (void *)enable);
|
||||
}
|
||||
|
||||
int camera_set_awb(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_AWB, &enable);
|
||||
}
|
||||
|
||||
int camera_set_aec2(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_AEC2, &enable);
|
||||
}
|
||||
|
||||
int camera_set_dcw(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_DCW, &enable);
|
||||
}
|
||||
|
||||
int camera_set_bpc(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_BPC, &enable);
|
||||
}
|
||||
|
||||
int camera_set_wpc(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_WPC, &enable);
|
||||
}
|
||||
|
||||
int camera_set_h_flip(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_H_FLIP, &enable);
|
||||
}
|
||||
|
||||
int camera_set_v_flip(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_V_FLIP, &enable);
|
||||
}
|
||||
|
||||
int camera_set_colorbar(struct rt_device *dev, bool enable)
|
||||
{
|
||||
if (!dev || !DEV_IOCTL)
|
||||
return -1;
|
||||
|
||||
return DEV_IOCTL(dev, CAMERA_CMD_SET_COLORBAR, &enable);
|
||||
}
|
||||
|
||||
@@ -15,6 +15,12 @@ extern "C" {
|
||||
|
||||
#include "rtdef.h"
|
||||
|
||||
#define REG8_ADDR_INVALID 0xFF
|
||||
#define REG16_ADDR_INVALID 0xFFFF
|
||||
|
||||
#define PERCENT_TO_INT(min, max, p) ((min) + ((max) - (min)) * (p) / 100)
|
||||
#define PERCENT_IS_INVALID(p) (p > 100)
|
||||
|
||||
struct rt_i2c_bus_device *camera_i2c_get(void);
|
||||
|
||||
u32 camera_xclk_rate_get(void);
|
||||
@@ -23,6 +29,8 @@ void camera_xclk_disable(void);
|
||||
|
||||
u32 camera_rst_pin_get(void);
|
||||
u32 camera_pwdn_pin_get(void);
|
||||
void camera_pin_set_high(u32 pin);
|
||||
void camera_pin_set_low(u32 pin);
|
||||
|
||||
struct reg8_info {
|
||||
u8 reg;
|
||||
|
||||
Reference in New Issue
Block a user