1 #include "core-v-mcu-config.h" 2 #include "hal_apb_i2cs_reg_defs.h" 3 hal_get_apb_i2cs_slave_address(void)4uint8_t hal_get_apb_i2cs_slave_address(void) 5 { 6 7 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 8 return (uint8_t )apbI2cSlave->i2cs_dev_address_b.slave_addr; 9 } 10 hal_set_apb_i2cs_slave_address(uint8_t aSlaveAddress)11void hal_set_apb_i2cs_slave_address(uint8_t aSlaveAddress) 12 { 13 14 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*) I2CS_START_ADDR; 15 apbI2cSlave->i2cs_dev_address_b.slave_addr = aSlaveAddress; 16 } 17 hal_set_apb_i2cs_slave_on_off(uint8_t aStatus)18uint8_t hal_set_apb_i2cs_slave_on_off(uint8_t aStatus) 19 { 20 21 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 22 if( aStatus == 1 ) 23 apbI2cSlave->i2cs_enable_b.ip_enable = 1; 24 else if( aStatus == 0 ) 25 apbI2cSlave->i2cs_enable_b.ip_enable = 0; 26 return (uint8_t)apbI2cSlave->i2cs_enable_b.ip_enable; 27 } 28 29 hal_get_i2cs_fifo_i2c_apb_read_data_port(void)30uint8_t hal_get_i2cs_fifo_i2c_apb_read_data_port(void) 31 { 32 33 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 34 return (uint8_t )apbI2cSlave->i2cs_fifo_i2c_apb_read_data_port; 35 } 36 hal_set_i2cs_fifo_apb_i2c_write_data_port(uint8_t aData)37void hal_set_i2cs_fifo_apb_i2c_write_data_port(uint8_t aData) 38 { 39 40 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*) I2CS_START_ADDR; 41 apbI2cSlave->i2cs_fifo_apb_i2c_write_data_port = aData; 42 } 43 hal_get_i2cs_fifo_i2c_apb_write_flags(void)44uint8_t hal_get_i2cs_fifo_i2c_apb_write_flags(void) 45 { 46 47 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 48 return (uint8_t )apbI2cSlave->i2cs_fifo_i2c_apb_write_flags; 49 } 50 51 hal_get_i2cs_fifo_i2c_apb_read_flags(void)52uint8_t hal_get_i2cs_fifo_i2c_apb_read_flags(void) 53 { 54 55 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 56 return (uint8_t )apbI2cSlave->i2cs_fifo_i2c_apb_read_flags; 57 } 58 hal_get_i2cs_fifo_apb_i2c_read_flags(void)59uint8_t hal_get_i2cs_fifo_apb_i2c_read_flags(void) 60 { 61 62 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 63 return (uint8_t )apbI2cSlave->i2cs_fifo_apb_i2c_read_flags; 64 } 65 hal_get_i2cs_fifo_apb_i2c_write_flags(void)66uint8_t hal_get_i2cs_fifo_apb_i2c_write_flags(void) 67 { 68 69 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 70 return (uint8_t )apbI2cSlave->i2cs_fifo_apb_i2c_write_flags; 71 } 72 73 hal_get_i2cs_msg_i2c_apb(void)74uint8_t hal_get_i2cs_msg_i2c_apb(void) 75 { 76 77 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*) I2CS_START_ADDR; 78 return (apbI2cSlave->i2cs_msg_i2c_apb); 79 } 80 hal_get_i2cs_msg_i2c_apb_status(void)81uint8_t hal_get_i2cs_msg_i2c_apb_status(void) 82 { 83 84 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 85 return (uint8_t )apbI2cSlave->i2cs_msg_i2c_apb_status; 86 } 87 88 hal_set_i2cs_msg_apb_i2c(uint8_t aData)89void hal_set_i2cs_msg_apb_i2c(uint8_t aData) 90 { 91 92 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*) I2CS_START_ADDR; 93 apbI2cSlave->i2cs_msg_apb_i2c = aData; 94 } 95 hal_get_i2cs_msg_apb_i2c_status(void)96uint8_t hal_get_i2cs_msg_apb_i2c_status(void) 97 { 98 99 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 100 return (uint8_t )apbI2cSlave->i2cs_msg_apb_i2c_status; 101 } 102 103 hal_i2cs_fifo_i2c_apb_FIFO_flush(void)104void hal_i2cs_fifo_i2c_apb_FIFO_flush(void) 105 { 106 int i = 0; 107 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 108 apbI2cSlave->i2cs_fifo_i2c_apb_flush_b.enable = 1; 109 for( i=0; i<1000; i++); 110 apbI2cSlave->i2cs_fifo_i2c_apb_flush_b.enable = 0; 111 for( i=0; i<1000; i++); 112 } 113 hal_i2cs_fifo_apb_i2c_FIFO_flush(void)114void hal_i2cs_fifo_apb_i2c_FIFO_flush(void) 115 { 116 int i = 0; 117 ApbI2cs_t *apbI2cSlave = (ApbI2cs_t*)I2CS_START_ADDR; 118 apbI2cSlave->i2cs_fifo_apb_i2c_flush_b.enable = 1; 119 for( i=0; i<1000; i++); 120 apbI2cSlave->i2cs_fifo_apb_i2c_flush_b.enable = 0; 121 for( i=0; i<1000; i++); 122 } 123