Skip to content

Commit 5b9b52b

Browse files
henrikbrixandersennashif
authored andcommitted
drivers: adc: lmp90xxx: initialise all instances
Iterate through all lmp90xxx device instances found in the devicetree and initialise all of them. Fixes #32046. Signed-off-by: Henrik Brix Andersen <[email protected]>
1 parent 045a33e commit 5b9b52b

File tree

1 file changed

+24
-26
lines changed

1 file changed

+24
-26
lines changed

drivers/adc/adc_lmp90xxx.c

Lines changed: 24 additions & 26 deletions
Original file line numberDiff line numberDiff line change
@@ -1078,7 +1078,7 @@ static const struct adc_driver_api lmp90xxx_adc_api = {
10781078

10791079
#define DT_INST_LMP90XXX(inst, t) DT_INST(inst, ti_lmp##t)
10801080

1081-
#define LMP90XXX_DEVICE(t, n, res, ch) \
1081+
#define LMP90XXX_INIT(t, n, res, ch) \
10821082
ASSERT_LMP90XXX_CURRENT_VALID(UTIL_AND( \
10831083
DT_NODE_HAS_PROP(DT_INST_LMP90XXX(n, t), rtd_current), \
10841084
DT_PROP(DT_INST_LMP90XXX(n, t), rtd_current))); \
@@ -1134,60 +1134,58 @@ static const struct adc_driver_api lmp90xxx_adc_api = {
11341134
&lmp##t##_data_##n, \
11351135
&lmp##t##_config_##n, POST_KERNEL, \
11361136
CONFIG_ADC_LMP90XXX_INIT_PRIORITY, \
1137-
&lmp90xxx_adc_api)
1137+
&lmp90xxx_adc_api);
1138+
1139+
#define LMP90XXX_FOREACH_STATUS_OKAY(compat, fn) \
1140+
COND_CODE_1(DT_HAS_COMPAT_STATUS_OKAY(compat), \
1141+
(UTIL_CAT(DT_FOREACH_OKAY_INST_, \
1142+
compat)(fn)), \
1143+
())
11381144

11391145
/*
11401146
* LMP90077: 16 bit, 2 diff/4 se (4 channels), 0 currents
11411147
*/
1142-
#if DT_HAS_COMPAT_STATUS_OKAY(ti_lmp90077)
1143-
LMP90XXX_DEVICE(90077, 0, 16, 4);
1144-
#endif
1148+
#define LMP90077_INIT(n) LMP90XXX_INIT(90077, n, 16, 4)
1149+
LMP90XXX_FOREACH_STATUS_OKAY(ti_lmp90077, LMP90077_INIT)
11451150

11461151
/*
11471152
* LMP90078: 16 bit, 2 diff/4 se (4 channels), 2 currents
11481153
*/
1149-
#if DT_HAS_COMPAT_STATUS_OKAY(ti_lmp90078)
1150-
LMP90XXX_DEVICE(90078, 0, 16, 4);
1151-
#endif
1154+
#define LMP90078_INIT(n) LMP90XXX_INIT(90078, n, 16, 4)
1155+
LMP90XXX_FOREACH_STATUS_OKAY(ti_lmp90078, LMP90078_INIT)
11521156

11531157
/*
11541158
* LMP90079: 16 bit, 4 diff/7 se (7 channels), 0 currents, has VIN3-5
11551159
*/
1156-
#if DT_HAS_COMPAT_STATUS_OKAY(ti_lmp90079)
1157-
LMP90XXX_DEVICE(90079, 0, 16, 7);
1158-
#endif
1160+
#define LMP90079_INIT(n) LMP90XXX_INIT(90079, n, 16, 7)
1161+
LMP90XXX_FOREACH_STATUS_OKAY(ti_lmp90079, LMP90079_INIT)
11591162

11601163
/*
11611164
* LMP90080: 16 bit, 4 diff/7 se (7 channels), 2 currents, has VIN3-5
11621165
*/
1163-
#if DT_HAS_COMPAT_STATUS_OKAY(ti_lmp90080)
1164-
LMP90XXX_DEVICE(90080, 0, 16, 7);
1165-
#endif
1166+
#define LMP90080_INIT(n) LMP90XXX_INIT(90080, n, 16, 7)
1167+
LMP90XXX_FOREACH_STATUS_OKAY(ti_lmp90080, LMP90080_INIT)
11661168

11671169
/*
11681170
* LMP90097: 24 bit, 2 diff/4 se (4 channels), 0 currents
11691171
*/
1170-
#if DT_HAS_COMPAT_STATUS_OKAY(ti_lmp90097)
1171-
LMP90XXX_DEVICE(90097, 0, 24, 4);
1172-
#endif
1172+
#define LMP90097_INIT(n) LMP90XXX_INIT(90097, n, 24, 4)
1173+
LMP90XXX_FOREACH_STATUS_OKAY(ti_lmp90097, LMP90097_INIT)
11731174

11741175
/*
11751176
* LMP90098: 24 bit, 2 diff/4 se (4 channels), 2 currents
11761177
*/
1177-
#if DT_HAS_COMPAT_STATUS_OKAY(ti_lmp90098)
1178-
LMP90XXX_DEVICE(90098, 0, 24, 4);
1179-
#endif
1178+
#define LMP90098_INIT(n) LMP90XXX_INIT(90098, n, 24, 4)
1179+
LMP90XXX_FOREACH_STATUS_OKAY(ti_lmp90098, LMP90098_INIT)
11801180

11811181
/*
11821182
* LMP90099: 24 bit, 4 diff/7 se (7 channels), 0 currents, has VIN3-5
11831183
*/
1184-
#if DT_HAS_COMPAT_STATUS_OKAY(ti_lmp90099)
1185-
LMP90XXX_DEVICE(90099, 0, 24, 7);
1186-
#endif
1184+
#define LMP90099_INIT(n) LMP90XXX_INIT(90099, n, 24, 7)
1185+
LMP90XXX_FOREACH_STATUS_OKAY(ti_lmp90099, LMP90099_INIT)
11871186

11881187
/*
11891188
* LMP90100: 24 bit, 4 diff/7 se (7 channels), 2 currents, has VIN3-5
11901189
*/
1191-
#if DT_HAS_COMPAT_STATUS_OKAY(ti_lmp90100)
1192-
LMP90XXX_DEVICE(90100, 0, 24, 7);
1193-
#endif
1190+
#define LMP90100_INIT(n) LMP90XXX_INIT(90100, n, 24, 7)
1191+
LMP90XXX_FOREACH_STATUS_OKAY(ti_lmp90100, LMP90100_INIT)

0 commit comments

Comments
 (0)