aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/oled
diff options
context:
space:
mode:
authorJoel Challis <git@zvecr.com>2020-07-25 22:50:56 +0100
committerGitHub <noreply@github.com>2020-07-26 07:50:56 +1000
commitd91987ab9adbf7bba9f47deb6b30a02d28e7195d (patch)
tree6356f4f6c167dd2b50dec84a5124418cb9d649fc /drivers/oled
parentdb540e2832b0d3bed6ae2ca3a2c893d9c79a7f5d (diff)
downloadfirmware-d91987ab9adbf7bba9f47deb6b30a02d28e7195d.tar.gz
firmware-d91987ab9adbf7bba9f47deb6b30a02d28e7195d.tar.bz2
firmware-d91987ab9adbf7bba9f47deb6b30a02d28e7195d.zip
Enable OLED support for Teensy 3.2/LC (#7591)
* I2C_TIMEOUT is not defined on arm teensy * Work round teensy having different ChibiOS config options * Stash OLED conf files * update comment * update comment * Remove stm32 alias to allow teensy alt mode
Diffstat (limited to 'drivers/oled')
-rw-r--r--drivers/oled/oled_driver.c10
-rw-r--r--drivers/oled/oled_driver.h4
2 files changed, 8 insertions, 6 deletions
diff --git a/drivers/oled/oled_driver.c b/drivers/oled/oled_driver.c
index 977b70178..f1990567f 100644
--- a/drivers/oled/oled_driver.c
+++ b/drivers/oled/oled_driver.c
@@ -82,14 +82,12 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
#define I2C_CMD 0x00
#define I2C_DATA 0x40
#if defined(__AVR__)
-// already defined on ARM
-# define I2C_TIMEOUT 100
-# define I2C_TRANSMIT_P(data) i2c_transmit_P((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), I2C_TIMEOUT)
+# define I2C_TRANSMIT_P(data) i2c_transmit_P((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), OLED_I2C_TIMEOUT)
#else // defined(__AVR__)
-# define I2C_TRANSMIT_P(data) i2c_transmit((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), I2C_TIMEOUT)
+# define I2C_TRANSMIT_P(data) i2c_transmit((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), OLED_I2C_TIMEOUT)
#endif // defined(__AVR__)
-#define I2C_TRANSMIT(data) i2c_transmit((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), I2C_TIMEOUT)
-#define I2C_WRITE_REG(mode, data, size) i2c_writeReg((OLED_DISPLAY_ADDRESS << 1), mode, data, size, I2C_TIMEOUT)
+#define I2C_TRANSMIT(data) i2c_transmit((OLED_DISPLAY_ADDRESS << 1), &data[0], sizeof(data), OLED_I2C_TIMEOUT)
+#define I2C_WRITE_REG(mode, data, size) i2c_writeReg((OLED_DISPLAY_ADDRESS << 1), mode, data, size, OLED_I2C_TIMEOUT)
#define HAS_FLAGS(bits, flags) ((bits & flags) == flags)
diff --git a/drivers/oled/oled_driver.h b/drivers/oled/oled_driver.h
index af6e5a2b6..5c21c0cc8 100644
--- a/drivers/oled/oled_driver.h
+++ b/drivers/oled/oled_driver.h
@@ -150,6 +150,10 @@ along with this program. If not, see <http://www.gnu.org/licenses/>.
# endif
#endif
+#if !defined(OLED_I2C_TIMEOUT)
+# define OLED_I2C_TIMEOUT 100
+#endif
+
// OLED Rotation enum values are flags
typedef enum {
OLED_ROTATION_0 = 0,