11#ifndef __SDRV_CAM_OS_DEF_H__
12#define __SDRV_CAM_OS_DEF_H__
28#include "armv7-r/atomic.h"
29#include "armv7-r/cache.h"
30#include "armv7-r/irq.h"
38#include "udelay/udelay.h"
41#define malloc(a) _DO_NOT_USE_MALLOC_IN_BAREMETAL_
44#define csi_err(x...) ssdk_printf(SSDK_ERR, x)
45#define csi_warn(x...) ssdk_printf(SSDK_WARNING, x)
46#define csi_info(x...) ssdk_printf(SSDK_NOTICE, x)
47#define csi_debug(x...) ssdk_printf(SSDK_DEBUG, x)
49#define cam_err(x...) ssdk_printf(SSDK_ERR, x)
50#define cam_info(x...) ssdk_printf(SSDK_NOTICE, x)
51#define cam_debug(x...) ssdk_printf(SSDK_DEBUG, x)
53#define sensor_err(x...) ssdk_printf(SSDK_ERR, x)
54#define sensor_info(x...) ssdk_printf(SSDK_NOTICE, x)
55#define sensor_debug(x...) ssdk_printf(SSDK_DEBUG, x)
57#define deser_crit(x...) ssdk_printf(SSDK_CRIT, x)
58#define deser_err(x...) ssdk_printf(SSDK_ERR, x)
59#define deser_info(x...) ssdk_printf(SSDK_NOTICE, x)
60#define deser_debug(x...) ssdk_printf(SSDK_DEBUG, x)
62#define HAL_LOGE(x...) ssdk_printf(SSDK_ERR, x)
63#define HAL_LOGI(x...) ssdk_printf(SSDK_NOTICE, x)
64#define HAL_LOGD(x...) ssdk_printf(SSDK_DEBUG, x)
85#define CSI_COMPLETE_EVENT_FLAG 1u
94 return readl(base + addr);
99 writel(val, base + addr);
105 if (ms < MAX_UDELAY / 1000) {
110 ms -= (MAX_UDELAY / 1000);
118 max = max / 2 + min / 2;
120 if (max < MAX_UDELAY) {
146 com->
event &= (~CSI_COMPLETE_EVENT_FLAG);
162 state = arch_irq_save();
164 arch_irq_restore(state);
169#define spin_lock_init(a) (*a = NULL)
171#define spin_lock_irqsave(spinlock, flags) \
173 irq_state_t state = arch_irq_save(); \
177#define spin_unlock_irqrestore(spinlock, flags) \
179 irq_state_t state = (irq_state_t)flags; \
180 arch_irq_restore(state); \
184static inline void gpio_set(
void *dev,
unsigned int pin,
bool level)
206inline static int i2c_write(
void *adap, uint8_t addr, uint8_t *buf,
int count)
218inline static int i2c_read(
void *adap, uint8_t addr, uint8_t *buf,
int count)
231 int regc, uint8_t *buf,
int bufc)
Interrupt interface hearder file.
#define udelay(us)
Definition: sdrv-cam-os-def.h:121
#define NULL
Definition: sdrv_crypto_utility.h:21
SemiDrive GPIO driver header file.
status_t sdrv_gpio_set_pin_direction(uint32_t pin_index, gpio_direction_e dir)
Config gpio direction.
status_t sdrv_gpio_set_pin_output_level(uint32_t pin_index, bool level)
Config gpio output level.
@ GPIO_DIR_OUT
Definition: sdrv_gpio.h:32
SemiDrive I2C driver header file.
@ SDRV_I2CDRV_TRANS_OK
Definition: sdrv_i2c.h:21
status_t sdrv_i2c_read(sdrv_i2c_t *ctrl, uint16_t addr, uint8_t *rbuf, uint16_t rlen, uint32_t timeout, bool need_stop)
Read data from slave device use poll blocking format.
status_t sdrv_i2c_get_trans_stat(sdrv_i2c_t *ctrl)
Get transfer stat(only applicable for master).
sdrv_i2cdrv_bus_stat_t sdrv_i2c_get_bus_stat(sdrv_i2c_t *ctrl)
Get bus stat(only applicable for master). @this api will abandon,please use sdrv_i2c_lock_bus/sdrv_i2...
status_t sdrv_i2c_write(sdrv_i2c_t *ctrl, uint16_t addr, uint8_t *wbuf, uint16_t wlen, uint32_t timeout, bool need_stop)
Write data to slave device use poll blocking format.
sdrv_i2cdrv_bus_stat_t
i2c bus stat(only applicable for master mode)
Definition: sdrv_i2c.h:60
@ SDRV_I2CDRV_BUS_BUSY
Definition: sdrv_i2c.h:62
@ SDRV_I2CDRV_BUS_IDLE
Definition: sdrv_i2c.h:61
status_t sdrv_i2c_set_bus_stat(sdrv_i2c_t *ctrl, sdrv_i2cdrv_bus_stat_t bus_stat)
Set bus stat(only applicable for master). @this api will abandon,please use sdrv_i2c_lock_bus/sdrv_i2...
Definition: sdrv-cam-baremetal-def.h:88
osEventFlagsId_t event
Definition: sdrv-cam-baremetal-def.h:89