summaryrefslogtreecommitdiff
path: root/src/stm/ao_i2c_stm.c
diff options
context:
space:
mode:
authorBdale Garbee <bdale@gag.com>2013-05-16 00:36:23 -0600
committerBdale Garbee <bdale@gag.com>2013-05-16 00:36:23 -0600
commit02d111b1b53ef01fc6e9ab6c4bc60b8af1be0067 (patch)
tree8356f4a019969ee99a45e264c87d38555cf316cc /src/stm/ao_i2c_stm.c
parent7a2e1f05adad990a6b161865267abf07ffec7a7e (diff)
parent7699a55aed3a9a7daeb4c6a5a9a280f43edf455f (diff)
Merge branch 'branch-1.2' into debian
Diffstat (limited to 'src/stm/ao_i2c_stm.c')
-rw-r--r--src/stm/ao_i2c_stm.c18
1 files changed, 9 insertions, 9 deletions
diff --git a/src/stm/ao_i2c_stm.c b/src/stm/ao_i2c_stm.c
index b6dd7056..809b5c6f 100644
--- a/src/stm/ao_i2c_stm.c
+++ b/src/stm/ao_i2c_stm.c
@@ -36,7 +36,7 @@ static uint16_t ao_i2c_addr[STM_NUM_I2C];
uint8_t ao_i2c_mutex[STM_NUM_I2C];
# define I2C_HIGH_SLOW 5000 /* ns, 100kHz clock */
-#ifdef MEGAMETRUM
+#ifdef TELEMEGA
# define I2C_HIGH_FAST 2000 /* ns, 167kHz clock */
#else
# define I2C_HIGH_FAST 1000 /* ns, 333kHz clock */
@@ -197,13 +197,13 @@ ao_i2c_start(uint8_t index, uint16_t addr)
break;
}
ao_alarm(AO_MS_TO_TICKS(250));
- cli();
+ ao_arch_block_interrupts();
stm_i2c->cr2 = AO_STM_I2C_CR2 | (1 << STM_I2C_CR2_ITEVTEN) | (1 << STM_I2C_CR2_ITERREN);
ao_i2c_ev_isr(index);
while (ao_i2c_state[index] == I2C_IDLE)
if (ao_sleep(&ao_i2c_state[index]))
break;
- sei();
+ ao_arch_release_interrupts();
ao_clear_alarm();
return ao_i2c_state[index] == I2C_RUNNING;
}
@@ -263,7 +263,7 @@ ao_i2c_send(void *block, uint16_t len, uint8_t index, uint8_t stop)
ao_dma_start(tx_dma_index);
ao_alarm(1 + len);
- cli();
+ ao_arch_block_interrupts();
while (!ao_dma_done[tx_dma_index])
if (ao_sleep(&ao_dma_done[tx_dma_index]))
break;
@@ -274,7 +274,7 @@ ao_i2c_send(void *block, uint16_t len, uint8_t index, uint8_t stop)
if (ao_sleep(&ao_i2c_state[index]))
break;
stm_i2c->cr2 = AO_STM_I2C_CR2;
- sei();
+ ao_arch_release_interrupts();
if (stop) {
stm_i2c->cr1 = AO_STM_I2C_CR1 | (1 << STM_I2C_CR1_STOP);
ao_i2c_wait_stop(index);
@@ -328,11 +328,11 @@ ao_i2c_recv(void *block, uint16_t len, uint8_t index, uint8_t stop)
stm_i2c->cr1 = AO_STM_I2C_CR1 | (1 << STM_I2C_CR1_STOP);
ao_alarm(1);
- cli();
+ ao_arch_block_interrupts();
while (ao_i2c_recv_len[index])
if (ao_sleep(&ao_i2c_recv_len[index]))
break;
- sei();
+ ao_arch_release_interrupts();
ret = ao_i2c_recv_len[index] == 0;
ao_clear_alarm();
} else {
@@ -358,11 +358,11 @@ ao_i2c_recv(void *block, uint16_t len, uint8_t index, uint8_t stop)
ao_dma_start(rx_dma_index);
ao_alarm(len);
- cli();
+ ao_arch_block_interrupts();
while (!ao_dma_done[rx_dma_index])
if (ao_sleep(&ao_dma_done[rx_dma_index]))
break;
- sei();
+ ao_arch_release_interrupts();
ao_clear_alarm();
ret = ao_dma_done[rx_dma_index];
ao_dma_done_transfer(rx_dma_index);