Lines Matching defs:spi
12 #include <linux/spi/spi.h>
81 static inline int bma220_read_reg(struct spi_device *spi, u8 reg)
83 return spi_w8r8(spi, reg | BMA220_READ_MASK);
97 struct spi_device *spi = data->spi_device;
101 ret = spi_write_then_read(spi, data->tx_buf, 1, &data->scan.chans,
201 static int bma220_init(struct spi_device *spi)
205 ret = bma220_read_reg(spi, BMA220_REG_ID);
210 ret = bma220_read_reg(spi, BMA220_REG_SUSPEND);
212 ret = bma220_read_reg(spi, BMA220_REG_SUSPEND);
221 static int bma220_deinit(struct spi_device *spi)
226 ret = bma220_read_reg(spi, BMA220_REG_SUSPEND);
228 ret = bma220_read_reg(spi, BMA220_REG_SUSPEND);
237 static int bma220_probe(struct spi_device *spi)
243 indio_dev = devm_iio_device_alloc(&spi->dev, sizeof(*data));
245 dev_err(&spi->dev, "iio allocation failed!\n");
250 data->spi_device = spi;
251 spi_set_drvdata(spi, indio_dev);
268 dev_err(&spi->dev, "iio triggered buffer setup failed\n");
274 dev_err(&spi->dev, "iio_device_register failed\n");
282 return bma220_deinit(spi);
285 static int bma220_remove(struct spi_device *spi)
287 struct iio_dev *indio_dev = spi_get_drvdata(spi);
292 return bma220_deinit(spi);
320 MODULE_DEVICE_TABLE(spi, bma220_spi_id);