1
0
Fork 0
forked from forks/qmk_firmware

Remove i2c logic for STM32F103xB in favour of USE_I2CV1 (#6926)

* Remove i2c logic for STM32F103xB in favour of USE_I2CV1

* Remove i2c logic for STM32F103xB in favour of USE_I2CV1
This commit is contained in:
Joel Challis 2019-10-12 23:23:36 +01:00 committed by GitHub
parent 23178d73fc
commit a48468590a
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 6 additions and 12 deletions

View file

@ -32,27 +32,17 @@
static uint8_t i2c_address; static uint8_t i2c_address;
// ChibiOS uses two initialization structure for v1 and v2/v3 i2c APIs.
// The F1 series uses the v1 api, which have to initialized this way.
#ifdef STM32F103xB
static const I2CConfig i2cconfig = {
OPMODE_I2C,
400000,
FAST_DUTY_CYCLE_2,
};
#else
// This configures the I2C clock to 400khz assuming a 72Mhz clock
// For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html
static const I2CConfig i2cconfig = { static const I2CConfig i2cconfig = {
#ifdef USE_I2CV1 #ifdef USE_I2CV1
I2C1_OPMODE, I2C1_OPMODE,
I2C1_CLOCK_SPEED, I2C1_CLOCK_SPEED,
I2C1_DUTY_CYCLE, I2C1_DUTY_CYCLE,
#else #else
// This configures the I2C clock to 400khz assuming a 72Mhz clock
// For more info : https://www.st.com/en/embedded-software/stsw-stm32126.html
STM32_TIMINGR_PRESC(I2C1_TIMINGR_PRESC) | STM32_TIMINGR_SCLDEL(I2C1_TIMINGR_SCLDEL) | STM32_TIMINGR_SDADEL(I2C1_TIMINGR_SDADEL) | STM32_TIMINGR_SCLH(I2C1_TIMINGR_SCLH) | STM32_TIMINGR_SCLL(I2C1_TIMINGR_SCLL), 0, 0 STM32_TIMINGR_PRESC(I2C1_TIMINGR_PRESC) | STM32_TIMINGR_SCLDEL(I2C1_TIMINGR_SCLDEL) | STM32_TIMINGR_SDADEL(I2C1_TIMINGR_SDADEL) | STM32_TIMINGR_SCLH(I2C1_TIMINGR_SCLH) | STM32_TIMINGR_SCLL(I2C1_TIMINGR_SCLL), 0, 0
#endif #endif
}; };
#endif
static i2c_status_t chibios_to_qmk(const msg_t* status) { static i2c_status_t chibios_to_qmk(const msg_t* status) {
switch (*status) { switch (*status) {

View file

@ -33,3 +33,7 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \ keyboard_report->mods == (MOD_BIT(KC_LCTL) | MOD_BIT(KC_RCTL)) || \
keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \ keyboard_report->mods == (MOD_BIT(KC_LSFT) | MOD_BIT(KC_RSFT)) \
) )
// i2c_master driver config
#define I2C1_CLOCK_SPEED 400000
#define I2C1_DUTY_CYCLE FAST_DUTY_CYCLE_2