diff --git a/drivers/pwm/pwm_b91.c b/drivers/pwm/pwm_b91.c index c74587db03275..f0d9fa7c04c82 100644 --- a/drivers/pwm/pwm_b91.c +++ b/drivers/pwm/pwm_b91.c @@ -110,7 +110,7 @@ static int pwm_b91_get_cycles_per_sec(const struct device *dev, } /* PWM driver APIs structure */ -static const struct pwm_driver_api pwm_b91_driver_api = { +static DEVICE_API(pwm, pwm_b91_driver_api) = { .set_cycles = pwm_b91_set_cycles, .get_cycles_per_sec = pwm_b91_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_cc13xx_cc26xx_timer.c b/drivers/pwm/pwm_cc13xx_cc26xx_timer.c index 947457b63c753..19837ad08b88b 100644 --- a/drivers/pwm/pwm_cc13xx_cc26xx_timer.c +++ b/drivers/pwm/pwm_cc13xx_cc26xx_timer.c @@ -128,7 +128,7 @@ static int get_cycles_per_sec(const struct device *dev, uint32_t channel, uint64 return 0; } -static const struct pwm_driver_api pwm_driver_api = { +static DEVICE_API(pwm, pwm_driver_api) = { .set_cycles = set_cycles, .get_cycles_per_sec = get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_ene_kb1200.c b/drivers/pwm/pwm_ene_kb1200.c index a54afa878b08e..0ef742d9845a0 100644 --- a/drivers/pwm/pwm_ene_kb1200.c +++ b/drivers/pwm/pwm_ene_kb1200.c @@ -90,7 +90,7 @@ static int pwm_kb1200_get_cycles_per_sec(const struct device *dev, uint32_t chan return 0; } -static const struct pwm_driver_api pwm_kb1200_driver_api = { +static DEVICE_API(pwm, pwm_kb1200_driver_api) = { .set_cycles = pwm_kb1200_set_cycles, .get_cycles_per_sec = pwm_kb1200_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_gd32.c b/drivers/pwm/pwm_gd32.c index 81c912514a157..887beb4d8fedd 100644 --- a/drivers/pwm/pwm_gd32.c +++ b/drivers/pwm/pwm_gd32.c @@ -143,7 +143,7 @@ static int pwm_gd32_get_cycles_per_sec(const struct device *dev, return 0; } -static const struct pwm_driver_api pwm_gd32_driver_api = { +static DEVICE_API(pwm, pwm_gd32_driver_api) = { .set_cycles = pwm_gd32_set_cycles, .get_cycles_per_sec = pwm_gd32_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_gecko.c b/drivers/pwm/pwm_gecko.c index 55c21a8681b88..db24b69883bbe 100644 --- a/drivers/pwm/pwm_gecko.c +++ b/drivers/pwm/pwm_gecko.c @@ -72,7 +72,7 @@ static int pwm_gecko_get_cycles_per_sec(const struct device *dev, return 0; } -static const struct pwm_driver_api pwm_gecko_driver_api = { +static DEVICE_API(pwm, pwm_gecko_driver_api) = { .set_cycles = pwm_gecko_set_cycles, .get_cycles_per_sec = pwm_gecko_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_ifx_cat1.c b/drivers/pwm/pwm_ifx_cat1.c index c6aa8ae57b0e9..811daf7e89fcf 100644 --- a/drivers/pwm/pwm_ifx_cat1.c +++ b/drivers/pwm/pwm_ifx_cat1.c @@ -151,7 +151,7 @@ static int ifx_cat1_pwm_get_cycles_per_sec(const struct device *dev, uint32_t ch return 0; } -static const struct pwm_driver_api ifx_cat1_pwm_api = { +static DEVICE_API(pwm, ifx_cat1_pwm_api) = { .set_cycles = ifx_cat1_pwm_set_cycles, .get_cycles_per_sec = ifx_cat1_pwm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_imx.c b/drivers/pwm/pwm_imx.c index 28886a0b052a0..72e3f69186099 100644 --- a/drivers/pwm/pwm_imx.c +++ b/drivers/pwm/pwm_imx.c @@ -152,7 +152,7 @@ static int imx_pwm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api imx_pwm_driver_api = { +static DEVICE_API(pwm, imx_pwm_driver_api) = { .set_cycles = imx_pwm_set_cycles, .get_cycles_per_sec = imx_pwm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_intel_blinky.c b/drivers/pwm/pwm_intel_blinky.c index cf6df303a7411..2396ae2246a6c 100644 --- a/drivers/pwm/pwm_intel_blinky.c +++ b/drivers/pwm/pwm_intel_blinky.c @@ -94,7 +94,7 @@ static int bk_intel_get_cycles_per_sec(const struct device *dev, uint32_t pin, return 0; } -static const struct pwm_driver_api api_funcs = { +static DEVICE_API(pwm, api_funcs) = { .set_cycles = bk_intel_set_cycles, .get_cycles_per_sec = bk_intel_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_ite_it8xxx2.c b/drivers/pwm/pwm_ite_it8xxx2.c index 1e5e47f33507f..6e265c8be5dff 100644 --- a/drivers/pwm/pwm_ite_it8xxx2.c +++ b/drivers/pwm/pwm_ite_it8xxx2.c @@ -275,7 +275,7 @@ static int pwm_it8xxx2_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_it8xxx2_api = { +static DEVICE_API(pwm, pwm_it8xxx2_api) = { .set_cycles = pwm_it8xxx2_set_cycles, .get_cycles_per_sec = pwm_it8xxx2_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_led_esp32.c b/drivers/pwm/pwm_led_esp32.c index ab787bb52ef2f..d532423ad8018 100644 --- a/drivers/pwm/pwm_led_esp32.c +++ b/drivers/pwm/pwm_led_esp32.c @@ -354,7 +354,7 @@ int pwm_led_esp32_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_led_esp32_api = { +static DEVICE_API(pwm, pwm_led_esp32_api) = { .set_cycles = pwm_led_esp32_set_cycles, .get_cycles_per_sec = pwm_led_esp32_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_litex.c b/drivers/pwm/pwm_litex.c index 9f38a1792c6fa..f7be54ccd2b46 100644 --- a/drivers/pwm/pwm_litex.c +++ b/drivers/pwm/pwm_litex.c @@ -61,7 +61,7 @@ int pwm_litex_get_cycles_per_sec(const struct device *dev, uint32_t channel, return 0; } -static const struct pwm_driver_api pwm_litex_driver_api = { +static DEVICE_API(pwm, pwm_litex_driver_api) = { .set_cycles = pwm_litex_set_cycles, .get_cycles_per_sec = pwm_litex_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_max31790.c b/drivers/pwm/pwm_max31790.c index a655c8b10b734..0c529c5fed708 100644 --- a/drivers/pwm/pwm_max31790.c +++ b/drivers/pwm/pwm_max31790.c @@ -321,7 +321,7 @@ static int max31790_get_cycles_per_sec(const struct device *dev, uint32_t channe return 0; } -static const struct pwm_driver_api max31790_pwm_api = { +static DEVICE_API(pwm, max31790_pwm_api) = { .set_cycles = max31790_set_cycles, .get_cycles_per_sec = max31790_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_max32.c b/drivers/pwm/pwm_max32.c index 5228b4a89de61..85b734de600eb 100644 --- a/drivers/pwm/pwm_max32.c +++ b/drivers/pwm/pwm_max32.c @@ -105,7 +105,7 @@ static int api_get_cycles_per_sec(const struct device *dev, uint32_t channel, ui return ret; } -static const struct pwm_driver_api pwm_max32_driver_api = { +static DEVICE_API(pwm, pwm_max32_driver_api) = { .set_cycles = api_set_cycles, .get_cycles_per_sec = api_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_mc_esp32.c b/drivers/pwm/pwm_mc_esp32.c index d0c470528a0c2..5448b237eb41c 100644 --- a/drivers/pwm/pwm_mc_esp32.c +++ b/drivers/pwm/pwm_mc_esp32.c @@ -521,7 +521,7 @@ static void IRAM_ATTR mcpwm_esp32_isr(const struct device *dev) } #endif /* CONFIG_PWM_CAPTURE */ -static const struct pwm_driver_api mcpwm_esp32_api = { +static DEVICE_API(pwm, mcpwm_esp32_api) = { .set_cycles = mcpwm_esp32_set_cycles, .get_cycles_per_sec = mcpwm_esp32_get_cycles_per_sec, #ifdef CONFIG_PWM_CAPTURE diff --git a/drivers/pwm/pwm_mchp_xec.c b/drivers/pwm/pwm_mchp_xec.c index bd326680d3dbd..c0d87a0da2dec 100644 --- a/drivers/pwm/pwm_mchp_xec.c +++ b/drivers/pwm/pwm_mchp_xec.c @@ -418,7 +418,7 @@ static int pwm_xec_pm_action(const struct device *dev, enum pm_device_action act } #endif /* CONFIG_PM_DEVICE */ -static const struct pwm_driver_api pwm_xec_driver_api = { +static DEVICE_API(pwm, pwm_xec_driver_api) = { .set_cycles = pwm_xec_set_cycles, .get_cycles_per_sec = pwm_xec_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_mchp_xec_bbled.c b/drivers/pwm/pwm_mchp_xec_bbled.c index 52177ee3ee2e6..bd73748675f95 100644 --- a/drivers/pwm/pwm_mchp_xec_bbled.c +++ b/drivers/pwm/pwm_mchp_xec_bbled.c @@ -321,7 +321,7 @@ static int pwm_bbled_xec_pm_action(const struct device *dev, enum pm_device_acti } #endif /* CONFIG_PM_DEVICE */ -static const struct pwm_driver_api pwm_bbled_xec_driver_api = { +static DEVICE_API(pwm, pwm_bbled_xec_driver_api) = { .set_cycles = pwm_bbled_xec_set_cycles, .get_cycles_per_sec = pwm_bbled_xec_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_mcux.c b/drivers/pwm/pwm_mcux.c index 617ac3e4b7f7c..308581731f0d8 100644 --- a/drivers/pwm/pwm_mcux.c +++ b/drivers/pwm/pwm_mcux.c @@ -238,7 +238,7 @@ static int pwm_mcux_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_mcux_driver_api = { +static DEVICE_API(pwm, pwm_mcux_driver_api) = { .set_cycles = mcux_pwm_set_cycles, .get_cycles_per_sec = mcux_pwm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_mcux_ctimer.c b/drivers/pwm/pwm_mcux_ctimer.c index 63d9459747c56..27d48211cc86f 100644 --- a/drivers/pwm/pwm_mcux_ctimer.c +++ b/drivers/pwm/pwm_mcux_ctimer.c @@ -237,7 +237,7 @@ static int mcux_ctimer_pwm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_mcux_ctimer_driver_api = { +static DEVICE_API(pwm, pwm_mcux_ctimer_driver_api) = { .set_cycles = mcux_ctimer_pwm_set_cycles, .get_cycles_per_sec = mcux_ctimer_pwm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_mcux_ftm.c b/drivers/pwm/pwm_mcux_ftm.c index 4774fad4f8094..cd0a7110cb4c3 100644 --- a/drivers/pwm/pwm_mcux_ftm.c +++ b/drivers/pwm/pwm_mcux_ftm.c @@ -492,7 +492,7 @@ static int mcux_ftm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api mcux_ftm_driver_api = { +static DEVICE_API(pwm, mcux_ftm_driver_api) = { .set_cycles = mcux_ftm_set_cycles, .get_cycles_per_sec = mcux_ftm_get_cycles_per_sec, #ifdef CONFIG_PWM_CAPTURE diff --git a/drivers/pwm/pwm_mcux_pwt.c b/drivers/pwm/pwm_mcux_pwt.c index 0413e256b1289..13c0401b49960 100644 --- a/drivers/pwm/pwm_mcux_pwt.c +++ b/drivers/pwm/pwm_mcux_pwt.c @@ -325,7 +325,7 @@ static int mcux_pwt_init(const struct device *dev) return 0; } -static const struct pwm_driver_api mcux_pwt_driver_api = { +static DEVICE_API(pwm, mcux_pwt_driver_api) = { .set_cycles = mcux_pwt_set_cycles, .get_cycles_per_sec = mcux_pwt_get_cycles_per_sec, .configure_capture = mcux_pwt_configure_capture, diff --git a/drivers/pwm/pwm_mcux_qtmr.c b/drivers/pwm/pwm_mcux_qtmr.c index b78f43b0436b1..44b33b829f718 100644 --- a/drivers/pwm/pwm_mcux_qtmr.c +++ b/drivers/pwm/pwm_mcux_qtmr.c @@ -149,7 +149,7 @@ static int mcux_qtmr_pwm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_mcux_qtmr_driver_api = { +static DEVICE_API(pwm, pwm_mcux_qtmr_driver_api) = { .set_cycles = mcux_qtmr_pwm_set_cycles, .get_cycles_per_sec = mcux_qtmr_pwm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_mcux_sctimer.c b/drivers/pwm/pwm_mcux_sctimer.c index fcd3272cfdc6a..9f572f452ee1e 100644 --- a/drivers/pwm/pwm_mcux_sctimer.c +++ b/drivers/pwm/pwm_mcux_sctimer.c @@ -243,7 +243,7 @@ static int mcux_sctimer_pwm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_mcux_sctimer_driver_api = { +static DEVICE_API(pwm, pwm_mcux_sctimer_driver_api) = { .set_cycles = mcux_sctimer_pwm_set_cycles, .get_cycles_per_sec = mcux_sctimer_pwm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_mcux_tpm.c b/drivers/pwm/pwm_mcux_tpm.c index d90686ef675fc..957c4fe10d56e 100644 --- a/drivers/pwm/pwm_mcux_tpm.c +++ b/drivers/pwm/pwm_mcux_tpm.c @@ -190,7 +190,7 @@ static int mcux_tpm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api mcux_tpm_driver_api = { +static DEVICE_API(pwm, mcux_tpm_driver_api) = { .set_cycles = mcux_tpm_set_cycles, .get_cycles_per_sec = mcux_tpm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_npcx.c b/drivers/pwm/pwm_npcx.c index f4bdb039c6993..b9926ad88226b 100644 --- a/drivers/pwm/pwm_npcx.c +++ b/drivers/pwm/pwm_npcx.c @@ -163,7 +163,7 @@ static int pwm_npcx_get_cycles_per_sec(const struct device *dev, } /* PWM driver registration */ -static const struct pwm_driver_api pwm_npcx_driver_api = { +static DEVICE_API(pwm, pwm_npcx_driver_api) = { .set_cycles = pwm_npcx_set_cycles, .get_cycles_per_sec = pwm_npcx_get_cycles_per_sec }; diff --git a/drivers/pwm/pwm_nrf_sw.c b/drivers/pwm/pwm_nrf_sw.c index 2b9a22a38f081..5ea5a128873b6 100644 --- a/drivers/pwm/pwm_nrf_sw.c +++ b/drivers/pwm/pwm_nrf_sw.c @@ -335,7 +335,7 @@ static int pwm_nrf_sw_get_cycles_per_sec(const struct device *dev, return 0; } -static const struct pwm_driver_api pwm_nrf_sw_drv_api_funcs = { +static DEVICE_API(pwm, pwm_nrf_sw_drv_api_funcs) = { .set_cycles = pwm_nrf_sw_set_cycles, .get_cycles_per_sec = pwm_nrf_sw_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_nrfx.c b/drivers/pwm/pwm_nrfx.c index 420a9078c59ea..84fa71c17d91e 100644 --- a/drivers/pwm/pwm_nrfx.c +++ b/drivers/pwm/pwm_nrfx.c @@ -252,7 +252,7 @@ static int pwm_nrfx_get_cycles_per_sec(const struct device *dev, uint32_t channe return 0; } -static const struct pwm_driver_api pwm_nrfx_drv_api_funcs = { +static DEVICE_API(pwm, pwm_nrfx_drv_api_funcs) = { .set_cycles = pwm_nrfx_set_cycles, .get_cycles_per_sec = pwm_nrfx_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_numaker.c b/drivers/pwm/pwm_numaker.c index e67c7a0e05bf5..a4cadec4256cd 100644 --- a/drivers/pwm/pwm_numaker.c +++ b/drivers/pwm/pwm_numaker.c @@ -416,7 +416,7 @@ static void pwm_numaker_p2_isr(const struct device *dev) #endif /* CONFIG_PWM_CAPTURE */ /* PWM driver registration */ -static const struct pwm_driver_api pwm_numaker_driver_api = { +static DEVICE_API(pwm, pwm_numaker_driver_api) = { .set_cycles = pwm_numaker_set_cycles, .get_cycles_per_sec = pwm_numaker_get_cycles_per_sec, #ifdef CONFIG_PWM_CAPTURE diff --git a/drivers/pwm/pwm_nxp_flexio.c b/drivers/pwm/pwm_nxp_flexio.c index 4dbafd8250f9e..ed8075f6ee471 100644 --- a/drivers/pwm/pwm_nxp_flexio.c +++ b/drivers/pwm/pwm_nxp_flexio.c @@ -272,7 +272,7 @@ static int mcux_flexio_pwm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_nxp_flexio_driver_api = { +static DEVICE_API(pwm, pwm_nxp_flexio_driver_api) = { .set_cycles = pwm_nxp_flexio_set_cycles, .get_cycles_per_sec = pwm_nxp_flexio_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_nxp_s32_emios.c b/drivers/pwm/pwm_nxp_s32_emios.c index e5a0513fb2ffa..34cd5c3b0a560 100644 --- a/drivers/pwm/pwm_nxp_s32_emios.c +++ b/drivers/pwm/pwm_nxp_s32_emios.c @@ -551,7 +551,7 @@ static int pwm_nxp_s32_init(const struct device *dev) return err; } -static const struct pwm_driver_api pwm_nxp_s32_driver_api = { +static DEVICE_API(pwm, pwm_nxp_s32_driver_api) = { .set_cycles = pwm_nxp_s32_set_cycles, .get_cycles_per_sec = pwm_nxp_s32_get_cycles_per_sec, #ifdef CONFIG_PWM_CAPTURE diff --git a/drivers/pwm/pwm_pca9685.c b/drivers/pwm/pwm_pca9685.c index f08bdd4cf9b04..110e8e71a24af 100644 --- a/drivers/pwm/pwm_pca9685.c +++ b/drivers/pwm/pwm_pca9685.c @@ -229,7 +229,7 @@ static int pca9685_get_cycles_per_sec(const struct device *dev, return 0; } -static const struct pwm_driver_api pca9685_api = { +static DEVICE_API(pwm, pca9685_api) = { .set_cycles = pca9685_set_cycles, .get_cycles_per_sec = pca9685_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_rcar.c b/drivers/pwm/pwm_rcar.c index 051d02503ccd0..b79b0e3089b0a 100644 --- a/drivers/pwm/pwm_rcar.c +++ b/drivers/pwm/pwm_rcar.c @@ -243,7 +243,7 @@ static int pwm_rcar_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_rcar_driver_api = { +static DEVICE_API(pwm, pwm_rcar_driver_api) = { .set_cycles = pwm_rcar_set_cycles, .get_cycles_per_sec = pwm_rcar_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_renesas_ra8.c b/drivers/pwm/pwm_renesas_ra8.c index cb41ae82a1eae..b46e7afa81630 100644 --- a/drivers/pwm/pwm_renesas_ra8.c +++ b/drivers/pwm/pwm_renesas_ra8.c @@ -435,7 +435,7 @@ static void fsp_callback(timer_callback_args_t *p_args) #endif /* CONFIG_PWM_CAPTURE */ -static const struct pwm_driver_api pwm_ra8_driver_api = { +static DEVICE_API(pwm, pwm_ra8_driver_api) = { .get_cycles_per_sec = pwm_ra8_get_cycles_per_sec, .set_cycles = pwm_ra8_set_cycles, #ifdef CONFIG_PWM_CAPTURE diff --git a/drivers/pwm/pwm_rpi_pico.c b/drivers/pwm/pwm_rpi_pico.c index a6b9489b4e45f..98fefe1aad630 100644 --- a/drivers/pwm/pwm_rpi_pico.c +++ b/drivers/pwm/pwm_rpi_pico.c @@ -146,7 +146,7 @@ static int pwm_rpi_set_cycles(const struct device *dev, uint32_t ch, uint32_t pe return 0; }; -struct pwm_driver_api pwm_rpi_driver_api = { +static DEVICE_API(pwm, pwm_rpi_driver_api) = { .get_cycles_per_sec = pwm_rpi_get_cycles_per_sec, .set_cycles = pwm_rpi_set_cycles, }; diff --git a/drivers/pwm/pwm_rv32m1_tpm.c b/drivers/pwm/pwm_rv32m1_tpm.c index 3d2f5a5465335..dddc914a31d5d 100644 --- a/drivers/pwm/pwm_rv32m1_tpm.c +++ b/drivers/pwm/pwm_rv32m1_tpm.c @@ -178,7 +178,7 @@ static int rv32m1_tpm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api rv32m1_tpm_driver_api = { +static DEVICE_API(pwm, rv32m1_tpm_driver_api) = { .set_cycles = rv32m1_tpm_set_cycles, .get_cycles_per_sec = rv32m1_tpm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_sam.c b/drivers/pwm/pwm_sam.c index 672b2cdb8d05b..8a5f52dd061e6 100644 --- a/drivers/pwm/pwm_sam.c +++ b/drivers/pwm/pwm_sam.c @@ -118,7 +118,7 @@ static int sam_pwm_init(const struct device *dev) return 0; } -static const struct pwm_driver_api sam_pwm_driver_api = { +static DEVICE_API(pwm, sam_pwm_driver_api) = { .set_cycles = sam_pwm_set_cycles, .get_cycles_per_sec = sam_pwm_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_sam0_tcc.c b/drivers/pwm/pwm_sam0_tcc.c index 3a12c81b76c9a..20b40c917da1f 100644 --- a/drivers/pwm/pwm_sam0_tcc.c +++ b/drivers/pwm/pwm_sam0_tcc.c @@ -135,7 +135,7 @@ static int pwm_sam0_init(const struct device *dev) return 0; } -static const struct pwm_driver_api pwm_sam0_driver_api = { +static DEVICE_API(pwm, pwm_sam0_driver_api) = { .set_cycles = pwm_sam0_set_cycles, .get_cycles_per_sec = pwm_sam0_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_shell.c b/drivers/pwm/pwm_shell.c index 1caecad939f52..1dfcfe72f3bf2 100644 --- a/drivers/pwm/pwm_shell.c +++ b/drivers/pwm/pwm_shell.c @@ -126,12 +126,29 @@ static int cmd_nsec(const struct shell *sh, size_t argc, char **argv) return 0; } +static bool device_is_pwm_and_ready(const struct device *dev) +{ + return device_is_ready(dev) && DEVICE_API_IS(pwm, dev); +} + +static void device_name_get(size_t idx, struct shell_static_entry *entry) +{ + const struct device *dev = shell_device_filter(idx, device_is_pwm_and_ready); + + entry->syntax = (dev != NULL) ? dev->name : NULL; + entry->handler = NULL; + entry->help = NULL; + entry->subcmd = NULL; +} + +SHELL_DYNAMIC_CMD_CREATE(dsub_device_name, device_name_get); + SHELL_STATIC_SUBCMD_SET_CREATE(pwm_cmds, - SHELL_CMD_ARG(cycles, NULL, " " + SHELL_CMD_ARG(cycles, &dsub_device_name, " " " [flags]", cmd_cycles, 5, 1), - SHELL_CMD_ARG(usec, NULL, " " + SHELL_CMD_ARG(usec, &dsub_device_name, " " " [flags]", cmd_usec, 5, 1), - SHELL_CMD_ARG(nsec, NULL, " " + SHELL_CMD_ARG(nsec, &dsub_device_name, " " " [flags]", cmd_nsec, 5, 1), SHELL_SUBCMD_SET_END ); diff --git a/drivers/pwm/pwm_sifive.c b/drivers/pwm/pwm_sifive.c index b11f10b2d0bd8..cf3200ccd1209 100644 --- a/drivers/pwm/pwm_sifive.c +++ b/drivers/pwm/pwm_sifive.c @@ -208,7 +208,7 @@ static int pwm_sifive_get_cycles_per_sec(const struct device *dev, /* Device Instantiation */ -static const struct pwm_driver_api pwm_sifive_api = { +static DEVICE_API(pwm, pwm_sifive_api) = { .set_cycles = pwm_sifive_set_cycles, .get_cycles_per_sec = pwm_sifive_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_stm32.c b/drivers/pwm/pwm_stm32.c index d120ec33b5b1f..3102d73149f07 100644 --- a/drivers/pwm/pwm_stm32.c +++ b/drivers/pwm/pwm_stm32.c @@ -761,7 +761,7 @@ static int pwm_stm32_get_cycles_per_sec(const struct device *dev, return 0; } -static const struct pwm_driver_api pwm_stm32_driver_api = { +static DEVICE_API(pwm, pwm_stm32_driver_api) = { .set_cycles = pwm_stm32_set_cycles, .get_cycles_per_sec = pwm_stm32_get_cycles_per_sec, #ifdef CONFIG_PWM_CAPTURE diff --git a/drivers/pwm/pwm_test.c b/drivers/pwm/pwm_test.c index 4961e90f3fe22..a94142ea1a14e 100644 --- a/drivers/pwm/pwm_test.c +++ b/drivers/pwm/pwm_test.c @@ -48,7 +48,7 @@ static int vnd_pwm_get_cycles_per_sec(const struct device *dev, return -ENOTSUP; } -static const struct pwm_driver_api vnd_pwm_api = { +static DEVICE_API(pwm, vnd_pwm_api) = { .set_cycles = vnd_pwm_set_cycles, #ifdef CONFIG_PWM_CAPTURE .configure_capture = vnd_pwm_configure_capture, diff --git a/drivers/pwm/pwm_xlnx_axi_timer.c b/drivers/pwm/pwm_xlnx_axi_timer.c index 6e5c594a0af94..88407a330d649 100644 --- a/drivers/pwm/pwm_xlnx_axi_timer.c +++ b/drivers/pwm/pwm_xlnx_axi_timer.c @@ -172,7 +172,7 @@ static int xlnx_axi_timer_get_cycles_per_sec(const struct device *dev, return 0; } -static const struct pwm_driver_api xlnx_axi_timer_driver_api = { +static DEVICE_API(pwm, xlnx_axi_timer_driver_api) = { .set_cycles = xlnx_axi_timer_set_cycles, .get_cycles_per_sec = xlnx_axi_timer_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_xmc4xxx_ccu4.c b/drivers/pwm/pwm_xmc4xxx_ccu4.c index 9800003df3962..4220c7d30cd76 100644 --- a/drivers/pwm/pwm_xmc4xxx_ccu4.c +++ b/drivers/pwm/pwm_xmc4xxx_ccu4.c @@ -93,7 +93,7 @@ static int pwm_xmc4xxx_ccu4_get_cycles_per_sec(const struct device *dev, uint32_ return 0; } -static const struct pwm_driver_api pwm_xmc4xxx_ccu4_driver_api = { +static DEVICE_API(pwm, pwm_xmc4xxx_ccu4_driver_api) = { .set_cycles = pwm_xmc4xxx_ccu4_set_cycles, .get_cycles_per_sec = pwm_xmc4xxx_ccu4_get_cycles_per_sec, }; diff --git a/drivers/pwm/pwm_xmc4xxx_ccu8.c b/drivers/pwm/pwm_xmc4xxx_ccu8.c index e6d68cb115b43..2ff9167b5a321 100644 --- a/drivers/pwm/pwm_xmc4xxx_ccu8.c +++ b/drivers/pwm/pwm_xmc4xxx_ccu8.c @@ -148,7 +148,7 @@ static int pwm_xmc4xxx_ccu8_get_cycles_per_sec(const struct device *dev, uint32_ return 0; } -static const struct pwm_driver_api pwm_xmc4xxx_ccu8_driver_api = { +static DEVICE_API(pwm, pwm_xmc4xxx_ccu8_driver_api) = { .set_cycles = pwm_xmc4xxx_ccu8_set_cycles, .get_cycles_per_sec = pwm_xmc4xxx_ccu8_get_cycles_per_sec, };