drivers: sensor: meas: Move to vendor subdirectory
Organizes sensor drivers by vendor to distribute maintainership responsibilities. Signed-off-by: Maureen Helm <maureen.helm@analog.com>
This commit is contained in:
parent
b6fd6eafa1
commit
d2dfb8e8d7
14 changed files with 16 additions and 4 deletions
92
drivers/sensor/meas/ms5607/ms5607_i2c.c
Normal file
92
drivers/sensor/meas/ms5607/ms5607_i2c.c
Normal file
|
@ -0,0 +1,92 @@
|
|||
/*
|
||||
* Copyright (c) 2021 Aurelien Jarno <aurelien@aurel32.net>
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
||||
#define DT_DRV_COMPAT meas_ms5607
|
||||
|
||||
#include <string.h>
|
||||
#include <zephyr/drivers/i2c.h>
|
||||
#include <zephyr/sys/byteorder.h>
|
||||
#include "ms5607.h"
|
||||
|
||||
#define LOG_LEVEL CONFIG_SENSOR_LOG_LEVEL
|
||||
#include <zephyr/logging/log.h>
|
||||
LOG_MODULE_DECLARE(ms5607);
|
||||
|
||||
#if DT_ANY_INST_ON_BUS_STATUS_OKAY(i2c)
|
||||
|
||||
static int ms5607_i2c_raw_cmd(const struct ms5607_config *config, uint8_t cmd)
|
||||
{
|
||||
return i2c_write_dt(&config->bus_cfg.i2c, &cmd, 1);
|
||||
}
|
||||
|
||||
static int ms5607_i2c_reset(const struct ms5607_config *config)
|
||||
{
|
||||
int err = ms5607_i2c_raw_cmd(config, MS5607_CMD_RESET);
|
||||
|
||||
if (err < 0) {
|
||||
return err;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int ms5607_i2c_read_prom(const struct ms5607_config *config, uint8_t cmd,
|
||||
uint16_t *val)
|
||||
{
|
||||
uint8_t valb[2];
|
||||
int err;
|
||||
|
||||
err = i2c_burst_read_dt(&config->bus_cfg.i2c, cmd, valb, sizeof(valb));
|
||||
if (err < 0) {
|
||||
return err;
|
||||
}
|
||||
|
||||
*val = sys_get_be16(valb);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int ms5607_i2c_start_conversion(const struct ms5607_config *config, uint8_t cmd)
|
||||
{
|
||||
return ms5607_i2c_raw_cmd(config, cmd);
|
||||
}
|
||||
|
||||
static int ms5607_i2c_read_adc(const struct ms5607_config *config, uint32_t *val)
|
||||
{
|
||||
int err;
|
||||
uint8_t valb[3];
|
||||
|
||||
err = i2c_burst_read_dt(&config->bus_cfg.i2c, MS5607_CMD_CONV_READ_ADC, valb, sizeof(valb));
|
||||
if (err < 0) {
|
||||
return err;
|
||||
}
|
||||
|
||||
*val = (valb[0] << 16) + (valb[1] << 8) + valb[2];
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
||||
static int ms5607_i2c_check(const struct ms5607_config *config)
|
||||
{
|
||||
if (!device_is_ready(config->bus_cfg.i2c.bus)) {
|
||||
LOG_DBG("I2C bus device not ready");
|
||||
return -ENODEV;
|
||||
}
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
const struct ms5607_transfer_function ms5607_i2c_transfer_function = {
|
||||
.bus_check = ms5607_i2c_check,
|
||||
.reset = ms5607_i2c_reset,
|
||||
.read_prom = ms5607_i2c_read_prom,
|
||||
.start_conversion = ms5607_i2c_start_conversion,
|
||||
.read_adc = ms5607_i2c_read_adc,
|
||||
};
|
||||
|
||||
#endif
|
Loading…
Add table
Add a link
Reference in a new issue