altos: add STM I2C driver.
[fw/altos] / src / stm / ao_arch_funcs.h
index 29e3f42f069a368e2dac1ed353523cd6a774679b..052abb6591bb126e5a8fed800188726492ed43cd 100644 (file)
  */
 extern uint8_t ao_spi_mutex[STM_NUM_SPI];
 
-static inline void ao_spi_get(uint8_t spi_index) { ao_mutex_get(&ao_spi_mutex[spi_index]); }
-static inline void ao_spi_put(uint8_t spi_index) { ao_mutex_put(&ao_spi_mutex[spi_index]); }
+void
+ao_spi_get(uint8_t spi_index);
+
+void
+ao_spi_put(uint8_t spi_index);
 
 void
 ao_spi_send(void *block, uint16_t len, uint8_t spi_index);
@@ -46,6 +49,9 @@ ao_dma_set_transfer(uint8_t           index,
                    uint16_t            count,
                    uint32_t            ccr);
 
+void
+ao_dma_set_isr(uint8_t index, void (*isr)(void));
+
 void
 ao_dma_start(uint8_t index);
 
@@ -55,7 +61,30 @@ ao_dma_done_transfer(uint8_t index);
 void
 ao_dma_abort(uint8_t index);
 
+void
+ao_dma_alloc(uint8_t index);
+
 void
 ao_dma_init(void);
 
+/* ao_i2c_stm.c */
+
+void
+ao_i2c_get(uint8_t i2c_index);
+
+uint8_t
+ao_i2c_start(uint8_t i2c_index, uint16_t address);
+
+void
+ao_i2c_put(uint8_t i2c_index);
+
+void
+ao_i2c_send(void *block, uint16_t len, uint8_t i2c_index);
+
+void
+ao_i2c_recv(void *block, uint16_t len, uint8_t i2c_index);
+
+void
+ao_i2c_init(void);
+
 #endif /* _AO_ARCH_FUNCS_H_ */