48#define TR_HAL_MAX_I2C_CONTROLLER_ID 0
49#define NUM_I2C_CONTROLLER 1
53#define I2C_SCL_PIN_OPTION1 20
54#define I2C_SDA_PIN_OPTION1 21
55#define I2C_SCL_PIN_OPTION2 22
56#define I2C_SDA_PIN_OPTION2 23
59#define DEFAULT_I2C_SCL_PIN I2C_SCL_PIN_OPTION2
60#define DEFAULT_I2C_SDA_PIN I2C_SDA_PIN_OPTION2
64#define I2C_COMMAND_FIFO 32
67#define I2C_RX_FIFO_BYTES 16
79#define CHIP_MEMORY_MAP_I2C_CONTROLLER_BASE 0xA0100000
116#define I2C_STATUS_COMMAND_FIFO_EMPTY 0x01
118#define I2C_STATUS_READ_DATA_FIFO_NOT_EMPTY 0x02
121#define I2C_STATUS_ERROR_NO_ACK 0x04
124#define I2C_STATUS_ERROR_LOST_ARBITRATION 0x08
126#define I2C_STATUS_ERROR_READ_DATA_UNDERFLOW 0x10
128#define I2C_STATUS_COMMAND_FIFO_OVERFLOW 0x20
130#define I2C_STATUS_COMMAND_FIFO_FULL 0x40
132#define I2C_STATUS_TRANSFER_IN_PROGRESS 0x80
134#define I2C_STATUS_READ_DATA_FIFO_OVERFLOW 0x100
136#define I2C_STATUS_COMMAND_FIFO_UNDERFLOW 0x200
138#define I2C_STATUS_CLEAR_FIFO 0x400
144#define I2C_COMMAND_NULL 0x00
145#define I2C_COMMAND_WRITE_DATA_0 0x10
146#define I2C_COMMAND_WRITE_DATA_1 0x11
147#define I2C_COMMAND_WRITE_DATA_8 0x12
148#define I2C_COMMAND_READ_DATA_8 0x13
149#define I2C_COMMAND_STOP 0x14
150#define I2C_COMMAND_START 0x15
151#define I2C_COMMAND_VACK 0x16
153#define I2C_WRITE_DATA_BIT 0x00
154#define I2C_READ_DATA_BIT 0x01
159#define I2C_INTERRUPT_COMMAND_FIFO_EMPTY 0x01
160#define I2C_INTERRUPT_READ_DATA_FIFO_NOT_EMPTY 0x02
161#define I2C_INTERRUPT_ERROR 0x04
162#define I2C_INTERRUPT_LOSS_OF_ARBITRATION 0x08
163#define I2C_INTERRUPT_COMMAND_FIFO_DONE 0x10
165#define I2C_INTERRUPT_ALL 0x1F
171#define I2C_CONTROL_REG_I2C_ENABLE 0x80
172#define I2C_CONTROL_REG_I2C_DISABLE 0x00
175#define I2C_CONTROL_REG_CLOCK_SOURCE_APB 0x40
176#define I2C_CONTROL_REG_CLOCK_SOURCE_EXT 0x00
179#define I2C_CONTROL_REG_CLOCK_DIV_MASK 0x3F
210#define CLOCK_LOWER_SIX_BITS 0x2F
218#define I2C_CHIP_REGISTERS ((I2C_REGISTERS_T *) CHIP_MEMORY_MAP_I2C_CONTROLLER_BASE)
238#define I2C_EVENT_TX_EMPTY 0x01
239#define I2C_EVENT_RX_FINISH 0x02
240#define I2C_EVENT_ERROR 0x04
241#define I2C_EVENT_ABORT_LOST_ARB 0x08
242#define I2C_EVENT_COMMAND_DONE 0x10
287#define I2C_CONFIG_CONTROLLER0 \
289 .sda_pin = (tr_hal_gpio_pin_t) { DEFAULT_I2C_SDA_PIN }, \
290 .scl_pin = (tr_hal_gpio_pin_t) { DEFAULT_I2C_SCL_PIN }, \
291 .clock_setting = I2C_CLOCK_100_KHZ, \
292 .rx_handler_function = NULL, \
293 .event_handler_fx = NULL, \
294 .enable_chip_interrupts = true, \
295 .interrupt_priority = TR_HAL_INTERRUPT_PRIORITY_5, \
296 .wake_on_interrupt = false, \
void(* tr_hal_i2c_event_callback_t)(tr_hal_i2c_id_t i2c_id, uint32_t event_bitmask)
Definition T32CM11_i2c.h:232
I2C_REGISTERS_T * tr_hal_i2c_get_controller_register_address(tr_hal_i2c_id_t i2c_id)
tr_hal_i2c_clock_rate_t
Definition T32CM11_i2c.h:201
@ I2C_CLOCK_1_MHZ
Definition T32CM11_i2c.h:202
@ I2C_CLOCK_200_KHZ
Definition T32CM11_i2c.h:205
@ I2C_CLOCK_400_KHZ
Definition T32CM11_i2c.h:204
@ I2C_CLOCK_800_KHZ
Definition T32CM11_i2c.h:203
@ I2C_CLOCK_100_KHZ
Definition T32CM11_i2c.h:206
void(* tr_hal_i2c_receive_callback_t)(uint8_t received_byte)
Definition T32CM11_i2c.h:229
tr_hal_i2c_id_t
On the T32CM11 there is just 1 I2C available to act as a Controller.
Definition T32CM11_i2c.h:43
@ I2C_CTRL_0_ID
Definition T32CM11_i2c.h:44
void(* tr_hal_i2c_event_callback_t)(tr_hal_i2c_id_t i2c_id, uint32_t event_bitmask)
Definition T32CZ20_i2c.h:211
tr_hal_i2c_clock_rate_t
Definition T32CZ20_i2c.h:180
void(* tr_hal_i2c_receive_callback_t)(uint8_t received_byte)
Definition T32CZ20_i2c.h:208
Definition T32CM11_i2c.h:87
__IO uint32_t prescale
Definition T32CM11_i2c.h:107
__IO uint32_t interrupt_status
Definition T32CM11_i2c.h:101
__IO uint32_t status
Definition T32CM11_i2c.h:89
__IO uint32_t control
Definition T32CM11_i2c.h:104
__IO uint32_t interrupt_enable
Definition T32CM11_i2c.h:98
__IO uint32_t command
Definition T32CM11_i2c.h:95
__IO uint32_t read_data
Definition T32CM11_i2c.h:92
pin type
Definition tr_hal_platform.h:23
Definition T32CM11_i2c.h:304
uint32_t count_error
Definition T32CM11_i2c.h:309
uint32_t count_tx_empty
Definition T32CM11_i2c.h:307
uint32_t count_command_done
Definition T32CM11_i2c.h:310
uint32_t count_abort_lost_arb
Definition T32CM11_i2c.h:308
uint32_t count_rx_finish
Definition T32CM11_i2c.h:306
Definition T32CM11_i2c.h:250
tr_hal_i2c_clock_rate_t clock_setting
Definition T32CM11_i2c.h:258
tr_hal_i2c_receive_callback_t rx_handler_function
Definition T32CM11_i2c.h:262
tr_hal_i2c_event_callback_t event_handler_fx
Definition T32CM11_i2c.h:266
tr_hal_gpio_pin_t sda_pin
Definition T32CM11_i2c.h:254
bool wake_on_interrupt
Definition T32CM11_i2c.h:278
tr_hal_int_pri_t interrupt_priority
Definition T32CM11_i2c.h:272
tr_hal_gpio_pin_t scl_pin
Definition T32CM11_i2c.h:255
bool enable_chip_interrupts
Definition T32CM11_i2c.h:269
This is the common include file for the Trident HAL GPIO Driver.