devicetree: replace DT_HAS_DRV_INST with DT_INST_FOREACH

Make drivers multi-instance wherever possible using DT_INST_FOREACH.
This allows removing DT_HAS_DRV_INST in favor of making drivers just
do the right thing regardless of how many instances there are.

There are a few exceptions:

- SoC drivers which use CMake input files (like i2c_dw.c) or otherwise
  would require more time to convert than I have at the moment. For the
  sake of expediency, just inline the DT_HAS_DRV_INST expansion for
  now in these cases.

- SoC drivers which are explicitly single-instance (like the nRF SAADC
  driver). Again for the sake of expediency, drop a BUILD_ASSERT in
  those cases to make sure the assumption that all supported SoCs have
  at most one available instance is valid, failing fast otherwise.

Signed-off-by: Martí Bolívar <marti.bolivar@nordicsemi.no>
This commit is contained in:
Martí Bolívar 2020-05-05 16:06:32 -07:00 committed by Kumar Gala
commit 87e1743ae0
46 changed files with 571 additions and 1301 deletions

View file

@ -317,7 +317,7 @@ static const struct uart_driver_api leuart_gecko_driver_api = {
#endif
};
#if DT_HAS_DRV_INST(0)
#if DT_HAS_NODE_STATUS_OKAY(DT_DRV_INST(0))
#define PIN_LEUART_0_RXD {DT_INST_PROP_BY_IDX(0, location_rx, 1), \
DT_INST_PROP_BY_IDX(0, location_rx, 2), gpioModeInput, 1}
@ -368,9 +368,9 @@ static void leuart_gecko_config_func_0(struct device *dev)
}
#endif
#endif /* DT_HAS_DRV_INST(0) */
#endif /* DT_HAS_NODE_STATUS_OKAY(DT_DRV_INST(0)) */
#if DT_HAS_DRV_INST(1)
#if DT_HAS_NODE_STATUS_OKAY(DT_DRV_INST(1))
#define PIN_LEUART_1_RXD {DT_INST_PROP_BY_IDX(1, location_rx, 1), \
DT_INST_PROP_BY_IDX(1, location_rx, 2), gpioModeInput, 1}
@ -421,4 +421,4 @@ static void leuart_gecko_config_func_1(struct device *dev)
}
#endif
#endif /* DT_HAS_DRV_INST(1) */
#endif /* DT_HAS_NODE_STATUS_OKAY(DT_DRV_INST(1)) */