diff --git a/src/main/drivers/max7456.c b/src/main/drivers/max7456.c index 4d541d32027..73493b50f6e 100644 --- a/src/main/drivers/max7456.c +++ b/src/main/drivers/max7456.c @@ -293,6 +293,17 @@ static int max7456PrepareBuffer(uint8_t * buf, size_t bufsize, int bufPtr, uint8 return bufPtr; } +static void max7456ApplyBusSpeed(void) +{ +#if defined(MAX7456_SPI_SPEED) + busSpeed_e speed = (MAX7456_SPI_SPEED <= BUS_SPEED_ULTRAFAST) ? MAX7456_SPI_SPEED : BUS_SPEED_STANDARD; + busSetSpeed(state.dev, speed); +#else + // Default safe speed for MAX7456 + busSetSpeed(state.dev, BUS_SPEED_STANDARD); +#endif +} + uint16_t max7456GetScreenSize(void) { // Default to PAL while the display is not yet initialized. This @@ -386,7 +397,7 @@ void max7456Init(const videoSystem_e videoSystem) return; } - busSetSpeed(state.dev, BUS_SPEED_STANDARD); + max7456ApplyBusSpeed(); // force soft reset on Max7456 busWrite(state.dev, MAX7456ADD_VM0, MAX7456_RESET);