drivers: spi: spi_nrfx_spi: Add CPOL handling on SCK pin
Pin state after SPI deinitialization is based on pinctrl configuration. On the other hand, CPOL is set during runtime. When the SPI instance is disabled GPIO takes control over SCK and drives it to state set by pinctrl driver. This might causes an invalid SCK state when the transaction is configured with CPOL (Clock Polarity). To address this issue, a patch was introduced to the SPI driver. Now, when a SPI instance is configured with CPOL, the driver is setting in the runtime the correct state of the SCK pin. Signed-off-by: Adam Wojasinski <adam.wojasinski@nordicsemi.no>
This commit is contained in:
parent
315dd0f41c
commit
9de69aabfd
1 changed files with 3 additions and 0 deletions
|
@ -133,6 +133,9 @@ static int configure(const struct device *dev,
|
|||
config.mode = get_nrf_spi_mode(spi_cfg->operation);
|
||||
config.bit_order = get_nrf_spi_bit_order(spi_cfg->operation);
|
||||
|
||||
nrf_gpio_pin_write(nrf_spi_sck_pin_get(dev_config->spi.p_reg),
|
||||
spi_cfg->operation & SPI_MODE_CPOL ? 1 : 0);
|
||||
|
||||
if (dev_data->initialized) {
|
||||
nrfx_spi_uninit(&dev_config->spi);
|
||||
dev_data->initialized = false;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue