Skip to content

Commit c7efd2c

Browse files
committed
shared-bindings: Move enum-like classes out of DigitalInOut into digitalio.
Also, rename Direction.IN to Direction.INPUT and Direction.OUT to Direction.OUTPUT. This simplifies using them. Prior to the nativeio split this would have led to clutter in the top-level namespace but having digitalio prevents this. Fixes adafruit#152
1 parent 58ab584 commit c7efd2c

File tree

13 files changed

+484
-240
lines changed

13 files changed

+484
-240
lines changed

atmel-samd/Makefile

Lines changed: 13 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -230,7 +230,7 @@ STM_SRC_C = $(addprefix stmhal/,\
230230
pybstdio.c \
231231
)
232232

233-
SRC_BINDINGS = \
233+
SRC_COMMON_HAL = \
234234
board/__init__.c \
235235
microcontroller/__init__.c \
236236
microcontroller/Pin.c \
@@ -256,8 +256,16 @@ SRC_BINDINGS = \
256256
usb_hid/__init__.c \
257257
usb_hid/Device.c
258258

259-
SRC_BINDINGS_EXPANDED = $(addprefix shared-bindings/, $(SRC_BINDINGS)) \
260-
$(addprefix common-hal/, $(SRC_BINDINGS))
259+
# These don't have corresponding files in each port but are still located in
260+
# shared-bindings to make it clear what the contents of the modules are.
261+
SRC_BINDINGS_ENUMS = \
262+
digitalio/Direction.c \
263+
digitalio/DriveMode.c \
264+
digitalio/Pull.c
265+
266+
SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL)) \
267+
$(addprefix shared-bindings/, $(SRC_BINDINGS_ENUMS)) \
268+
$(addprefix common-hal/, $(SRC_COMMON_HAL))
261269

262270
SRC_SHARED_MODULE = \
263271
help.c \
@@ -274,10 +282,10 @@ SRC_SHARED_MODULE_EXPANDED = $(addprefix shared-bindings/, $(SRC_SHARED_MODULE))
274282
OBJ = $(PY_O) $(addprefix $(BUILD)/, $(SRC_C:.c=.o))
275283
OBJ += $(addprefix $(BUILD)/, $(SRC_ASF:.c=.o))
276284
OBJ += $(addprefix $(BUILD)/, $(STM_SRC_C:.c=.o))
277-
OBJ += $(addprefix $(BUILD)/, $(SRC_BINDINGS_EXPANDED:.c=.o))
285+
OBJ += $(addprefix $(BUILD)/, $(SRC_COMMON_HAL_EXPANDED:.c=.o))
278286
OBJ += $(addprefix $(BUILD)/, $(SRC_SHARED_MODULE_EXPANDED:.c=.o))
279287

280-
SRC_QSTR += $(SRC_C) $(SRC_BINDINGS_EXPANDED) $(SRC_SHARED_MODULE_EXPANDED) $(STM_SRC_C)
288+
SRC_QSTR += $(SRC_C) $(SRC_COMMON_HAL_EXPANDED) $(SRC_SHARED_MODULE_EXPANDED) $(STM_SRC_C)
281289

282290
all: $(BUILD)/firmware.bin $(BUILD)/firmware.uf2
283291

atmel-samd/common-hal/digitalio/DigitalInOut.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,15 +56,15 @@ void common_hal_digitalio_digitalinout_deinit(digitalio_digitalinout_obj_t* self
5656
}
5757

5858
void common_hal_digitalio_digitalinout_switch_to_input(
59-
digitalio_digitalinout_obj_t* self, enum digitalinout_pull_t pull) {
59+
digitalio_digitalinout_obj_t* self, enum digitalio_pull_t pull) {
6060
self->output = false;
6161

6262
common_hal_digitalio_digitalinout_set_pull(self, pull);
6363
}
6464

6565
void common_hal_digitalio_digitalinout_switch_to_output(
6666
digitalio_digitalinout_obj_t* self, bool value,
67-
enum digitalinout_drive_mode_t drive_mode) {
67+
enum digitalio_drive_mode_t drive_mode) {
6868
struct port_config pin_conf;
6969
port_get_config_defaults(&pin_conf);
7070

@@ -77,9 +77,9 @@ void common_hal_digitalio_digitalinout_switch_to_output(
7777
common_hal_digitalio_digitalinout_set_value(self, value);
7878
}
7979

80-
enum digitalinout_direction_t common_hal_digitalio_digitalinout_get_direction(
80+
enum digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
8181
digitalio_digitalinout_obj_t* self) {
82-
return self->output? DIRECTION_OUT : DIRECTION_IN;
82+
return self->output? DIRECTION_OUTPUT : DIRECTION_INPUT;
8383
}
8484

8585
void common_hal_digitalio_digitalinout_set_value(
@@ -120,7 +120,7 @@ bool common_hal_digitalio_digitalinout_get_value(
120120

121121
void common_hal_digitalio_digitalinout_set_drive_mode(
122122
digitalio_digitalinout_obj_t* self,
123-
enum digitalinout_drive_mode_t drive_mode) {
123+
enum digitalio_drive_mode_t drive_mode) {
124124
bool value = common_hal_digitalio_digitalinout_get_value(self);
125125
self->open_drain = drive_mode == DRIVE_MODE_OPEN_DRAIN;
126126
// True is implemented differently between modes so reset the value to make
@@ -130,7 +130,7 @@ void common_hal_digitalio_digitalinout_set_drive_mode(
130130
}
131131
}
132132

133-
enum digitalinout_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
133+
enum digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
134134
digitalio_digitalinout_obj_t* self) {
135135
if (self->open_drain) {
136136
return DRIVE_MODE_OPEN_DRAIN;
@@ -140,7 +140,7 @@ enum digitalinout_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
140140
}
141141

142142
void common_hal_digitalio_digitalinout_set_pull(
143-
digitalio_digitalinout_obj_t* self, enum digitalinout_pull_t pull) {
143+
digitalio_digitalinout_obj_t* self, enum digitalio_pull_t pull) {
144144
enum port_pin_pull asf_pull = PORT_PIN_PULL_NONE;
145145
switch (pull) {
146146
case PULL_UP:
@@ -161,7 +161,7 @@ void common_hal_digitalio_digitalinout_set_pull(
161161
port_pin_set_config(self->pin->pin, &pin_conf);
162162
}
163163

164-
enum digitalinout_pull_t common_hal_digitalio_digitalinout_get_pull(
164+
enum digitalio_pull_t common_hal_digitalio_digitalinout_get_pull(
165165
digitalio_digitalinout_obj_t* self) {
166166
uint32_t pin = self->pin->pin;
167167
PortGroup *const port_base = port_get_group_from_gpio_pin(pin);

esp8266/Makefile

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -125,9 +125,16 @@ SRC_COMMON_HAL = \
125125
time/__init__.c \
126126
board/__init__.c
127127

128+
# These don't have corresponding files in each port but are still located in
129+
# shared-bindings to make it clear what the contents of the modules are.
130+
SRC_BINDINGS_ENUMS = \
131+
digitalio/Direction.c \
132+
digitalio/DriveMode.c \
133+
digitalio/Pull.c
134+
128135
SRC_COMMON_HAL_EXPANDED = $(addprefix shared-bindings/, $(SRC_COMMON_HAL)) \
136+
$(addprefix shared-bindings/, $(SRC_BINDINGS_ENUMS)) \
129137
$(addprefix common-hal/, $(SRC_COMMON_HAL))
130-
131138
SRC_SHARED_MODULE = \
132139
bitbangio/__init__.c \
133140
bitbangio/I2C.c \

esp8266/common-hal/digitalio/DigitalInOut.c

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -51,7 +51,7 @@ void common_hal_digitalio_digitalinout_deinit(digitalio_digitalinout_obj_t* self
5151
}
5252

5353
void common_hal_digitalio_digitalinout_switch_to_input(
54-
digitalio_digitalinout_obj_t* self, enum digitalinout_pull_t pull) {
54+
digitalio_digitalinout_obj_t* self, enum digitalio_pull_t pull) {
5555
self->output = false;
5656

5757
if (self->pin->gpio_number == 16) {
@@ -67,7 +67,7 @@ void common_hal_digitalio_digitalinout_switch_to_input(
6767

6868
void common_hal_digitalio_digitalinout_switch_to_output(
6969
digitalio_digitalinout_obj_t* self, bool value,
70-
enum digitalinout_drive_mode_t drive_mode) {
70+
enum digitalio_drive_mode_t drive_mode) {
7171
self->output = true;
7272
self->open_drain = drive_mode == DRIVE_MODE_OPEN_DRAIN;
7373
if (self->pin->gpio_number == 16) {
@@ -81,9 +81,9 @@ void common_hal_digitalio_digitalinout_switch_to_output(
8181
common_hal_digitalio_digitalinout_set_value(self, value);
8282
}
8383

84-
enum digitalinout_direction_t common_hal_digitalio_digitalinout_get_direction(
84+
enum digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
8585
digitalio_digitalinout_obj_t* self) {
86-
return self->output? DIRECTION_OUT : DIRECTION_IN;
86+
return self->output? DIRECTION_OUTPUT : DIRECTION_INPUT;
8787
}
8888

8989
void common_hal_digitalio_digitalinout_set_value(
@@ -128,7 +128,7 @@ bool common_hal_digitalio_digitalinout_get_value(
128128

129129
void common_hal_digitalio_digitalinout_set_drive_mode(
130130
digitalio_digitalinout_obj_t* self,
131-
enum digitalinout_drive_mode_t drive_mode) {
131+
enum digitalio_drive_mode_t drive_mode) {
132132
bool value = common_hal_digitalio_digitalinout_get_value(self);
133133
self->open_drain = drive_mode == DRIVE_MODE_OPEN_DRAIN;
134134
// True is implemented differently between modes so reset the value to make
@@ -138,7 +138,7 @@ void common_hal_digitalio_digitalinout_set_drive_mode(
138138
}
139139
}
140140

141-
enum digitalinout_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
141+
enum digitalio_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
142142
digitalio_digitalinout_obj_t* self) {
143143
if (self->open_drain) {
144144
return DRIVE_MODE_OPEN_DRAIN;
@@ -148,7 +148,7 @@ enum digitalinout_drive_mode_t common_hal_digitalio_digitalinout_get_drive_mode(
148148
}
149149

150150
void common_hal_digitalio_digitalinout_set_pull(
151-
digitalio_digitalinout_obj_t* self, enum digitalinout_pull_t pull) {
151+
digitalio_digitalinout_obj_t* self, enum digitalio_pull_t pull) {
152152
if (pull == PULL_DOWN) {
153153
nlr_raise(mp_obj_new_exception_msg(&mp_type_OSError,
154154
"ESP8266 does not support pull down."));
@@ -166,7 +166,7 @@ void common_hal_digitalio_digitalinout_set_pull(
166166
}
167167
}
168168

169-
enum digitalinout_pull_t common_hal_digitalio_digitalinout_get_pull(
169+
enum digitalio_pull_t common_hal_digitalio_digitalinout_get_pull(
170170
digitalio_digitalinout_obj_t* self) {
171171
if (self->pin->gpio_number < 16 &&
172172
(READ_PERI_REG(self->pin->peripheral) & PERIPHS_IO_MUX_PULLUP) != 0) {

0 commit comments

Comments
 (0)
pFad - Phonifier reborn

Pfad - The Proxy pFad of © 2024 Garber Painting. All rights reserved.

Note: This service is not intended for secure transactions such as banking, social media, email, or purchasing. Use at your own risk. We assume no liability whatsoever for broken pages.


Alternative Proxies:

Alternative Proxy

pFad Proxy

pFad v3 Proxy

pFad v4 Proxy