Browse Source

boards: arduino: add PWM support for the Nano Matter

The onboard RGB LED is now controllable via PWM.

Signed-off-by: Tamas Jozsi <tamas.jozsi@silabs.com>
pull/92320/head
Tamas Jozsi 2 weeks ago committed by Daniel DeGrasse
parent
commit
67e3480c9f
  1. 8
      boards/arduino/nano_matter/arduino_nano_matter-pinctrl.dtsi
  2. 33
      boards/arduino/nano_matter/arduino_nano_matter.dts

8
boards/arduino/nano_matter/arduino_nano_matter-pinctrl.dtsi

@ -44,6 +44,14 @@
}; };
}; };
timer0_default: timer0_default {
group0 {
pins = <TIMER0_CC0_PC1>, <TIMER0_CC1_PC2>, <TIMER0_CC2_PC3>;
drive-push-pull;
output-high;
};
};
usart0_default: usart0_default { usart0_default: usart0_default {
group0 { group0 {
pins = <USART0_TX_PC4>; pins = <USART0_TX_PC4>;

33
boards/arduino/nano_matter/arduino_nano_matter.dts

@ -8,6 +8,7 @@
/dts-v1/; /dts-v1/;
#include <silabs/xg24/mgm240sd22vna.dtsi> #include <silabs/xg24/mgm240sd22vna.dtsi>
#include <zephyr/dt-bindings/input/input-event-codes.h> #include <zephyr/dt-bindings/input/input-event-codes.h>
#include <zephyr/dt-bindings/pwm/pwm.h>
#include "arduino_nano_matter-pinctrl.dtsi" #include "arduino_nano_matter-pinctrl.dtsi"
#include "arduino_nano_matter_connector.dtsi" #include "arduino_nano_matter_connector.dtsi"
@ -30,6 +31,9 @@
led0 = &led0; led0 = &led0;
led1 = &led1; led1 = &led1;
led2 = &led2; led2 = &led2;
pwm-led0 = &red_pwm_led;
pwm-led1 = &green_pwm_led;
pwm-led2 = &blue_pwm_led;
sw0 = &button0; sw0 = &button0;
watchdog0 = &wdog0; watchdog0 = &wdog0;
}; };
@ -53,6 +57,25 @@
}; };
}; };
pwmleds {
compatible = "pwm-leds";
red_pwm_led: pwm_led_0 {
pwms = <&timer0_pwm 0 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
label = "red";
};
green_pwm_led: pwm_led_1 {
pwms = <&timer0_pwm 1 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
label = "green";
};
blue_pwm_led: pwm_led_2 {
pwms = <&timer0_pwm 2 PWM_MSEC(20) PWM_POLARITY_INVERTED>;
label = "blue";
};
};
buttons { buttons {
compatible = "gpio-keys"; compatible = "gpio-keys";
@ -63,6 +86,16 @@
}; };
}; };
&timer0 {
status = "okay";
timer0_pwm: pwm {
pinctrl-0 = <&timer0_default>;
pinctrl-names = "default";
status = "okay";
};
};
&cpu0 { &cpu0 {
clock-frequency = <78000000>; clock-frequency = <78000000>;
}; };

Loading…
Cancel
Save