WS2812 driver for nRF5340

Is there an officially supported nRF53-compatible driver for WS2812 RGB LEDs? The official Zephyr example (https://github.com/zephyrproject-rtos/zephyr/tree/e3c06c5d8f6b3cb004a8521b3e063649228c61e8/samples/drivers/led_ws2812) does not support the nRF53 series and the only example code I found for the nRF53 series was https://www.hackster.io/mahmood-ul-hassan/how-to-interface-nordic-thingy-53-with-neopixels-ws2812b-c79533 which did not work correctly on the nRF7002DK I am using. (In the second example, I changed the pin to P0.07 since P0.08 was overlapping with some other configuration).

Update: I managed to get the official example working using I2S, but it's unstable. The colors flicker and the wrong colors are displayed randomly. I suspect it may be some timing issues but I could not figure out how to fix it. The overlay config for the nRF7002DK that i created and used is the following:

#include <zephyr/dt-bindings/led/led.h>
#include <nordic/nrf5340_cpuapp_qkaa.dtsi>

&pinctrl {
	i2s0_default_alt: i2s0_default_alt {
		group1 {
			psels = <NRF_PSEL(I2S_SCK_M, 1, 15)>,
				<NRF_PSEL(I2S_LRCK_M, 1, 12)>,
				<NRF_PSEL(I2S_SDOUT, 1, 13)>, // Output pin to LED strip
				<NRF_PSEL(I2S_SDIN, 1, 14)>;
		};
	};
};

i2s_led: &i2s0 {
	status = "okay";
	pinctrl-0 = <&i2s0_default_alt>;
	pinctrl-names = "default";
};

/ {
	//compatible = "nordic,nrf7002-dk-nrf5340-cpuapp";
	led_strip: ws2812 {
		compatible = "worldsemi,ws2812-i2s";

		i2s-dev = < &i2s_led >;
		chain-length = <100>;
		color-mapping = <LED_COLOR_ID_GREEN
					LED_COLOR_ID_RED
					LED_COLOR_ID_BLUE>;
		reset-delay = <2000>; // not sure if increasing this helped
		nibble-one = < 14 >; // default value
		nibble-zero = < 8 >; // default value
		extra-wait-time = < 600 >; // this did not help
		
	};

	aliases {
		led-strip = &led_strip;
	};
};

Related