Lines Matching refs:spi

161 					 struct spi_device *spi,  in bcm2835_spi_transfer_one_poll()  argument
197 struct spi_device *spi, in bcm2835_spi_transfer_one_irq() argument
209 if (gpio_is_valid(spi->cs_gpio)) { in bcm2835_spi_transfer_one_irq()
233 struct spi_device *spi, in bcm2835_spi_transfer_one() argument
261 if ((spi->mode & SPI_3WIRE) && (tfr->rx_buf)) in bcm2835_spi_transfer_one()
270 if (gpio_is_valid(spi->cs_gpio) || (spi->mode & SPI_NO_CS)) in bcm2835_spi_transfer_one()
286 return bcm2835_spi_transfer_one_poll(master, spi, tfr, in bcm2835_spi_transfer_one()
289 return bcm2835_spi_transfer_one_irq(master, spi, tfr, cs); in bcm2835_spi_transfer_one()
295 struct spi_device *spi = msg->spi; in bcm2835_spi_prepare_message() local
301 if (spi->mode & SPI_CPOL) in bcm2835_spi_prepare_message()
303 if (spi->mode & SPI_CPHA) in bcm2835_spi_prepare_message()
317 static void bcm2835_spi_set_cs(struct spi_device *spi, bool gpio_level) in bcm2835_spi_set_cs() argument
329 struct spi_master *master = spi->master; in bcm2835_spi_set_cs()
335 enable = (spi->mode & SPI_CS_HIGH) ? gpio_level : !gpio_level; in bcm2835_spi_set_cs()
338 if (spi->mode & SPI_CS_HIGH) { in bcm2835_spi_set_cs()
341 cs |= BCM2835_SPI_CS_CSPOL0 << spi->chip_select; in bcm2835_spi_set_cs()
345 cs &= ~(BCM2835_SPI_CS_CSPOL0 << spi->chip_select); in bcm2835_spi_set_cs()
351 if (spi->mode & SPI_NO_CS) { in bcm2835_spi_set_cs()
357 cs |= spi->chip_select; in bcm2835_spi_set_cs()
375 static int bcm2835_spi_setup(struct spi_device *spi) in bcm2835_spi_setup() argument
382 if (spi->mode & SPI_NO_CS) in bcm2835_spi_setup()
384 if (gpio_is_valid(spi->cs_gpio)) in bcm2835_spi_setup()
386 if (spi->chip_select > 1) { in bcm2835_spi_setup()
391 dev_err(&spi->dev, in bcm2835_spi_setup()
403 spi->cs_gpio = chip->base + 8 - spi->chip_select; in bcm2835_spi_setup()
406 dev_info(&spi->dev, "setting up native-CS%i as GPIO %i\n", in bcm2835_spi_setup()
407 spi->chip_select, spi->cs_gpio); in bcm2835_spi_setup()
410 err = gpio_direction_output(spi->cs_gpio, in bcm2835_spi_setup()
411 (spi->mode & SPI_CS_HIGH) ? 0 : 1); in bcm2835_spi_setup()
413 dev_err(&spi->dev, in bcm2835_spi_setup()
415 spi->chip_select, spi->cs_gpio, err); in bcm2835_spi_setup()
422 gpio_set_value(spi->cs_gpio, (spi->mode & SPI_CS_HIGH) ? 0 : 1); in bcm2835_spi_setup()