• Home
  • History
  • Annotate
  • Raw
  • Download
  • only in /netgear-R7800-V1.0.2.28/target/linux/lantiq/files/drivers/spi/

Lines Matching refs:spi

24 #include <linux/spi/spi.h>
25 #include <linux/spi/spi_bitbang.h>
194 static inline struct ltq_spi *ltq_spi_to_hw(struct spi_device *spi)
196 return spi_master_get_devdata(spi->master);
353 static void ltq_spi_bits_per_word_set(struct spi_device *spi)
355 struct ltq_spi *hw = ltq_spi_to_hw(spi);
357 u8 bits_per_word = spi->bits_per_word;
381 static void ltq_spi_speed_set(struct spi_device *spi)
383 struct ltq_spi *hw = ltq_spi_to_hw(spi);
385 u32 speed_hz = spi->max_speed_hz;
417 static void ltq_spi_clockmode_set(struct spi_device *spi)
419 struct ltq_spi *hw = ltq_spi_to_hw(spi);
432 if (spi->mode & SPI_CPHA)
437 if (spi->mode & SPI_CPOL)
443 if (spi->mode & SPI_LSB_FIRST)
473 static void ltq_spi_gpio_cs_activate(struct spi_device *spi)
475 struct ltq_spi_controller_data *cdata = spi->controller_data;
476 int val = spi->mode & SPI_CS_HIGH ? 1 : 0;
481 static void ltq_spi_gpio_cs_deactivate(struct spi_device *spi)
483 struct ltq_spi_controller_data *cdata = spi->controller_data;
484 int val = spi->mode & SPI_CS_HIGH ? 0 : 1;
489 static void ltq_spi_internal_cs_activate(struct spi_device *spi)
491 struct ltq_spi *hw = ltq_spi_to_hw(spi);
494 fgpo = (1 << (spi->chip_select + LTQ_SPI_FGPO_CLROUTN_SHIFT));
498 static void ltq_spi_internal_cs_deactivate(struct spi_device *spi)
500 struct ltq_spi *hw = ltq_spi_to_hw(spi);
503 fgpo = (1 << (spi->chip_select + LTQ_SPI_FGPO_SETOUTN_SHIFT));
507 static void ltq_spi_chipselect(struct spi_device *spi, int cs)
509 struct ltq_spi *hw = ltq_spi_to_hw(spi);
510 struct ltq_spi_controller_state *cstate = spi->controller_state;
514 ltq_spi_bits_per_word_set(spi);
515 ltq_spi_speed_set(spi);
516 ltq_spi_clockmode_set(spi);
519 cstate->cs_activate(spi);
523 cstate->cs_deactivate(spi);
531 static int ltq_spi_setup_transfer(struct spi_device *spi,
534 struct ltq_spi *hw = ltq_spi_to_hw(spi);
535 u8 bits_per_word = spi->bits_per_word;
565 static int ltq_spi_setup(struct spi_device *spi)
567 struct ltq_spi *hw = ltq_spi_to_hw(spi);
568 struct ltq_spi_controller_data *cdata = spi->controller_data;
574 if (!spi->bits_per_word)
575 spi->bits_per_word = 8;
577 if (spi->bits_per_word > 32)
580 if (!spi->controller_state) {
586 spi->controller_state = cstate;
599 ret = gpio_request(cdata->gpio, "spi-cs");
603 ret = spi->mode & SPI_CS_HIGH ? 0 : 1;
611 ret = ltq_gpio_request(&spi->dev, cs_map[spi->chip_select].gpio,
612 cs_map[spi->chip_select].mux,
613 1, "spi-cs");
617 gpocon = (1 << (spi->chip_select +
620 if (spi->mode & SPI_CS_HIGH)
621 gpocon |= (1 << spi->chip_select);
623 fgpo = (1 << (spi->chip_select + LTQ_SPI_FGPO_SETOUTN_SHIFT));
635 static void ltq_spi_cleanup(struct spi_device *spi)
637 struct ltq_spi_controller_data *cdata = spi->controller_data;
638 struct ltq_spi_controller_state *cstate = spi->controller_state;
644 gpio = ltq_is_ase() ? ltq_spi_cs_ase[spi->chip_select].gpio :
645 ltq_spi_cs[spi->chip_select].gpio;
823 static int ltq_spi_txrx_bufs(struct spi_device *spi, struct spi_transfer *t)
825 struct ltq_spi *hw = ltq_spi_to_hw(spi);
930 dev_err(&pdev->dev, "spi clk\n");
967 ltq_gpio_request(&pdev->dev, LTQ_SPI_GPIO_DI, 2, 0, "spi-di");
968 ltq_gpio_request(&pdev->dev, LTQ_SPI_GPIO_DO, 2, 1, "spi-do");
969 ltq_gpio_request(&pdev->dev, LTQ_SPI_GPIO_CLK, 2, 1, "spi-clk");
1070 MODULE_ALIAS("platform:ltq-spi");