#include #include #include #include #include #include #include #include #include #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 }