nt9856x/code/driver/source/mcu/sf_mcu_dev.h
2023-09-14 11:28:44 +08:00

68 lines
1.4 KiB
C
Executable File

#ifndef _SF_MCU_DEV_H
#define _SF_MCU_DEV_H
#ifdef __KERNEL__
#include <linux/delay.h>
//#include <mach/rcw_macro.h>
#include "kwrap/type.h"
//#include "kwrap/semaphore.h"
#include "kwrap/flag.h"
//#include "sf_ip6303.h"
#include <linux/i2c.h>
#include <linux/slab.h>
//#include "kflow_audiocapture/ctl_aud.h"
#else
#include "kwrap/type.h"
//#include "kwrap/semaphore.h"
#include "kwrap/flag.h"
//#include "sf_ip6303.h"
//#include "kflow_audiocapture/ctl_aud.h"
#include "rtos_na51089/kdrv_i2c.h"
#endif
#define SUCCESS 0
#define FAIL 1
//#ifndef SF_I2C_NAME
#define SF_I2C_NAME "sf_mcu"
//#endif
//#ifndef SF_I2C_ADDR
#if (defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S530_) || defined(_MODEL_565_HUNTING_EVB_LINUX_4G_S550_))
#define MCU_I2C_SLAVE_ADDR (0x20>>1)
#elif defined(_MODEL_565_HUNTING_EVB_LINUX_4G_68CS_)
#define MCU_I2C_SLAVE_ADDR (0xA0>>1)
#else
#define MCU_I2C_SLAVE_ADDR (0x20>>1)
#endif
//#endif
#define IOC_MCU_GET _IOWR('r', 1, unsigned int)
#define IOC_MCU_SET _IOWR('r', 2, unsigned int)
typedef enum _SF_I2C_ID {
SF_I2C_ID_1 = 0,
SF_I2C_ID_2 = 1,
SF_I2C_ID_3 = 2,
SF_I2C_ID_4 = 3,
SF_I2C_ID_5 = 4,
ENUM_DUMMY4WORD(SF_I2C_ID)
} SF_I2C_ID;
typedef struct _SF_I2C {
SF_I2C_ID id;
UINT32 addr;
} SF_I2C;
ER sf_i2c_init_driver(UINT32 i2c_id);
void sf_i2c_remove_driver(UINT32 id);
INT32 sf_i2c_transfer(struct i2c_msg *msgs, INT32 num);
#endif