10000 Split displayio hardware support from core · tannewt/circuitpython@f5dd399 · GitHub
[go: up one dir, main page]

Skip to content

Commit f5dd399

Browse files
committed
Split displayio hardware support from core
These are moved: * Display -> busdisplay.BusDisplay * FourWire -> fourwire.FourWire * EPaperDisplay -> epaperdisplay.EPaperDisplay * I2CDisplay -> i2cdisplaybus.I2CDisplayBus Bus related helpers are split out of display_core into bus_core. It is in still displayio since it is a dependency of both busdisplay and epaperdisplay. Fixes micropython#7667
1 parent fce45af commit f5dd399

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

52 files changed

+1362
-1042
lines changed

main.c

Lines changed: 7 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -94,6 +94,10 @@
9494
#include "shared-module/displayio/__init__.h"
9595
#endif
9696

97+
#if CIRCUITPY_EPAPERDISPLAY
98+
#include "shared-bindings/epaperdisplay/EPaperDisplay.h"
99+
#endif
100+
97101
#if CIRCUITPY_KEYPAD
98102
#include "shared-module/keypad/__init__.h"
99103
#endif
@@ -534,7 +538,7 @@ STATIC bool run_code_py(safe_mode_t safe_mode, bool *simulate_reset) {
534538

535539
// Program has finished running.
536540
bool printed_press_any_key = false;
537-
#if CIRCUITPY_DISPLAYIO
541+
#if CIRCUITPY_EPAPERDISPLAY
538542
size_t time_to_epaper_refresh = 1;
539543
#endif
540544

@@ -682,7 +686,7 @@ STATIC bool run_code_py(safe_mode_t safe_mode, bool *simulate_reset) {
682686
// Refresh the ePaper display if we have one. That way it'll show an error message.
683687
// Skip if we're about to autoreload. Otherwise we may delay when user code can update
684688
// the display.
685-
#if CIRCUITPY_DISPLAYIO
689+
#if CIRCUITPY_EPAPERDISPLAY
686690
if (time_to_epaper_refresh > 0 && !autoreload_pending()) {
687691
time_to_epaper_refresh = maybe_refresh_epaperdisplay();
688692
}
@@ -724,7 +728,7 @@ STATIC bool run_code_py(safe_mode_t safe_mode, bool *simulate_reset) {
724728
}
725729
time_to_next_change = total_time - tick_diff;
726730
}
727-
#if CIRCUITPY_DISPLAYIO
731+
#if CIRCUITPY_EPAPERDISPLAY
728732
if (time_to_epaper_refresh< 10000 /span> > 0 && time_to_next_change > 0) {
729733
time_to_next_change = MIN(time_to_next_change, time_to_epaper_refresh);
730734
}

ports/atmel-samd/common-hal/paralleldisplay/ParallelBus.c renamed to ports/atmel-samd/common-hal/paralleldisplaybus/ParallelBus.c

Lines changed: 13 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@
2424
* THE SOFTWARE.
2525
*/
2626

27-
#include "shared-bindings/paralleldisplay/ParallelBus.h"
27+
#include "shared-bindings/paralleldisplaybus/ParallelBus.h"
2828

2929
#include <stdint.h>
3030

@@ -33,7 +33,7 @@
3333
#include "shared-bindings/digitalio/DigitalInOut.h"
3434
#include "shared-bindings/microcontroller/__init__.h"
3535

36-
void common_hal_paralleldisplay_parallelbus_construct(paralleldisplay_parallelbus_obj_t *self,
36+
void common_hal_paralleldisplaybus_parallelbus_construct(paralleldisplaybus_parallelbus_obj_t *self,
3737
const mcu_pin_obj_t *data0, const mcu_pin_obj_t *command, const mcu_pin_obj_t *chip_select,
3838
const mcu_pin_obj_t *write, const mcu_pin_obj_t *read, const mcu_pin_obj_t *reset, uint32_t frequency) {
3939

@@ -87,7 +87,7 @@ void common_hal_paralleldisplay_parallelbus_construct(paralleldisplay_parallelbu
8787
common_hal_digitalio_digitalinout_construct(&self->reset, reset);
8888
common_hal_digitalio_digitalinout_switch_to_output(&self->reset, true, DRIVE_MODE_PUSH_PULL);
8989
never_reset_pin_number(reset->number);
90-
common_hal_paralleldisplay_parallelbus_reset(self);
90+
common_hal_paralleldisplaybus_parallelbus_reset(self);
9191
}
9292

9393
never_reset_pin_number(command->number);
@@ -98,7 +98,7 @@ void common_hal_paralleldisplay_parallelbus_construct(paralleldisplay_parallelbu
9898
}
9999
}
100100

101-
void common_hal_paralleldisplay_parallelbus_deinit(paralleldisplay_parallelbus_obj_t *self) {
101+
void common_hal_paralleldisplaybus_parallelbus_deinit(paralleldisplaybus_parallelbus_obj_t *self) {
102102
for (uint8_t i = 0; i < 8; i++) {
103103
reset_pin_number(self->data0_pin + i);
104104
}
@@ -110,8 +110,8 @@ void common_hal_paralleldisplay_parallelbus_deinit(paralleldisplay_parallelbus_o
110110
reset_pin_number(self->reset.pin->number);
111111
}
112112

113-
bool common_hal_paralleldisplay_parallelbus_reset(mp_obj_t obj) {
114-
paralleldisplay_parallelbus_obj_t *self = MP_OBJ_TO_PTR(obj);
113+
bool common_hal_paralleldisplaybus_parallelbus_reset(mp_obj_t obj) {
114+
paralleldisplaybus_parallelbus_obj_t *self = MP_OBJ_TO_PTR(obj);
115115
if (self->reset.base.type == &mp_type_NoneType) {
116116
return false;
117117
}
@@ -122,19 +122,19 @@ bool common_hal_paralleldisplay_parallelbus_reset(mp_obj_t obj) {
122122
return true;
123123
}
124124

125-
bool common_hal_paralleldisplay_parallelbus_bus_free(mp_obj_t obj) {
125+
bool common_hal_paralleldisplaybus_parallelbus_bus_free(mp_obj_t obj) {
126126
return true;
127127
}
128128

129-
bool common_hal_paralleldisplay_parallelbus_begin_transaction(mp_obj_t obj) {
130-
paralleldisplay_parallelbus_obj_t *self = MP_OBJ_TO_PTR(obj);
129+
bool common_hal_paralleldisplaybus_parallelbus_begin_transaction(mp_obj_t obj) {
130+
paralleldisplaybus_parallelbus_obj_t *self = MP_OBJ_TO_PTR(obj);
131131
common_hal_digitalio_digitalinout_set_value(&self->chip_select, false);
132132
return true;
133133
}
134134

135-
void common_hal_paralleldisplay_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type,
135+
void common_hal_paralleldisplaybus_parallelbus_send(mp_obj_t obj, display_byte_type_t byte_type,
136136
display_chip_select_behavior_t chip_select, const uint8_t *data, uint32_t data_length) {
137-
paralleldisplay_parallelbus_obj_t *self = MP_OBJ_TO_PTR(obj);
137+
paralleldisplaybus_parallelbus_obj_t *self = MP_OBJ_TO_PTR(obj);
138138
common_hal_digitalio_digitalinout_set_value(&self->command, byte_type == DISPLAY_DATA);
139139
uint32_t *clear_write = (uint32_t *)&self->write_group->OUTCLR.reg;
140140
uint32_t *set_write = (uint32_t *)&self->write_group->OUTSET.reg;
@@ -146,7 +146,7 @@ void common_hal_paralleldisplay_parallelbus_send(mp_obj_t obj, display_byte_type
146146
}
147147
}
148148

149-
void common_hal_paralleldisplay_parallelbus_end_transaction(mp_obj_t obj) {
150-
paralleldisplay_parallelbus_obj_t *self = MP_OBJ_TO_PTR(obj);
149+
void common_hal_paralleldisplaybus_parallelbus_end_transaction(mp_obj_t obj) {
150+
paralleldisplaybus_parallelbus_obj_t *self = MP_OBJ_TO_PTR(obj);
151151
common_hal_digitalio_digitalinout_set_value(&self->chip_select, true);
152152
}

ports/atmel-samd/common-hal/paralleldisplay/ParallelBus.h renamed to ports/atmel-samd/common-hal/paralleldisplaybus/ParallelBus.h

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -24,8 +24,7 @@
2424
* THE SOFTWARE.
2525
*/
2626

27-
#ifndef MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_PARALLELDISPLAY_PARALLELBUS_H
28-
#define MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_PARALLELDISPLAY_PARALLELBUS_H
27+
#pragma once
2928

3029
#include "common-hal/digitalio/DigitalInOut.h"
3130

@@ -40,6 +39,4 @@ typedef struct {
4039
uint8_t data0_pin;
4140
PortGroup *write_group;
4241
uint32_t write_mask;
43-
} paralleldisplay_parallelbus_obj_t;
44-
45-
#endif // MICROPY_INCLUDED_ATMEL_SAMD_COMMON_HAL_PARALLELDISPLAY_PARALLELBUS_H
42+
} paralleldisplaybus_parallelbus_obj_t;

py/circuitpy_defns.mk

Lines changed: 26 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -152,6 +152,9 @@ endif
152152
ifeq ($(CIRCUITPY_BUSDEVICE),1)
153153
SRC_PATTERNS += adafruit_bus_device/%
154154
endif
155+
ifeq ($(CIRCUITPY_BUSDISPLAY),1)
156+
SRC_PATTERNS += busdisplay/%
157+
endif
155158
ifeq ($(CIRCUITPY_BUSIO),1)
156159
SRC_PATTERNS += busio/%
157160
endif
@@ -176,6 +179,9 @@ endif
176179
ifeq ($(CIRCUITPY__EVE),1)
177180
SRC_PATTERNS += _eve/%
178181
endif
182+
ifeq ($(CIRCUITPY_EPAPERDISPLAY),1)
183+
SRC_PATTERNS += epaperdisplay/%
184+
endif
179185
ifeq ($(CIRCUITPY_ESPCAMERA),1)
180186
SRC_PATTERNS += espcamera/%
181187
endif
@@ -191,6 +197,9 @@ endif
191197
ifeq ($(CIRCUITPY_FLOPPYIO),1)
192198
SRC_PATTERNS += floppyio/%
193199
endif
200+
ifeq ($(CIRCUITPY_FOURWIRE),1)
201+
SRC_PATTERNS += fourwire/%
202+
endif
194203
ifeq ($(CIRCUITPY_FRAMEBUFFERIO),1)
195204
SRC_PATTERNS += framebufferio/%
196205
endif
@@ -212,6 +221,9 @@ endif
212221
ifeq ($(CIRCUITPY_HASHLIB),1)
213222
SRC_PATTERNS += hashlib/%
214223
endif
224+
ifeq ($(CIRCUITPY_I2CDISPLAYBUS),1)
225+
SRC_PATTERNS += i2cdisplaybus/%
226+
endif
215227
ifeq ($(CIRCUITPY_I2CTARGET),1)
216228
SRC_PATTERNS += i2ctarget/%
217229
endif
@@ -260,8 +272,8 @@ endif
260272
ifeq ($(CIRCUITPY_DUALBANK),1)
261273
SRC_PATTERNS += dualbank/%
262274
endif
263-
ifeq ($(CIRCUITPY_PARALLELDISPLAY),1)
264-
SRC_PATTERNS += paralleldisplay/%
275+
ifeq ($(CIRCUITPY_PARALLELDISPLAYBUS),1)
276+
SRC_PATTERNS += paralleldisplaybus/%
265277
endif
266278
ifeq ($(CIRCUITPY_PEW),1)
267279
SRC_PATTERNS += _pew/%
@@ -465,7 +477,7 @@ SRC_COMMON_HAL_ALL = \
465477
nvm/ByteArray.c \
466478
nvm/__init__.c \
467479
os/__init__.c \
468-
paralleldisplay/ParallelBus.c \
480+
paralleldisplaybus/ParallelBus.c \
469481
ps2io/Ps2.c \
470482
ps2io/__init__.c \
471483
pulseio/PulseIn.c \
@@ -534,8 +546,7 @@ $(filter $(SRC_PATTERNS), \
534546
microcontroller/RunMode.c \
535547
msgpack/__init__.c \
536548
msgpack/ExtType.c \
537-
paralleldisplay/__init__.c \
538-
paralleldisplay/ParallelBus.c \
549+
paralleldisplaybus/__init__.c \
539550
qrio/PixelPolicy.c \
540551
qrio/QRInfo.c \
541552
supervisor/RunReason.c \
@@ -587,32 +598,35 @@ SRC_SHARED_MODULE_ALL = \
587598
adafruit_bus_device/__init__.c \
588599
adafruit_bus_device/i2c_device/I2CDevice.c \
589600
adafruit_bus_device/spi_device/SPIDevice.c \
601+
busdisplay/__init__.c \
602+
busdisplay/BusDisplay.c \
590603
canio/Match.c \
591604
canio/Message.c \
592605
canio/RemoteTransmissionRequest.c \
593606
displayio/Bitmap.c \
594607
displayio/ColorConverter.c \
595-
displayio/Display.c \
596-
displayio/EPaperDisplay.c \
597-
displayio/FourWire.c \
598608
displayio/Group.c \
599-
displayio/I2CDisplay.c \
600609
displayio/OnDiskBitmap.c \
601610
displayio/Palette.c \
602-
displayio/Shape.c \
603611
displayio/TileGrid.c \
604612
displayio/area.c \
605613
displayio/__init__.c \
606614
dotclockframebuffer/__init__.c \
615+
epaperdisplay/__init__.c \
616+
epaperdisplay/EPaperDisplay.c \
607617
floppyio/__init__.c \
608618
fontio/BuiltinFont.c \
609619
fontio/__init__.c \
620+
fourwire/__init__.c \
621+
fourwire/FourWire.c \
610622
framebufferio/FramebufferDisplay.c \
611623
framebufferio/__init__.c \
612624
getpass/__init__.c \
613625
gifio/__init__.c \
614626
gifio/GifWriter.c \
615627
gifio/OnDiskGif.c \
628+
i2cdisplaybus/__init__.c \
629+
i2cdisplaybus/I2CDisplayBus.c \
616630
imagecapture/ParallelImageCapture.c \
617631
ipaddress/IPv4Address.c \
618632
ipaddress/__init__.c \
@@ -633,7 +647,7 @@ SRC_SHARED_MODULE_ALL = \
633647
onewireio/__init__.c \
634648
onewireio/OneWire.c \
635649
os/__init__.c \
636-
paralleldisplay/ParallelBus.c \
650+
paralleldisplaybus/ParallelBus.c \
637651
qrio/__init__.c \
638652
qrio/QRDecoder.c \
639653
rainbowio/__init__.c \
@@ -745,6 +759,7 @@ endif
745759
# All possible sources are listed here, and are filtered by SRC_PATTERNS.
746760
SRC_SHARED_MODULE_INTERNAL = \
747761
$(filter $(SRC_PATTERNS), \
762+
displayio/bus_core.c \
748763
displayio/display_core.c \
749764
os/getenv.c \
750765
usb/utf16le.c \

py/circuitpy_mpconfig.mk

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -199,12 +199,24 @@ CFLAGS += -DCIRCUITPY_COUNTIO=$(CIRCUITPY_COUNTIO)
199199
CIRCUITPY_DISPLAYIO ?= $(CIRCUITPY_FULL_BUILD)
200200
CFLAGS += -DCIRCUITPY_DISPLAYIO=$(CIRCUITPY_DISPLAYIO)
201201

202+
CIRCUITPY_BUSDISPLAY ?= $(CIRCUITPY_DISPLAYIO)
203+
CFLAGS += -DCIRCUITPY_BUSDISPLAY=$(CIRCUITPY_BUSDISPLAY)
204+
205+
CIRCUITPY_FOURWIRE ?= $(CIRCUITPY_DISPLAYIO)
206+
CFLAGS += -DCIRCUITPY_FOURWIRE=$(CIRCUITPY_FOURWIRE)
207+
208+
CIRCUITPY_EPAPERDISPLAY ?= $(CIRCUITPY_DISPLAYIO)
209+
CFLAGS += -DCIRCUITPY_EPAPERDISPLAY=$(CIRCUITPY_EPAPERDISPLAY)
210+
211+
CIRCUITPY_I2CDISPLAYBUS ?= $(CIRCUITPY_DISPLAYIO)
212+
CFLAGS += -DCIRCUITPY_I2CDISPLAYBUS=$(CIRCUITPY_I2CDISPLAYBUS)
213+
202214
ifeq ($(CIRCUITPY_DISPLAYIO),1)
203-
CIRCUITPY_PARALLELDISPLAY ?= $(CIRCUITPY_FULL_BUILD)
215+
CIRCUITPY_PARALLELDISPLAYBUS ?= $(CIRCUITPY_FULL_BUILD)
204216
else
205-
CIRCUITPY_PARALLELDISPLAY = 0
217+
CIRCUITPY_PARALLELDISPLAYBUS = 0
206218
endif
207-
CFLAGS += -DCIRCUITPY_PARALLELDISPLAY=$(CIRCUITPY_PARALLELDISPLAY)
219+
CFLAGS += -DCIRCUITPY_PARALLELDISPLAYBUS=$(CIRCUITPY_PARALLELDISPLAYBUS)
208220

209221
CIRCUITPY_DOTCLOCKFRAMEBUFFER ?= 0
210222
CFLAGS += -DCIRCUITPY_DOTCLOCKFRAMEBUFFER=$(CIRCUITPY_DOTCLOCKFRAMEBUFFER)

0 commit comments

Comments
 (0)
0