mirror of https://github.com/ARMmbed/mbed-os.git
STM pin_function(), pin_mode(): return immediately when given pin is NC
Additionally, remove redundant pin checks against NC when above functions are used.pull/12460/head
parent
5aaf3b7479
commit
713be4fd77
|
|
@ -100,12 +100,8 @@ static void _can_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz
|
|||
pin_function(pinmap->rd_pin, pinmap->rd_function);
|
||||
pin_function(pinmap->td_pin, pinmap->td_function);
|
||||
// Add pull-ups
|
||||
if (pinmap->rd_pin != NC) {
|
||||
pin_mode(pinmap->rd_pin, PullUp);
|
||||
}
|
||||
if (pinmap->td_pin != NC) {
|
||||
pin_mode(pinmap->td_pin, PullUp);
|
||||
}
|
||||
|
||||
// Default values
|
||||
obj->CanHandle.Instance = (FDCAN_GlobalTypeDef *)pinmap->peripheral;
|
||||
|
|
@ -599,12 +595,8 @@ static void _can_init_freq_direct(can_t *obj, const can_pinmap_t *pinmap, int hz
|
|||
pin_function(pinmap->rd_pin, pinmap->rd_function);
|
||||
pin_function(pinmap->td_pin, pinmap->td_function);
|
||||
// Add pull-ups
|
||||
if (pinmap->rd_pin != NC) {
|
||||
pin_mode(pinmap->rd_pin, PullUp);
|
||||
}
|
||||
if (pinmap->td_pin != NC) {
|
||||
pin_mode(pinmap->td_pin, PullUp);
|
||||
}
|
||||
|
||||
/* Use default values for rist init */
|
||||
obj->CanHandle.Instance = (CAN_TypeDef *)pinmap->peripheral;
|
||||
|
|
|
|||
|
|
@ -59,7 +59,9 @@ const uint32_t ll_pin_defines[16] = {
|
|||
*/
|
||||
void pin_function(PinName pin, int data)
|
||||
{
|
||||
MBED_ASSERT(pin != (PinName)NC);
|
||||
if (pin == NC) {
|
||||
return;
|
||||
}
|
||||
|
||||
// Get the pin informations
|
||||
uint32_t mode = STM_PIN_FUNCTION(data);
|
||||
|
|
@ -163,7 +165,9 @@ void pin_function(PinName pin, int data)
|
|||
*/
|
||||
void pin_mode(PinName pin, PinMode mode)
|
||||
{
|
||||
MBED_ASSERT(pin != (PinName)NC);
|
||||
if (pin == NC) {
|
||||
return;
|
||||
}
|
||||
|
||||
uint32_t port_index = STM_PORT(pin);
|
||||
uint32_t ll_pin = ll_pin_defines[STM_PIN(pin)];
|
||||
|
|
|
|||
|
|
@ -157,14 +157,10 @@ static void _serial_init_direct(serial_t *obj, const serial_pinmap_t *pinmap)
|
|||
MBED_ASSERT(obj_s->index >= 0);
|
||||
|
||||
// Configure UART pins
|
||||
if (pinmap->tx_pin != NC) {
|
||||
pin_function(pinmap->tx_pin, pinmap->tx_function);
|
||||
pin_mode(pinmap->tx_pin, PullUp);
|
||||
}
|
||||
if (pinmap->rx_pin != NC) {
|
||||
pin_function(pinmap->rx_pin, pinmap->rx_function);
|
||||
pin_mode(pinmap->rx_pin, PullUp);
|
||||
}
|
||||
|
||||
// Configure UART
|
||||
obj_s->baudrate = 9600; // baudrate default value
|
||||
|
|
@ -355,13 +351,9 @@ void serial_free(serial_t *obj)
|
|||
#endif /* DUAL_CORE */
|
||||
|
||||
// Configure GPIOs
|
||||
if (obj_s->pin_tx != NC) {
|
||||
pin_function(obj_s->pin_tx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||
}
|
||||
|
||||
if (obj_s->pin_rx != NC) {
|
||||
pin_function(obj_s->pin_rx, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||
}
|
||||
|
||||
serial_irq_ids[obj_s->index] = 0;
|
||||
}
|
||||
|
|
|
|||
|
|
@ -218,14 +218,12 @@ static void _spi_init_direct(spi_t *obj, const spi_pinmap_t *pinmap)
|
|||
#endif
|
||||
|
||||
// Configure the SPI pins
|
||||
if (pinmap->mosi_pin != NC) {
|
||||
pin_function(pinmap->mosi_pin, pinmap->mosi_function);
|
||||
pin_mode(pinmap->mosi_pin, PullNone);
|
||||
}
|
||||
if (pinmap->miso_pin != NC) {
|
||||
|
||||
pin_function(pinmap->miso_pin, pinmap->miso_function);
|
||||
pin_mode(pinmap->miso_pin, PullNone);
|
||||
}
|
||||
|
||||
pin_function(pinmap->sclk_pin, pinmap->sclk_function);
|
||||
pin_mode(pinmap->sclk_pin, PullNone);
|
||||
spiobj->pin_miso = pinmap->miso_pin;
|
||||
|
|
@ -370,12 +368,8 @@ void spi_free(spi_t *obj)
|
|||
LL_HSEM_ReleaseLock(HSEM, CFG_HW_RCC_SEMID, HSEM_CR_COREID_CURRENT);
|
||||
#endif /* DUAL_CORE */
|
||||
// Configure GPIOs
|
||||
if (spiobj->pin_miso != NC) {
|
||||
pin_function(spiobj->pin_miso, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||
}
|
||||
if (spiobj->pin_mosi != NC) {
|
||||
pin_function(spiobj->pin_mosi, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||
}
|
||||
pin_function(spiobj->pin_sclk, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||
if (handle->Init.NSS != SPI_NSS_SOFT) {
|
||||
pin_function(spiobj->pin_ssel, STM_PIN_DATA(STM_MODE_INPUT, GPIO_NOPULL, 0));
|
||||
|
|
|
|||
Loading…
Reference in New Issue