sk6812d/src/sk6812.c

46 lines
855 B
C

#include <time.h>
#include <string.h>
#include <malloc.h>
#include <errno.h>
#include <unistd.h>
#include <fcntl.h>
#include <sys/ioctl.h>
#include <sys/types.h>
#include <linux/spi/spidev.h>
#include "logger.h"
#include "sk6812.h"
int sk6812_init(struct sk6812_ctx *ctx, uint32_t gpio_idx, void *phys_baseptr, uint32_t num_modules)
{
// TODO:
// - map memory
// - setup GPIO
return 0;
}
void sk6812_shutdown(struct sk6812_ctx *ctx)
{
// TODO:
// - unmap memory
}
void sk6812_set_colour(struct sk6812_ctx *ctx, uint32_t module, uint8_t red, uint8_t green, uint8_t blue, uint8_t white)
{
uint32_t value =
((uint32_t)red << 24U) |
((uint32_t)green << 16U) |
((uint32_t)blue << 8U) |
(uint32_t)white;
ctx->memptr->led_data[module] = value;
}
void sk6812_send_update(struct sk6812_ctx *ctx)
{
// TODO: generate rising edge on GPIO
}