drivers: adc: lmp90xxx: convert to new DT API
Use the new devicetree.h API instead of the legacy macros. Signed-off-by: Henrik Brix Andersen <hebad@vestas.com>
This commit is contained in:
parent
ebc1eff7b5
commit
23957a8938
1 changed files with 43 additions and 111 deletions
|
@ -1057,37 +1057,57 @@ static const struct adc_driver_api lmp90xxx_adc_api = {
|
||||||
|
|
||||||
#define LMP90XXX_UAMPS_TO_RTD_CUR_SEL(x) (x / 100)
|
#define LMP90XXX_UAMPS_TO_RTD_CUR_SEL(x) (x / 100)
|
||||||
|
|
||||||
|
#define DT_INST_LMP90XXX(inst, t) DT_INST(inst, ti_lmp##t)
|
||||||
|
|
||||||
#define LMP90XXX_DEVICE(t, n, res, ch) \
|
#define LMP90XXX_DEVICE(t, n, res, ch) \
|
||||||
ASSERT_LMP90XXX_CURRENT_VALID(DT_INST_##n##_TI_LMP##t##_RTD_CURRENT); \
|
ASSERT_LMP90XXX_CURRENT_VALID(UTIL_AND( \
|
||||||
|
DT_NODE_HAS_PROP(DT_INST_LMP90XXX(n, t), rtd_current), \
|
||||||
|
DT_PROP(DT_INST_LMP90XXX(n, t), rtd_current))); \
|
||||||
static struct lmp90xxx_data lmp##t##_data_##n = { \
|
static struct lmp90xxx_data lmp##t##_data_##n = { \
|
||||||
ADC_CONTEXT_INIT_TIMER(lmp##t##_data_##n, ctx), \
|
ADC_CONTEXT_INIT_TIMER(lmp##t##_data_##n, ctx), \
|
||||||
ADC_CONTEXT_INIT_LOCK(lmp##t##_data_##n, ctx), \
|
ADC_CONTEXT_INIT_LOCK(lmp##t##_data_##n, ctx), \
|
||||||
ADC_CONTEXT_INIT_SYNC(lmp##t##_data_##n, ctx), \
|
ADC_CONTEXT_INIT_SYNC(lmp##t##_data_##n, ctx), \
|
||||||
}; \
|
}; \
|
||||||
static const struct lmp90xxx_config lmp##t##_config_##n = { \
|
static const struct lmp90xxx_config lmp##t##_config_##n = { \
|
||||||
.spi_dev_name = DT_INST_##n##_TI_LMP##t##_BUS_NAME, \
|
.spi_dev_name = DT_BUS_LABEL(DT_INST_LMP90XXX(n, t)), \
|
||||||
.spi_cs_dev_name = \
|
.spi_cs_dev_name = UTIL_AND( \
|
||||||
DT_INST_##n##_TI_LMP##t##_CS_GPIOS_CONTROLLER, \
|
DT_SPI_DEV_HAS_CS_GPIOS(DT_INST_LMP90XXX(n, t)), \
|
||||||
.spi_cs_pin = DT_INST_##n##_TI_LMP##t##_CS_GPIOS_PIN, \
|
DT_SPI_DEV_CS_GPIOS_LABEL(DT_INST_LMP90XXX(n, t)) \
|
||||||
|
), \
|
||||||
|
.spi_cs_pin = UTIL_AND( \
|
||||||
|
DT_SPI_DEV_HAS_CS_GPIOS(DT_INST_LMP90XXX(n, t)), \
|
||||||
|
DT_SPI_DEV_CS_GPIOS_PIN(DT_INST_LMP90XXX(n, t)) \
|
||||||
|
), \
|
||||||
.spi_cfg = { \
|
.spi_cfg = { \
|
||||||
.operation = (SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | \
|
.operation = (SPI_OP_MODE_MASTER | SPI_TRANSFER_MSB | \
|
||||||
SPI_WORD_SET(8)), \
|
SPI_WORD_SET(8)), \
|
||||||
.frequency = \
|
.frequency = DT_PROP(DT_INST_LMP90XXX(n, t), \
|
||||||
DT_INST_##n##_TI_LMP##t##_SPI_MAX_FREQUENCY, \
|
spi_max_frequency), \
|
||||||
.slave = DT_INST_##n##_TI_LMP##t##_BASE_ADDRESS, \
|
.slave = DT_REG_ADDR(DT_INST_LMP90XXX(n, t)), \
|
||||||
.cs = &lmp##t##_data_##n.spi_cs, \
|
.cs = &lmp##t##_data_##n.spi_cs, \
|
||||||
}, \
|
}, \
|
||||||
.drdyb_dev_name = \
|
.drdyb_dev_name = UTIL_AND( \
|
||||||
DT_INST_##n##_TI_LMP##t##_DRDYB_GPIOS_CONTROLLER, \
|
DT_NODE_HAS_PROP(DT_INST_LMP90XXX(n, t), drdyb_gpios), \
|
||||||
.drdyb_pin = DT_INST_##n##_TI_LMP##t##_DRDYB_GPIOS_PIN, \
|
DT_GPIO_LABEL(DT_INST_LMP90XXX(n, t), drdyb_gpios) \
|
||||||
.drdyb_flags = DT_INST_##n##_TI_LMP##t##_DRDYB_GPIOS_FLAGS, \
|
), \
|
||||||
.rtd_current = LMP90XXX_UAMPS_TO_RTD_CUR_SEL( \
|
.drdyb_pin = UTIL_AND( \
|
||||||
DT_INST_##n##_TI_LMP##t##_RTD_CURRENT), \
|
DT_NODE_HAS_PROP(DT_INST_LMP90XXX(n, t), drdyb_gpios), \
|
||||||
|
DT_GPIO_PIN(DT_INST_LMP90XXX(n, t), drdyb_gpios) \
|
||||||
|
), \
|
||||||
|
.drdyb_flags = UTIL_AND( \
|
||||||
|
DT_NODE_HAS_PROP(DT_INST_LMP90XXX(n, t), drdyb_gpios), \
|
||||||
|
DT_GPIO_FLAGS(DT_INST_LMP90XXX(n, t), drdyb_gpios) \
|
||||||
|
), \
|
||||||
|
.rtd_current = UTIL_AND( \
|
||||||
|
DT_NODE_HAS_PROP(DT_INST_LMP90XXX(n, t), rtd_current), \
|
||||||
|
LMP90XXX_UAMPS_TO_RTD_CUR_SEL( \
|
||||||
|
DT_PROP(DT_INST_LMP90XXX(n, t), rtd_current)) \
|
||||||
|
), \
|
||||||
.resolution = res, \
|
.resolution = res, \
|
||||||
.channels = ch, \
|
.channels = ch, \
|
||||||
}; \
|
}; \
|
||||||
DEVICE_AND_API_INIT(lmp##t##_##n, \
|
DEVICE_AND_API_INIT(lmp##t##_##n, \
|
||||||
DT_INST_##n##_TI_LMP##t##_LABEL, \
|
DT_LABEL(DT_INST_LMP90XXX(n, t)), \
|
||||||
&lmp90xxx_init, &lmp##t##_data_##n, \
|
&lmp90xxx_init, &lmp##t##_data_##n, \
|
||||||
&lmp##t##_config_##n, POST_KERNEL, \
|
&lmp##t##_config_##n, POST_KERNEL, \
|
||||||
CONFIG_ADC_LMP90XXX_INIT_PRIORITY, \
|
CONFIG_ADC_LMP90XXX_INIT_PRIORITY, \
|
||||||
|
@ -1096,143 +1116,55 @@ static const struct adc_driver_api lmp90xxx_adc_api = {
|
||||||
/*
|
/*
|
||||||
* LMP90077: 16 bit, 2 diff/4 se (4 channels), 0 currents
|
* LMP90077: 16 bit, 2 diff/4 se (4 channels), 0 currents
|
||||||
*/
|
*/
|
||||||
#if DT_INST_0_TI_LMP90077
|
#if DT_HAS_COMPAT(ti_lmp90077)
|
||||||
#ifndef DT_INST_0_TI_LMP90077_CS_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90077_CS_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90077_CS_GPIOS_PIN 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90077_CS_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90077_DRDYB_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90077_DRDYB_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90077_DRDYB_GPIOS_PIN 0
|
|
||||||
#define DT_INST_0_TI_LMP90077_DRDYB_GPIOS_FLAGS 0
|
|
||||||
#endif /* !DT_INST_0_TI_LMP90077_DRDYB_GPIOS_CONTROLLER */
|
|
||||||
#define DT_INST_0_TI_LMP90077_RTD_CURRENT 0
|
|
||||||
LMP90XXX_DEVICE(90077, 0, 16, 4);
|
LMP90XXX_DEVICE(90077, 0, 16, 4);
|
||||||
#endif /* DT_INST_0_TI_LMP90077 */
|
#endif /* DT_INST_0_TI_LMP90077 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LMP90078: 16 bit, 2 diff/4 se (4 channels), 2 currents
|
* LMP90078: 16 bit, 2 diff/4 se (4 channels), 2 currents
|
||||||
*/
|
*/
|
||||||
#if DT_INST_0_TI_LMP90078
|
#if DT_HAS_COMPAT(ti_lmp90078)
|
||||||
#ifndef DT_INST_0_TI_LMP90078_CS_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90078_CS_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90078_CS_GPIOS_PIN 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90078_CS_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90078_DRDYB_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90078_DRDYB_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90078_DRDYB_GPIOS_PIN 0
|
|
||||||
#define DT_INST_0_TI_LMP90078_DRDYB_GPIOS_FLAGS 0
|
|
||||||
#endif /* !DT_INST_0_TI_LMP90078_DRDYB_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90078_RTD_CURRENT
|
|
||||||
#define DT_INST_0_TI_LMP90078_RTD_CURRENT 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90078_RTD_CURRENT */
|
|
||||||
LMP90XXX_DEVICE(90078, 0, 16, 4);
|
LMP90XXX_DEVICE(90078, 0, 16, 4);
|
||||||
#endif /* DT_INST_0_TI_LMP90078 */
|
#endif /* DT_INST_0_TI_LMP90078 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LMP90079: 16 bit, 4 diff/7 se (7 channels), 0 currents, has VIN3-5
|
* LMP90079: 16 bit, 4 diff/7 se (7 channels), 0 currents, has VIN3-5
|
||||||
*/
|
*/
|
||||||
#if DT_INST_0_TI_LMP90079
|
#if DT_HAS_COMPAT(ti_lmp90079)
|
||||||
#ifndef DT_INST_0_TI_LMP90079_CS_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90079_CS_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90079_CS_GPIOS_PIN 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90079_CS_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90079_DRDYB_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90079_DRDYB_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90079_DRDYB_GPIOS_PIN 0
|
|
||||||
#define DT_INST_0_TI_LMP90079_DRDYB_GPIOS_FLAGS 0
|
|
||||||
#endif /* !DT_INST_0_TI_LMP90079_DRDYB_GPIOS_CONTROLLER */
|
|
||||||
#define DT_INST_0_TI_LMP90079_RTD_CURRENT 0
|
|
||||||
LMP90XXX_DEVICE(90079, 0, 16, 7);
|
LMP90XXX_DEVICE(90079, 0, 16, 7);
|
||||||
#endif /* DT_INST_0_TI_LMP90079 */
|
#endif /* DT_INST_0_TI_LMP90079 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LMP90080: 16 bit, 4 diff/7 se (7 channels), 2 currents, has VIN3-5
|
* LMP90080: 16 bit, 4 diff/7 se (7 channels), 2 currents, has VIN3-5
|
||||||
*/
|
*/
|
||||||
#if DT_INST_0_TI_LMP90080
|
#if DT_HAS_COMPAT(ti_lmp90080)
|
||||||
#ifndef DT_INST_0_TI_LMP90080_CS_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90080_CS_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90080_CS_GPIOS_PIN 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90080_CS_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90080_DRDYB_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90080_DRDYB_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90080_DRDYB_GPIOS_PIN 0
|
|
||||||
#define DT_INST_0_TI_LMP90080_DRDYB_GPIOS_FLAGS 0
|
|
||||||
#endif /* !DT_INST_0_TI_LMP90080_DRDYB_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90080_RTD_CURRENT
|
|
||||||
#define DT_INST_0_TI_LMP90080_RTD_CURRENT 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90080_RTD_CURRENT */
|
|
||||||
LMP90XXX_DEVICE(90080, 0, 16, 7);
|
LMP90XXX_DEVICE(90080, 0, 16, 7);
|
||||||
#endif /* DT_INST_0_TI_LMP90080 */
|
#endif /* DT_INST_0_TI_LMP90080 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LMP90097: 24 bit, 2 diff/4 se (4 channels), 0 currents
|
* LMP90097: 24 bit, 2 diff/4 se (4 channels), 0 currents
|
||||||
*/
|
*/
|
||||||
#if DT_INST_0_TI_LMP90097
|
#if DT_HAS_COMPAT(ti_lmp90097)
|
||||||
#ifndef DT_INST_0_TI_LMP90097_CS_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90097_CS_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90097_CS_GPIOS_PIN 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90097_CS_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90097_DRDYB_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90097_DRDYB_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90097_DRDYB_GPIOS_PIN 0
|
|
||||||
#define DT_INST_0_TI_LMP90097_DRDYB_GPIOS_FLAGS 0
|
|
||||||
#endif /* !DT_INST_0_TI_LMP90097_DRDYB_GPIOS_CONTROLLER */
|
|
||||||
#define DT_INST_0_TI_LMP90097_RTD_CURRENT 0
|
|
||||||
LMP90XXX_DEVICE(90097, 0, 24, 4);
|
LMP90XXX_DEVICE(90097, 0, 24, 4);
|
||||||
#endif /* DT_INST_0_TI_LMP90097 */
|
#endif /* DT_INST_0_TI_LMP90097 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LMP90098: 24 bit, 2 diff/4 se (4 channels), 2 currents
|
* LMP90098: 24 bit, 2 diff/4 se (4 channels), 2 currents
|
||||||
*/
|
*/
|
||||||
#if DT_INST_0_TI_LMP90098
|
#if DT_HAS_COMPAT(ti_lmp90098)
|
||||||
#ifndef DT_INST_0_TI_LMP90098_CS_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90098_CS_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90098_CS_GPIOS_PIN 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90098_CS_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90098_DRDYB_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90098_DRDYB_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90098_DRDYB_GPIOS_PIN 0
|
|
||||||
#define DT_INST_0_TI_LMP90098_DRDYB_GPIOS_FLAGS 0
|
|
||||||
#endif /* !DT_INST_0_TI_LMP90098_DRDYB_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90098_RTD_CURRENT
|
|
||||||
#define DT_INST_0_TI_LMP90098_RTD_CURRENT 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90098_RTD_CURRENT */
|
|
||||||
LMP90XXX_DEVICE(90098, 0, 24, 4);
|
LMP90XXX_DEVICE(90098, 0, 24, 4);
|
||||||
#endif /* DT_INST_0_TI_LMP90098 */
|
#endif /* DT_INST_0_TI_LMP90098 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LMP90099: 24 bit, 4 diff/7 se (7 channels), 0 currents, has VIN3-5
|
* LMP90099: 24 bit, 4 diff/7 se (7 channels), 0 currents, has VIN3-5
|
||||||
*/
|
*/
|
||||||
#if DT_INST_0_TI_LMP90099
|
#if DT_HAS_COMPAT(ti_lmp90099)
|
||||||
#ifndef DT_INST_0_TI_LMP90099_CS_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90099_CS_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90099_CS_GPIOS_PIN 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90099_CS_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90099_DRDYB_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90099_DRDYB_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90099_DRDYB_GPIOS_PIN 0
|
|
||||||
#define DT_INST_0_TI_LMP90099_DRDYB_GPIOS_FLAGS 0
|
|
||||||
#endif /* !DT_INST_0_TI_LMP90099_DRDYB_GPIOS_CONTROLLER */
|
|
||||||
#define DT_INST_0_TI_LMP90099_RTD_CURRENT 0
|
|
||||||
LMP90XXX_DEVICE(90099, 0, 24, 7);
|
LMP90XXX_DEVICE(90099, 0, 24, 7);
|
||||||
#endif /* DT_INST_0_TI_LMP90099 */
|
#endif /* DT_INST_0_TI_LMP90099 */
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* LMP90100: 24 bit, 4 diff/7 se (7 channels), 2 currents, has VIN3-5
|
* LMP90100: 24 bit, 4 diff/7 se (7 channels), 2 currents, has VIN3-5
|
||||||
*/
|
*/
|
||||||
#if DT_INST_0_TI_LMP90100
|
#if DT_HAS_COMPAT(ti_lmp90100)
|
||||||
#ifndef DT_INST_0_TI_LMP90100_CS_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90100_CS_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90100_CS_GPIOS_PIN 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90100_CS_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90100_DRDYB_GPIOS_CONTROLLER
|
|
||||||
#define DT_INST_0_TI_LMP90100_DRDYB_GPIOS_CONTROLLER NULL
|
|
||||||
#define DT_INST_0_TI_LMP90100_DRDYB_GPIOS_PIN 0
|
|
||||||
#define DT_INST_0_TI_LMP90100_DRDYB_GPIOS_FLAGS 0
|
|
||||||
#endif /* !DT_INST_0_TI_LMP90100_DRDYB_GPIOS_CONTROLLER */
|
|
||||||
#ifndef DT_INST_0_TI_LMP90100_RTD_CURRENT
|
|
||||||
#define DT_INST_0_TI_LMP90100_RTD_CURRENT 0
|
|
||||||
#endif /* DT_INST_0_TI_LMP90100_RTD_CURRENT */
|
|
||||||
LMP90XXX_DEVICE(90100, 0, 24, 7);
|
LMP90XXX_DEVICE(90100, 0, 24, 7);
|
||||||
#endif /* DT_INST_0_TI_LMP90100 */
|
#endif /* DT_INST_0_TI_LMP90100 */
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue