added automatic GPIO teardown, remap support to i2c, force error comments in ini if disabled

This commit is contained in:
2018-01-06 18:45:23 +01:00
parent ce895b3238
commit 6756b79ef4
9 changed files with 98 additions and 91 deletions
-20
View File
@@ -124,7 +124,6 @@ static void USPI_writeIni(Unit *unit, IniWriter *iw)
{
struct priv *priv = unit->data;
iw_cmt_newline(iw);
iw_comment(iw, "Peripheral number (SPIx)");
iw_entry(iw, "device", "%d", (int)priv->periph_num);
@@ -228,7 +227,6 @@ static error_t USPI_init(Unit *unit)
// TODO
#if GEX_PLAT_F072_DISCOVERY
// SPI1 - many options
// sck, miso, mosi, af
@@ -394,8 +392,6 @@ static void USPI_deInit(Unit *unit)
// de-init the pins & peripheral only if inited correctly
if (unit->status == E_SUCCESS) {
assert_param(priv->periph);
assert_param(priv->spi_port);
assert_param(priv->ssn_port);
LL_SPI_DeInit(priv->periph);
@@ -404,22 +400,6 @@ static void USPI_deInit(Unit *unit)
} else {
__HAL_RCC_SPI2_CLK_DISABLE();
}
LL_GPIO_SetPinMode(priv->spi_port, priv->ll_pin_mosi, LL_GPIO_MODE_ANALOG);
LL_GPIO_SetPinMode(priv->spi_port, priv->ll_pin_mosi, LL_GPIO_MODE_ANALOG);
LL_GPIO_SetPinMode(priv->spi_port, priv->ll_pin_sck, LL_GPIO_MODE_ANALOG);
// de-init all SSN pins
bool suc = true;
uint16_t mask = 1;
for (int i = 0; i < 16; i++, mask <<= 1) {
if (priv->ssn_pins & mask) {
uint32_t ll_pin = pin2ll((uint8_t) i, &suc);
assert_param(suc);
// configure the pin as analog
LL_GPIO_SetPinMode(priv->ssn_port, ll_pin, LL_GPIO_MODE_ANALOG);
}
}
}
// Release all resources