68 lines
1.4 KiB
C
Executable File
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
|
|
|