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;
}
Example #2
0
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;
}