10#ifndef HAL_I2C_V150_REGS_OP_H
11#define HAL_I2C_V150_REGS_OP_H
32#define I2C_OP_START (1 << 3)
33#define I2C_OP_READ (1 << 2)
34#define I2C_OP_WRITE (1 << 1)
35#define I2C_OP_STOP (1 << 0)
43#define I2C_INT_TYPE_DONE (uint32_t)(1 << 0)
44#define I2C_INT_TYPE_ARB_LOSS (uint32_t)(1 << 1)
45#define I2C_INT_TYPE_ACK_ERR (uint32_t)(1 << 2)
46#define I2C_INT_TYPE_RX (uint32_t)(1 << 3)
47#define I2C_INT_TYPE_TX (uint32_t)(1 << 4)
48#define I2C_INT_TYPE_STOP (uint32_t)(1 << 5)
49#define I2C_INT_TYPE_START (uint32_t)(1 << 6)
50#define I2C_INT_TYPE_RXTIDE (uint32_t)(1 << 7)
51#define I2C_INT_TYPE_TXTIDE (uint32_t)(1 << 8)
52#define I2C_INT_TYPE_TXFIFO_OVER (uint32_t)(1 << 9)
55#define I2C_INT_TYPE_MASK 0x3FF
58#define I2C_CTRL_INT_MASK 0x167F
59#define I2C_CTRL_INT_MASK_L 0x007F
60#define I2C_CTRL_INT_MASK_L_OFFSET 0
61#define I2C_CTRL_INT_MASK_M 0x0600
62#define I2C_CTRL_INT_MASK_M_OFFSET 2
63#define I2C_CTRL_INT_MASK_H 0x1000
64#define I2C_CTRL_INT_MASK_H_OFFSET 3
67#define I2C_ICR_INT_MASK 0x03FF
70#define I2C_SR_INT_MASK 0x077F
71#define I2C_SR_INT_MASK_L 0x007F
72#define I2C_SR_INT_MASK_L_OFFSET 0
73#define I2C_SR_INT_MASK_H 0x0700
74#define I2C_SR_INT_MASK_H_OFFSET 1
77#define I2C_FTRPER_STANDARD_VAL 0x8
104static inline uint32_t hal_i2c_v150_int_type_to_ctrl(uint32_t int_type)
122static inline uint32_t hal_i2c_v150_ctrl_to_int_type(uint32_t int_bits)
140static inline uint32_t hal_i2c_v150_int_type_to_icr(uint32_t int_type)
156static inline uint32_t hal_i2c_v150_icr_to_int_type(uint32_t reg_icr)
172static inline uint32_t hal_i2c_v150_int_type_to_sr(uint32_t int_type)
189static inline uint32_t hal_i2c_v150_sr_to_int_type(uint32_t reg_sr)
204static inline void hal_i2c_v150_set_i2c_enable(
i2c_bus_t bus)
221static inline void hal_i2c_v150_set_i2c_disable(
i2c_bus_t bus)
238static inline void hal_i2c_v150_set_fifo_enable(
i2c_bus_t bus)
255static inline void hal_i2c_v150_set_fifo_disable(
i2c_bus_t bus)
272static inline void hal_i2c_v150_mask_main_int(
i2c_bus_t bus)
289static inline void hal_i2c_v150_unmask_main_int(
i2c_bus_t bus)
308static inline void hal_i2c_v150_mask_int(
i2c_bus_t bus, uint32_t int_type)
312 i2c_ctrl.
d32 &= ~(hal_i2c_v150_int_type_to_ctrl(int_type));
327static inline void hal_i2c_v150_unmask_int(
i2c_bus_t bus, uint32_t int_type)
331 i2c_ctrl.
d32 |= hal_i2c_v150_int_type_to_ctrl(int_type);
344static inline void hal_i2c_v150_mask_all_int(
i2c_bus_t bus)
360static inline void hal_i2c_v150_unmask_all_int(
i2c_bus_t bus)
376static inline void hal_i2c_v150_enable_ack(
i2c_bus_t bus)
392static inline void hal_i2c_v150_disable_ack(
i2c_bus_t bus)
410static inline void hal_i2c_v150_set_command(
i2c_bus_t bus, uint32_t command_type)
418 i2c_com.
d32 |= command_type;
433static inline void hal_i2c_v150_clear_int(
i2c_bus_t bus, uint32_t int_type)
436 i2c_icr.
d32 = hal_i2c_v150_int_type_to_icr(int_type);
449static inline void hal_i2c_v150_clear_all_int(
i2c_bus_t bus)
467static inline uint32_t hal_i2c_v150_get_int_state(
i2c_bus_t bus)
471 return hal_i2c_v150_sr_to_int_type(i2c_sr.
d32);
485static inline uint8_t hal_i2c_v150_is_bus_busy(
i2c_bus_t bus)
503static inline void hal_i2c_v150_set_scl_h(
i2c_bus_t bus, uint16_t val)
521static inline void hal_i2c_v150_set_scl_l(
i2c_bus_t bus, uint16_t val)
539static inline void hal_i2c_v150_set_tx_data(
i2c_bus_t bus, uint8_t
data)
557static inline uint8_t hal_i2c_v150_get_rx_data(
i2c_bus_t bus)
576static inline void hal_i2c_v150_set_ftrper(
i2c_bus_t bus, uint8_t ftrper)
595static inline uint8_t hal_i2c_v150_get_ftrper(
i2c_bus_t bus)
#define I2C_CTRL_INT_MASK_M
Definition hal_i2c_v150_regs_op.h:61
#define I2C_CTRL_INT_MASK_H_OFFSET
Definition hal_i2c_v150_regs_op.h:64
#define I2C_SR_INT_MASK_L_OFFSET
Definition hal_i2c_v150_regs_op.h:72
#define I2C_INT_TYPE_ARB_LOSS
Definition hal_i2c_v150_regs_op.h:44
i2c_regs_t * g_i2c_regs[I2C_BUS_MAX_NUM]
Definition hal_i2c_v150_regs_op.c:15
#define I2C_INT_TYPE_RX
Definition hal_i2c_v150_regs_op.h:46
void hal_i2c_v150_regs_deinit(i2c_bus_t bus)
去初始化I2C寄存器基地址。
Definition hal_i2c_v150_regs_op.c:27
#define I2C_SR_INT_MASK_H
Definition hal_i2c_v150_regs_op.h:73
enum i2c_con_reg_config i2c_bit_config_t
I2C寄存器比特位定义。
#define I2C_ICR_INT_MASK
Definition hal_i2c_v150_regs_op.h:67
#define I2C_INT_TYPE_RXTIDE
Definition hal_i2c_v150_regs_op.h:50
#define I2C_CTRL_INT_MASK_L
Definition hal_i2c_v150_regs_op.h:59
#define I2C_INT_TYPE_TXTIDE
Definition hal_i2c_v150_regs_op.h:51
void hal_i2c_v150_reset_all_regs(i2c_bus_t bus)
设置所有可写寄存器恢复初始状态。
Definition hal_i2c_v150_regs_op.c:32
#define I2C_INT_TYPE_STOP
Definition hal_i2c_v150_regs_op.h:48
#define I2C_INT_TYPE_TXFIFO_OVER
Definition hal_i2c_v150_regs_op.h:52
#define I2C_INT_TYPE_DONE
Definition hal_i2c_v150_regs_op.h:43
#define I2C_SR_INT_MASK_H_OFFSET
Definition hal_i2c_v150_regs_op.h:74
i2c_con_reg_config
I2C寄存器比特位定义。
Definition hal_i2c_v150_regs_op.h:86
#define I2C_INT_TYPE_START
Definition hal_i2c_v150_regs_op.h:49
#define I2C_INT_TYPE_ACK_ERR
Definition hal_i2c_v150_regs_op.h:45
#define I2C_INT_TYPE_TX
Definition hal_i2c_v150_regs_op.h:47
#define I2C_CTRL_INT_MASK_L_OFFSET
Definition hal_i2c_v150_regs_op.h:60
#define I2C_SR_INT_MASK_L
Definition hal_i2c_v150_regs_op.h:71
#define I2C_CTRL_INT_MASK_M_OFFSET
Definition hal_i2c_v150_regs_op.h:62
void hal_i2c_v150_regs_init(i2c_bus_t bus)
初始化I2C寄存器基地址。
Definition hal_i2c_v150_regs_op.c:22
#define I2C_CTRL_INT_MASK_H
Definition hal_i2c_v150_regs_op.h:63
@ I2C_BIT_TRUE
Definition hal_i2c_v150_regs_op.h:88
@ I2C_BIT_FALSE
Definition hal_i2c_v150_regs_op.h:87
#define I2C_BUS_MAX_NUM
Definition i2c_porting.h:22
I2C相关寄存器。
Definition hal_i2c_v150_regs_def.h:511
volatile uint32_t i2c_scl_l
Definition hal_i2c_v150_regs_def.h:517
volatile uint32_t i2c_sr
Definition hal_i2c_v150_regs_def.h:515
volatile uint32_t i2c_com
Definition hal_i2c_v150_regs_def.h:513
volatile uint32_t i2c_ftrper
Definition hal_i2c_v150_regs_def.h:525
volatile uint32_t i2c_rxr
Definition hal_i2c_v150_regs_def.h:519
volatile uint32_t i2c_txr
Definition hal_i2c_v150_regs_def.h:518
volatile uint32_t i2c_icr
Definition hal_i2c_v150_regs_def.h:514
volatile uint32_t i2c_ctrl
Definition hal_i2c_v150_regs_def.h:512
volatile uint32_t i2c_scl_h
Definition hal_i2c_v150_regs_def.h:516
Definition hal_uart_v151_regs_def.h:38
I2C_COM 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 I2C模块的命令寄存器, 用于配置I2C模块工作时命令。 在系统初始化时配置或配置前,...
Definition hal_i2c_v150_regs_def.h:125
uint32_t op_rd
Definition hal_i2c_v150_regs_def.h:136
struct i2c_com_data::@100 b
uint32_t d32
Definition hal_i2c_v150_regs_def.h:126
uint32_t op_we
Definition hal_i2c_v150_regs_def.h:132
uint32_t op_ack
Definition hal_i2c_v150_regs_def.h:144
uint32_t op_start
Definition hal_i2c_v150_regs_def.h:140
uint32_t op_stop
Definition hal_i2c_v150_regs_def.h:128
I2C_CTRL 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 I2C控制寄存器, 用于配置I2C使能和中断屏蔽。
Definition hal_i2c_v150_regs_def.h:53
uint32_t i2c_en
Definition hal_i2c_v150_regs_def.h:88
uint32_t d32
Definition hal_i2c_v150_regs_def.h:54
struct i2c_ctrl_data::@99 b
uint32_t int_mask
Definition hal_i2c_v150_regs_def.h:84
uint32_t mode_ctrl
Definition hal_i2c_v150_regs_def.h:100
I2C_FTRPER 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 毛刺过滤寄存器。 scl为高时,判断sda电平持续时间,单位为ic_clk的时钟个数,持续时间大于该值才认...
Definition hal_i2c_v150_regs_def.h:495
uint32_t ftrper
Definition hal_i2c_v150_regs_def.h:498
struct i2c_ftrper_data::@136 b
uint32_t d32
Definition hal_i2c_v150_regs_def.h:496
I2C_ICR 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 I2C模块的中断清除寄存器。 新中断到来时, I2C模块会自动将I2C_ICR相应位清0。
Definition hal_i2c_v150_regs_def.h:164
uint32_t d32
Definition hal_i2c_v150_regs_def.h:165
I2C_RXR 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 I2C接收数据寄存器, 用于主机接收从机数据。 不使用FIFO模式下, I2C_RXR数据在I2C_SR bit...
Definition hal_i2c_v150_regs_def.h:357
uint32_t i2c_rxr
Definition hal_i2c_v150_regs_def.h:360
struct i2c_rxr_data::@130 b
uint32_t d32
Definition hal_i2c_v150_regs_def.h:358
I2C_SCL_H 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 I2C总线SCL信号高电平周期数寄存器, 用于配置I2C模块工作时SCL高电平周期数。 在系统初始化时配置或...
Definition hal_i2c_v150_regs_def.h:289
uint32_t d32
Definition hal_i2c_v150_regs_def.h:290
uint32_t scl_h
Definition hal_i2c_v150_regs_def.h:292
struct i2c_scl_h_data::@122 b
I2C_SCL_L 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 I2C总线SCL信号低电平周期数寄存器, 用于配置I2C模块工作时SCL低电平周期数。 在系统初始化时配置或...
Definition hal_i2c_v150_regs_def.h:310
struct i2c_scl_l_data::@126 b
uint32_t scl_l
Definition hal_i2c_v150_regs_def.h:313
uint32_t d32
Definition hal_i2c_v150_regs_def.h:311
I2C_SR 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 I2C模块状态寄存器, 用于读取I2C模块工作状态。 I2C_SR bit[1]表示I2C总线仲裁失败,...
Definition hal_i2c_v150_regs_def.h:226
struct i2c_sr_data::@108 b
uint32_t d32
Definition hal_i2c_v150_regs_def.h:227
uint32_t bus_busy
Definition hal_i2c_v150_regs_def.h:257
I2C_TXR 寄存器联合体定义, 通过d32成员读取寄存器值, 通过b成员设置比特位。 I2C发送数据寄存器, 用于配置I2C模块工作时发送数据。 不使用FIFO模式下,...
Definition hal_i2c_v150_regs_def.h:334
struct i2c_txr_data::@129 b
uint32_t d32
Definition hal_i2c_v150_regs_def.h:335
uint32_t i2c_txr
Definition hal_i2c_v150_regs_def.h:337