1 #include "core-v-mcu-config.h"
2 #include "hal_apb_i2cs_reg_defs.h"
3 
hal_get_apb_i2cs_slave_address(void)4 uint8_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)11 void 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)18 uint8_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)30 uint8_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)37 void 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)44 uint8_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)52 uint8_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)59 uint8_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)66 uint8_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)74 uint8_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)81 uint8_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)89 void 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)96 uint8_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)104 void 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)114 void 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