From 0d03eedfea9bd5334f79792bdd033ae0ef963b90 Mon Sep 17 00:00:00 2001 From: Jukka Laitinen Date: Thu, 4 Apr 2024 19:16:25 +0300 Subject: [PATCH] boards/arm64/imx9/imx93-evk: Enable PWM from TPM3ch3 on imx93-evk pin GPIO_IO24 Signed-off-by: Jukka Laitinen --- .../imx9/imx93-evk/configs/nsh/defconfig | 2 ++ boards/arm64/imx9/imx93-evk/include/board.h | 4 ++++ boards/arm64/imx9/imx93-evk/src/imx9_pwm.c | 19 +++++++++++++++++++ 3 files changed, 25 insertions(+) diff --git a/boards/arm64/imx9/imx93-evk/configs/nsh/defconfig b/boards/arm64/imx9/imx93-evk/configs/nsh/defconfig index 903e4fb67a46c..e1834dc8ed440 100644 --- a/boards/arm64/imx9/imx93-evk/configs/nsh/defconfig +++ b/boards/arm64/imx9/imx93-evk/configs/nsh/defconfig @@ -31,6 +31,8 @@ CONFIG_HAVE_CXXINITIALIZE=y CONFIG_IDLETHREAD_STACKSIZE=8192 CONFIG_IMX9_FLEXIO1_PWM=y CONFIG_IMX9_GPIO_IRQ=y +CONFIG_IMX9_TPM3_PWM=y +CONFIG_IMX9_TPM3_PWM_CHMUX=0x00000003 CONFIG_IMX9_UART1=y CONFIG_IMX9_USBDEV_USBC1=y CONFIG_INIT_ENTRYPOINT="nsh_main" diff --git a/boards/arm64/imx9/imx93-evk/include/board.h b/boards/arm64/imx9/imx93-evk/include/board.h index 0cfea9b6eafb1..bd78f1cf7906e 100644 --- a/boards/arm64/imx9/imx93-evk/include/board.h +++ b/boards/arm64/imx9/imx93-evk/include/board.h @@ -45,6 +45,10 @@ #define FLEXIO1_PWM2_MUX IOMUX_CFG(IOMUXC_PAD_GPIO_IO06_FLEXIO1_FLEXIO06, IOMUXC_PAD_FSEL_SFAST | IOMUXC_PAD_DSE_X6, 0) #define FLEXIO1_PWM3_MUX IOMUX_CFG(IOMUXC_PAD_GPIO_IO07_FLEXIO1_FLEXIO07, IOMUXC_PAD_FSEL_SFAST | IOMUXC_PAD_DSE_X6, 0) +/* TPM3 ch3 to PWM pin GPIO_IO24 muxing */ + +#define TPM3_PWM3_MUX IOMUX_CFG(IOMUXC_PAD_GPIO_IO24_TPM3_CH3, IOMUXC_PAD_FSEL_SFAST | IOMUXC_PAD_DSE_X6, 0) + /**************************************************************************** * Public Data ****************************************************************************/ diff --git a/boards/arm64/imx9/imx93-evk/src/imx9_pwm.c b/boards/arm64/imx9/imx93-evk/src/imx9_pwm.c index 152e78da90e4f..f3989167f892b 100644 --- a/boards/arm64/imx9/imx93-evk/src/imx9_pwm.c +++ b/boards/arm64/imx9/imx93-evk/src/imx9_pwm.c @@ -29,6 +29,7 @@ #include #include "imx9_flexio_pwm.h" +#include "imx9_tpm_pwm.h" /**************************************************************************** * Pre-processor Definitions @@ -87,6 +88,24 @@ int imx9_pwm_setup(void) { ret = -ENODEV; } + + if (ret < 0) + { + return ret; + } +#endif + +#ifdef CONFIG_IMX9_TPM3_PWM + lower_half = imx9_flexio_pwm_init(PWM_TPM3); + + if (lower_half) + { + ret = pwm_register("/dev/pwm2", lower_half); + } + else + { + ret = -ENODEV; + } #endif return ret;