Lines Matching refs:spi
89 spi_to_spi_gpio(const struct spi_device *spi) in spi_to_spi_gpio() argument
94 bang = spi_master_get_devdata(spi->master); in spi_to_spi_gpio()
100 spi_to_pdata(const struct spi_device *spi) in spi_to_pdata() argument
102 return &spi_to_spi_gpio(spi)->pdata; in spi_to_pdata()
106 static inline void setsck(const struct spi_device *spi, int is_on) in setsck() argument
108 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in setsck()
113 static inline void setmosi(const struct spi_device *spi, int is_on) in setmosi() argument
115 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in setmosi()
120 static inline int getmiso(const struct spi_device *spi) in getmiso() argument
122 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in getmiso()
124 if (spi->mode & SPI_3WIRE) in getmiso()
154 static u32 spi_gpio_txrx_word_mode0(struct spi_device *spi, in spi_gpio_txrx_word_mode0() argument
157 return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits); in spi_gpio_txrx_word_mode0()
160 static u32 spi_gpio_txrx_word_mode1(struct spi_device *spi, in spi_gpio_txrx_word_mode1() argument
163 return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits); in spi_gpio_txrx_word_mode1()
166 static u32 spi_gpio_txrx_word_mode2(struct spi_device *spi, in spi_gpio_txrx_word_mode2() argument
169 return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits); in spi_gpio_txrx_word_mode2()
172 static u32 spi_gpio_txrx_word_mode3(struct spi_device *spi, in spi_gpio_txrx_word_mode3() argument
175 return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits); in spi_gpio_txrx_word_mode3()
188 static u32 spi_gpio_spec_txrx_word_mode0(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode0() argument
191 flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode0()
192 return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits); in spi_gpio_spec_txrx_word_mode0()
195 static u32 spi_gpio_spec_txrx_word_mode1(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode1() argument
198 flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode1()
199 return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits); in spi_gpio_spec_txrx_word_mode1()
202 static u32 spi_gpio_spec_txrx_word_mode2(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode2() argument
205 flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode2()
206 return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits); in spi_gpio_spec_txrx_word_mode2()
209 static u32 spi_gpio_spec_txrx_word_mode3(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode3() argument
212 flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode3()
213 return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits); in spi_gpio_spec_txrx_word_mode3()
218 static void spi_gpio_chipselect(struct spi_device *spi, int is_active) in spi_gpio_chipselect() argument
220 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_chipselect()
224 gpiod_set_value_cansleep(spi_gpio->sck, spi->mode & SPI_CPOL); in spi_gpio_chipselect()
228 struct gpio_desc *cs = spi_gpio->cs_gpios[spi->chip_select]; in spi_gpio_chipselect()
231 gpiod_set_value_cansleep(cs, (spi->mode & SPI_CS_HIGH) ? is_active : !is_active); in spi_gpio_chipselect()
235 static int spi_gpio_setup(struct spi_device *spi) in spi_gpio_setup() argument
239 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_setup()
245 cs = spi_gpio->cs_gpios[spi->chip_select]; in spi_gpio_setup()
246 if (!spi->controller_state && cs) in spi_gpio_setup()
248 !(spi->mode & SPI_CS_HIGH)); in spi_gpio_setup()
251 status = spi_bitbang_setup(spi); in spi_gpio_setup()
256 static int spi_gpio_set_direction(struct spi_device *spi, bool output) in spi_gpio_set_direction() argument
258 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_set_direction()
266 static void spi_gpio_cleanup(struct spi_device *spi) in spi_gpio_cleanup() argument
268 spi_bitbang_cleanup(spi); in spi_gpio_cleanup()