tests: drivers: pwm: Add SAM E54 test support for TCC
Added overlay files for sam_e54_xpro TCC nodes
Added sam_e54_xpro platform allow in testcase.yaml.
Added an extra scenario to testcase.yaml
Signed-off-by: Farsin Nasar V A <farsin.nasarva@microchip.com>
diff --git a/tests/drivers/pwm/pwm_api/Kconfig b/tests/drivers/pwm/pwm_api/Kconfig
index f983d65..aeb9c99 100644
--- a/tests/drivers/pwm/pwm_api/Kconfig
+++ b/tests/drivers/pwm/pwm_api/Kconfig
@@ -7,14 +7,14 @@
config DEFAULT_PWM_PORT
int "Default PWM port/channel"
- default 1 if PWM_STM32
+ default 1 if PWM_STM32 || PWM_MCHP_G1_TCC
default 0
help
PWM port matching the channel associated with PWM pin.
config INVALID_PWM_PORT
int "Invalid PWM port/channel"
- default 9 if PWM_NRFX
+ default 9 if PWM_NRFX || PWM_MCHP_G1_TCC
default -1
help
Invalid PWM port/channel for negative testing.
@@ -38,6 +38,7 @@
config DEFAULT_PERIOD_NSEC
int "Default PWM period in nanoseconds"
default 4000000 if SOC_FAMILY_MCXW
+ default 546000 if PWM_MCHP_G1_TCC
default 2000000
help
Default PWM period in nanoseconds.
@@ -47,6 +48,7 @@
default 500000 if SOC_MK64F12 || SOC_MKW41Z4 || SOC_ESP32S2 || SOC_ESP32S3 || SOC_ESP32C3
default 500000 if PWM_INTEL_BLINKY
default 2000000 if SOC_FAMILY_MCXW
+ default 273000 if PWM_MCHP_G1_TCC
default 1000000
help
Default PWM pulse in nanoseconds.
diff --git a/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc0.overlay b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc0.overlay
new file mode 100644
index 0000000..abb754e
--- /dev/null
+++ b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc0.overlay
@@ -0,0 +1,15 @@
+/*
+ * Copyright (c) 2025 Microchip Technology Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/ {
+ aliases {
+ pwm-test = &tcc0;
+ };
+};
+
+&tcc0 {
+ status = "okay";
+};
diff --git a/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc1.overlay b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc1.overlay
new file mode 100644
index 0000000..35582de
--- /dev/null
+++ b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc1.overlay
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2025 Microchip Technology Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/ {
+ aliases {
+ pwm-test = &tcc1;
+ };
+};
+
+&tcc1 {
+ compatible = "microchip,tcc-g1-pwm";
+ status = "okay";
+ #pwm-cells = < 0x3 >;
+ pinctrl-0 = < &tcc1_pwm_default >;
+ pinctrl-names = "default";
+ prescaler = < 0x1 >;
+};
+
+&tcc0 {
+ status = "disabled";
+};
+
+&pinctrl {
+ tcc1_pwm_default: tcc1_pwm_default {
+ group1 {
+ pinmux = <PA8G_TCC1_WO4>;
+ };
+ };
+};
diff --git a/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc2.overlay b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc2.overlay
new file mode 100644
index 0000000..0a0bc99
--- /dev/null
+++ b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc2.overlay
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2025 Microchip Technology Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/ {
+ aliases {
+ pwm-test = &tcc2;
+ };
+};
+
+&tcc2 {
+ compatible = "microchip,tcc-g1-pwm";
+ status = "okay";
+ #pwm-cells = < 0x3 >;
+ pinctrl-0 = < &tcc2_pwm_default >;
+ pinctrl-names = "default";
+ prescaler = < 0x1 >;
+};
+
+&tcc0 {
+ status = "disabled";
+};
+
+&pinctrl {
+ tcc2_pwm_default: tcc2_pwm_default {
+ group1 {
+ pinmux = <PA24F_TCC2_WO2>;
+ };
+ };
+};
diff --git a/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc3.overlay b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc3.overlay
new file mode 100644
index 0000000..f930f60
--- /dev/null
+++ b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc3.overlay
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2025 Microchip Technology Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/ {
+ aliases {
+ pwm-test = &tcc3;
+ };
+};
+
+&tcc3 {
+ compatible = "microchip,tcc-g1-pwm";
+ status = "okay";
+ #pwm-cells = < 0x3 >;
+ pinctrl-0 = < &tcc3_pwm_default >;
+ pinctrl-names = "default";
+ prescaler = < 0x1 >;
+};
+
+&tcc0 {
+ status = "disabled";
+};
+
+&pinctrl {
+ tcc3_pwm_default: tcc3_pwm_default {
+ group1 {
+ pinmux = <PB17F_TCC3_WO1>;
+ };
+ };
+};
diff --git a/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc4.overlay b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc4.overlay
new file mode 100644
index 0000000..f01eaf5
--- /dev/null
+++ b/tests/drivers/pwm/pwm_api/boards/microchip/sam_e54_xpro_tcc4.overlay
@@ -0,0 +1,32 @@
+/*
+ * Copyright (c) 2025 Microchip Technology Inc.
+ *
+ * SPDX-License-Identifier: Apache-2.0
+ */
+
+/ {
+ aliases {
+ pwm-test = &tcc4;
+ };
+};
+
+&tcc4 {
+ compatible = "microchip,tcc-g1-pwm";
+ status = "okay";
+ #pwm-cells = < 0x3 >;
+ pinctrl-0 = < &tcc4_pwm_default >;
+ pinctrl-names = "default";
+ prescaler = < 0x1 >;
+};
+
+&tcc0 {
+ status = "disabled";
+};
+
+&pinctrl {
+ tcc4_pwm_default: tcc4_pwm_default {
+ group1 {
+ pinmux = <PB30F_TCC4_WO0>;
+ };
+ };
+};
diff --git a/tests/drivers/pwm/pwm_api/testcase.yaml b/tests/drivers/pwm/pwm_api/testcase.yaml
index ce3c7af..1057559 100644
--- a/tests/drivers/pwm/pwm_api/testcase.yaml
+++ b/tests/drivers/pwm/pwm_api/testcase.yaml
@@ -62,3 +62,28 @@
filter: dt_alias_exists("pwm-test") and CONFIG_DT_HAS_NXP_FLEXIO_ENABLED
and CONFIG_DT_HAS_NXP_FLEXIO_PWM_ENABLED
depends_on: pwm
+ drivers.pwm.mchp_tcc0:
+ extra_args: DTC_OVERLAY_FILE="boards/microchip/sam_e54_xpro_tcc0.overlay"
+ platform_allow:
+ - sam_e54_xpro
+ filter: dt_alias_exists("pwm-test")
+ drivers.pwm.mchp_tcc1:
+ extra_args: DTC_OVERLAY_FILE="boards/microchip/sam_e54_xpro_tcc1.overlay"
+ platform_allow:
+ - sam_e54_xpro
+ filter: dt_alias_exists("pwm-test")
+ drivers.pwm.mchp_tcc2:
+ extra_args: DTC_OVERLAY_FILE="boards/microchip/sam_e54_xpro_tcc2.overlay"
+ platform_allow:
+ - sam_e54_xpro
+ filter: dt_alias_exists("pwm-test")
+ drivers.pwm.mchp_tcc3:
+ extra_args: DTC_OVERLAY_FILE="boards/microchip/sam_e54_xpro_tcc3.overlay"
+ platform_allow:
+ - sam_e54_xpro
+ filter: dt_alias_exists("pwm-test")
+ drivers.pwm.mchp_tcc4:
+ extra_args: DTC_OVERLAY_FILE="boards/microchip/sam_e54_xpro_tcc4.overlay"
+ platform_allow:
+ - sam_e54_xpro
+ filter: dt_alias_exists("pwm-test")