10000 Merge pull request #1082 from tannewt/no_pin_qstr · adafruit/circuitpython@88ae7a9 · GitHub
[go: up one dir, main page]

Skip to content

Commit 88ae7a9

Browse files
authored
Merge pull request #1082 from tannewt/no_pin_qstr
Reduce pin object size by removing the QSTR
2 parents e7ae5a3 + 64e5691 commit 88ae7a9

File tree

21 files changed

+165
-150
lines changed

21 files changed

+165
-150
lines changed

ports/atmel-samd/common-hal/analogio/AnalogIn.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -63,7 +63,7 @@ void common_hal_analogio_analogin_construct(analogio_analogin_obj_t* self,
6363
}
6464
claim_pin(pin);
6565

66-
gpio_set_pin_function(pin->pin, GPIO_PIN_FUNCTION_B);
66+
gpio_set_pin_function(pin->number, GPIO_PIN_FUNCTION_B);
6767

6868
static Adc* adc_insts[] = ADC_INSTS;
6969
self->instance = adc_insts[adc_index];
@@ -79,7 +79,7 @@ void common_hal_analogio_analogin_deinit(analogio_analogin_obj_t *self) {
7979
if (common_hal_analogio_analogin_deinited(self)) {
8080
return;
8181
}
82-
reset_pin(self->pin->pin);
82+
reset_pin(self->pin->number);
8383
self->pin = mp_const_none;
8484
}
8585

ports/atmel-samd/common-hal/analogio/AnalogOut.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -44,9 +44,9 @@
4444

4545
void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self,
4646
const mcu_pin_obj_t *pin) {
47-
if (pin->pin != PIN_PA02
47+
if (pin->number != PIN_PA02
4848
#ifdef SAMD51
49-
&& pin->pin != PIN_PA05
49+
&& pin->number != PIN_PA05
5050
#endif
5151
) {
5252
mp_raise_ValueError("AnalogOut not supported on given pin");
@@ -55,7 +55,7 @@ void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self,
5555

5656
self->channel = 0;
5757
#ifdef SAMD51
58-
if (pin->pin == PIN_PA05) {
58+
if (pin->number == PIN_PA05) {
5959
self->channel = 1;
6060
}
6161
#endif
@@ -93,7 +93,7 @@ void common_hal_analogio_analogout_construct(analogio_analogout_obj_t* self,
9393
}
9494
claim_pin(pin);
9595

96-
gpio_set_pin_function(pin->pin, GPIO_PIN_FUNCTION_B);
96+
gpio_set_pin_function(pin->number, GPIO_PIN_FUNCTION_B);
9797

9898
dac_sync_enable_channel(&self->descriptor, self->channel);
9999
}

ports/atmel-samd/common-hal/audiobusio/I2SOut.c

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -193,9 +193,9 @@ void common_hal_audiobusio_i2sout_construct(audiobusio_i2sout_obj_t* self,
193193
claim_pin(word_select);
194194
claim_pin(data);
195195

196-
gpio_set_pin_function(self->bit_clock->pin, GPIO_I2S_FUNCTION);
197-
gpio_set_pin_function(self->word_select->pin, GPIO_I2S_FUNCTION);
198-
gpio_set_pin_function(self->data->pin, GPIO_I2S_FUNCTION);
196+
gpio_set_pin_function(self->bit_clock->number, GPIO_I2S_FUNCTION);
197+
gpio_set_pin_function(self->word_select->number, GPIO_I2S_FUNCTION);
198+
gpio_set_pin_function(self->data->number, GPIO_I2S_FUNCTION);
199199

200200
self->left_justified = left_justified;
201201
self->playing = false;
@@ -211,11 +211,11 @@ void common_hal_audiobusio_i2sout_deinit(audiobusio_i2sout_obj_t* self) {
211211
return;
212212
}
213213

214-
reset_pin(self->bit_clock->pin);
214+
reset_pin(self->bit_clock->number);
215215
self->bit_clock = mp_const_none;
216-
reset_pin(self->word_select->pin);
216+
reset_pin(self->word_select->number);
217217
self->word_select = mp_const_none;
218-
reset_pin(self->data->pin);
218+
reset_pin(self->data->number);
219219
self->data = mp_const_none;
220220
}
221221

ports/atmel-samd/common-hal/audiobusio/PDMIn.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -210,8 +210,8 @@ void common_hal_audiobusio_pdmin_construct(audiobusio_pdmin_obj_t* self,
210210
claim_pin(clock_pin);
211211
claim_pin(data_pin);
212212

213-
gpio_set_pin_function(self->clock_pin->pin, GPIO_I2S_FUNCTION);
214-
gpio_set_pin_function(self->data_pin->pin, GPIO_I2S_FUNCTION);
213+
gpio_set_pin_function(self->clock_pin->number, GPIO_I2S_FUNCTION);
214+
gpio_set_pin_function(self->data_pin->number, GPIO_I2S_FUNCTION);
215215

216216
self->bytes_per_sample = oversample >> 3;
217217
self->bit_depth = bit_depth;
@@ -234,8 +234,8 @@ void common_hal_audiobusio_pdmin_deinit(audiobusio_pdmin_obj_t* self) {
234234
disconnect_gclk_from_peripheral(self->gclk, I2S_GCLK_ID_0 + self->clock_unit);
235235
disable_clock_generator(self->gclk);
236236

237-
reset_pin(self->clock_pin->pin);
238-
reset_pin(self->data_pin->pin);
237+
reset_pin(self->clock_pin->number);
238+
reset_pin(self->data_pin->number);
239239
self->clock_pin = mp_const_none;
240240
self->data_pin = mp_const_none;
241241
}

ports/atmel-samd/common-hal/audioio/AudioOut.c

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -93,12 +93,12 @@ void common_hal_audioio_audioout_construct(audioio_audioout_obj_t* self,
9393
if (right_channel != NULL) {
9494
claim_pin(right_channel);
9595
self->right_channel = right_channel;
96-
gpio_set_pin_function(self->right_channel->pin, GPIO_PIN_FUNCTION_B);
96+
gpio_set_pin_function(self->right_channel->number, GPIO_PIN_FUNCTION_B);
9797
audio_dma_init(&self->right_dma);
9898
}
9999
#endif
100100
self->left_channel = left_channel;
101-
gpio_set_pin_function(self->left_channel->pin, GPIO_PIN_FUNCTION_B);
101+
gpio_set_pin_function(self->left_channel->number, GPIO_PIN_FUNCTION_B);
102102
audio_dma_init(&self->left_dma);
103103

104104
#ifdef SAMD51
@@ -243,10 +243,10 @@ void common_hal_audioio_audioout_deinit(audioio_audioout_obj_t* self) {
243243

244244
tc_set_enable(tc_insts[self->tc_index], false);
245245

246-
reset_pin(self->left_channel->pin);
246+
reset_pin(self->left_channel->number);
247247
self->left_channel = mp_const_none;
248248
#ifdef SAMD51
249-
reset_pin(self->right_channel->pin);
249+
reset_pin(self->right_channel->number);
250250
self->right_channel = mp_const_none;
251251
#endif
252252
}

ports/atmel-samd/common-hal/busio/I2C.c

Lines changed: 21 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -59,11 +59,11 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
5959
sda->sercom[i].pad != 0) {
6060
continue;
6161
}
62-
sda_pinmux = PINMUX(sda->pin, (i == 0) ? MUX_C : MUX_D);
62+
sda_pinmux = PINMUX(sda->number, (i == 0) ? MUX_C : MUX_D);
6363
for (int j = 0; j < NUM_SERCOMS_PER_PIN; j++) {
6464
if (sercom_index == scl->sercom[j].index &&
6565
scl->sercom[j].pad == 1) {
66-
scl_pinmux = PINMUX(scl->pin, (j == 0) ? MUX_C : MUX_D);
66+
scl_pinmux = PINMUX(scl->number, (j == 0) ? MUX_C : MUX_D);
6767
sercom = potential_sercom;
6868
break;
6969
}
@@ -77,50 +77,50 @@ void common_hal_busio_i2c_construct(busio_i2c_obj_t *self,
7777
}
7878

7979
// Test that the pins are in a high state. (Hopefully indicating they are pulled up.)
80-
gpio_set_pin_function(sda->pin, GPIO_PIN_FUNCTION_OFF);
81-
gpio_set_pin_function(scl->pin, GPIO_PIN_FUNCTION_OFF);
82-
gpio_set_pin_direction(sda->pin, GPIO_DIRECTION_IN);
83-
gpio_set_pin_direction(scl->pin, GPIO_DIRECTION_IN);
80+
gpio_set_pin_function(sda->number, GPIO_PIN_FUNCTION_OFF);
81+
gpio_set_pin_function(scl->number, GPIO_PIN_FUNCTION_OFF);
82+
gpio_set_pin_direction(sda->number, GPIO_DIRECTION_IN);
83+
gpio_set_pin_direction(scl->number, GPIO_DIRECTION_IN);
8484

85-
gpio_set_pin_pull_mode(sda->pin, GPIO_PULL_DOWN);
86-
gpio_set_pin_pull_mode(scl->pin, GPIO_PULL_DOWN);
85+
gpio_set_pin_pull_mode(sda->number, GPIO_PULL_DOWN);
86+
gpio_set_pin_pull_mode(scl->number, GPIO_PULL_DOWN);
8787

8888
common_hal_mcu_delay_us(10);
8989

90-
gpio_set_pin_pull_mode(sda->pin, GPIO_PULL_OFF);
91-
gpio_set_pin_pull_mode(scl->pin, GPIO_PULL_OFF);
90+
gpio_set_pin_pull_mode(sda->number, GPIO_PULL_OFF);
91+
gpio_set_pin_pull_mode(scl->number, GPIO_PULL_OFF);
9292

9393
// We must pull up within 3us to achieve 400khz.
9494
common_hal_mcu_delay_us(3);
9595

96-
if (!gpio_get_pin_level(sda->pin) || !gpio_get_pin_level(scl->pin)) {
97-
reset_pin(sda->pin);
98-
reset_pin(scl->pin);
96+
if (!gpio_get_pin_level(sda->number) || !gpio_get_pin_level(scl->number)) {
97+
reset_pin(sda->number);
98+
reset_pin(scl->number);
9999
mp_raise_RuntimeError("SDA or SCL needs a pull up");
100100
}
101-
gpio_set_pin_function(sda->pin, sda_pinmux);
102-
gpio_set_pin_function(scl->pin, scl_pinmux);
101+
gpio_set_pin_function(sda->number, sda_pinmux);
102+
gpio_set_pin_function(scl->number, scl_pinmux);
103103

104104
// Set up I2C clocks on sercom.
105105
samd_peripherals_sercom_clock_init(sercom, sercom_index);
106106

107107
if (i2c_m_sync_init(&self->i2c_desc, sercom) != ERR_NONE) {
108-
reset_pin(sda->pin);
109-
reset_pin(scl->pin);
108+
reset_pin(sda->number);
109+
reset_pin(scl->number);
110110
mp_raise_OSError(MP_EIO);
111111
}
112112

113113
// clkrate is always 0. baud_rate is in kHz.
114114

115115
// Frequency must be set before the I2C device is enabled.
116116
if (i2c_m_sync_set_baudrate(&self->i2c_desc, 0, frequency / 1000) != ERR_NONE) {
117-
reset_pin(sda->pin);
118-
reset_pin(scl->pin);
117+
reset_pin(sda->number);
118+
reset_pin(scl->number);
119119
mp_raise_ValueError("Unsupported baudrate");
120120
}
121121

122-
self->sda_pin = sda->pin;
123-
self->scl_pin = scl->pin;
122+
self->sda_pin = sda->number;
123+
self->scl_pin = scl->number;
124124
claim_pin(sda);
125125
claim_pin(scl);
126126

ports/atmel-samd/common-hal/busio/SPI.c

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -69,15 +69,15 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
6969
#endif
7070
continue;
7171
}
72-
clock_pinmux = PINMUX(clock->pin, (i == 0) ? MUX_C : MUX_D);
72+
clock_pinmux = PINMUX(clock->number, (i == 0) ? MUX_C : MUX_D);
7373
clock_pad = clock->sercom[i].pad;
7474
if (!samd_peripherals_valid_spi_clock_pad(clock_pad)) {
7575
continue;
7676
}
7777
for (int j = 0; j < NUM_SERCOMS_PER_PIN; j++) {
7878
if (!mosi_none) {
7979
if (sercom_index == mosi->sercom[j].index) {
80-
mosi_pinmux = PINMUX(mosi->pin, (j == 0) ? MUX_C : MUX_D);
80+
mosi_pinmux = PINMUX(mosi->number, (j == 0) ? MUX_C : MUX_D);
8181
mosi_pad = mosi->sercom[j].pad;
8282
dopo = samd_peripherals_get_spi_dopo(clock_pad, mosi_pad);
8383
if (dopo > 0x3) {
@@ -94,7 +94,7 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
9494
if (!miso_none) {
9595
for (int k = 0; k < NUM_SERCOMS_PER_PIN; k++) {
9696
if (sercom_index == miso->sercom[k].index) {
97-
miso_pinmux = PINMUX(miso->pin, (k == 0) ? MUX_C : MUX_D);
97+
miso_pinmux = PINMUX(miso->number, (k == 0) ? MUX_C : MUX_D);
9898
miso_pad = miso->sercom[k].pad;
9999
sercom = potential_sercom;
100100
break;
@@ -138,29 +138,29 @@ void common_hal_busio_spi_construct(busio_spi_obj_t *self,
138138
mp_raise_OSError(MP_EIO);
139139
}
140140

141-
gpio_set_pin_direction(clock->pin, GPIO_DIRECTION_OUT);
142-
gpio_set_pin_pull_mode(clock->pin, GPIO_PULL_OFF);
143-
gpio_set_pin_function(clock->pin, clock_pinmux);
141+
gpio_set_pin_ 341A direction(clock->number, GPIO_DIRECTION_OUT);
142+
gpio_set_pin_pull_mode(clock->number, GPIO_PULL_OFF);
143+
gpio_set_pin_function(clock->number, clock_pinmux);
144144
claim_pin(clock);
145-
self->clock_pin = clock->pin;
145+
self->clock_pin = clock->number;
146146

147147
if (mosi_none) {
148148
self->MOSI_pin = NO_PIN;
149149
} else {
150-
gpio_set_pin_direction(mosi->pin, GPIO_DIRECTION_OUT);
151-
gpio_set_pin_pull_mode(mosi->pin, GPIO_PULL_OFF);
152-
gpio_set_pin_function(mosi->pin, mosi_pinmux);
153-
self->MOSI_pin = mosi->pin;
150+
gpio_set_pin_direction(mosi->number, GPIO_DIRECTION_OUT);
151+
gpio_set_pin_pull_mode(mosi->number, GPIO_PULL_OFF);
152+
gpio_set_pin_function(mosi->number, mosi_pinmux);
153+
self->MOSI_pin = mosi->number;
154154
claim_pin(mosi);
155155
}
156156

157157
if (miso_none) {
158158
self->MISO_pin = NO_PIN;
159159
} else {
160-
gpio_set_pin_direction(miso->pin, GPIO_DIRECTION_IN);
161-
gpio_set_pin_pull_mode(miso->pin, GPIO_PULL_OFF);
162-
gpio_set_pin_function(miso->pin, miso_pinmux);
163-
self->MISO_pin = miso->pin;
160+
gpio_set_pin_direction(miso->number, GPIO_DIRECTION_IN);
161+
gpio_set_pin_pull_mode(miso->number, GPIO_PULL_OFF);
162+
gpio_set_pin_function(miso->number, miso_pinmux);
163+
self->MISO_pin = miso->number;
164164
claim_pin(miso);
165165
}
166166

ports/atmel-samd/common-hal/busio/UART.c

Lines changed: 10 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
9191
tx->sercom[i].pad == 2)) {
9292
continue;
9393
}
94-
tx_pinmux = PINMUX(tx->pin, (i == 0) ? MUX_C : MUX_D);
94+
tx_pinmux = PINMUX(tx->number, (i == 0) ? MUX_C : MUX_D);
9595
tx_pad = tx->sercom[i].pad;
9696
if (rx == mp_const_none) {
9797
sercom = potential_sercom;
@@ -103,7 +103,7 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
103103
sercom_insts[rx->sercom[j].index]->USART.CTRLA.bit.ENABLE == 0) ||
104104
sercom_index == rx->sercom[j].index) &&
105105
rx->sercom[j].pad != tx_pad) {
106-
rx_pinmux = PINMUX(rx->pin, (j == 0) ? MUX_C : MUX_D);
106+
rx_pinmux = PINMUX(rx->number, (j == 0) ? MUX_C : MUX_D);
107107
rx_pad = rx->sercom[j].pad;
108108
sercom = sercom_insts[rx->sercom[j].index];
109109
sercom_index = rx->sercom[j].index;
@@ -187,20 +187,20 @@ void common_hal_busio_uart_construct(busio_uart_obj_t *self,
187187

188188

189189
if (have_tx) {
190-
gpio_set_pin_direction(tx->pin, GPIO_DIRECTION_OUT);
191-
gpio_set_pin_pull_mode(tx->pin, GPIO_PULL_OFF);
192-
gpio_set_pin_function(tx->pin, tx_pinmux);
193-
self->tx_pin = tx->pin;
190+
gpio_set_pin_direction(tx->number, GPIO_DIRECTION_OUT);
191+
gpio_set_pin_pull_mode(tx->number, GPIO_PULL_OFF);
192+
gpio_set_pin_function(tx->number, tx_pinmux);
193+
self->tx_pin = tx->number;
194194
claim_pin(tx);
195195
} else {
196196
self->tx_pin = NO_PIN;
197197
}
198198

199199
if (have_rx) {
200-
gpio_set_pin_direction(rx->pin, GPIO_DIRECTION_IN);
201-
gpio_set_pin_pull_mode(rx->pin, GPIO_PULL_OFF);
202-
gpio_set_pin_function(rx->pin, rx_pinmux);
203-
self->rx_pin = rx->pin;
200+
gpio_set_pin_direction(rx->number, GPIO_DIRECTION_IN);
201+
gpio_set_pin_pull_mode(rx->number, GPIO_PULL_OFF);
202+
gpio_set_pin_function(rx->number, rx_pinmux);
203+
self->rx_pin = rx->number;
204204
claim_pin(rx);
205205
} else {
206206
self->rx_pin = NO_PIN;

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

Lines changed: 9 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -41,8 +41,8 @@ digitalinout_result_t common_hal_digitalio_digitalinout_construct(
4141
self->pin = pin;
4242

4343
// Must set pull after setting direction.
44-
gpio_set_pin_direction(pin->pin, GPIO_DIRECTION_IN);
45-
gpio_set_pin_pull_mode(pin->pin, GPIO_PULL_OFF);
44+
gpio_set_pin_direction(pin->number, GPIO_DIRECTION_IN);
45+
gpio_set_pin_pull_mode(pin->number, GPIO_PULL_OFF);
4646
return DIGITALINOUT_OK;
4747
}
4848

@@ -54,7 +54,7 @@ void common_hal_digitalio_digitalinout_deinit(digitalio_digitalinout_obj_t* self
5454
if (common_hal_digitalio_digitalinout_deinited(self)) {
5555
return;
5656
}
57-
reset_pin(self->pin->pin);
57+
reset_pin(self->pin->number);
5858
self->pin = mp_const_none;
5959
}
6060

@@ -68,7 +68,7 @@ void common_hal_digitalio_digitalinout_switch_to_input(
6868
void common_hal_digitalio_digitalinout_switch_to_output(
6969
digitalio_digitalinout_obj_t* self, bool value,
7070
digitalio_drive_mode_t drive_mode) {
71-
const uint8_t pin = self->pin->pin;
71+
const uint8_t pin = self->pin->number;
7272
gpio_set_pin_pull_mode(pin, GPIO_PULL_OFF);
7373
// Turn on "strong" pin driving (more current available). See DRVSTR doc in datasheet.
7474
hri_port_set_PINCFG_DRVSTR_bit(PORT, (enum gpio_port)GPIO_PORT(pin), GPIO_PIN(pin));
@@ -87,7 +87,7 @@ digitalio_direction_t common_hal_digitalio_digitalinout_get_direction(
8787

8888
void common_hal_digitalio_digitalinout_set_value(
8989
digitalio_digitalinout_obj_t* self, bool value) {
90-
const uint8_t pin = self->pin->pin;
90+
const uint8_t pin = self->pin->number;
9191
const uint8_t port = GPIO_PORT(pin);
9292
const uint32_t pin_mask = 1U << GPIO_PIN(pin);
9393
if (value) {
@@ -108,7 +108,7 @@ void common_hal_digitalio_digitalinout_set_value(
108108

109109
bool common_hal_digitalio_digitalinout_get_value(
110110
digitalio_digitalinout_obj_t* self) {
111-
const uint8_t pin = self->pin->pin;
111+
const uint8_t pin = self->pin->number;
112112
if (!self->output) {
113113
return gpio_get_pin_level(pin);
114114
} else {
@@ -156,13 +156,13 @@ void common_hal_digitalio_digitalinout_set_pull(
156156
break;
157157
}
158158
// Must set pull after setting direction.
159-
gpio_set_pin_direction(self->pin->pin, GPIO_DIRECTION_IN);
160-
gpio_set_pin_pull_mode(self->pin->pin, asf_pull);
159+
gpio_set_pin_direction(self->pin->number, GPIO_DIRECTION_IN);
160+
gpio_set_pin_pull_mode(self->pin->number, asf_pull);
161161
}
162162

163163
digitalio_pull_t common_hal_digitalio_digitalinout_get_pull(
164164
digitalio_digitalinout_obj_t* self) {
165-
uint32_t pin = self->pin->pin;
165+
uint32_t pin = self->pin->number;
166166
if (self->output) {
167167
mp_raise_AttributeError("Cannot get pull while in output mode");
168168
return PULL_NONE;

0 commit comments

Comments
 (0)
0