static int spi_reg_read(struct stmpe *stmpe, u8 reg) { struct spi_device *spi = stmpe->client; int status = spi_w8r16(spi, reg | READ_CMD); return (status < 0) ? status : status >> 8; }
static int ade7759_spi_read_reg_16(struct device *dev, u8 reg_address, u16 *val) { struct iio_dev *indio_dev = dev_get_drvdata(dev); struct ade7759_state *st = iio_dev_get_devdata(indio_dev); int ret; ret = spi_w8r16(st->us, ADE7759_READ_REG(reg_address)); if (ret < 0) { dev_err(&st->us->dev, "problem when reading 16 bit register 0x%02X", reg_address); return ret; } *val = ret; *val = be16_to_cpup(val); return 0; }