| /* ST Microelectronics STMEMS hal i/f |
| * |
| * Copyright (c) 2021 STMicroelectronics |
| * |
| * SPDX-License-Identifier: Apache-2.0 |
| * |
| * zephyrproject-rtos/modules/hal/st/sensor/stmemsc/ |
| */ |
| |
| #include "stmemsc.h" |
| |
| /* Enable address auto-increment on some stmemsc sensors */ |
| #define STMEMSC_I2C_ADDR_AUTO_INCR BIT(7) |
| |
| int stmemsc_i2c_read(const struct i2c_dt_spec *stmemsc, |
| uint8_t reg_addr, uint8_t *value, uint8_t len) |
| { |
| return i2c_burst_read_dt(stmemsc, reg_addr, value, len); |
| } |
| |
| int stmemsc_i2c_write(const struct i2c_dt_spec *stmemsc, |
| uint8_t reg_addr, uint8_t *value, uint8_t len) |
| { |
| return i2c_burst_write_dt(stmemsc, reg_addr, value, len); |
| } |
| |
| int stmemsc_i2c_read_incr(const struct i2c_dt_spec *stmemsc, |
| uint8_t reg_addr, uint8_t *value, uint8_t len) |
| { |
| reg_addr |= STMEMSC_I2C_ADDR_AUTO_INCR; |
| return stmemsc_i2c_read(stmemsc, reg_addr, value, len); |
| } |
| |
| int stmemsc_i2c_write_incr(const struct i2c_dt_spec *stmemsc, |
| uint8_t reg_addr, uint8_t *value, uint8_t len) |
| { |
| reg_addr |= STMEMSC_I2C_ADDR_AUTO_INCR; |
| return stmemsc_i2c_write(stmemsc, reg_addr, value, len); |
| } |