SWIM3: respect interrupt enable flag in mode register.

This commit is contained in:
Maxim Poliakovski 2022-02-14 23:06:07 +01:00
parent cfb8977f09
commit 9da4a9ec6a
2 changed files with 7 additions and 4 deletions

View File

@ -171,11 +171,13 @@ void Swim3Ctrl::write(uint8_t reg_offset, uint8_t value)
void Swim3Ctrl::update_irq()
{
if (this->mode_reg & SWIM3_INT_ENA) {
uint8_t new_irq = !!(this->int_flags & this->int_mask);
if (new_irq != this->irq) {
this->irq = new_irq;
this->int_ctrl->ack_int(this->irq_id, new_irq);
}
}
}
void Swim3Ctrl::do_step()

View File

@ -55,6 +55,7 @@ enum Swim3Reg : uint8_t {
/** Mode register bits. */
enum {
SWIM3_INT_ENA = 0x01,
SWIM3_GO = 0x08,
SWIM3_WR_MODE = 0x10,
SWIM3_GO_STEP = 0x80,