diff --git a/ChangeLog b/ChangeLog index 0a6c75ba..8a84dad2 100644 --- a/ChangeLog +++ b/ChangeLog @@ -29,5 +29,7 @@ https://github.com/olikraus/u8g2 ChangeLog 2016-xx-xx v2.2.x olikraus@gmail.com * U8x8: Upscale by 2 (Issue 41) * Fixed SSD1306 I2C procedures (mirror pixel in last tile column, issue 44) + * Experimental support für mini12864 (pull request) + * Use beginTransaction for SPI. This requires Arduino 1.6.0 diff --git a/cppsrc/U8x8lib.cpp b/cppsrc/U8x8lib.cpp index 4e246d14..2d970599 100644 --- a/cppsrc/U8x8lib.cpp +++ b/cppsrc/U8x8lib.cpp @@ -280,9 +280,13 @@ extern "C" uint8_t u8x8_byte_arduino_hw_spi(u8x8_t *u8x8, uint8_t msg, uint8_t a /* no wait required here */ /* for SPI: setup correct level of the clock signal */ - pinMode(11, OUTPUT); - pinMode(13, OUTPUT); - digitalWrite(13, u8x8_GetSPIClockPhase(u8x8)); + // removed, use SPI.begin() instead: pinMode(11, OUTPUT); + // removed, use SPI.begin() instead: pinMode(13, OUTPUT); + // removed, use SPI.begin() instead: digitalWrite(13, u8x8_GetSPIClockPhase(u8x8)); + + /* setup hardware with SPI.begin() instead of previous digitalWrite() and pinMode() calls */ + SPI.begin(); + break; case U8X8_MSG_BYTE_SET_DC: @@ -290,6 +294,9 @@ extern "C" uint8_t u8x8_byte_arduino_hw_spi(u8x8_t *u8x8, uint8_t msg, uint8_t a break; case U8X8_MSG_BYTE_START_TRANSFER: +#if ARDUINO >= 10600 + SPI.beginTransaction(SPISettings(u8x8->display_info->sck_clock_hz, MSBFIRST, u8x8->display_info->spi_mode)); +#else SPI.begin(); if ( u8x8->display_info->sck_pulse_width_ns < 70 ) @@ -300,6 +307,7 @@ extern "C" uint8_t u8x8_byte_arduino_hw_spi(u8x8_t *u8x8, uint8_t msg, uint8_t a SPI.setClockDivider( SPI_CLOCK_DIV8 ); SPI.setDataMode(u8x8->display_info->spi_mode); SPI.setBitOrder(MSBFIRST); +#endif u8x8_gpio_SetCS(u8x8, u8x8->display_info->chip_enable_level); u8x8->gpio_and_delay_cb(u8x8, U8X8_MSG_DELAY_NANO, u8x8->display_info->post_chip_enable_wait_ns, NULL); @@ -309,7 +317,11 @@ extern "C" uint8_t u8x8_byte_arduino_hw_spi(u8x8_t *u8x8, uint8_t msg, uint8_t a u8x8->gpio_and_delay_cb(u8x8, U8X8_MSG_DELAY_NANO, u8x8->display_info->pre_chip_disable_wait_ns, NULL); u8x8_gpio_SetCS(u8x8, u8x8->display_info->chip_disable_level); +#if ARDUINO >= 10600 + SPI.endTransaction(); +#else SPI.end(); +#endif break; default: diff --git a/csrc/u8x8.h b/csrc/u8x8.h index 1e0dfde7..cb388ecc 100644 --- a/csrc/u8x8.h +++ b/csrc/u8x8.h @@ -211,6 +211,9 @@ struct u8x8_display_info_struct /* AVR: below 70: DIV2, 8 MHz, >= 70 --> 4MHz clock (DIV4) */ uint8_t sck_pulse_width_ns; /* UC1701: 50ns */ + /* until here we have 8 bytes (uint8_t). Newly introduced for SPI.beginTransaction */ + uint32_t sck_clock_hz; + /* previous name "sck_takeover_edge" renamed to "spi_mode" */ /* bit 0 of spi_mode is equal to the value of the previous variable sck_takeover_edge */ /* SPI has four clock modes: */ diff --git a/csrc/u8x8_d_a2printer.c b/csrc/u8x8_d_a2printer.c index 86803703..239f065b 100644 --- a/csrc/u8x8_d_a2printer.c +++ b/csrc/u8x8_d_a2printer.c @@ -149,6 +149,7 @@ static const u8x8_display_info_t u8x8_a2printer_384x240_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 20, /* sck_pulse_width_ns = */ 140, + /* sck_clock_hz = */ 1000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* old: sck_takeover_edge, new: active high (bit 1), rising edge (bit 0) */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 30, diff --git a/csrc/u8x8_d_ld7032_60x32.c b/csrc/u8x8_d_ld7032_60x32.c index d2614f1f..bdae18e0 100644 --- a/csrc/u8x8_d_ld7032_60x32.c +++ b/csrc/u8x8_d_ld7032_60x32.c @@ -181,6 +181,7 @@ static const u8x8_display_info_t u8x8_ld7032_60x32_display_info = /* post_reset_wait_ms = */ 100, /* sda_setup_time_ns = */ 30, /* 20ns, but cycle time is 60ns, so use 60/2 */ /* sck_pulse_width_ns = */ 30, /* 20ns, but cycle time is 60ns, so use 60/2 */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 20, diff --git a/csrc/u8x8_d_ls013b7dh03.c b/csrc/u8x8_d_ls013b7dh03.c index fe024e38..5784a0a7 100644 --- a/csrc/u8x8_d_ls013b7dh03.c +++ b/csrc/u8x8_d_ls013b7dh03.c @@ -54,6 +54,7 @@ static const u8x8_display_info_t u8x8_ls013b7dh03_128x128_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 227, /* 227 nsec according to the datasheet */ /* sck_pulse_width_ns = */ 255, /* 450 nsec according to the datasheet */ + /* sck_clock_hz = */ 1000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 3, /* active low, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 100, diff --git a/csrc/u8x8_d_sed1330.c b/csrc/u8x8_d_sed1330.c index fb7b4360..a4da473f 100644 --- a/csrc/u8x8_d_sed1330.c +++ b/csrc/u8x8_d_sed1330.c @@ -125,6 +125,7 @@ static const u8x8_display_info_t u8x8_sed1330_240x128_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 20, /* sck_pulse_width_ns = */ 140, + /* sck_clock_hz = */ 1000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 120, /* G242CX Datasheet p5 */ diff --git a/csrc/u8x8_d_ssd1306_128x32.c b/csrc/u8x8_d_ssd1306_128x32.c index 34f02a86..7a5ed532 100644 --- a/csrc/u8x8_d_ssd1306_128x32.c +++ b/csrc/u8x8_d_ssd1306_128x32.c @@ -188,6 +188,7 @@ static const u8x8_display_info_t u8x8_ssd1306_128x32_univision_display_info = /* post_reset_wait_ms = */ 100, /* far east OLEDs need much longer setup time */ /* sda_setup_time_ns = */ 50, /* SSD1306: 15ns, but cycle time is 100ns, so use 100/2 */ /* sck_pulse_width_ns = */ 50, /* SSD1306: 20ns, but cycle time is 100ns, so use 100/2, AVR: below 70: 8 MHz, >= 70 --> 4MHz clock */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 40, diff --git a/csrc/u8x8_d_ssd1306_128x64_noname.c b/csrc/u8x8_d_ssd1306_128x64_noname.c index e9549270..90f29a93 100644 --- a/csrc/u8x8_d_ssd1306_128x64_noname.c +++ b/csrc/u8x8_d_ssd1306_128x64_noname.c @@ -188,6 +188,7 @@ static const u8x8_display_info_t u8x8_ssd1306_128x64_noname_display_info = /* post_reset_wait_ms = */ 100, /* far east OLEDs need much longer setup time */ /* sda_setup_time_ns = */ 50, /* SSD1306: 15ns, but cycle time is 100ns, so use 100/2 */ /* sck_pulse_width_ns = */ 50, /* SSD1306: 20ns, but cycle time is 100ns, so use 100/2, AVR: below 70: 8 MHz, >= 70 --> 4MHz clock */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 40, @@ -222,6 +223,7 @@ static const u8x8_display_info_t u8x8_sh1106_128x64_noname_display_info = /* post_reset_wait_ms = */ 100, /* far east OLEDs need much longer setup time */ /* sda_setup_time_ns = */ 50, /* SSD1306: 15ns, but cycle time is 100ns, so use 100/2 */ /* sck_pulse_width_ns = */ 50, /* SSD1306: 20ns, but cycle time is 100ns, so use 100/2, AVR: below 70: 8 MHz, >= 70 --> 4MHz clock */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 40, diff --git a/csrc/u8x8_d_ssd1322.c b/csrc/u8x8_d_ssd1322.c index f18f7274..b59db214 100644 --- a/csrc/u8x8_d_ssd1322.c +++ b/csrc/u8x8_d_ssd1322.c @@ -198,6 +198,7 @@ static const u8x8_display_info_t u8x8_ssd1322_256x64_display_info = /* post_reset_wait_ms = */ 100, /* far east OLEDs need much longer setup time */ /* sda_setup_time_ns = */ 50, /* SSD1322: 15ns, but cycle time is 100ns, so use 100/2 */ /* sck_pulse_width_ns = */ 50, /* SSD1322: 20ns, but cycle time is 100ns, so use 100/2, AVR: below 70: 8 MHz, >= 70 --> 4MHz clock */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 10, diff --git a/csrc/u8x8_d_st7565.c b/csrc/u8x8_d_st7565.c index bb999c10..a49960e3 100644 --- a/csrc/u8x8_d_st7565.c +++ b/csrc/u8x8_d_st7565.c @@ -81,6 +81,7 @@ static const u8x8_display_info_t u8x8_st7565_128x64_display_info = /* post_reset_wait_ms = */ 1, /* sda_setup_time_ns = */ 50, /* st7565 datasheet, table 26, tsds */ /* sck_pulse_width_ns = */ 120, /* half of cycle time (100ns according to datasheet), AVR: below 70: 8 MHz, >= 70 --> 4MHz clock */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 40, /* st7565 datasheet, table 24, tds8 */ @@ -104,6 +105,7 @@ static const u8x8_display_info_t u8x8_st7565_128x32_display_info = /* post_reset_wait_ms = */ 1, /* sda_setup_time_ns = */ 50, /* st7565 datasheet, table 26, tsds */ /* sck_pulse_width_ns = */ 120, /* half of cycle time (100ns according to datasheet), AVR: below 70: 8 MHz, >= 70 --> 4MHz clock */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 40, /* st7565 datasheet, table 24, tds8 */ diff --git a/csrc/u8x8_d_st7920.c b/csrc/u8x8_d_st7920.c index e4546a6b..b71adfea 100644 --- a/csrc/u8x8_d_st7920.c +++ b/csrc/u8x8_d_st7920.c @@ -156,6 +156,7 @@ static const u8x8_display_info_t u8x8_st7920_192x32_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 20, /* sck_pulse_width_ns = */ 140, /* datasheet ST7920 */ + /* sck_clock_hz = */ 1000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* old: sck_takeover_edge, new: active high (bit 1), rising edge (bit 0) */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 30, @@ -179,6 +180,7 @@ static const u8x8_display_info_t u8x8_st7920_128x64_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 20, /* sck_pulse_width_ns = */ 140, /* datasheet ST7920 */ + /* sck_clock_hz = */ 1000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 30, diff --git a/csrc/u8x8_d_t6963.c b/csrc/u8x8_d_t6963.c index 1da05f48..89fc280b 100644 --- a/csrc/u8x8_d_t6963.c +++ b/csrc/u8x8_d_t6963.c @@ -134,6 +134,7 @@ static const u8x8_display_info_t u8x8_t6963_240x128_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 20, /* sck_pulse_width_ns = */ 140, + /* sck_clock_hz = */ 1000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 80, @@ -220,6 +221,7 @@ static const u8x8_display_info_t u8x8_t6963_256x64_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 20, /* sck_pulse_width_ns = */ 140, + /* sck_clock_hz = */ 1000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 80, @@ -302,6 +304,7 @@ static const u8x8_display_info_t u8x8_t6963_128x64_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 20, /* sck_pulse_width_ns = */ 140, + /* sck_clock_hz = */ 1000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 80, diff --git a/csrc/u8x8_d_uc1701_dogs102.c b/csrc/u8x8_d_uc1701_dogs102.c index 7c9e4d4a..77bb7874 100644 --- a/csrc/u8x8_d_uc1701_dogs102.c +++ b/csrc/u8x8_d_uc1701_dogs102.c @@ -107,6 +107,7 @@ static const u8x8_display_info_t u8x8_uc1701_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 12, /* sck_pulse_width_ns = */ 75, /* half of cycle time (100ns according to datasheet), AVR: below 70: 8 MHz, >= 70 --> 4MHz clock */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 30, diff --git a/csrc/u8x8_d_uc1701_mini12864.c b/csrc/u8x8_d_uc1701_mini12864.c index cbb53c2d..9bc6e9b0 100644 --- a/csrc/u8x8_d_uc1701_mini12864.c +++ b/csrc/u8x8_d_uc1701_mini12864.c @@ -108,6 +108,7 @@ static const u8x8_display_info_t u8x8_uc1701_display_info = /* post_reset_wait_ms = */ 6, /* sda_setup_time_ns = */ 12, /* sck_pulse_width_ns = */ 75, /* half of cycle time (100ns according to datasheet), AVR: below 70: 8 MHz, >= 70 --> 4MHz clock */ + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* active high, rising edge */ /* i2c_bus_clock_100kHz = */ 4, /* data_setup_time_ns = */ 30, diff --git a/sys/arduino/u8g2_page_buffer/HelloWorld/HelloWorld.ino b/sys/arduino/u8g2_page_buffer/HelloWorld/HelloWorld.ino index 0510d0a6..69894041 100644 --- a/sys/arduino/u8g2_page_buffer/HelloWorld/HelloWorld.ino +++ b/sys/arduino/u8g2_page_buffer/HelloWorld/HelloWorld.ino @@ -61,7 +61,7 @@ //U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 12, /* dc=*/ 4, /* reset=*/ 6); // Arduboy (Production, Kickstarter Edition) //U8G2_SSD1306_128X64_NONAME_1_4W_HW_SPI u8g2(U8G2_R0, /* cs=*/ 10, /* dc=*/ 9, /* reset=*/ 8); //U8G2_SSD1306_128X64_NONAME_1_3W_SW_SPI u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* cs=*/ 10, /* reset=*/ 8); -U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* reset=*/ 8); +//U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ 13, /* data=*/ 11, /* reset=*/ 8); //U8G2_SSD1306_128X64_NONAME_1_SW_I2C u8g2(U8G2_R0, /* clock=*/ SCL, /* data=*/ SDA, /* reset=*/ U8X8_PIN_NONE); // All Boards without Reset of the Display //U8G2_SSD1306_128X64_NONAME_1_6800 u8g2(U8G2_R0, 13, 11, 2, 3, 4, 5, 6, A4, /*enable=*/ 7, /*cs=*/ 10, /*dc=*/ 9, /*reset=*/ 8); //U8G2_SSD1306_128X64_NONAME_1_8080 u8g2(U8G2_R0, 13, 11, 2, 3, 4, 5, 6, A4, /*enable=*/ 7, /*cs=*/ 10, /*dc=*/ 9, /*reset=*/ 8); diff --git a/sys/sdl/common/u8x8_d_sdl_128x64.c b/sys/sdl/common/u8x8_d_sdl_128x64.c index 0d756dcd..47c3a0f1 100644 --- a/sys/sdl/common/u8x8_d_sdl_128x64.c +++ b/sys/sdl/common/u8x8_d_sdl_128x64.c @@ -194,6 +194,7 @@ static const u8x8_display_info_t u8x8_sdl_128x64_info = /* post_reset_wait_ms = */ 0, /* sda_setup_time_ns = */ 0, /* sck_pulse_width_ns = */ 0, + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 0, /* data_setup_time_ns = */ 0, diff --git a/sys/tga/common/u8x8_d_tga.c b/sys/tga/common/u8x8_d_tga.c index ee045c3f..4189f239 100644 --- a/sys/tga/common/u8x8_d_tga.c +++ b/sys/tga/common/u8x8_d_tga.c @@ -201,6 +201,7 @@ static const u8x8_display_info_t u8x8_tga_desc_info = /* post_reset_wait_ms = */ 0, /* sda_setup_time_ns = */ 0, /* sck_pulse_width_ns = */ 0, + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 0, /* data_setup_time_ns = */ 0, @@ -306,6 +307,7 @@ static const u8x8_display_info_t u8x8_tga_lcd_info = /* post_reset_wait_ms = */ 0, /* sda_setup_time_ns = */ 0, /* sck_pulse_width_ns = */ 0, + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 0, /* data_setup_time_ns = */ 0, diff --git a/sys/utf8/common/u8x8_d_utf8.c b/sys/utf8/common/u8x8_d_utf8.c index a3255b05..34f415f2 100644 --- a/sys/utf8/common/u8x8_d_utf8.c +++ b/sys/utf8/common/u8x8_d_utf8.c @@ -143,6 +143,7 @@ static const u8x8_display_info_t u8x8_utf8_info = /* post_reset_wait_ms = */ 0, /* sda_setup_time_ns = */ 0, /* sck_pulse_width_ns = */ 0, + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 0, /* data_setup_time_ns = */ 0, diff --git a/tools/font/build/u8g2_d_tga.c b/tools/font/build/u8g2_d_tga.c index b4e30ac6..e88abd9a 100644 --- a/tools/font/build/u8g2_d_tga.c +++ b/tools/font/build/u8g2_d_tga.c @@ -184,6 +184,7 @@ static const u8x8_display_info_t u8x8_tga_info = /* post_reset_wait_ms = */ 0, /* sda_setup_time_ns = */ 0, /* sck_pulse_width_ns = */ 0, + /* sck_clock_hz = */ 4000000UL, /* since Arduino 1.6.0, the SPI bus speed in Hz. Should be 1000000000/sck_pulse_width_ns */ /* spi_mode = */ 1, /* i2c_bus_clock_100kHz = */ 0, /* data_setup_time_ns = */ 0, diff --git a/tools/release/print_release.sh b/tools/release/print_release.sh index e6fb1eb5..cacdc588 100755 --- a/tools/release/print_release.sh +++ b/tools/release/print_release.sh @@ -1,2 +1,2 @@ # without 'v' prefix -echo -n "2.2.5" +echo -n "2.2.6"