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>
diff --git a/drivers/spi/spi_ll_stm32.c b/drivers/spi/spi_ll_stm32.c
index 2f4d510..ab0e98a 100644
--- a/drivers/spi/spi_ll_stm32.c
+++ b/drivers/spi/spi_ll_stm32.c
@@ -898,26 +898,4 @@
 									\
 STM32_SPI_IRQ_HANDLER(id)
 
-#if DT_HAS_DRV_INST(0)
-STM32_SPI_INIT(0)
-#endif /* DT_HAS_DRV_INST(0) */
-
-#if DT_HAS_DRV_INST(1)
-STM32_SPI_INIT(1)
-#endif /* DT_HAS_DRV_INST(1) */
-
-#if DT_HAS_DRV_INST(2)
-STM32_SPI_INIT(2)
-#endif /* DT_HAS_DRV_INST(2) */
-
-#if DT_HAS_DRV_INST(3)
-STM32_SPI_INIT(3)
-#endif /* DT_HAS_DRV_INST(3) */
-
-#if DT_HAS_DRV_INST(4)
-STM32_SPI_INIT(4)
-#endif /* DT_HAS_DRV_INST(4) */
-
-#if DT_HAS_DRV_INST(5)
-STM32_SPI_INIT(5)
-#endif /* DT_HAS_DRV_INST(5) */
+DT_INST_FOREACH(STM32_SPI_INIT)