diff --git a/boards/arm/rpi_pico/doc/index.rst b/boards/arm/rpi_pico/doc/index.rst index 2e082b0365a..1199e68e1b6 100644 --- a/boards/arm/rpi_pico/doc/index.rst +++ b/boards/arm/rpi_pico/doc/index.rst @@ -70,6 +70,9 @@ hardware features: * - Watchdog Timer (WDT) - :kconfig:option:`CONFIG_WATCHDOG` - :dtcompatible:`raspberrypi,pico-watchdog` + * - PWM + - :kconfig: `CONFIG_PWM` + - :dtcompatible: `raspberrypi,pico-pwm` Programming and Debugging ************************* diff --git a/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi b/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi index e25ad21761f..699db9c1790 100644 --- a/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi +++ b/boards/arm/rpi_pico/rpi_pico-pinctrl.dtsi @@ -31,4 +31,10 @@ input-schmitt-enable; }; }; + + pwm_ch4b_default: pwm_ch4b_default { + group1 { + pinmux = ; + }; + }; }; diff --git a/boards/arm/rpi_pico/rpi_pico.dts b/boards/arm/rpi_pico/rpi_pico.dts index 4dcc03c13b7..497d939c1bd 100644 --- a/boards/arm/rpi_pico/rpi_pico.dts +++ b/boards/arm/rpi_pico/rpi_pico.dts @@ -8,6 +8,7 @@ #include #include "rpi_pico-pinctrl.dtsi" +#include #include @@ -34,9 +35,19 @@ #clock-cells = <0>; }; + pwm_leds { + compatible = "pwm-leds"; + pwm_led0: pwm_led_0 { + status = "disabled"; + pwms = <&pwm 9 PWM_MSEC(20) PWM_POLARITY_NORMAL>; + label = "PWM_LED"; + }; + }; + aliases { led0 = &led0; watchdog0 = &wdt0; + pwm-led0 = &pwm_led0; }; }; @@ -99,3 +110,9 @@ zephyr_udc0: &usbd { status = "okay"; }; + +&pwm { + pinctrl-0 = <&pwm_ch4b_default>; + pinctrl-names = "default"; + divider-int-0 = <255>; +}; diff --git a/boards/arm/rpi_pico/rpi_pico.yaml b/boards/arm/rpi_pico/rpi_pico.yaml index 9b17fb62d74..3dd36884583 100644 --- a/boards/arm/rpi_pico/rpi_pico.yaml +++ b/boards/arm/rpi_pico/rpi_pico.yaml @@ -14,3 +14,4 @@ supported: - i2c - hwinfo - watchdog + - pwm