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:
parent
763a9433a7
commit
87e1743ae0
46 changed files with 571 additions and 1301 deletions
|
@ -514,21 +514,6 @@ DEVICE_AND_API_INIT(gpio_pca95xx_##inst, \
|
|||
&gpio_pca95xx_##inst##_drvdata, \
|
||||
&gpio_pca95xx_##inst##_cfg, \
|
||||
POST_KERNEL, CONFIG_GPIO_PCA95XX_INIT_PRIORITY, \
|
||||
&gpio_pca95xx_drv_api_funcs)
|
||||
&gpio_pca95xx_drv_api_funcs);
|
||||
|
||||
|
||||
#if DT_HAS_DRV_INST(0)
|
||||
GPIO_PCA95XX_DEVICE_INSTANCE(0);
|
||||
#endif /* DT_HAS_DRV_INST(0) */
|
||||
|
||||
#if DT_HAS_DRV_INST(1)
|
||||
GPIO_PCA95XX_DEVICE_INSTANCE(1);
|
||||
#endif /* DT_HAS_DRV_INST(1) */
|
||||
|
||||
#if DT_HAS_DRV_INST(2)
|
||||
GPIO_PCA95XX_DEVICE_INSTANCE(2);
|
||||
#endif /* DT_HAS_DRV_INST(2) */
|
||||
|
||||
#if DT_HAS_DRV_INST(3)
|
||||
GPIO_PCA95XX_DEVICE_INSTANCE(3);
|
||||
#endif /* DT_HAS_DRV_INST(3) */
|
||||
DT_INST_FOREACH(GPIO_PCA95XX_DEVICE_INSTANCE)
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue