static inline void
i2c_delay (i2c_bus_t * b, f64 timeout)
{
- vlib_main_t * vm = vlib_get_main();
+ vlib_main_t *vm = vlib_get_main ();
vlib_time_wait (vm, timeout);
}
while (t < b->hold_time)
{
int sda, scl;
- i2c_delay(b, b->rise_fall_time);
+ i2c_delay (b, b->rise_fall_time);
b->get_bits (b, &scl, &sda);
if (scl)
}
static void
-i2c_read_bit (i2c_bus_t * b, int * sda)
+i2c_read_bit (i2c_bus_t * b, int *sda)
{
int scl;
b->put_bits (b, 0, 1);
i2c_delay (b, b->rise_fall_time);
- i2c_read_bit(b, &sda);
+ i2c_read_bit (b, &sda);
if (sda)
b->timeout = 1;
int i;
vec_foreach (msg, msgs)
- {
- i2c_start (bus);
- i2c_write_byte (bus, (msg->addr << 1) + (msg->flags == I2C_MSG_FLAG_READ));
-
- if (msg->flags & I2C_MSG_FLAG_READ)
- for (i=0; i< msg->len; i++)
- {
- i2c_read_byte (bus, &msg->buffer[i], /* ack */ i + 1 != msg->len);
- if (bus->timeout)
- goto done;
- }
-
- else
- for (i=0; i< msg->len; i++)
- {
- i2c_write_byte (bus, msg->buffer[i]);
- if (bus->timeout)
- goto done;
- }
- }
+ {
+ i2c_start (bus);
+ i2c_write_byte (bus,
+ (msg->addr << 1) + (msg->flags == I2C_MSG_FLAG_READ));
+
+ if (msg->flags & I2C_MSG_FLAG_READ)
+ for (i = 0; i < msg->len; i++)
+ {
+ i2c_read_byte (bus, &msg->buffer[i], /* ack */ i + 1 != msg->len);
+ if (bus->timeout)
+ goto done;
+ }
+
+ else
+ for (i = 0; i < msg->len; i++)
+ {
+ i2c_write_byte (bus, msg->buffer[i]);
+ if (bus->timeout)
+ goto done;
+ }
+ }
done:
- i2c_stop(bus);
+ i2c_stop (bus);
}
void
-vlib_i2c_read_eeprom (i2c_bus_t * bus, u8 i2c_addr, u16 start_addr, u16 length, u8 * data)
+vlib_i2c_read_eeprom (i2c_bus_t * bus, u8 i2c_addr, u16 start_addr,
+ u16 length, u8 * data)
{
- i2c_msg_t * msg = 0;
+ i2c_msg_t *msg = 0;
u8 start_address[1];
vec_validate (msg, 1);
start_address[0] = start_addr;
msg[0].addr = i2c_addr;
msg[0].flags = I2C_MSG_FLAG_WRITE;
- msg[0].buffer = (u8 *) &start_address;
+ msg[0].buffer = (u8 *) & start_address;
msg[0].len = 1;
msg[1].addr = i2c_addr;
msg[1].buffer = data;
msg[1].len = length;
- vlib_i2c_xfer(bus, msg);
+ vlib_i2c_xfer (bus, msg);
vec_free (msg);
}
+/*
+ * fd.io coding-style-patch-verification: ON
+ *
+ * Local Variables:
+ * eval: (c-set-style "gnu")
+ * End:
+ */