From 885087b3288346e2e09da92e506e5f390cd4ad29 Mon Sep 17 00:00:00 2001 From: Kumar Gala Date: Thu, 21 Jul 2022 16:13:45 -0500 Subject: [PATCH] drivers: pwm: Update drivers to use devicetree Kconfig symbol Update pwm drivers to use DT_HAS__ENABLED Kconfig symbol to expose the driver and enable it by default based on devicetree. We remove 'depend on' Kconfig for symbols that would be implied by the devicetree node existing. Signed-off-by: Kumar Gala --- drivers/pwm/Kconfig.b91 | 3 ++- drivers/pwm/Kconfig.esp32 | 11 ++++------- drivers/pwm/Kconfig.gd32 | 6 ++---- drivers/pwm/Kconfig.gecko | 3 ++- drivers/pwm/Kconfig.imx | 2 ++ drivers/pwm/Kconfig.it8xxx2 | 3 ++- drivers/pwm/Kconfig.litex | 4 ++-- drivers/pwm/Kconfig.mcux | 3 ++- drivers/pwm/Kconfig.mcux_ftm | 3 ++- drivers/pwm/Kconfig.mcux_pwt | 4 +++- drivers/pwm/Kconfig.mcux_sctimer | 3 ++- drivers/pwm/Kconfig.mcux_tpm | 4 +++- drivers/pwm/Kconfig.npcx | 3 ++- drivers/pwm/Kconfig.nrf5_sw | 3 ++- drivers/pwm/Kconfig.nrfx | 5 +---- drivers/pwm/Kconfig.rpi_pico | 7 ++----- drivers/pwm/Kconfig.rv32m1_tpm | 4 +++- drivers/pwm/Kconfig.sam | 3 ++- drivers/pwm/Kconfig.sam0 | 3 ++- drivers/pwm/Kconfig.sifive | 4 ++-- drivers/pwm/Kconfig.stm32 | 3 ++- drivers/pwm/Kconfig.test | 5 ++--- drivers/pwm/Kconfig.xec | 6 ++---- drivers/pwm/Kconfig.xlnx | 2 ++ 24 files changed, 52 insertions(+), 45 deletions(-) diff --git a/drivers/pwm/Kconfig.b91 b/drivers/pwm/Kconfig.b91 index 971da6d9239..9e710b4a6de 100644 --- a/drivers/pwm/Kconfig.b91 +++ b/drivers/pwm/Kconfig.b91 @@ -3,6 +3,7 @@ config PWM_TELINK_B91 bool "Telink Semiconductor B91 PWM driver" - depends on SOC_RISCV_TELINK_B91 + default y + depends on DT_HAS_TELINK_B91_PWM_ENABLED help Enables Telink B91 PWM driver. diff --git a/drivers/pwm/Kconfig.esp32 b/drivers/pwm/Kconfig.esp32 index 1d3c4719fab..a8cbe62558b 100644 --- a/drivers/pwm/Kconfig.esp32 +++ b/drivers/pwm/Kconfig.esp32 @@ -4,21 +4,18 @@ # Copyright (c) 2022 Espressif Systems (Shanghai) Co., Ltd. # SPDX-License-Identifier: Apache-2.0 -DT_COMPAT_ESPRESSIF_ESP32_LEDC := espressif,esp32-ledc -DT_COMPAT_ESPRESSIF_ESP32_MCPWM := espressif,esp32-mcpwm - config PWM_LED_ESP32 bool "ESP32 PWM LED driver" - depends on SOC_ESP32 || SOC_ESP32S2 || SOC_ESP32C3 - default $(dt_compat_enabled,$(DT_COMPAT_ESPRESSIF_ESP32_LEDC)) + default y + depends on DT_HAS_ESPRESSIF_ESP32_LEDC_ENABLED help This option enables the PWM LED driver for ESP32 family of processors. config MCPWM_ESP32 bool "ESP32 MCPWM driver" - depends on SOC_ESP32 - default $(dt_compat_enabled,$(DT_COMPAT_ESPRESSIF_ESP32_MCPWM)) + default y + depends on DT_HAS_ESPRESSIF_ESP32_MCPWM_ENABLED help This option enables the MCPWM driver for ESP32 family of processors. diff --git a/drivers/pwm/Kconfig.gd32 b/drivers/pwm/Kconfig.gd32 index b8ef24bca0a..f82c3b48878 100644 --- a/drivers/pwm/Kconfig.gd32 +++ b/drivers/pwm/Kconfig.gd32 @@ -1,11 +1,9 @@ # Copyright (c) 2021 Teslabs Engineering S.L. # SPDX-License-Identifier: Apache-2.0 -DT_COMPAT_GD_GD32_PWM := gd,gd32-pwm - config PWM_GD32 bool "GigaDevice GD32 PWM driver" - depends on (SOC_FAMILY_GD32 || SOC_SERIES_GD32VF103) - default $(dt_compat_enabled,$(DT_COMPAT_GD_GD32_PWM)) + default y + depends on DT_HAS_GD_GD32_PWM_ENABLED help Enable the GigaDevice GD32 PWM driver. diff --git a/drivers/pwm/Kconfig.gecko b/drivers/pwm/Kconfig.gecko index 8a000c83dfc..e4d16456f0e 100644 --- a/drivers/pwm/Kconfig.gecko +++ b/drivers/pwm/Kconfig.gecko @@ -5,7 +5,8 @@ config PWM_GECKO bool "GECKO MCU PWM driver" - depends on SOC_FAMILY_EXX32 + default y + depends on DT_HAS_SILABS_GECKO_PWM_ENABLED select SOC_GECKO_TIMER help This option enables the PWM driver for EXX32 GECKO family of diff --git a/drivers/pwm/Kconfig.imx b/drivers/pwm/Kconfig.imx index e61f98ee795..7fd171f144c 100644 --- a/drivers/pwm/Kconfig.imx +++ b/drivers/pwm/Kconfig.imx @@ -5,6 +5,8 @@ menuconfig PWM_IMX bool "i.MX PWM Driver" + default y + depends on DT_HAS_FSL_IMX27_PWM_ENABLED help Enable support for i.MX pwm driver. diff --git a/drivers/pwm/Kconfig.it8xxx2 b/drivers/pwm/Kconfig.it8xxx2 index e02467b7740..8f8019f5d23 100644 --- a/drivers/pwm/Kconfig.it8xxx2 +++ b/drivers/pwm/Kconfig.it8xxx2 @@ -5,7 +5,8 @@ config PWM_ITE_IT8XXX2 bool "ITE IT8XXX2 embedded controller (EC) PWM driver" - depends on SOC_IT8XXX2 + default y + depends on DT_HAS_ITE_IT8XXX2_PWM_ENABLED help Enable PWM driver for it8xxx2_evb. Supports three 16-bit prescalers each with 8-bit cycle timer, and diff --git a/drivers/pwm/Kconfig.litex b/drivers/pwm/Kconfig.litex index 510004be965..1ceafeb218e 100644 --- a/drivers/pwm/Kconfig.litex +++ b/drivers/pwm/Kconfig.litex @@ -6,8 +6,8 @@ menuconfig PWM_LITEX bool "LiteX PWM driver" - depends on SOC_RISCV32_LITEX_VEXRISCV - depends on HAS_DTS + default y + depends on DT_HAS_LITEX_PWM_ENABLED help Enable support for LiteX PWM driver diff --git a/drivers/pwm/Kconfig.mcux b/drivers/pwm/Kconfig.mcux index 134efb57c55..7c81eebf3e4 100644 --- a/drivers/pwm/Kconfig.mcux +++ b/drivers/pwm/Kconfig.mcux @@ -5,6 +5,7 @@ config PWM_MCUX bool "MCUX PWM driver" - depends on HAS_MCUX_PWM + default y + depends on DT_HAS_NXP_IMX_PWM_ENABLED help Enable mcux pwm driver. diff --git a/drivers/pwm/Kconfig.mcux_ftm b/drivers/pwm/Kconfig.mcux_ftm index 1db289f82b6..9af580f117c 100644 --- a/drivers/pwm/Kconfig.mcux_ftm +++ b/drivers/pwm/Kconfig.mcux_ftm @@ -5,7 +5,8 @@ config PWM_MCUX_FTM bool "MCUX FTM PWM driver" - depends on HAS_MCUX_FTM + default y + depends on DT_HAS_NXP_KINETIS_FTM_PWM_ENABLED select PINCTRL help Enable support for mcux ftm pwm driver. diff --git a/drivers/pwm/Kconfig.mcux_pwt b/drivers/pwm/Kconfig.mcux_pwt index fd82ef83201..f91586a485e 100644 --- a/drivers/pwm/Kconfig.mcux_pwt +++ b/drivers/pwm/Kconfig.mcux_pwt @@ -5,7 +5,9 @@ config PWM_MCUX_PWT bool "MCUX PWT PWM capture driver" - depends on HAS_MCUX_PWT && CLOCK_CONTROL && PWM_CAPTURE + default y + depends on DT_HAS_NXP_KINETIS_PWT_ENABLED + depends on CLOCK_CONTROL && PWM_CAPTURE select PINCTRL help Enable the MCUX Pulse Width Timer (PWT) PWM capture driver. diff --git a/drivers/pwm/Kconfig.mcux_sctimer b/drivers/pwm/Kconfig.mcux_sctimer index 33f38f98c9c..8b314591ff1 100644 --- a/drivers/pwm/Kconfig.mcux_sctimer +++ b/drivers/pwm/Kconfig.mcux_sctimer @@ -3,6 +3,7 @@ config PWM_MCUX_SCTIMER bool "MCUX SCTimer PWM driver" - depends on HAS_MCUX_SCTIMER + default y + depends on DT_HAS_NXP_SCTIMER_PWM_ENABLED help Enable sctimer based pwm driver. diff --git a/drivers/pwm/Kconfig.mcux_tpm b/drivers/pwm/Kconfig.mcux_tpm index 07902531273..5cbd78fca70 100644 --- a/drivers/pwm/Kconfig.mcux_tpm +++ b/drivers/pwm/Kconfig.mcux_tpm @@ -5,7 +5,9 @@ config PWM_MCUX_TPM bool "MCUX TPM PWM driver" - depends on HAS_MCUX_TPM && CLOCK_CONTROL + default y + depends on DT_HAS_NXP_KINETIS_TPM_ENABLED + depends on CLOCK_CONTROL select PINCTRL help Enable the MCUX TPM PWM driver. diff --git a/drivers/pwm/Kconfig.npcx b/drivers/pwm/Kconfig.npcx index 0b501e6394e..e8869c2ef89 100644 --- a/drivers/pwm/Kconfig.npcx +++ b/drivers/pwm/Kconfig.npcx @@ -5,7 +5,8 @@ config PWM_NPCX bool "Nuvoton NPCX embedded controller (EC) PWM driver" - depends on SOC_FAMILY_NPCX + default y + depends on DT_HAS_NUVOTON_NPCX_PWM_ENABLED help This option enables the PWM driver for NPCX family of processors. diff --git a/drivers/pwm/Kconfig.nrf5_sw b/drivers/pwm/Kconfig.nrf5_sw index f590f38fd8c..d3bfa82a225 100644 --- a/drivers/pwm/Kconfig.nrf5_sw +++ b/drivers/pwm/Kconfig.nrf5_sw @@ -6,7 +6,8 @@ config PWM_NRF5_SW bool "Nordic Semiconductor nRF5x series S/W PWM" default y if !PWM_NRFX - depends on HAS_HW_NRF_PPI + depends on DT_HAS_NORDIC_NRF_SW_PWM_ENABLED + depends on DT_HAS_NORDIC_NRF_PPI_ENABLED select NRFX_GPIOTE select NRFX_PPI help diff --git a/drivers/pwm/Kconfig.nrfx b/drivers/pwm/Kconfig.nrfx index 22d3b2691d9..712021a7780 100644 --- a/drivers/pwm/Kconfig.nrfx +++ b/drivers/pwm/Kconfig.nrfx @@ -4,10 +4,7 @@ config PWM_NRFX bool "nRF PWM nrfx driver" default y - depends on HAS_HW_NRF_PWM0 \ - || HAS_HW_NRF_PWM1 \ - || HAS_HW_NRF_PWM2 \ - || HAS_HW_NRF_PWM3 + depends on DT_HAS_NORDIC_NRF_PWM_ENABLED select NRFX_PWM0 if HAS_HW_NRF_PWM0 select NRFX_PWM1 if HAS_HW_NRF_PWM1 select NRFX_PWM2 if HAS_HW_NRF_PWM2 diff --git a/drivers/pwm/Kconfig.rpi_pico b/drivers/pwm/Kconfig.rpi_pico index b3113d6ebcd..ed697eb9010 100644 --- a/drivers/pwm/Kconfig.rpi_pico +++ b/drivers/pwm/Kconfig.rpi_pico @@ -1,13 +1,10 @@ # Copyright (c) 2022, Joep Buruma # SPDX-License-Identifier: Apache-2.0 -# Workaround for not being able to have commas in macro arguments -DT_COMPAT_RPI_PICO_PWM := raspberrypi,pico-pwm - config PWM_RPI_PICO bool "RPi Pico PWM" - default $(dt_compat_enabled,$(DT_COMPAT_RPI_PICO_PWM)) - depends on SOC_SERIES_RP2XXX + default y + depends on DT_HAS_RASPBERRYPI_PICO_PWM_ENABLED depends on RESET select PICOSDK_USE_PWM help diff --git a/drivers/pwm/Kconfig.rv32m1_tpm b/drivers/pwm/Kconfig.rv32m1_tpm index bc78ada3078..d767847c6cf 100644 --- a/drivers/pwm/Kconfig.rv32m1_tpm +++ b/drivers/pwm/Kconfig.rv32m1_tpm @@ -5,6 +5,8 @@ config PWM_RV32M1_TPM bool "RV32M1 TPM PWM driver" - depends on HAS_RV32M1_TPM && CLOCK_CONTROL + default y + depends on DT_HAS_OPENISA_RV32M1_TPM_ENABLED + depends on CLOCK_CONTROL help Enable the RV32M1 TPM PWM driver. diff --git a/drivers/pwm/Kconfig.sam b/drivers/pwm/Kconfig.sam index 7c9a12f2fd5..839b6cb9de7 100644 --- a/drivers/pwm/Kconfig.sam +++ b/drivers/pwm/Kconfig.sam @@ -5,6 +5,7 @@ config PWM_SAM bool "Atmel SAM MCU Family PWM Driver" - depends on SOC_FAMILY_SAM + default y + depends on DT_HAS_ATMEL_SAM_PWM_ENABLED help Enable PWM driver for Atmel SAM MCUs. diff --git a/drivers/pwm/Kconfig.sam0 b/drivers/pwm/Kconfig.sam0 index 8ac5f9fa73d..bde4cf49021 100644 --- a/drivers/pwm/Kconfig.sam0 +++ b/drivers/pwm/Kconfig.sam0 @@ -5,6 +5,7 @@ config PWM_SAM0_TCC bool "Atmel SAM0 MCU Family TCC PWM Driver" - depends on SOC_FAMILY_SAM0 + default y + depends on DT_HAS_ATMEL_SAM0_TCC_PWM_ENABLED help Enable PWM driver for Atmel SAM0 MCUs using the TCC timer/counter. diff --git a/drivers/pwm/Kconfig.sifive b/drivers/pwm/Kconfig.sifive index c5e252185c2..87a1bff6b7d 100644 --- a/drivers/pwm/Kconfig.sifive +++ b/drivers/pwm/Kconfig.sifive @@ -5,8 +5,8 @@ menuconfig PWM_SIFIVE bool "SiFive Freedom PWM driver" - depends on SOC_SERIES_RISCV_SIFIVE_FREEDOM - depends on HAS_DTS + default y + depends on DT_HAS_SIFIVE_PWM0_ENABLED help Enable the PWM driver for the SiFive Freedom platform diff --git a/drivers/pwm/Kconfig.stm32 b/drivers/pwm/Kconfig.stm32 index adb6f1e6c27..8fc52f6cf5a 100644 --- a/drivers/pwm/Kconfig.stm32 +++ b/drivers/pwm/Kconfig.stm32 @@ -5,7 +5,8 @@ config PWM_STM32 bool "STM32 MCU PWM driver" - depends on SOC_FAMILY_STM32 + default y + depends on DT_HAS_ST_STM32_PWM_ENABLED select USE_STM32_LL_TIM select USE_STM32_LL_RCC if SOC_SERIES_STM32F4X || SOC_SERIES_STM32F7X || SOC_SERIES_STM32H7X help diff --git a/drivers/pwm/Kconfig.test b/drivers/pwm/Kconfig.test index 67a0c39be35..d86cfc5b23c 100644 --- a/drivers/pwm/Kconfig.test +++ b/drivers/pwm/Kconfig.test @@ -2,9 +2,8 @@ # Organisation (CSIRO) ABN 41 687 119 230. # SPDX-License-Identifier: Apache-2.0 -DT_COMPAT_VND_PWM := vnd,pwm - # Hidden option for turning on the dummy driver for vnd,pwm devices # used in testing. config PWM_TEST - def_bool $(dt_compat_enabled,$(DT_COMPAT_VND_PWM)) + def_bool DT_HAS_VND_PWM_ENABLED + depends on DT_HAS_VND_PWM_ENABLED diff --git a/drivers/pwm/Kconfig.xec b/drivers/pwm/Kconfig.xec index 9d878389b9a..616327a9b2f 100644 --- a/drivers/pwm/Kconfig.xec +++ b/drivers/pwm/Kconfig.xec @@ -3,11 +3,9 @@ # Copyright (c) 2019 Intel Corporation # SPDX-License-Identifier: Apache-2.0 -DT_COMPAT_PWM_XEC := microchip,xec-pwm - config PWM_XEC bool "Microchip XEC PWM" - depends on SOC_FAMILY_MEC - default $(dt_compat_enabled,${DT_COMPAT_PWM_XEC}) + default y + depends on DT_HAS_MICROCHIP_XEC_PWM_ENABLED help Enable driver to utilize PWM on the Microchip XEC IP block. diff --git a/drivers/pwm/Kconfig.xlnx b/drivers/pwm/Kconfig.xlnx index 8bc39182a54..7ac68df2aae 100644 --- a/drivers/pwm/Kconfig.xlnx +++ b/drivers/pwm/Kconfig.xlnx @@ -5,5 +5,7 @@ config PWM_XLNX_AXI_TIMER bool "Xilinx AXI Timer driver" + default y + depends on DT_HAS_XLNX_XPS_TIMER_1_00_A_PWM_ENABLED help Enable PWM support for the Xilinx AXI Timer v2.0 IP.