-static inline void
-ao_i2c_delay(void)
-{
- uint8_t i;
-
- for (i = 0; i < 10; i++)
- ao_arch_nop();
-}
-
-#define I2C_DEBUG 0
-#if I2C_DEBUG
-#define DBG(x...) do { printf(x); flush(); } while (0)
-#else
-#define DBG(x...)
-#endif
-
-static inline uint32_t in_sr1(char *where, struct stm_i2c *stm_i2c) {
- uint32_t sr1 = stm_i2c->sr1;
- DBG("%s: sr1: %x\n", where, sr1);
- return sr1;
-}
-
-static inline uint32_t in_sr2(char *where, struct stm_i2c *stm_i2c) {
- uint32_t sr2 = stm_i2c->sr2;
- DBG("%s: sr2: %x\n", where, sr2);
- return sr2;
-}
-
-static inline void out_cr1(char *where, struct stm_i2c *stm_i2c, uint32_t cr1) {
- DBG("%s: cr1: %x\n", where, cr1);
- stm_i2c->cr1 = cr1;
-}
-
-static inline uint32_t in_cr1(char *where, struct stm_i2c *stm_i2c) {
- uint32_t cr1 = stm_i2c->cr1;
- DBG("%s: cr1: %x\n", where, cr1);
- return cr1;
-}
-
-static inline void out_cr2(char *where, struct stm_i2c *stm_i2c, uint32_t cr2) {
- DBG("%s: cr2: %x\n", where, cr2);
- stm_i2c->cr2 = cr2;
-}
-
-static inline uint32_t in_dr(char *where, struct stm_i2c *stm_i2c) {
- uint32_t dr = stm_i2c->dr;
- DBG("%s: dr: %x\n", where, dr);
- return dr;
-}
-
-static inline void out_dr(char *where, struct stm_i2c *stm_i2c, uint32_t dr) {
- DBG("%s: dr: %x\n", where, dr);
- stm_i2c->dr = dr;
-}
-