Commit bb4c92af authored by Karol Lasończyk's avatar Karol Lasończyk Committed by Fabio Baltieri
Browse files

boards: nordic: Add PWM support for LEDs on nRF54 DKs



Adds support for first possible LED to be connected with HW PWM.

Signed-off-by: default avatarKarol Lasończyk <karol.lasonczyk@nordicsemi.no>
parent f30b414b
Loading
Loading
Loading
Loading
+13 −0
Original line number Diff line number Diff line
@@ -66,4 +66,17 @@
				<NRF_PSEL(CAN_TX, 9, 5)>;
		};
	};

	/omit-if-no-ref/ pwm130_default: pwm130_default {
		group1 {
			psels = <NRF_PSEL(PWM_OUT0, 9, 2)>;
		};
	};

	/omit-if-no-ref/ pwm130_sleep: pwm130_sleep {
		group1 {
			psels = <NRF_PSEL(PWM_OUT0, 9, 2)>;
			low-power-enable;
		};
	};
};
+21 −0
Original line number Diff line number Diff line
@@ -36,6 +36,7 @@
		led2 = &led2;
		led3 = &led3;
		resetinfo = &cpuapp_resetinfo;
		pwm-led0 = &pwm_led2;
		sw0 = &button0;
		sw1 = &button1;
		sw2 = &button2;
@@ -95,6 +96,18 @@
			label = "Green LED 3";
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		/*
		 * LEDs are connected to GPIO Port 9 - pins 0-3. There is no valid hardware
		 * configuration to pass PWM signal on pis 0 and 1. First valid config is P9.2.
		 * Signal on PWM130's channel 0 can be passed directly on GPIO Port 9 pin 2.
		 */
		pwm_led2: pwm_led_2 {
			pwms = <&pwm130 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
		};
	};
};

&cpuapp_ram0x_region {
@@ -261,3 +274,11 @@ zephyr_udc0: &usbhs {
	pinctrl-0 = <&can120_default>;
	pinctrl-names = "default";
};

&pwm130 {
	status = "okay";
	pinctrl-0 = <&pwm130_default>;
	pinctrl-1 = <&pwm130_sleep>;
	pinctrl-names = "default", "sleep";
	memory-regions = <&cpuapp_dma_region>;
};
+21 −0
Original line number Diff line number Diff line
@@ -27,6 +27,19 @@
		};
	};

	pwmleds {
		compatible = "pwm-leds";
		/*
		 * PWM signal can be exposed on GPIO pin only within same domain.
		 * There is only one domain which contains both PWM and GPIO:
		 * PWM20/21/22 and GPIO Port P1.
		 * Only LEDs connected to P1 can work with PWM, for example LED1.
		 */
		pwm_led1: pwm_led_1 {
			pwms = <&pwm20 0 PWM_MSEC(20) PWM_POLARITY_NORMAL>;
		};
	};

	buttons {
		compatible = "gpio-keys";
		button0: button_0 {
@@ -56,6 +69,7 @@
		led1 = &led1;
		led2 = &led2;
		led3 = &led3;
		pwm-led0 = &pwm_led1;
		sw0 = &button0;
		sw1 = &button1;
		sw2 = &button2;
@@ -77,3 +91,10 @@
	pinctrl-1 = <&uart30_sleep>;
	pinctrl-names = "default", "sleep";
};

&pwm20 {
	status = "okay";
	pinctrl-0 = <&pwm20_default>;
	pinctrl-1 = <&pwm20_sleep>;
	pinctrl-names = "default", "sleep";
};
+13 −0
Original line number Diff line number Diff line
@@ -64,4 +64,17 @@
				low-power-enable;
		};
	};

	/omit-if-no-ref/ pwm20_default: pwm20_default {
		group1 {
			psels = <NRF_PSEL(PWM_OUT0, 1, 10)>;
		};
	};

	/omit-if-no-ref/ pwm20_sleep: pwm20_sleep {
		group1 {
			psels = <NRF_PSEL(PWM_OUT0, 1, 10)>;
			low-power-enable;
		};
	};
};
+15 −0
Original line number Diff line number Diff line
@@ -35,3 +35,18 @@
&button3 {
	gpios = <&gpio2 10 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>;
};

&pinctrl {
	/omit-if-no-ref/ pwm20_default: pwm20_default {
		group1 {
			psels = <NRF_PSEL(PWM_OUT0, 1, 8)>;
		};
	};

	/omit-if-no-ref/ pwm20_sleep: pwm20_sleep {
		group1 {
			psels = <NRF_PSEL(PWM_OUT0, 1, 8)>;
			low-power-enable;
		};
	};
};