From 41390fd7225e4b63b2f2d8e92f5732d0ffade795 Mon Sep 17 00:00:00 2001 From: MJ666 Date: Fri, 21 Dec 2018 06:46:06 +0100 Subject: [PATCH] Make I2C pullups and overclocking configurable for generic targets Update generic targets config files for I2C pullups --- src/main/interface/settings.c | 19 +++++++++++++++++++ .../STM32F405/config/ALIENFLIGHTNGF4.config | 1 + .../STM32F7X2/config/ALIENFLIGHTNGF7.config | 1 + .../config/ALIENFLIGHTNGF7_Dual.config | 1 + 4 files changed, 22 insertions(+) diff --git a/src/main/interface/settings.c b/src/main/interface/settings.c index 73c7417b47..926cbf73d6 100644 --- a/src/main/interface/settings.c +++ b/src/main/interface/settings.c @@ -69,6 +69,7 @@ #include "pg/adc.h" #include "pg/beeper.h" #include "pg/beeper_dev.h" +#include "pg/bus_i2c.h" #include "pg/dashboard.h" #include "pg/flash.h" #include "pg/gyrodev.h" @@ -1259,6 +1260,24 @@ const clivalue_t valueTable[] = { { "gyro_2_i2c_address", VAR_UINT8 | MASTER_VALUE, .config.minmax = { 0, I2C_ADDR7_MAX }, PG_GYRO_DEVICE_CONFIG, PG_ARRAY_ELEMENT_OFFSET(gyroDeviceConfig_t, 1, i2cAddress) }, { "gyro_2_sensor_align", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_ALIGNMENT }, PG_GYRO_DEVICE_CONFIG, PG_ARRAY_ELEMENT_OFFSET(gyroDeviceConfig_t, 1, align) }, #endif +#ifdef I2C_FULL_RECONFIGURABILITY +#ifdef USE_I2C_DEVICE_1 + { "i2c1_pullup", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_I2C_CONFIG, PG_ARRAY_ELEMENT_OFFSET(i2cConfig_t, 0, pullUp) }, + { "i2c1_overclock", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_I2C_CONFIG, PG_ARRAY_ELEMENT_OFFSET(i2cConfig_t, 0, overClock) }, +#endif +#ifdef USE_I2C_DEVICE_2 + { "i2c2_pullup", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_I2C_CONFIG, PG_ARRAY_ELEMENT_OFFSET(i2cConfig_t, 1, pullUp) }, + { "i2c2_overclock", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_I2C_CONFIG, PG_ARRAY_ELEMENT_OFFSET(i2cConfig_t, 1, overClock) }, +#endif +#ifdef USE_I2C_DEVICE_3 + { "i2c3_pullup", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_I2C_CONFIG, PG_ARRAY_ELEMENT_OFFSET(i2cConfig_t, 2, pullUp) }, + { "i2c3_overclock", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_I2C_CONFIG, PG_ARRAY_ELEMENT_OFFSET(i2cConfig_t, 2, overClock) }, +#endif +#ifdef USE_I2C_DEVICE_4 + { "i2c4_pullup", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_I2C_CONFIG, PG_ARRAY_ELEMENT_OFFSET(i2cConfig_t, 3, pullUp) }, + { "i2c4_overclock", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_I2C_CONFIG, PG_ARRAY_ELEMENT_OFFSET(i2cConfig_t, 3, overClock) }, +#endif +#endif #ifdef USE_MCO { "mco2_on_pc9", VAR_UINT8 | MASTER_VALUE | MODE_LOOKUP, .config.lookup = { TABLE_OFF_ON }, PG_MCO_CONFIG, offsetof(mcoConfig_t, enabled[1]) }, #endif diff --git a/src/main/target/STM32F405/config/ALIENFLIGHTNGF4.config b/src/main/target/STM32F405/config/ALIENFLIGHTNGF4.config index fc002d0d98..1742e2ad97 100644 --- a/src/main/target/STM32F405/config/ALIENFLIGHTNGF4.config +++ b/src/main/target/STM32F405/config/ALIENFLIGHTNGF4.config @@ -13,6 +13,7 @@ set beeper_od = OFF # Buses resource I2C_SCL 1 B06 resource I2C_SDA 1 B07 +set i2c1_pullup = ON resource SPI_SCK 1 A05 resource SPI_MISO 1 A06 diff --git a/src/main/target/STM32F7X2/config/ALIENFLIGHTNGF7.config b/src/main/target/STM32F7X2/config/ALIENFLIGHTNGF7.config index dc82eaa480..b8fff19324 100644 --- a/src/main/target/STM32F7X2/config/ALIENFLIGHTNGF7.config +++ b/src/main/target/STM32F7X2/config/ALIENFLIGHTNGF7.config @@ -13,6 +13,7 @@ set beeper_od = OFF # Buses resource I2C_SCL 1 B06 resource I2C_SDA 1 B07 +set i2c1_pullup = ON resource SPI_SCK 1 A05 resource SPI_MISO 1 A06 diff --git a/src/main/target/STM32F7X2/config/ALIENFLIGHTNGF7_Dual.config b/src/main/target/STM32F7X2/config/ALIENFLIGHTNGF7_Dual.config index a7725ecdce..19e08443dd 100644 --- a/src/main/target/STM32F7X2/config/ALIENFLIGHTNGF7_Dual.config +++ b/src/main/target/STM32F7X2/config/ALIENFLIGHTNGF7_Dual.config @@ -13,6 +13,7 @@ set beeper_od = OFF # Buses resource I2C_SCL 1 B06 resource I2C_SDA 1 B07 +set i2c1_pullup = ON resource SPI_SCK 1 A05 resource SPI_MISO 1 A06