bool use_dma;
bool use_pdc;
- bool use_cs_gpios;
bool keep_cs;
bool cs_active;
}
mr = spi_readl(as, MR);
- if (as->use_cs_gpios)
+ if (asd->npcs_pin)
gpiod_set_value(asd->npcs_pin, 1);
} else {
u32 cpol = (spi->mode & SPI_CPOL) ? SPI_BIT(CPOL) : 0;
mr = spi_readl(as, MR);
mr = SPI_BFINS(PCS, ~(1 << spi->chip_select), mr);
- if (as->use_cs_gpios && spi->chip_select != 0)
+ if (asd->npcs_pin && spi->chip_select != 0)
gpiod_set_value(asd->npcs_pin, 1);
spi_writel(as, MR, mr);
}
dev_dbg(&spi->dev, "DEactivate NPCS, mr %08x\n", mr);
- if (!as->use_cs_gpios)
+ if (!asd->npcs_pin)
spi_writel(as, CR, SPI_BIT(LASTXFER));
else if (atmel_spi_is_v2(as) || spi->chip_select != 0)
gpiod_set_value(asd->npcs_pin, 0);
as = spi_master_get_devdata(spi->master);
/* see notes above re chipselect */
- if (!as->use_cs_gpios && (spi->mode & SPI_CS_HIGH)) {
+ if (!spi->cs_gpiod && (spi->mode & SPI_CS_HIGH)) {
dev_warn(&spi->dev, "setup: non GPIO CS can't be active-high\n");
return -EINVAL;
}
csr |= SPI_BIT(CPOL);
if (!(spi->mode & SPI_CPHA))
csr |= SPI_BIT(NCPHA);
- if (!as->use_cs_gpios)
- csr |= SPI_BIT(CSAAT);
+ if (!spi->cs_gpiod)
+ csr |= SPI_BIT(CSAAT);
csr |= SPI_BF(DLYBS, 0);
word_delay_csr = atmel_word_delay_csr(spi, as);
if (!asd)
return -ENOMEM;
- /*
- * If use_cs_gpios is true this means that we have "cs-gpios"
- * defined in the device tree node so we should have
- * gotten the GPIO lines from the device tree inside the
- * SPI core. Warn if this is not the case but continue since
- * CS GPIOs are after all optional.
- */
- if (as->use_cs_gpios) {
- if (!spi->cs_gpiod) {
- dev_err(&spi->dev,
- "host claims to use CS GPIOs but no CS found in DT by the SPI core\n");
- }
+ if (spi->cs_gpiod)
asd->npcs_pin = spi->cs_gpiod;
- }
spi->controller_state = asd;
}
* discovered by the SPI core when registering the SPI master
* and assigned to each SPI device.
*/
- as->use_cs_gpios = true;
if (atmel_spi_is_v2(as) &&
pdev->dev.of_node &&
- !of_get_property(pdev->dev.of_node, "cs-gpios", NULL)) {
- as->use_cs_gpios = false;
+ !of_get_property(pdev->dev.of_node, "cs-gpios", NULL))
master->num_chipselect = 4;
- }
as->use_dma = false;
as->use_pdc = false;