Lines Matching refs:spi
365 static void cs_activate(struct atmel_spi *as, struct spi_device *spi) in cs_activate() argument
367 struct atmel_spi_device *asd = spi->controller_state; in cs_activate()
368 unsigned active = spi->mode & SPI_CS_HIGH; in cs_activate()
372 spi_writel(as, CSR0 + 4 * spi->chip_select, asd->csr); in cs_activate()
379 SPI_BF(PCS, ~(0x01 << spi->chip_select)) in cs_activate()
385 SPI_BF(PCS, ~(0x01 << spi->chip_select)) in cs_activate()
394 u32 cpol = (spi->mode & SPI_CPOL) ? SPI_BIT(CPOL) : 0; in cs_activate()
399 for (i = 0; i < spi->master->num_chipselect; i++) { in cs_activate()
407 mr = SPI_BFINS(PCS, ~(1 << spi->chip_select), mr); in cs_activate()
408 if (as->use_cs_gpios && spi->chip_select != 0) in cs_activate()
413 dev_dbg(&spi->dev, "activate %u%s, mr %08x\n", in cs_activate()
418 static void cs_deactivate(struct atmel_spi *as, struct spi_device *spi) in cs_deactivate() argument
420 struct atmel_spi_device *asd = spi->controller_state; in cs_deactivate()
421 unsigned active = spi->mode & SPI_CS_HIGH; in cs_deactivate()
428 if (~SPI_BFEXT(PCS, mr) & (1 << spi->chip_select)) { in cs_deactivate()
433 dev_dbg(&spi->dev, "DEactivate %u%s, mr %08x\n", in cs_deactivate()
439 else if (atmel_spi_is_v2(as) || spi->chip_select != 0) in cs_deactivate()
860 struct spi_device *spi, in atmel_spi_set_xfer_speed() argument
882 dev_err(&spi->dev, in atmel_spi_set_xfer_speed()
888 dev_err(&spi->dev, in atmel_spi_set_xfer_speed()
893 csr = spi_readl(as, CSR0 + 4 * spi->chip_select); in atmel_spi_set_xfer_speed()
895 spi_writel(as, CSR0 + 4 * spi->chip_select, csr); in atmel_spi_set_xfer_speed()
921 if (msg->spi->bits_per_word > 8) in atmel_spi_pdc_next_xfer()
926 dev_dbg(&msg->spi->dev, in atmel_spi_pdc_next_xfer()
940 if (msg->spi->bits_per_word > 8) in atmel_spi_pdc_next_xfer()
945 dev_dbg(&msg->spi->dev, in atmel_spi_pdc_next_xfer()
1200 static int atmel_spi_setup(struct spi_device *spi) in atmel_spi_setup() argument
1205 unsigned int bits = spi->bits_per_word; in atmel_spi_setup()
1209 as = spi_master_get_devdata(spi->master); in atmel_spi_setup()
1213 && spi->chip_select == 0 in atmel_spi_setup()
1214 && (spi->mode & SPI_CS_HIGH)) { in atmel_spi_setup()
1215 dev_dbg(&spi->dev, "setup: can't be active-high\n"); in atmel_spi_setup()
1220 if (spi->mode & SPI_CPOL) in atmel_spi_setup()
1222 if (!(spi->mode & SPI_CPHA)) in atmel_spi_setup()
1237 npcs_pin = (unsigned long)spi->controller_data; in atmel_spi_setup()
1240 npcs_pin = spi->chip_select; in atmel_spi_setup()
1241 else if (gpio_is_valid(spi->cs_gpio)) in atmel_spi_setup()
1242 npcs_pin = spi->cs_gpio; in atmel_spi_setup()
1244 asd = spi->controller_state; in atmel_spi_setup()
1251 ret = gpio_request(npcs_pin, dev_name(&spi->dev)); in atmel_spi_setup()
1258 !(spi->mode & SPI_CS_HIGH)); in atmel_spi_setup()
1262 spi->controller_state = asd; in atmel_spi_setup()
1267 dev_dbg(&spi->dev, in atmel_spi_setup()
1269 bits, spi->mode, spi->chip_select, csr); in atmel_spi_setup()
1272 spi_writel(as, CSR0 + 4 * spi->chip_select, csr); in atmel_spi_setup()
1282 struct spi_device *spi = msg->spi; in atmel_spi_one_transfer() local
1293 dev_dbg(&spi->dev, "missing rx or tx buf\n"); in atmel_spi_one_transfer()
1297 asd = spi->controller_state; in atmel_spi_one_transfer()
1300 dev_dbg(&spi->dev, in atmel_spi_one_transfer()
1315 atmel_spi_set_xfer_speed(as, msg->spi, xfer); in atmel_spi_one_transfer()
1330 dev_err(&spi->dev, in atmel_spi_one_transfer()
1348 dev_err(&spi->dev, "spi transfer timeout\n"); in atmel_spi_one_transfer()
1411 cs_activate(as, msg->spi); in atmel_spi_one_transfer()
1413 cs_deactivate(as, msg->spi); in atmel_spi_one_transfer()
1425 struct spi_device *spi = msg->spi; in atmel_spi_transfer_one_message() local
1430 dev_dbg(&spi->dev, "new message %p submitted for %s\n", in atmel_spi_transfer_one_message()
1431 msg, dev_name(&spi->dev)); in atmel_spi_transfer_one_message()
1434 cs_activate(as, spi); in atmel_spi_transfer_one_message()
1452 dev_dbg(&spi->dev, in atmel_spi_transfer_one_message()
1461 cs_deactivate(as, msg->spi); in atmel_spi_transfer_one_message()
1466 spi_finalize_current_message(spi->master); in atmel_spi_transfer_one_message()
1471 static void atmel_spi_cleanup(struct spi_device *spi) in atmel_spi_cleanup() argument
1473 struct atmel_spi_device *asd = spi->controller_state; in atmel_spi_cleanup()
1474 unsigned gpio = (unsigned long) spi->controller_data; in atmel_spi_cleanup()
1479 spi->controller_state = NULL; in atmel_spi_cleanup()