I2C: Interface: Rename init()->start(), add stop().
This commit is contained in:
@ -38,13 +38,15 @@
|
||||
|
||||
i2c_bus_t i2c0 = {
|
||||
.obj = (void*)I2C0_BASE,
|
||||
.init = i2c_lpc_init,
|
||||
.start = i2c_lpc_start,
|
||||
.stop = i2c_lpc_stop,
|
||||
.transfer = i2c_lpc_transfer,
|
||||
};
|
||||
|
||||
i2c_bus_t i2c1 = {
|
||||
.obj = (void*)I2C1_BASE,
|
||||
.init = i2c_lpc_init,
|
||||
.start = i2c_lpc_start,
|
||||
.stop = i2c_lpc_stop,
|
||||
.transfer = i2c_lpc_transfer,
|
||||
};
|
||||
|
||||
@ -290,7 +292,7 @@ void cpu_clock_init(void)
|
||||
/* use IRC as clock source for APB3 */
|
||||
CGU_BASE_APB3_CLK = CGU_BASE_APB3_CLK_CLK_SEL(CGU_SRC_IRC);
|
||||
|
||||
i2c_bus_init(clock_gen.bus, &i2c_config_si5351c_slow_clock);
|
||||
i2c_bus_start(clock_gen.bus, &i2c_config_si5351c_slow_clock);
|
||||
|
||||
si5351c_disable_all_outputs(&clock_gen);
|
||||
si5351c_disable_oeb_pin_control(&clock_gen);
|
||||
@ -362,7 +364,7 @@ void cpu_clock_init(void)
|
||||
|
||||
//FIXME disable I2C
|
||||
/* Kick I2C0 down to 400kHz when we switch over to APB1 clock = 204MHz */
|
||||
i2c_bus_init(clock_gen.bus, &i2c_config_si5351c_fast_clock);
|
||||
i2c_bus_start(clock_gen.bus, &i2c_config_si5351c_fast_clock);
|
||||
|
||||
/*
|
||||
* 12MHz clock is entering LPC XTAL1/OSC input now. On
|
||||
|
@ -21,8 +21,12 @@
|
||||
|
||||
#include "i2c_bus.h"
|
||||
|
||||
void i2c_bus_init(i2c_bus_t* const bus, const void* const config) {
|
||||
bus->init(bus, config);
|
||||
void i2c_bus_start(i2c_bus_t* const bus, const void* const config) {
|
||||
bus->start(bus, config);
|
||||
}
|
||||
|
||||
void i2c_bus_stop(i2c_bus_t* const bus) {
|
||||
bus->stop(bus);
|
||||
}
|
||||
|
||||
void i2c_bus_transfer(
|
||||
|
@ -30,7 +30,8 @@ typedef struct i2c_bus_t i2c_bus_t;
|
||||
|
||||
struct i2c_bus_t {
|
||||
void* const obj;
|
||||
void (*init)(i2c_bus_t* const bus, const void* const config);
|
||||
void (*start)(i2c_bus_t* const bus, const void* const config);
|
||||
void (*stop)(i2c_bus_t* const bus);
|
||||
void (*transfer)(
|
||||
i2c_bus_t* const bus,
|
||||
const uint_fast8_t slave_address,
|
||||
@ -39,7 +40,8 @@ struct i2c_bus_t {
|
||||
);
|
||||
};
|
||||
|
||||
void i2c_bus_init(i2c_bus_t* const bus, const void* const config);
|
||||
void i2c_bus_start(i2c_bus_t* const bus, const void* const config);
|
||||
void i2c_bus_stop(i2c_bus_t* const bus);
|
||||
void i2c_bus_transfer(
|
||||
i2c_bus_t* const bus,
|
||||
const uint_fast8_t slave_address,
|
||||
|
@ -26,13 +26,18 @@
|
||||
|
||||
/* FIXME return i2c0 status from each function */
|
||||
|
||||
void i2c_lpc_init(i2c_bus_t* const bus, const void* const _config) {
|
||||
void i2c_lpc_start(i2c_bus_t* const bus, const void* const _config) {
|
||||
const i2c_lpc_config_t* const config = _config;
|
||||
|
||||
const uint32_t port = (uint32_t)bus->obj;
|
||||
i2c_init(port, config->duty_cycle_count);
|
||||
}
|
||||
|
||||
void i2c_lpc_stop(i2c_bus_t* const bus) {
|
||||
const uint32_t port = (uint32_t)bus->obj;
|
||||
i2c_disable(port);
|
||||
}
|
||||
|
||||
void i2c_lpc_transfer(i2c_bus_t* const bus,
|
||||
const uint_fast8_t slave_address,
|
||||
const uint8_t* const data_tx, const size_t count_tx,
|
||||
|
@ -31,7 +31,8 @@ typedef struct i2c_lpc_config_t {
|
||||
const uint16_t duty_cycle_count;
|
||||
} i2c_lpc_config_t;
|
||||
|
||||
void i2c_lpc_init(i2c_bus_t* const bus, const void* const config);
|
||||
void i2c_lpc_start(i2c_bus_t* const bus, const void* const config);
|
||||
void i2c_lpc_stop(i2c_bus_t* const bus);
|
||||
void i2c_lpc_transfer(i2c_bus_t* const bus,
|
||||
const uint_fast8_t slave_address,
|
||||
const uint8_t* const data_tx, const size_t count_tx,
|
||||
|
Submodule firmware/libopencm3 updated: aec04e962c...10503c7cc1
Reference in New Issue
Block a user