aboutsummaryrefslogtreecommitdiff
path: root/include
diff options
context:
space:
mode:
authorJeff Ciesielski2012-10-19 16:29:20 -0700
committerJeff Ciesielski2012-10-19 16:29:20 -0700
commitbe4ee41ef98bfd40480634812fee6cccd5cd7360 (patch)
tree95be64e1a1442a828e4c5257b6e67e104b8ce712 /include
parenta2fc8768c60acdc01b5907984c4f5b79575d4c47 (diff)
stm32/f1/i2c: add a whole bevy of additional helper functions
Diffstat (limited to 'include')
-rw-r--r--include/libopencm3/stm32/i2c.h16
1 files changed, 15 insertions, 1 deletions
diff --git a/include/libopencm3/stm32/i2c.h b/include/libopencm3/stm32/i2c.h
index a59c420..05a4d16 100644
--- a/include/libopencm3/stm32/i2c.h
+++ b/include/libopencm3/stm32/i2c.h
@@ -322,7 +322,8 @@ LGPL License Terms @ref lgpl_license
/* DUTY: Fast Mode Duty Cycle */
#define I2C_CCR_DUTY (1 << 14)
-
+#define I2C_CCR_DUTY_DIV2 0
+#define I2C_CCR_DUTY_16_DIV_9 1
/* Note: Bits [13:12] are reserved, and forced to 0 by hardware. */
/*
@@ -359,6 +360,7 @@ void i2c_peripheral_enable(u32 i2c);
void i2c_peripheral_disable(u32 i2c);
void i2c_send_start(u32 i2c);
void i2c_send_stop(u32 i2c);
+void i2c_clear_stop(u32 i2c);
void i2c_set_own_7bit_slave_address(u32 i2c, u8 slave);
void i2c_set_own_10bit_slave_address(u32 i2c, u16 slave);
void i2c_set_fast_mode(u32 i2c);
@@ -368,6 +370,18 @@ void i2c_set_ccr(u32 i2c, u16 freq);
void i2c_set_trise(u32 i2c, u16 trise);
void i2c_send_7bit_address(u32 i2c, u8 slave, u8 readwrite);
void i2c_send_data(u32 i2c, u8 data);
+uint8_t i2c_get_data(u32 i2c);
+void i2c_enable_interrupt(u32 i2c, u32 interrupt);
+void i2c_disable_interrupt(u32 i2c, u32 interrupt);
+void i2c_enable_ack(u32 i2c);
+void i2c_disable_ack(u32 i2c);
+void i2c_nack_next(u32 i2c);
+void i2c_nack_current(u32 i2c);
+void i2c_set_dutycycle(u32 i2c, u32 dutycycle);
+void i2c_enable_dma(u32 i2c);
+void i2c_disable_dma(u32 i2c);
+void i2c_set_dma_last_transfer(u32 i2c);
+void i2c_clear_dma_last_transfer(u32 i2c);
END_DECLS