Exemplo n.º 1
0
int bmg160_update_byte(struct device *dev, u8_t reg_addr, u8_t mask,
		       u8_t value)
{
	const struct bmg160_device_config *dev_cfg = dev->config->config_info;
	struct bmg160_device_data *bmg160 = dev->driver_data;
	int ret = 0;

	bmg160_bus_config(dev);

	k_sem_take(&bmg160->sem, K_FOREVER);

	if (i2c_reg_update_byte(bmg160->i2c, dev_cfg->i2c_addr,
				reg_addr, mask, value) < 0) {
		ret = -EIO;
	}

	k_sem_give(&bmg160->sem);

	return ret;
}
Exemplo n.º 2
0
int bmg160_update_byte(struct device *dev, uint8_t reg_addr, uint8_t mask,
                       uint8_t value)
{
    struct bmg160_device_config *dev_cfg = dev->config->config_info;
    struct bmg160_device_data *bmg160 = dev->driver_data;
    int ret = 0;

    bmg160_bus_config(dev);

    nano_sem_take(&bmg160->sem, TICKS_UNLIMITED);

    if (i2c_reg_update_byte(bmg160->i2c, dev_cfg->i2c_addr,
                            reg_addr, mask, value) < 0) {
        ret = -EIO;
    }

    nano_sem_give(&bmg160->sem);

    return ret;
}
Exemplo n.º 3
0
static int bmg160_write(struct device *dev, u8_t reg_addr, u8_t *data,
			u8_t len)
{
	const struct bmg160_device_config *dev_cfg = dev->config->config_info;
	struct bmg160_device_data *bmg160 = dev->driver_data;
	int ret = 0;

	bmg160_bus_config(dev);

	k_sem_take(&bmg160->sem, K_FOREVER);

	if (i2c_burst_write(bmg160->i2c, dev_cfg->i2c_addr,
			    reg_addr, data, len) < 0) {
		ret = -EIO;
	}

	k_sem_give(&bmg160->sem);

	return ret;
}
Exemplo n.º 4
0
static int bmg160_write(struct device *dev, uint8_t reg_addr, uint8_t *data,
                        uint8_t len)
{
    struct bmg160_device_config *dev_cfg = dev->config->config_info;
    struct bmg160_device_data *bmg160 = dev->driver_data;
    int ret = 0;

    bmg160_bus_config(dev);

    nano_sem_take(&bmg160->sem, TICKS_UNLIMITED);

    if (i2c_burst_write(bmg160->i2c, dev_cfg->i2c_addr,
                        reg_addr, data, len) < 0) {
        ret = -EIO;
    }

    nano_sem_give(&bmg160->sem);

    return ret;
}