Lines Matching refs:spi

92 spi_to_spi_gpio(const struct spi_device *spi)  in spi_to_spi_gpio()  argument
97 bang = spi_master_get_devdata(spi->master); in spi_to_spi_gpio()
103 spi_to_pdata(const struct spi_device *spi) in spi_to_pdata() argument
105 return &spi_to_spi_gpio(spi)->pdata; in spi_to_pdata()
109 #define pdata spi_to_pdata(spi)
111 static inline void setsck(const struct spi_device *spi, int is_on) in setsck() argument
116 static inline void setmosi(const struct spi_device *spi, int is_on) in setmosi() argument
121 static inline int getmiso(const struct spi_device *spi) in getmiso() argument
152 static u32 spi_gpio_txrx_word_mode0(struct spi_device *spi, in spi_gpio_txrx_word_mode0() argument
155 return bitbang_txrx_be_cpha0(spi, nsecs, 0, 0, word, bits); in spi_gpio_txrx_word_mode0()
158 static u32 spi_gpio_txrx_word_mode1(struct spi_device *spi, in spi_gpio_txrx_word_mode1() argument
161 return bitbang_txrx_be_cpha1(spi, nsecs, 0, 0, word, bits); in spi_gpio_txrx_word_mode1()
164 static u32 spi_gpio_txrx_word_mode2(struct spi_device *spi, in spi_gpio_txrx_word_mode2() argument
167 return bitbang_txrx_be_cpha0(spi, nsecs, 1, 0, word, bits); in spi_gpio_txrx_word_mode2()
170 static u32 spi_gpio_txrx_word_mode3(struct spi_device *spi, in spi_gpio_txrx_word_mode3() argument
173 return bitbang_txrx_be_cpha1(spi, nsecs, 1, 0, word, bits); in spi_gpio_txrx_word_mode3()
186 static u32 spi_gpio_spec_txrx_word_mode0(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode0() argument
189 unsigned flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode0()
190 return bitbang_txrx_be_cpha0(spi, nsecs, 0, flags, word, bits); in spi_gpio_spec_txrx_word_mode0()
193 static u32 spi_gpio_spec_txrx_word_mode1(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode1() argument
196 unsigned flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode1()
197 return bitbang_txrx_be_cpha1(spi, nsecs, 0, flags, word, bits); in spi_gpio_spec_txrx_word_mode1()
200 static u32 spi_gpio_spec_txrx_word_mode2(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode2() argument
203 unsigned flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode2()
204 return bitbang_txrx_be_cpha0(spi, nsecs, 1, flags, word, bits); in spi_gpio_spec_txrx_word_mode2()
207 static u32 spi_gpio_spec_txrx_word_mode3(struct spi_device *spi, in spi_gpio_spec_txrx_word_mode3() argument
210 unsigned flags = spi->master->flags; in spi_gpio_spec_txrx_word_mode3()
211 return bitbang_txrx_be_cpha1(spi, nsecs, 1, flags, word, bits); in spi_gpio_spec_txrx_word_mode3()
216 static void spi_gpio_chipselect(struct spi_device *spi, int is_active) in spi_gpio_chipselect() argument
218 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_chipselect()
219 unsigned long cs = spi_gpio->cs_gpios[spi->chip_select]; in spi_gpio_chipselect()
223 setsck(spi, spi->mode & SPI_CPOL); in spi_gpio_chipselect()
227 gpio_set_value_cansleep(cs, (spi->mode & SPI_CS_HIGH) ? is_active : !is_active); in spi_gpio_chipselect()
231 static int spi_gpio_setup(struct spi_device *spi) in spi_gpio_setup() argument
235 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_setup()
236 struct device_node *np = spi->master->dev.of_node; in spi_gpio_setup()
243 cs = spi_gpio->cs_gpios[spi->chip_select]; in spi_gpio_setup()
248 cs = (uintptr_t) spi->controller_data; in spi_gpio_setup()
251 if (!spi->controller_state) { in spi_gpio_setup()
253 status = gpio_request(cs, dev_name(&spi->dev)); in spi_gpio_setup()
257 !(spi->mode & SPI_CS_HIGH)); in spi_gpio_setup()
262 spi_gpio->cs_gpios[spi->chip_select] = cs; in spi_gpio_setup()
263 status = spi_bitbang_setup(spi); in spi_gpio_setup()
267 if (!spi->controller_state && cs != SPI_GPIO_NO_CHIPSELECT) in spi_gpio_setup()
273 static void spi_gpio_cleanup(struct spi_device *spi) in spi_gpio_cleanup() argument
275 struct spi_gpio *spi_gpio = spi_to_spi_gpio(spi); in spi_gpio_cleanup()
276 unsigned long cs = spi_gpio->cs_gpios[spi->chip_select]; in spi_gpio_cleanup()
280 spi_bitbang_cleanup(spi); in spi_gpio_cleanup()