From 46b08fc235f3f068034355970697acc0956e5c99 Mon Sep 17 00:00:00 2001 From: Uros Majstorovic Date: Wed, 7 Jan 2026 22:58:33 +0100 Subject: introduced EOSMessage struct for SPI and Event queue messages; added APP <-> FE310 bridge SPI messages; LCD/touch panel driver for app module; save relevant state to AON module before sleep; --- fw/fe310/eos/soc/i2s.c | 16 ++++++++-------- 1 file changed, 8 insertions(+), 8 deletions(-) (limited to 'fw/fe310/eos/soc/i2s.c') diff --git a/fw/fe310/eos/soc/i2s.c b/fw/fe310/eos/soc/i2s.c index 8bd5600..52c7a8b 100644 --- a/fw/fe310/eos/soc/i2s.c +++ b/fw/fe310/eos/soc/i2s.c @@ -31,8 +31,8 @@ #define EOS_ABUF_IDX_MASK(IDX, SIZE) ((IDX) & ((SIZE) - 1)) -static eos_i2s_handler_t i2s_mic_handler = NULL; -static eos_i2s_handler_t i2s_spk_handler = NULL; +static eos_evt_simple_handler_t i2s_mic_handler = NULL; +static eos_evt_simple_handler_t i2s_spk_handler = NULL; static uint32_t i2s_clk_period; static uint8_t i2s_mic_volume = 0; /* 0 - 8 */ static uint8_t i2s_spk_volume = 16; /* 0 - 16 */ @@ -93,11 +93,11 @@ static int _sbuf_push(uint16_t sample) { return EOS_OK; } -static void i2s_handle_evt(unsigned char type, unsigned char *buffer, uint16_t len) { +static void i2s_handle_evt(unsigned char type, EOSMessage *msg, uint16_t len) { switch(type & ~EOS_EVT_MASK) { case EOS_I2S_ETYPE_MIC: if (i2s_mic_handler) { - i2s_mic_handler(type); + i2s_mic_handler(type & ~EOS_EVT_MASK); clear_csr(mstatus, MSTATUS_MIE); _eos_i2s_drvr[I2S_MIC_EVT] = 1; set_csr(mstatus, MSTATUS_MIE); @@ -106,7 +106,7 @@ static void i2s_handle_evt(unsigned char type, unsigned char *buffer, uint16_t l case EOS_I2S_ETYPE_SPK: if (i2s_spk_handler) { - i2s_spk_handler(type); + i2s_spk_handler(type & ~EOS_EVT_MASK); clear_csr(mstatus, MSTATUS_MIE); _eos_i2s_drvr[I2S_SPK_EVT] = 1; set_csr(mstatus, MSTATUS_MIE); @@ -114,7 +114,7 @@ static void i2s_handle_evt(unsigned char type, unsigned char *buffer, uint16_t l break; default: - eos_evtq_bad_handler(type, buffer, len); + eos_evtq_bad_handler(type, msg, len); break; } } @@ -281,7 +281,7 @@ int eos_i2s_set_lsgain(int gain) { return eos_egpio_set_val(EGPIO_PIN_LSGAIN_SEL, gain); } -void eos_i2s_mic_set_handler(eos_i2s_handler_t handler, uint16_t wm) { +void eos_i2s_mic_set_handler(eos_evt_simple_handler_t handler, uint16_t wm) { clear_csr(mstatus, MSTATUS_MIE); if ((i2s_mic_handler == NULL) && handler) _eos_i2s_drvr[I2S_MIC_EVT] = 1; if (i2s_mic_handler && (handler == NULL)) _eos_i2s_drvr[I2S_MIC_EVT] = 0; @@ -355,7 +355,7 @@ void eos_i2s_mic_set_vol(int vol) { set_csr(mstatus, MSTATUS_MIE); } -void eos_i2s_spk_set_handler(eos_i2s_handler_t handler, uint16_t wm) { +void eos_i2s_spk_set_handler(eos_evt_simple_handler_t handler, uint16_t wm) { clear_csr(mstatus, MSTATUS_MIE); if ((i2s_spk_handler == NULL) && handler) _eos_i2s_drvr[I2S_SPK_EVT] = 1; if (i2s_spk_handler && (handler == NULL)) _eos_i2s_drvr[I2S_SPK_EVT] = 0; -- cgit v1.2.3