Lines Matching refs:spi
298 static void cs_activate(struct atmel_spi *as, struct spi_device *spi) in cs_activate() argument
300 struct atmel_spi_device *asd = spi->controller_state; in cs_activate()
301 unsigned active = spi->mode & SPI_CS_HIGH; in cs_activate()
305 spi_writel(as, CSR0 + 4 * spi->chip_select, asd->csr); in cs_activate()
312 SPI_BF(PCS, ~(0x01 << spi->chip_select)) in cs_activate()
318 SPI_BF(PCS, ~(0x01 << spi->chip_select)) in cs_activate()
326 u32 cpol = (spi->mode & SPI_CPOL) ? SPI_BIT(CPOL) : 0; in cs_activate()
331 for (i = 0; i < spi->master->num_chipselect; i++) { in cs_activate()
339 mr = SPI_BFINS(PCS, ~(1 << spi->chip_select), mr); in cs_activate()
340 if (spi->chip_select != 0) in cs_activate()
345 dev_dbg(&spi->dev, "activate %u%s, mr %08x\n", in cs_activate()
350 static void cs_deactivate(struct atmel_spi *as, struct spi_device *spi) in cs_deactivate() argument
352 struct atmel_spi_device *asd = spi->controller_state; in cs_deactivate()
353 unsigned active = spi->mode & SPI_CS_HIGH; in cs_deactivate()
360 if (~SPI_BFEXT(PCS, mr) & (1 << spi->chip_select)) { in cs_deactivate()
365 dev_dbg(&spi->dev, "DEactivate %u%s, mr %08x\n", in cs_deactivate()
369 if (atmel_spi_is_v2(as) || spi->chip_select != 0) in cs_deactivate()
674 struct spi_device *spi, in atmel_spi_set_xfer_speed() argument
703 dev_err(&spi->dev, in atmel_spi_set_xfer_speed()
709 dev_err(&spi->dev, in atmel_spi_set_xfer_speed()
714 csr = spi_readl(as, CSR0 + 4 * spi->chip_select); in atmel_spi_set_xfer_speed()
716 spi_writel(as, CSR0 + 4 * spi->chip_select, csr); in atmel_spi_set_xfer_speed()
742 if (msg->spi->bits_per_word > 8) in atmel_spi_pdc_next_xfer()
747 dev_dbg(&msg->spi->dev, in atmel_spi_pdc_next_xfer()
761 if (msg->spi->bits_per_word > 8) in atmel_spi_pdc_next_xfer()
766 dev_dbg(&msg->spi->dev, in atmel_spi_pdc_next_xfer()
975 static int atmel_spi_setup(struct spi_device *spi) in atmel_spi_setup() argument
980 unsigned int bits = spi->bits_per_word; in atmel_spi_setup()
984 as = spi_master_get_devdata(spi->master); in atmel_spi_setup()
988 && spi->chip_select == 0 in atmel_spi_setup()
989 && (spi->mode & SPI_CS_HIGH)) { in atmel_spi_setup()
990 dev_dbg(&spi->dev, "setup: can't be active-high\n"); in atmel_spi_setup()
995 if (spi->mode & SPI_CPOL) in atmel_spi_setup()
997 if (!(spi->mode & SPI_CPHA)) in atmel_spi_setup()
1010 npcs_pin = (unsigned long)spi->controller_data; in atmel_spi_setup()
1012 if (gpio_is_valid(spi->cs_gpio)) in atmel_spi_setup()
1013 npcs_pin = spi->cs_gpio; in atmel_spi_setup()
1015 asd = spi->controller_state; in atmel_spi_setup()
1021 ret = gpio_request(npcs_pin, dev_name(&spi->dev)); in atmel_spi_setup()
1028 spi->controller_state = asd; in atmel_spi_setup()
1029 gpio_direction_output(npcs_pin, !(spi->mode & SPI_CS_HIGH)); in atmel_spi_setup()
1034 dev_dbg(&spi->dev, in atmel_spi_setup()
1036 bits, spi->mode, spi->chip_select, csr); in atmel_spi_setup()
1039 spi_writel(as, CSR0 + 4 * spi->chip_select, csr); in atmel_spi_setup()
1049 struct spi_device *spi = msg->spi; in atmel_spi_one_transfer() local
1060 dev_dbg(&spi->dev, "missing rx or tx buf\n"); in atmel_spi_one_transfer()
1065 asd = spi->controller_state; in atmel_spi_one_transfer()
1068 dev_dbg(&spi->dev, in atmel_spi_one_transfer()
1084 atmel_spi_set_xfer_speed(as, msg->spi, xfer); in atmel_spi_one_transfer()
1099 dev_err(&spi->dev, in atmel_spi_one_transfer()
1117 dev_err(&spi->dev, "spi transfer timeout\n"); in atmel_spi_one_transfer()
1180 cs_activate(as, msg->spi); in atmel_spi_one_transfer()
1182 cs_deactivate(as, msg->spi); in atmel_spi_one_transfer()
1194 struct spi_device *spi = msg->spi; in atmel_spi_transfer_one_message() local
1199 dev_dbg(&spi->dev, "new message %p submitted for %s\n", in atmel_spi_transfer_one_message()
1200 msg, dev_name(&spi->dev)); in atmel_spi_transfer_one_message()
1203 cs_activate(as, spi); in atmel_spi_transfer_one_message()
1221 dev_dbg(&spi->dev, in atmel_spi_transfer_one_message()
1230 cs_deactivate(as, msg->spi); in atmel_spi_transfer_one_message()
1235 spi_finalize_current_message(spi->master); in atmel_spi_transfer_one_message()
1240 static void atmel_spi_cleanup(struct spi_device *spi) in atmel_spi_cleanup() argument
1242 struct atmel_spi_device *asd = spi->controller_state; in atmel_spi_cleanup()
1243 unsigned gpio = (unsigned long) spi->controller_data; in atmel_spi_cleanup()
1248 spi->controller_state = NULL; in atmel_spi_cleanup()