aboutsummaryrefslogtreecommitdiffstats
path: root/src/neopix.c
diff options
context:
space:
mode:
authorLouis Burda <quent.burda@gmail.com>2022-11-29 04:50:45 +0100
committerLouis Burda <quent.burda@gmail.com>2022-11-29 04:50:45 +0100
commit6defee37f9939991bbf3152e2cd4e18593baa541 (patch)
treee743df5b0b7234dbb56da95f551f7fab90da5127 /src/neopix.c
parent20c38dd87e618713ff9bd131e39cc95dfdb949c8 (diff)
downloadsxkbd-6defee37f9939991bbf3152e2cd4e18593baa541.tar.gz
sxkbd-6defee37f9939991bbf3152e2cd4e18593baa541.zip
Fix pio uart integration with neopix pio
Diffstat (limited to 'src/neopix.c')
-rw-r--r--src/neopix.c14
1 files changed, 9 insertions, 5 deletions
diff --git a/src/neopix.c b/src/neopix.c
index 107f354..028f01c 100644
--- a/src/neopix.c
+++ b/src/neopix.c
@@ -1,15 +1,19 @@
-#include "hardware/pio.h"
-
#include "neopix.h"
#include "ws2812.pio.h"
+#include "util.h"
+
+#include "hardware/pio.h"
void
-neopix_init(struct neopix *pix, PIO pio, uint sm, uint pin)
+neopix_init(struct neopix *pix, uint pin)
{
uint offset;
+ int sm;
- pix->sm = sm;
- pix->pio = pio;
+ pix->pio = pio0;
+ sm = pio_claim_unused_sm(pix->pio, true);
+ ASSERT(sm >= 0);
+ pix->sm = (uint) sm;
pix->pin = pin;
offset = pio_add_program(pix->pio, &ws2812_program);
ws2812_program_init(pix->pio, pix->sm, offset,