spi_xcomm 43 drivers/spi/spi-xcomm.c static int spi_xcomm_sync_config(struct spi_xcomm *spi_xcomm, unsigned int len) spi_xcomm 46 drivers/spi/spi-xcomm.c uint8_t *buf = spi_xcomm->buf; spi_xcomm 48 drivers/spi/spi-xcomm.c settings = spi_xcomm->settings; spi_xcomm 53 drivers/spi/spi-xcomm.c put_unaligned_be16(spi_xcomm->chipselect, &buf[3]); spi_xcomm 55 drivers/spi/spi-xcomm.c return i2c_master_send(spi_xcomm->i2c, buf, 5); spi_xcomm 58 drivers/spi/spi-xcomm.c static void spi_xcomm_chipselect(struct spi_xcomm *spi_xcomm, spi_xcomm 62 drivers/spi/spi-xcomm.c uint16_t chipselect = spi_xcomm->chipselect; spi_xcomm 69 drivers/spi/spi-xcomm.c spi_xcomm->chipselect = chipselect; spi_xcomm 72 drivers/spi/spi-xcomm.c static int spi_xcomm_setup_transfer(struct spi_xcomm *spi_xcomm, spi_xcomm 78 drivers/spi/spi-xcomm.c if (t->speed_hz != spi_xcomm->current_speed) { spi_xcomm 89 drivers/spi/spi-xcomm.c spi_xcomm->current_speed = t->speed_hz; spi_xcomm 110 drivers/spi/spi-xcomm.c static int spi_xcomm_txrx_bufs(struct spi_xcomm *spi_xcomm, spi_xcomm 116 drivers/spi/spi-xcomm.c spi_xcomm->buf[0] = SPI_XCOMM_CMD_WRITE; spi_xcomm 117 drivers/spi/spi-xcomm.c memcpy(spi_xcomm->buf + 1, t->tx_buf, t->len); spi_xcomm 119 drivers/spi/spi-xcomm.c ret = i2c_master_send(spi_xcomm->i2c, spi_xcomm->buf, t->len + 1); spi_xcomm 125 drivers/spi/spi-xcomm.c ret = i2c_master_recv(spi_xcomm->i2c, t->rx_buf, t->len); spi_xcomm 138 drivers/spi/spi-xcomm.c struct spi_xcomm *spi_xcomm = spi_master_get_devdata(master); spi_xcomm 139 drivers/spi/spi-xcomm.c unsigned int settings = spi_xcomm->settings; spi_xcomm 147 drivers/spi/spi-xcomm.c spi_xcomm_chipselect(spi_xcomm, spi, true); spi_xcomm 156 drivers/spi/spi-xcomm.c status = spi_xcomm_setup_transfer(spi_xcomm, spi, t, &settings); spi_xcomm 169 drivers/spi/spi-xcomm.c spi_xcomm->settings = settings; spi_xcomm 170 drivers/spi/spi-xcomm.c status = spi_xcomm_sync_config(spi_xcomm, t->len); spi_xcomm 173 drivers/spi/spi-xcomm.c } else if (settings != spi_xcomm->settings || is_first) { spi_xcomm 174 drivers/spi/spi-xcomm.c spi_xcomm->settings = settings; spi_xcomm 175 drivers/spi/spi-xcomm.c status = spi_xcomm_sync_config(spi_xcomm, 0); spi_xcomm 181 drivers/spi/spi-xcomm.c status = spi_xcomm_txrx_bufs(spi_xcomm, spi, t); spi_xcomm 198 drivers/spi/spi-xcomm.c spi_xcomm_chipselect(spi_xcomm, spi, false); spi_xcomm 209 drivers/spi/spi-xcomm.c struct spi_xcomm *spi_xcomm; spi_xcomm 213 drivers/spi/spi-xcomm.c master = spi_alloc_master(&i2c->dev, sizeof(*spi_xcomm)); spi_xcomm 217 drivers/spi/spi-xcomm.c spi_xcomm = spi_master_get_devdata(master); spi_xcomm 218 drivers/spi/spi-xcomm.c spi_xcomm->i2c = i2c;