drivers: audio: tlv320dac310x: use i2c_dt_spec
Use struct i2c_dt_spec to simplify code. This change also allows to drop device_get_binding usage. Signed-off-by: Gerard Marull-Paretas <gerard.marull@nordicsemi.no>
This commit is contained in:
parent
30acb4efdd
commit
198afb71fa
1 changed files with 9 additions and 20 deletions
|
@ -25,9 +25,7 @@ LOG_MODULE_REGISTER(tlv320dac310x);
|
||||||
#define CODEC_OUTPUT_VOLUME_MIN (-78 * 2)
|
#define CODEC_OUTPUT_VOLUME_MIN (-78 * 2)
|
||||||
|
|
||||||
struct codec_driver_config {
|
struct codec_driver_config {
|
||||||
const struct device *i2c_device;
|
struct i2c_dt_spec bus;
|
||||||
const char *i2c_dev_name;
|
|
||||||
uint8_t i2c_address;
|
|
||||||
struct gpio_dt_spec reset_gpio;
|
struct gpio_dt_spec reset_gpio;
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -36,9 +34,7 @@ struct codec_driver_data {
|
||||||
};
|
};
|
||||||
|
|
||||||
static struct codec_driver_config codec_device_config = {
|
static struct codec_driver_config codec_device_config = {
|
||||||
.i2c_device = NULL,
|
.bus = I2C_DT_SPEC_INST_GET(0),
|
||||||
.i2c_dev_name = DT_INST_BUS_LABEL(0),
|
|
||||||
.i2c_address = DT_INST_REG_ADDR(0),
|
|
||||||
.reset_gpio = GPIO_DT_SPEC_INST_GET(0, reset_gpios),
|
.reset_gpio = GPIO_DT_SPEC_INST_GET(0, reset_gpios),
|
||||||
};
|
};
|
||||||
|
|
||||||
|
@ -70,12 +66,9 @@ static int codec_initialize(const struct device *dev)
|
||||||
struct codec_driver_config *const dev_cfg =
|
struct codec_driver_config *const dev_cfg =
|
||||||
(struct codec_driver_config *)dev->config;
|
(struct codec_driver_config *)dev->config;
|
||||||
|
|
||||||
/* bind I2C */
|
if (!device_is_ready(dev_cfg->bus.bus)) {
|
||||||
dev_cfg->i2c_device = device_get_binding(dev_cfg->i2c_dev_name);
|
LOG_ERR("I2C device not ready");
|
||||||
|
return -ENODEV;
|
||||||
if (dev_cfg->i2c_device == NULL) {
|
|
||||||
LOG_ERR("I2C device binding error");
|
|
||||||
return -ENXIO;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!device_is_ready(dev_cfg->reset_gpio.port)) {
|
if (!device_is_ready(dev_cfg->reset_gpio.port)) {
|
||||||
|
@ -195,13 +188,11 @@ static void codec_write_reg(const struct device *dev, struct reg_addr reg,
|
||||||
|
|
||||||
/* set page if different */
|
/* set page if different */
|
||||||
if (dev_data->reg_addr_cache.page != reg.page) {
|
if (dev_data->reg_addr_cache.page != reg.page) {
|
||||||
i2c_reg_write_byte(dev_cfg->i2c_device,
|
i2c_reg_write_byte_dt(&dev_cfg->bus, 0, reg.page);
|
||||||
dev_cfg->i2c_address, 0, reg.page);
|
|
||||||
dev_data->reg_addr_cache.page = reg.page;
|
dev_data->reg_addr_cache.page = reg.page;
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_reg_write_byte(dev_cfg->i2c_device,
|
i2c_reg_write_byte_dt(&dev_cfg->bus, reg.reg_addr, val);
|
||||||
dev_cfg->i2c_address, reg.reg_addr, val);
|
|
||||||
LOG_DBG("WR PG:%u REG:%02u VAL:0x%02x",
|
LOG_DBG("WR PG:%u REG:%02u VAL:0x%02x",
|
||||||
reg.page, reg.reg_addr, val);
|
reg.page, reg.reg_addr, val);
|
||||||
}
|
}
|
||||||
|
@ -215,13 +206,11 @@ static void codec_read_reg(const struct device *dev, struct reg_addr reg,
|
||||||
|
|
||||||
/* set page if different */
|
/* set page if different */
|
||||||
if (dev_data->reg_addr_cache.page != reg.page) {
|
if (dev_data->reg_addr_cache.page != reg.page) {
|
||||||
i2c_reg_write_byte(dev_cfg->i2c_device,
|
i2c_reg_write_byte_dt(&dev_cfg->bus, 0, reg.page);
|
||||||
dev_cfg->i2c_address, 0, reg.page);
|
|
||||||
dev_data->reg_addr_cache.page = reg.page;
|
dev_data->reg_addr_cache.page = reg.page;
|
||||||
}
|
}
|
||||||
|
|
||||||
i2c_reg_read_byte(dev_cfg->i2c_device,
|
i2c_reg_read_byte_dt(&dev_cfg->bus, reg.reg_addr, val);
|
||||||
dev_cfg->i2c_address, reg.reg_addr, val);
|
|
||||||
LOG_DBG("RD PG:%u REG:%02u VAL:0x%02x",
|
LOG_DBG("RD PG:%u REG:%02u VAL:0x%02x",
|
||||||
reg.page, reg.reg_addr, *val);
|
reg.page, reg.reg_addr, *val);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue