Files
99_7018_lmx/apps/common/audio/wm8978/iic.h
2025-10-29 13:10:02 +08:00

64 lines
1.8 KiB
C

#ifndef _IIC_H_
#define _IIC_H_
#include "generic/typedef.h"
typedef unsigned int tu8, tbool ;
void iic_write(u8 chip_id, u8 iic_addr, u8 *iic_dat, u8 n);
void iic_readn(u8 chip_id, u8 iic_addr, u8 *iic_dat, u8 n);
void iic_init(void);
void iic_init_io(void);
void write_info(u8 addr, u8 dat);
tu8 read_info(u8 addr);
void write_eerom(u8 addr, u8 dat);
tu8 read_eerom(u8 iic_addr);
void eeprom_page_write_stop(void);
void eeprom_page_write_start(void);
void eeprom_verify(void);
void iic_start(void);
void iic_stop(void);
void iic_sendbyte_io(u8 byte);
void iic_sendbyte(u8 byte);
tu8 iic_revbyte(u8 para);
extern bool g_iic_busy;
//#define iic_delay() delay(3000)
#define iic_delay() delay(100)
#define IIC_PORT JL_PORTB
#define IIC_DATA_PORT 5
#define IIC_CLK_PORT 6
#define iic_clk_out() do{IIC_PORT->DIR &= ~BIT(IIC_CLK_PORT);IIC_PORT->PU &= ~BIT(IIC_CLK_PORT);}while(0)
#define iic_clk_h() do{IIC_PORT->OUT |= BIT(IIC_CLK_PORT);IIC_PORT->DIR &=~BIT(IIC_CLK_PORT);}while(0)
#define iic_clk_l() do{IIC_PORT->OUT &=~BIT(IIC_CLK_PORT);IIC_PORT->DIR &=~BIT(IIC_CLK_PORT);}while(0)
#define iic_data_out() do{IIC_PORT->DIR &= ~BIT(IIC_DATA_PORT);IIC_PORT->PU &= ~BIT(IIC_DATA_PORT);}while(0)
#define iic_data_in() do{IIC_PORT->DIR |= BIT(IIC_DATA_PORT);IIC_PORT->PU |= BIT(IIC_DATA_PORT);}while(0)
#define iic_data_r() (IIC_PORT->IN&BIT(IIC_DATA_PORT))
#define iic_data_h() do{IIC_PORT->OUT |= BIT(IIC_DATA_PORT);IIC_PORT->DIR &= ~BIT(IIC_DATA_PORT);}while(0)
#define iic_data_l() do{IIC_PORT->OUT &=~BIT(IIC_DATA_PORT);IIC_PORT->DIR &= ~BIT(IIC_DATA_PORT);}while(0)
/*
#define app_IIC_write(a, b, c, d) \
iic_write(a, b, c, d)
#define app_IIC_readn(a, b, c, d) \
iic_readn(a, b, c, d)
#define app_E2PROM_write(a, b) \
write_eerom(a, b)
#define app_E2PROM_read(a) \
read_eerom(a)
*/
#endif