summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorScott Shawcroft <scott@tannewt.org>2019-01-17 14:45:29 -0800
committerScott Shawcroft <scott@tannewt.org>2019-01-17 14:45:29 -0800
commit2d136d58bf288f0be945ed5cd3efe9113d0acce3 (patch)
tree354024c1287982f8e5f1b2c3b2cf2d7716aa5b50
parent5277138c992b860cfbdb767f18e034c42e31b6a1 (diff)
Fix other builds and hallowing
-rw-r--r--ports/atmel-samd/boards/arduino_mkr1300/pins.c2
-rw-r--r--ports/atmel-samd/boards/arduino_mkrzero/pins.c4
-rw-r--r--ports/atmel-samd/boards/arduino_zero/pins.c2
-rw-r--r--ports/atmel-samd/boards/catwan_usbstick/pins.c2
-rw-r--r--ports/atmel-samd/boards/circuitplayground_express/pins.c2
-rw-r--r--ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c2
-rw-r--r--ports/atmel-samd/boards/cp32-m4/pins.c2
-rw-r--r--ports/atmel-samd/boards/datalore_ip_m4/pins.c2
-rw-r--r--ports/atmel-samd/boards/feather_m0_adalogger/pins.c2
-rw-r--r--ports/atmel-samd/boards/feather_m0_basic/pins.c2
-rw-r--r--ports/atmel-samd/boards/feather_m0_express/pins.c2
-rw-r--r--ports/atmel-samd/boards/feather_m0_express_crickit/pins.c2
-rw-r--r--ports/atmel-samd/boards/feather_m0_rfm69/pins.c2
-rw-r--r--ports/atmel-samd/boards/feather_m0_rfm9x/pins.c2
-rw-r--r--ports/atmel-samd/boards/feather_m0_supersized/pins.c2
-rwxr-xr-xports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c2
-rw-r--r--ports/atmel-samd/boards/gemma_m0/pins.c2
-rw-r--r--ports/atmel-samd/boards/hallowing_m0_express/board.c47
-rw-r--r--ports/atmel-samd/boards/hallowing_m0_express/pins.c5
-rw-r--r--ports/atmel-samd/boards/itsybitsy_m0_express/pins.c2
-rw-r--r--ports/atmel-samd/boards/itsybitsy_m4_express/pins.c2
-rw-r--r--ports/atmel-samd/boards/meowmeow/pins.c2
-rw-r--r--ports/atmel-samd/boards/metro_m0_express/pins.c2
-rw-r--r--ports/atmel-samd/boards/metro_m4_express/pins.c2
-rw-r--r--ports/atmel-samd/boards/mini_sam_m4/pins.c2
-rw-r--r--ports/atmel-samd/boards/pirkey_m0/pins.c2
-rw-r--r--ports/atmel-samd/boards/pyportal/board.c12
-rw-r--r--ports/atmel-samd/boards/pyportal/pins.c3
-rw-r--r--ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c16
-rw-r--r--ports/atmel-samd/boards/trellis_m4_express/pins.c2
-rw-r--r--ports/atmel-samd/boards/trinket_m0/pins.c2
-rw-r--r--ports/atmel-samd/boards/trinket_m0_haxpress/pins.c2
-rw-r--r--ports/atmel-samd/boards/ugame10/pins.c2
-rw-r--r--ports/atmel-samd/common-hal/displayio/ParallelBus.c38
-rw-r--r--ports/atmel-samd/common-hal/displayio/ParallelBus.h4
-rw-r--r--ports/atmel-samd/mpconfigport.h1
-rw-r--r--shared-bindings/displayio/ParallelBus.c50
-rw-r--r--shared-bindings/displayio/ParallelBus.h4
-rw-r--r--shared-bindings/displayio/__init__.c3
-rw-r--r--shared-module/displayio/Display.c4
-rw-r--r--shared-module/displayio/__init__.c17
41 files changed, 160 insertions, 102 deletions
diff --git a/ports/atmel-samd/boards/arduino_mkr1300/pins.c b/ports/atmel-samd/boards/arduino_mkr1300/pins.c
index de9f9769c..a5a058ace 100644
--- a/ports/atmel-samd/boards/arduino_mkr1300/pins.c
+++ b/ports/atmel-samd/boards/arduino_mkr1300/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/arduino_mkrzero/pins.c b/ports/atmel-samd/boards/arduino_mkrzero/pins.c
index 3ffd37fa6..654c0d6da 100644
--- a/ports/atmel-samd/boards/arduino_mkrzero/pins.c
+++ b/ports/atmel-samd/boards/arduino_mkrzero/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
@@ -31,7 +31,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PB23) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PB23) },
{ MP_ROM_QSTR(MP_QSTR_D14), MP_ROM_PTR(&pin_PB22) },
- { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB22) },
+ { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PB22) },
{ MP_ROM_QSTR(MP_QSTR_SD_SCK), MP_ROM_PTR(&pin_PA13) },
{ MP_ROM_QSTR(MP_QSTR_SD_MOSI), MP_ROM_PTR(&pin_PA12) },
{ MP_ROM_QSTR(MP_QSTR_SD_MISO), MP_ROM_PTR(&pin_PA15) },
diff --git a/ports/atmel-samd/boards/arduino_zero/pins.c b/ports/atmel-samd/boards/arduino_zero/pins.c
index 8a7ff70e6..f9403bb9a 100644
--- a/ports/atmel-samd/boards/arduino_zero/pins.c
+++ b/ports/atmel-samd/boards/arduino_zero/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/catwan_usbstick/pins.c b/ports/atmel-samd/boards/catwan_usbstick/pins.c
index 8997b653f..87ee84c0b 100644
--- a/ports/atmel-samd/boards/catwan_usbstick/pins.c
+++ b/ports/atmel-samd/boards/catwan_usbstick/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA30) },
diff --git a/ports/atmel-samd/boards/circuitplayground_express/pins.c b/ports/atmel-samd/boards/circuitplayground_express/pins.c
index 14ae89c55..70743366e 100644
--- a/ports/atmel-samd/boards/circuitplayground_express/pins.c
+++ b/ports/atmel-samd/boards/circuitplayground_express/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c b/ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c
index 14ae89c55..70743366e 100644
--- a/ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c
+++ b/ports/atmel-samd/boards/circuitplayground_express_crickit/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/cp32-m4/pins.c b/ports/atmel-samd/boards/cp32-m4/pins.c
index 93c169c8b..9da67dfb4 100644
--- a/ports/atmel-samd/boards/cp32-m4/pins.c
+++ b/ports/atmel-samd/boards/cp32-m4/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
// This mapping only includes functional names because pins broken
// out on connectors are labeled with their MCU name available from
diff --git a/ports/atmel-samd/boards/datalore_ip_m4/pins.c b/ports/atmel-samd/boards/datalore_ip_m4/pins.c
index 460fd6fef..468a09a47 100644
--- a/ports/atmel-samd/boards/datalore_ip_m4/pins.c
+++ b/ports/atmel-samd/boards/datalore_ip_m4/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
// This mapping only includes functional names because pins broken
// out on connectors are labeled with their MCU name available from
diff --git a/ports/atmel-samd/boards/feather_m0_adalogger/pins.c b/ports/atmel-samd/boards/feather_m0_adalogger/pins.c
index 0029bba1a..d99e62c95 100644
--- a/ports/atmel-samd/boards/feather_m0_adalogger/pins.c
+++ b/ports/atmel-samd/boards/feather_m0_adalogger/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/feather_m0_basic/pins.c b/ports/atmel-samd/boards/feather_m0_basic/pins.c
index 4400a253d..f9b6db63b 100644
--- a/ports/atmel-samd/boards/feather_m0_basic/pins.c
+++ b/ports/atmel-samd/boards/feather_m0_basic/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/feather_m0_express/pins.c b/ports/atmel-samd/boards/feather_m0_express/pins.c
index cd6c351d4..1eaa98a58 100644
--- a/ports/atmel-samd/boards/feather_m0_express/pins.c
+++ b/ports/atmel-samd/boards/feather_m0_express/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/feather_m0_express_crickit/pins.c b/ports/atmel-samd/boards/feather_m0_express_crickit/pins.c
index cd6c351d4..1eaa98a58 100644
--- a/ports/atmel-samd/boards/feather_m0_express_crickit/pins.c
+++ b/ports/atmel-samd/boards/feather_m0_express_crickit/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/feather_m0_rfm69/pins.c b/ports/atmel-samd/boards/feather_m0_rfm69/pins.c
index 7e14b3f25..ba59cb69b 100644
--- a/ports/atmel-samd/boards/feather_m0_rfm69/pins.c
+++ b/ports/atmel-samd/boards/feather_m0_rfm69/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/feather_m0_rfm9x/pins.c b/ports/atmel-samd/boards/feather_m0_rfm9x/pins.c
index 4e77b7fb9..29a01d405 100644
--- a/ports/atmel-samd/boards/feather_m0_rfm9x/pins.c
+++ b/ports/atmel-samd/boards/feather_m0_rfm9x/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/feather_m0_supersized/pins.c b/ports/atmel-samd/boards/feather_m0_supersized/pins.c
index cd6c351d4..1eaa98a58 100644
--- a/ports/atmel-samd/boards/feather_m0_supersized/pins.c
+++ b/ports/atmel-samd/boards/feather_m0_supersized/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c b/ports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c
index cd111e174..211596f78 100755
--- a/ports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c
+++ b/ports/atmel-samd/boards/feather_radiofruit_zigbee/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PB02) },
diff --git a/ports/atmel-samd/boards/gemma_m0/pins.c b/ports/atmel-samd/boards/gemma_m0/pins.c
index c9c7ea555..b24b45838 100644
--- a/ports/atmel-samd/boards/gemma_m0/pins.c
+++ b/ports/atmel-samd/boards/gemma_m0/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PA05) }, // pad 1
diff --git a/ports/atmel-samd/boards/hallowing_m0_express/board.c b/ports/atmel-samd/boards/hallowing_m0_express/board.c
index b47c5fbb2..2b12ae464 100644
--- a/ports/atmel-samd/boards/hallowing_m0_express/board.c
+++ b/ports/atmel-samd/boards/hallowing_m0_express/board.c
@@ -27,6 +27,7 @@
#include "boards/board.h"
#include "shared-bindings/displayio/FourWire.h"
+#include "shared-module/displayio/__init__.h"
#include "shared-module/displayio/mipi_constants.h"
#include "tick.h"
@@ -68,13 +69,18 @@ uint8_t display_init_sequence[] = {
};
void board_init(void) {
- board_display_obj.base.type = &displayio_fourwire_type;
- common_hal_displayio_fourwire_construct(&board_display_obj,
- &pin_PB23, // Clock
- &pin_PB22, // Data
+ displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
+ bus->base.type = &displayio_fourwire_type;
+ common_hal_displayio_fourwire_construct(bus,
+ board_spi(),
&pin_PA28, // Command or data
&pin_PA01, // Chip select
- &pin_PA27, // Reset
+ &pin_PA27); // Reset
+
+ displayio_display_obj_t* display = &displays[0].display;
+ display->base.type = &displayio_display_type;
+ common_hal_displayio_display_construct(display,
+ bus,
128, // Width
128, // Height
2, // column start
@@ -82,33 +88,9 @@ void board_init(void) {
16, // Color depth
MIPI_COMMAND_SET_COLUMN_ADDRESS, // Set column command
MIPI_COMMAND_SET_PAGE_ADDRESS, // Set row command
- MIPI_COMMAND_WRITE_MEMORY_START); // Write memory command
-
- uint32_t i = 0;
- common_hal_displayio_fourwire_begin_transaction(&board_display_obj);
- while (i < sizeof(display_init_sequence)) {
- uint8_t *cmd = display_init_sequence + i;
- uint8_t data_size = *(cmd + 1);
- bool delay = (data_size & DELAY) != 0;
- data_size &= ~DELAY;
- uint8_t *data = cmd + 2;
- common_hal_displayio_fourwire_send(&board_display_obj, true, cmd, 1);
- common_hal_displayio_fourwire_send(&board_display_obj, false, data, data_size);
- if (delay) {
- data_size++;
- uint16_t delay_length_ms = *(cmd + 1 + data_size);
- if (delay_length_ms == 255) {
- delay_length_ms = 500;
- }
- uint64_t start = ticks_ms;
- while (ticks_ms - start < delay_length_ms) {}
- } else {
- uint64_t start = ticks_ms;
- while (ticks_ms - start < 10) {}
- }
- i += 2 + data_size;
- }
- common_hal_displayio_fourwire_end_transaction(&board_display_obj);
+ MIPI_COMMAND_WRITE_MEMORY_START, // Write memory command
+ display_init_sequence,
+ sizeof(display_init_sequence));
}
bool board_requests_safe_mode(void) {
@@ -116,5 +98,4 @@ bool board_requests_safe_mode(void) {
}
void reset_board(void) {
- common_hal_displayio_fourwire_show(&board_display_obj, NULL);
}
diff --git a/ports/atmel-samd/boards/hallowing_m0_express/pins.c b/ports/atmel-samd/boards/hallowing_m0_express/pins.c
index d1f8609ff..3db1b1752 100644
--- a/ports/atmel-samd/boards/hallowing_m0_express/pins.c
+++ b/ports/atmel-samd/boards/hallowing_m0_express/pins.c
@@ -1,7 +1,8 @@
#include "shared-bindings/board/__init__.h"
#include "boards/board.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
+#include "shared-module/displayio/__init__.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
@@ -62,6 +63,6 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
- { MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&board_display_obj)}
+ { MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display)}
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
diff --git a/ports/atmel-samd/boards/itsybitsy_m0_express/pins.c b/ports/atmel-samd/boards/itsybitsy_m0_express/pins.c
index 25407bc14..912fba4ed 100644
--- a/ports/atmel-samd/boards/itsybitsy_m0_express/pins.c
+++ b/ports/atmel-samd/boards/itsybitsy_m0_express/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },
diff --git a/ports/atmel-samd/boards/itsybitsy_m4_express/pins.c b/ports/atmel-samd/boards/itsybitsy_m4_express/pins.c
index 2a89c3037..ed91c88ee 100644
--- a/ports/atmel-samd/boards/itsybitsy_m4_express/pins.c
+++ b/ports/atmel-samd/boards/itsybitsy_m4_express/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
// This mapping only includes functional names because pins broken
// out on connectors are labeled with their MCU name available from
diff --git a/ports/atmel-samd/boards/meowmeow/pins.c b/ports/atmel-samd/boards/meowmeow/pins.c
index 59c51f4eb..089baad32 100644
--- a/ports/atmel-samd/boards/meowmeow/pins.c
+++ b/ports/atmel-samd/boards/meowmeow/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/metro_m0_express/pins.c b/ports/atmel-samd/boards/metro_m0_express/pins.c
index 13f0eb0ba..0707a3581 100644
--- a/ports/atmel-samd/boards/metro_m0_express/pins.c
+++ b/ports/atmel-samd/boards/metro_m0_express/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
diff --git a/ports/atmel-samd/boards/metro_m4_express/pins.c b/ports/atmel-samd/boards/metro_m4_express/pins.c
index 0e66817f7..dd419aec6 100644
--- a/ports/atmel-samd/boards/metro_m4_express/pins.c
+++ b/ports/atmel-samd/boards/metro_m4_express/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
// This mapping only includes functional names because pins broken
// out on connectors are labeled with their MCU name available from
diff --git a/ports/atmel-samd/boards/mini_sam_m4/pins.c b/ports/atmel-samd/boards/mini_sam_m4/pins.c
index 87e210381..f78fe1bc8 100644
--- a/ports/atmel-samd/boards/mini_sam_m4/pins.c
+++ b/ports/atmel-samd/boards/mini_sam_m4/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
// This mapping only includes functional names because pins broken
// out on connectors are labeled with their MCU name available from
diff --git a/ports/atmel-samd/boards/pirkey_m0/pins.c b/ports/atmel-samd/boards/pirkey_m0/pins.c
index e08302f14..a6dbcefe3 100644
--- a/ports/atmel-samd/boards/pirkey_m0/pins.c
+++ b/ports/atmel-samd/boards/pirkey_m0/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_REMOTEIN), MP_ROM_PTR(&pin_PA28) },
diff --git a/ports/atmel-samd/boards/pyportal/board.c b/ports/atmel-samd/boards/pyportal/board.c
index cf03bb28a..6e5b37dd2 100644
--- a/ports/atmel-samd/boards/pyportal/board.c
+++ b/ports/atmel-samd/boards/pyportal/board.c
@@ -64,12 +64,14 @@ uint8_t display_init_sequence[] = {
};
void board_init(void) {
- displayio_fourwire_obj_t* bus = &displays[0].fourwire_bus;
- bus->base.type = &displayio_fourwire_type;
- common_hal_displayio_fourwire_construct(bus,
- board_spi(),
- &pin_PB09, // Command or data
+ displayio_parallelbus_obj_t* bus = &displays[0].parallel_bus;
+ bus->base.type = &displayio_parallelbus_type;
+ common_hal_displayio_parallelbus_construct(bus,
+ &pin_PA16, // Data0
+ &pin_PB05, // Command or data
&pin_PB06, // Chip select
+ &pin_PB09, // Write
+ &pin_PB04, // Read
&pin_PA00); // Reset
displayio_display_obj_t* display = &displays[0].display;
diff --git a/ports/atmel-samd/boards/pyportal/pins.c b/ports/atmel-samd/boards/pyportal/pins.c
index 4ddc10e52..6b1254dfc 100644
--- a/ports/atmel-samd/boards/pyportal/pins.c
+++ b/ports/atmel-samd/boards/pyportal/pins.c
@@ -1,6 +1,7 @@
#include "shared-bindings/board/__init__.h"
#include "boards/board.h"
+#include "shared-module/displayio/__init__.h"
#include "supervisor/shared/board_busses.h"
// This mapping only includes functional names because pins broken
@@ -72,5 +73,7 @@ STATIC const mp_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
{ MP_ROM_QSTR(MP_QSTR_UART), MP_ROM_PTR(&board_uart_obj) },
+
+ { MP_ROM_QSTR(MP_QSTR_DISPLAY), MP_ROM_PTR(&displays[0].display) },
};
MP_DEFINE_CONST_DICT(board_module_globals, board_global_dict_table);
diff --git a/ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c b/ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c
index abe63d064..42cd3736b 100644
--- a/ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c
+++ b/ports/atmel-samd/boards/sparkfun_samd21_mini/pins.c
@@ -1,15 +1,15 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
-
+
// Analog pins
{ MP_ROM_QSTR(MP_QSTR_A0), MP_ROM_PTR(&pin_PA02) },
{ MP_ROM_QSTR(MP_QSTR_A1), MP_ROM_PTR(&pin_PB08) },
{ MP_ROM_QSTR(MP_QSTR_A2), MP_ROM_PTR(&pin_PB09) },
{ MP_ROM_QSTR(MP_QSTR_A3), MP_ROM_PTR(&pin_PA04) },
-
+
// Digital pins
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA11) },
{ MP_ROM_QSTR(MP_QSTR_D1), MP_ROM_PTR(&pin_PA10) },
@@ -25,16 +25,16 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D11), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_D12), MP_ROM_PTR(&pin_PA19) },
{ MP_ROM_QSTR(MP_QSTR_D13), MP_ROM_PTR(&pin_PA17) },
-
+
// UART pins
- { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },
+ { MP_ROM_QSTR(MP_QSTR_TX), MP_ROM_PTR(&pin_PA10) },
{ MP_ROM_QSTR(MP_QSTR_RX), MP_ROM_PTR(&pin_PA11) },
-
+
// SPI pins
{ MP_ROM_QSTR(MP_QSTR_MOSI), MP_ROM_PTR(&pin_PA16) },
{ MP_ROM_QSTR(MP_QSTR_SCK), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_MISO), MP_ROM_PTR(&pin_PA19) },
-
+
// I2C pins
{ MP_ROM_QSTR(MP_QSTR_SCL), MP_ROM_PTR(&pin_PA23) },
{ MP_ROM_QSTR(MP_QSTR_SDA), MP_ROM_PTR(&pin_PA22) },
@@ -44,7 +44,7 @@ STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_BLUE_LED), MP_ROM_PTR(&pin_PA17) },
{ MP_ROM_QSTR(MP_QSTR_GREEN_LED), MP_ROM_PTR(&pin_PA27) },
{ MP_ROM_QSTR(MP_QSTR_YELLOW_LED), MP_ROM_PTR(&pin_PB03) },
-
+
// Comm objects
{ MP_ROM_QSTR(MP_QSTR_I2C), MP_ROM_PTR(&board_i2c_obj) },
{ MP_ROM_QSTR(MP_QSTR_SPI), MP_ROM_PTR(&board_spi_obj) },
diff --git a/ports/atmel-samd/boards/trellis_m4_express/pins.c b/ports/atmel-samd/boards/trellis_m4_express/pins.c
index 9626f525f..a9f204318 100644
--- a/ports/atmel-samd/boards/trellis_m4_express/pins.c
+++ b/ports/atmel-samd/boards/trellis_m4_express/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
// This mapping only includes functional names because pins broken
// out on connectors are labeled with their MCU name available from
diff --git a/ports/atmel-samd/boards/trinket_m0/pins.c b/ports/atmel-samd/boards/trinket_m0/pins.c
index 633017024..b3637bd5b 100644
--- a/ports/atmel-samd/boards/trinket_m0/pins.c
+++ b/ports/atmel-samd/boards/trinket_m0/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA08) },
diff --git a/ports/atmel-samd/boards/trinket_m0_haxpress/pins.c b/ports/atmel-samd/boards/trinket_m0_haxpress/pins.c
index 633017024..b3637bd5b 100644
--- a/ports/atmel-samd/boards/trinket_m0_haxpress/pins.c
+++ b/ports/atmel-samd/boards/trinket_m0_haxpress/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_D0), MP_ROM_PTR(&pin_PA08) },
diff --git a/ports/atmel-samd/boards/ugame10/pins.c b/ports/atmel-samd/boards/ugame10/pins.c
index 87ace5e96..71db52752 100644
--- a/ports/atmel-samd/boards/ugame10/pins.c
+++ b/ports/atmel-samd/boards/ugame10/pins.c
@@ -1,6 +1,6 @@
#include "shared-bindings/board/__init__.h"
-#include "board_busses.h"
+#include "supervisor/shared/board_busses.h"
STATIC const mp_rom_map_elem_t board_global_dict_table[] = {
{ MP_ROM_QSTR(MP_QSTR_X), MP_ROM_PTR(&pin_PA00) },
diff --git a/ports/atmel-samd/common-hal/displayio/ParallelBus.c b/ports/atmel-samd/common-hal/displayio/ParallelBus.c
index f852647a4..3c287eccd 100644
--- a/ports/atmel-samd/common-hal/displayio/ParallelBus.c
+++ b/ports/atmel-samd/common-hal/displayio/ParallelBus.c
@@ -35,8 +35,8 @@
#include "tick.h"
void common_hal_displayio_parallelbus_construct(displayio_parallelbus_obj_t* self,
- const mcu_pin_obj_t* data0, const mcu_pin_obj_t* command,
- const mcu_pin_obj_t* chip_select, const mcu_pin_obj_t* reset, const mcu_pin_obj_t* write) {
+ const mcu_pin_obj_t* data0, const mcu_pin_obj_t* command, const mcu_pin_obj_t* chip_select,
+ const mcu_pin_obj_t* write, const mcu_pin_obj_t* read, const mcu_pin_obj_t* reset) {
uint8_t data_pin = data0->number;
if (data_pin % 8 != 0 || data_pin % 32 >= 24) {
@@ -47,8 +47,8 @@ void common_hal_displayio_parallelbus_construct(displayio_parallelbus_obj_t* sel
mp_raise_ValueError_varg(translate("Bus pin %d is already in use"), i);
}
}
- PortGroup *const g = &PORT->Group[data0->number % 32];
- g->DIRSET.reg = 0xff << data_pin;
+ PortGroup *const g = &PORT->Group[data0->number / 32];
+ g->DIRSET.reg = 0xff << (data_pin % 32);
self->bus = ((uint8_t*) &g->OUT.reg) + (data0->number % 32 / 8);
self->command.base.type = &digitalio_digitalinout_type;
@@ -67,15 +67,36 @@ void common_hal_displayio_parallelbus_construct(displayio_parallelbus_obj_t* sel
common_hal_digitalio_digitalinout_construct(&self->write, write);
common_hal_digitalio_digitalinout_switch_to_output(&self->write, true, DRIVE_MODE_PUSH_PULL);
+ self->read.base.type = &digitalio_digitalinout_type;
+ common_hal_digitalio_digitalinout_construct(&self->read, read);
+ common_hal_digitalio_digitalinout_switch_to_output(&self->read, true, DRIVE_MODE_PUSH_PULL);
+
+ self->data0_pin = data_pin;
+ self->write_group = &PORT->Group[write->number / 32];
+ self->write_mask = 1 << (write->number % 32);
+
never_reset_pin_number(command->number);
never_reset_pin_number(chip_select->number);
- never_reset_pin_number(reset->number);
never_reset_pin_number(write->number);
+ never_reset_pin_number(read->number);
+ never_reset_pin_number(reset->number);
for (uint8_t i = 0; i < 8; i++) {
never_reset_pin_number(data_pin + i);
}
}
+void common_hal_displayio_parallelbus_deinit(displayio_parallelbus_obj_t* self) {
+ for (uint8_t i = 0; i < 8; i++) {
+ reset_pin_number(self->data0_pin + i);
+ }
+
+ reset_pin_number(self->command.pin->number);
+ reset_pin_number(self->chip_select.pin->number);
+ reset_pin_number(self->write.pin->number);
+ reset_pin_number(self->read.pin->number);
+ reset_pin_number(self->reset.pin->number);
+}
+
bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t obj) {
displayio_parallelbus_obj_t* self = MP_OBJ_TO_PTR(obj);
common_hal_digitalio_digitalinout_set_value(&self->chip_select, false);
@@ -85,10 +106,13 @@ bool common_hal_displayio_parallelbus_begin_transaction(mp_obj_t obj) {
void common_hal_displayio_parallelbus_send(mp_obj_t obj, bool command, uint8_t *data, uint32_t data_length) {
displayio_parallelbus_obj_t* self = MP_OBJ_TO_PTR(obj);
common_hal_digitalio_digitalinout_set_value(&self->command, !command);
+ uint32_t* clear_write = (uint32_t*) &self->write_group->OUTCLR.reg;
+ uint32_t* set_write = (uint32_t*) &self->write_group->OUTSET.reg;
+ uint32_t mask = self->write_mask;
for (uint32_t i = 0; i < data_length; i++) {
- common_hal_digitalio_digitalinout_set_value(&self->write, false);
+ *clear_write = mask;
*self->bus = data[i];
- common_hal_digitalio_digitalinout_set_value(&self->write, true);
+ *set_write = mask;
}
}
diff --git a/ports/atmel-samd/common-hal/displayio/ParallelBus.h b/ports/atmel-samd/common-hal/displayio/ParallelBus.h
index cc45598c5..630bec351 100644
--- a/ports/atmel-samd/common-hal/displayio/ParallelBus.h
+++ b/ports/atmel-samd/common-hal/displayio/ParallelBus.h
@@ -36,6 +36,10 @@ typedef struct {
digitalio_digitalinout_obj_t chip_select;
digitalio_digitalinout_obj_t reset;
digitalio_digitalinout_obj_t write;
+ digitalio_digitalinout_obj_t read;
+ uint8_t data0_pin;
+ PortGroup* write_group;
+ uint32_t write_mask;
} displayio_parallelbus_obj_t;
#endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_DISPLAYIO_PARALLELBUS_H
diff --git a/ports/atmel-samd/mpconfigport.h b/ports/atmel-samd/mpconfigport.h
index 77881fefd..a2e4075c4 100644
--- a/ports/atmel-samd/mpconfigport.h
+++ b/ports/atmel-samd/mpconfigport.h
@@ -282,6 +282,7 @@ extern const struct _mp_obj_module_t wiznet_module;
#endif
#ifdef CIRCUITPY_DISPLAYIO
+ #define CIRCUITPY_DISPLAY_LIMIT (3)
#define DISPLAYIO_MODULE { MP_OBJ_NEW_QSTR(MP_QSTR_displayio), (mp_obj_t)&displayio_module },
#else
#define DISPLAYIO_MODULE
diff --git a/shared-bindings/displayio/ParallelBus.c b/shared-bindings/displayio/ParallelBus.c
index dddb4ce8a..aa861bb81 100644
--- a/shared-bindings/displayio/ParallelBus.c
+++ b/shared-bindings/displayio/ParallelBus.c
@@ -34,6 +34,7 @@
#include "py/runtime.h"
#include "shared-bindings/microcontroller/Pin.h"
#include "shared-bindings/util.h"
+#include "shared-module/displayio/__init__.h"
#include "supervisor/shared/translate.h"
//| .. currentmodule:: displayio
@@ -46,13 +47,54 @@
//|
//| .. warning:: This will be changed before 4.0.0. Consider it very experimental.
//|
-//| .. class:: ParallelBus(*, data0, command, chip_select, reset, write, bus_width=8)
+//| .. class:: ParallelBus(*, data0, command, chip_select, write, read, reset)
//|
-//| Create a ParallelBus object associated with the given pins.
+//| Create a ParallelBus object associated with the given pins. The bus is inferred from data0
+//| by implying the next 7 additional pins on a given GPIO port.
//|
STATIC mp_obj_t displayio_parallelbus_make_new(const mp_obj_type_t *type, size_t n_args, const mp_obj_t *pos_args, mp_map_t *kw_args) {
- mp_raise_NotImplementedError(translate("displayio is a work in progress"));
- return mp_const_none;
+ enum { ARG_data0, ARG_command, ARG_chip_select, ARG_write, ARG_read, ARG_reset };
+ static const mp_arg_t allowed_args[] = {
+ { MP_QSTR_data0, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} },
+ { MP_QSTR_command, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} },
+ { MP_QSTR_chip_select, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} },
+ { MP_QSTR_write, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} },
+ { MP_QSTR_read, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} },
+ { MP_QSTR_reset, MP_ARG_OBJ | MP_ARG_KW_ONLY, {.u_obj = mp_const_none} },
+ };
+ mp_arg_val_t args[MP_ARRAY_SIZE(allowed_args)];
+ mp_arg_parse_all(n_args, pos_args, kw_args, MP_ARRAY_SIZE(allowed_args), allowed_args, args);
+
+ mp_obj_t data0 = args[ARG_data0].u_obj;
+ mp_obj_t command = args[ARG_command].u_obj;
+ mp_obj_t chip_select = args[ARG_chip_select].u_obj;
+ mp_obj_t write = args[ARG_write].u_obj;
+ mp_obj_t read = args[ARG_read].u_obj;
+ mp_obj_t reset = args[ARG_reset].u_obj;
+ if (data0 == mp_const_none || command == mp_const_none || chip_select == mp_const_none || write == mp_const_none || read == mp_const_none) {
+ mp_raise_ValueError(translate("Data0, command, chip_select, write and read required"));
+ }
+ assert_pin_free(data0);
+ assert_pin_free(command);
+ assert_pin_free(chip_select);
+ assert_pin_free(write);
+ assert_pin_free(read);
+ assert_pin_free(reset);
+
+ displayio_parallelbus_obj_t* self = NULL;
+ for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) {
+ if (displays[i].parallel_bus.base.type== NULL) {
+ self = &displays[i].parallel_bus;
+ self->base.type = &displayio_parallelbus_type;
+ break;
+ }
+ }
+ if (self == NULL) {
+ mp_raise_RuntimeError(translate("Display bus limit reached"));
+ }
+
+ common_hal_displayio_parallelbus_construct(self, data0, command, chip_select, write, read, reset);
+ return self;
}
diff --git a/shared-bindings/displayio/ParallelBus.h b/shared-bindings/displayio/ParallelBus.h
index c73934838..c4cde5ff5 100644
--- a/shared-bindings/displayio/ParallelBus.h
+++ b/shared-bindings/displayio/ParallelBus.h
@@ -35,8 +35,8 @@
extern const mp_obj_type_t displayio_parallelbus_type;
void common_hal_displayio_parallelbus_construct(displayio_parallelbus_obj_t* self,
- const mcu_pin_obj_t* data0, const mcu_pin_obj_t* command,
- const mcu_pin_obj_t* chip_select, const mcu_pin_obj_t* reset, const mcu_pin_obj_t* write);
+ const mcu_pin_obj_t* data0, const mcu_pin_obj_t* command, const mcu_pin_obj_t* chip_select,
+ const mcu_pin_obj_t* write, const mcu_pin_obj_t* read, const mcu_pin_obj_t* reset);
void common_hal_displayio_parallelbus_deinit(displayio_parallelbus_obj_t* self);
diff --git a/shared-bindings/displayio/__init__.c b/shared-bindings/displayio/__init__.c
index 66cf4d63d..306f8c08b 100644
--- a/shared-bindings/displayio/__init__.c
+++ b/shared-bindings/displayio/__init__.c
@@ -37,6 +37,7 @@
#include "shared-bindings/displayio/Group.h"
#include "shared-bindings/displayio/OnDiskBitmap.h"
#include "shared-bindings/displayio/Palette.h"
+#include "shared-bindings/displayio/ParallelBus.h"
#include "shared-bindings/displayio/Shape.h"
#include "shared-bindings/displayio/Sprite.h"
@@ -67,6 +68,7 @@
//| Group
//| OnDiskBitmap
//| Palette
+//| ParallelBus
//| Shape
//| Sprite
//|
@@ -96,6 +98,7 @@ STATIC const mp_rom_map_elem_t displayio_module_globals_table[] = {
{ MP_ROM_QSTR(MP_QSTR_Sprite), MP_ROM_PTR(&displayio_sprite_type) },
{ MP_ROM_QSTR(MP_QSTR_FourWire), MP_ROM_PTR(&displayio_fourwire_type) },
+ { MP_ROM_QSTR(MP_QSTR_ParallelBus), MP_ROM_PTR(&displayio_parallelbus_type) },
{ MP_ROM_QSTR(MP_QSTR_release_displays), MP_ROM_PTR(&displayio_release_displays_obj) },
};
diff --git a/shared-module/displayio/Display.c b/shared-module/displayio/Display.c
index 0a14e74bb..f75f0392f 100644
--- a/shared-module/displayio/Display.c
+++ b/shared-module/displayio/Display.c
@@ -113,10 +113,10 @@ void displayio_display_start_region_update(displayio_display_obj_t* self, uint16
uint16_t data[2];
self->send(self->bus, true, &self->set_column_command, 1);
data[0] = __builtin_bswap16(x0 + self->colstart);
- data[1] = __builtin_bswap16(x1 + self->colstart);
+ data[1] = __builtin_bswap16(x1 - 1 + self->colstart);
self->send(self->bus, false, (uint8_t*) data, 4);
self->send(self->bus, true, &self->set_row_command, 1);
- data[0] = __builtin_bswap16(y0 + self->rowstart);
+ data[0] = __builtin_bswap16(y0 + 1 + self->rowstart);
data[1] = __builtin_bswap16(y1 + self->rowstart);
self->send(self->bus, false, (uint8_t*) data, 4);
self->send(self->bus, true, &self->write_ram_command, 1);
diff --git a/shared-module/displayio/__init__.c b/shared-module/displayio/__init__.c
index dc5957c23..92d97a6ef 100644
--- a/shared-module/displayio/__init__.c
+++ b/shared-module/displayio/__init__.c
@@ -7,6 +7,7 @@
#include "shared-bindings/displayio/Group.h"
#include "shared-bindings/displayio/Palette.h"
#include "shared-bindings/displayio/Sprite.h"
+#include "supervisor/usb.h"
primary_display_t displays[CIRCUITPY_DISPLAY_LIMIT];
@@ -21,8 +22,6 @@ void displayio_refresh_displays(void) {
return;
}
if (displayio_display_refresh_queued(display)) {
- PORT->Group[1].DIRSET.reg = 1 << 22;
-
// We compute the pixels
uint16_t x0 = 0;
uint16_t y0 = 0;
@@ -38,8 +37,6 @@ void displayio_refresh_displays(void) {
uint16_t* pixel = &(((uint16_t*)buffer)[index]);
*pixel = 0;
- PORT->Group[1].OUTTGL.reg = 1 << 22;
-
//if (index == 0) {
if (display->current_group != NULL) {
displayio_group_get_pixel(display->current_group, x, y, pixel);
@@ -48,9 +45,6 @@ void displayio_refresh_displays(void) {
// *pixel = (((uint16_t*)buffer)[0]);
// }
-
- PORT->Group[1].OUTTGL.reg = 1 << 22;
-
index += 1;
// The buffer is full, send it.
if (index >= buffer_size) {
@@ -58,6 +52,9 @@ void displayio_refresh_displays(void) {
displayio_display_finish_region_update(display);
return;
}
+ // TODO(tannewt): Make refresh displays faster so we don't starve other
+ // background tasks.
+ usb_background();
index = 0;
}
}
@@ -182,12 +179,12 @@ void common_hal_displayio_release_displays(void) {
} else if (bus_type == &displayio_fourwire_type) {
common_hal_displayio_fourwire_deinit(&displays[i].fourwire_bus);
} else if (bus_type == &displayio_parallelbus_type) {
- //common_hal_displayio_parallelbus_deinit(&displays[i].parallel_bus);
+ common_hal_displayio_parallelbus_deinit(&displays[i].parallel_bus);
}
- displays[i].fourwire_bus.base.type = NULL;
+ displays[i].fourwire_bus.base.type = &mp_type_NoneType;
}
for (uint8_t i = 0; i < CIRCUITPY_DISPLAY_LIMIT; i++) {
- displays[i].display.base.type = NULL;
+ displays[i].display.base.type = &mp_type_NoneType;
}
// TODO(tannewt): Clear the display datastructures and release everything used.
}