boards: efm32pg_stk3402a: Add minimal pwm support
With this additions samples/basic/blinky_pwm works.
LED0 is used as pwm output.
Signed-off-by: Christian Taedcke <hacking@taedcke.com>
diff --git a/boards/arm/efm32pg_stk3402a/efm32pg_stk3402a_common.dtsi b/boards/arm/efm32pg_stk3402a/efm32pg_stk3402a_common.dtsi
index 2e9adc8..f03b194 100644
--- a/boards/arm/efm32pg_stk3402a/efm32pg_stk3402a_common.dtsi
+++ b/boards/arm/efm32pg_stk3402a/efm32pg_stk3402a_common.dtsi
@@ -21,6 +21,7 @@
aliases {
led0 = &led0;
led1 = &led1;
+ pwm-led0 = &pwm_led0;
sw0 = &button0;
sw1 = &button1;
};
@@ -50,6 +51,14 @@
label = "User Push Button 1";
};
};
+
+ pwmleds {
+ compatible = "pwm-leds";
+ status = "okay";
+ pwm_led0: pwm_led0 {
+ pwms = <&pwm0 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
+ };
+ };
};
&cpu0 {
@@ -81,6 +90,16 @@
status = "okay";
};
+&timer0 {
+ status = "okay";
+
+ pwm0: pwm {
+ status = "okay";
+ pin-location = <GECKO_LOCATION(28) GECKO_PORT_F GECKO_PIN(4)>;
+ prescaler = <1024>;
+ };
+};
+
&gpio {
location-swo = <0>;
status = "okay";
diff --git a/dts/arm/silabs/efm32_jg_pg_12b.dtsi b/dts/arm/silabs/efm32_jg_pg_12b.dtsi
index 703e52f..a01a586 100644
--- a/dts/arm/silabs/efm32_jg_pg_12b.dtsi
+++ b/dts/arm/silabs/efm32_jg_pg_12b.dtsi
@@ -9,6 +9,7 @@
#include <arm/armv7-m.dtsi>
#include <zephyr/dt-bindings/gpio/gpio.h>
#include <zephyr/dt-bindings/i2c/i2c.h>
+#include <zephyr/dt-bindings/pwm/pwm.h>
#include "gpio_gecko.h"
/ {
diff --git a/soc/arm/silabs_exx32/efm32jg12b/Kconfig.defconfig.efm32jg12b b/soc/arm/silabs_exx32/efm32jg12b/Kconfig.defconfig.efm32jg12b
index bedea28..6bf00d5 100644
--- a/soc/arm/silabs_exx32/efm32jg12b/Kconfig.defconfig.efm32jg12b
+++ b/soc/arm/silabs_exx32/efm32jg12b/Kconfig.defconfig.efm32jg12b
@@ -28,3 +28,7 @@
config SPI_GECKO
default y
depends on SPI
+
+config PWM_GECKO
+ default y
+ depends on PWM
diff --git a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b
index 8643b82..cbebd89 100644
--- a/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b
+++ b/soc/arm/silabs_exx32/efm32pg12b/Kconfig.defconfig.efm32pg12b
@@ -28,3 +28,7 @@
config SPI_GECKO
default y
depends on SPI
+
+config PWM_GECKO
+ default y
+ depends on PWM