From faa6887050e71a3ed129d5cfd9d7889cb615ee1c Mon Sep 17 00:00:00 2001 From: Jeff Epler Date: Mon, 18 Sep 2023 12:59:43 -0500 Subject: [PATCH] Use faster bus & remove final delay this pushes the LCD initialization down to about 1.3s. --- .../boards/espressif_esp32s3_lcd_ev/board.c | 17 ++++++++++------- 1 file changed, 10 insertions(+), 7 deletions(-) diff --git a/ports/espressif/boards/espressif_esp32s3_lcd_ev/board.c b/ports/espressif/boards/espressif_esp32s3_lcd_ev/board.c index ed06698583..86d4d0960d 100644 --- a/ports/espressif/boards/espressif_esp32s3_lcd_ev/board.c +++ b/ports/espressif/boards/espressif_esp32s3_lcd_ev/board.c @@ -80,7 +80,7 @@ static const uint8_t display_init_sequence[] = { 0x3a, 1, 0x66, 0x3a, 1, 0x66, 0x11, 0x80, 120, - 0x29, 0x80, 20 + 0x29, 0x0 }; static const mcu_pin_obj_t *red_pins[] = { @@ -122,25 +122,27 @@ void board_init(void) { true ); - busio_i2c_obj_t *i2c = common_hal_board_create_i2c(0); + busio_i2c_obj_t i2c; + i2c.base.type = &busio_i2c_type; + common_hal_busio_i2c_construct(&i2c, DEFAULT_I2C_BUS_SCL, DEFAULT_I2C_BUS_SDA, 400000, 255); const int i2c_device_address = 32; - common_hal_busio_i2c_try_lock(i2c); + common_hal_busio_i2c_try_lock(&i2c); { uint8_t buf[2] = {3, 0xf1}; // set GPIO direction - common_hal_busio_i2c_write(i2c, i2c_device_address, buf, sizeof(buf)); + common_hal_busio_i2c_write(&i2c, i2c_device_address, buf, sizeof(buf)); } { uint8_t buf[2] = {2, 0}; // set all output pins low initially - common_hal_busio_i2c_write(i2c, i2c_device_address, buf, sizeof(buf)); + common_hal_busio_i2c_write(&i2c, i2c_device_address, buf, sizeof(buf)); } - common_hal_busio_i2c_unlock(i2c); + common_hal_busio_i2c_unlock(&i2c); dotclockframebuffer_ioexpander_spi_bus spibus = { - .bus = i2c, + .bus = &i2c, .i2c_device_address = i2c_device_address, .i2c_write_size = 2, .addr_reg_shadow = { .u32 = 1 }, // GPIO data at register 1 @@ -151,6 +153,7 @@ void board_init(void) { dotclockframebuffer_ioexpander_send_init_sequence(&spibus, display_init_sequence, sizeof(display_init_sequence)); + common_hal_busio_i2c_deinit(&i2c); } // Use the MP_WEAK supervisor/shared/board.c versions of routines not defined here.