Lines Matching refs:spi
76 spi_to_spi_gpio(const struct spi_device *spi) in spi_to_spi_gpio() argument
81 bang = spi_master_get_devdata(spi->master); in spi_to_spi_gpio()
87 static inline void setsck(const struct spi_device *spi, int is_on) in setsck() argument
89 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in setsck()
94 static inline void setmosi(const struct spi_device *spi, int is_on) in setmosi() argument
96 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in setmosi()
101 static inline int getmiso(const struct spi_device *spi) in getmiso() argument
103 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in getmiso()
105 if (spi->mode & SPI_3WIRE) in getmiso()
135 static u32 spi_gpio_txrx_word_mode0(struct spi_device *spi, in spi_gpio_txrx_word_mode0() argument
138 return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits); in spi_gpio_txrx_word_mode0()
141 static u32 spi_gpio_txrx_word_mode1(struct spi_device *spi, in spi_gpio_txrx_word_mode1() argument
144 return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits); in spi_gpio_txrx_word_mode1()
147 static u32 spi_gpio_txrx_word_mode2(struct spi_device *spi, in spi_gpio_txrx_word_mode2() argument
150 return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits); in spi_gpio_txrx_word_mode2()
153 static u32 spi_gpio_txrx_word_mode3(struct spi_device *spi, in spi_gpio_txrx_word_mode3() argument
156 return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits); in spi_gpio_txrx_word_mode3()
169 static u32 spi_gpio_spec_txrx_word_mode0(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode0() argument
172 flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode0()
173 return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits); in spi_gpio_spec_txrx_word_mode0()
176 static u32 spi_gpio_spec_txrx_word_mode1(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode1() argument
179 flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode1()
180 return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits); in spi_gpio_spec_txrx_word_mode1()
183 static u32 spi_gpio_spec_txrx_word_mode2(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode2() argument
186 flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode2()
187 return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits); in spi_gpio_spec_txrx_word_mode2()
190 static u32 spi_gpio_spec_txrx_word_mode3(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode3() argument
193 flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode3()
194 return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits); in spi_gpio_spec_txrx_word_mode3()
199 static void spi_gpio_chipselect(struct spi_device *spi, int is_active) in spi_gpio_chipselect() argument
201 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_chipselect()
205 gpiod_set_value_cansleep(spi_gpio->sck, spi->mode & SPI_CPOL); in spi_gpio_chipselect()
209 struct gpio_desc *cs = spi_gpio->cs_gpios[spi->chip_select]; in spi_gpio_chipselect()
212 gpiod_set_value_cansleep(cs, (spi->mode & SPI_CS_HIGH) ? is_active : !is_active); in spi_gpio_chipselect()
216 static int spi_gpio_setup(struct spi_device *spi) in spi_gpio_setup() argument
220 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_setup()
227 cs = spi_gpio->cs_gpios[spi->chip_select]; in spi_gpio_setup()
228 if (!spi->controller_state && cs) in spi_gpio_setup()
230 !(spi->mode & SPI_CS_HIGH)); in spi_gpio_setup()
234 status = spi_bitbang_setup(spi); in spi_gpio_setup()
239 static int spi_gpio_set_direction(struct spi_device *spi, bool output) in spi_gpio_set_direction() argument
241 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_set_direction()
258 if (spi->mode & SPI_3WIRE_HIZ) { in spi_gpio_set_direction()
260 !(spi->mode & SPI_CPOL)); in spi_gpio_set_direction()
262 !!(spi->mode & SPI_CPOL)); in spi_gpio_set_direction()
267 static void spi_gpio_cleanup(struct spi_device *spi) in spi_gpio_cleanup() argument
269 spi_bitbang_cleanup(spi); in spi_gpio_cleanup()