summaryrefslogtreecommitdiff
path: root/quantum
diff options
context:
space:
mode:
authorJosh Hinnebusch <joshhinnebusch@gmail.com>2020-12-06 01:15:48 -0500
committerGitHub <noreply@github.com>2020-12-06 17:15:48 +1100
commitc59f87a5d73a2d8a2085663ae329c4d7c75c83e3 (patch)
treeb1778e21ae0dd43261e79cbca5d2779a35b96627 /quantum
parent08bf9f9e740a741d674585b5920e4c3a107825b9 (diff)
add definition WS2812_BYTE_ORDER to fix RGB LED issues (#10184)
* add define for WS2812B-2020 to fix RGB issues * update driver doc * add WS2812_BYTE_ORDER definition to correct RGB byte issues * add definition variable thing * update per PR request * update per PR reqs * update per PR request * inital changes * move defines to color.h and add rgbw incase * Update docs/ws2812_driver.md Co-authored-by: Ryan <fauxpark@gmail.com> Co-authored-by: hineybush <hineybushkeyboards@gmail.com> Co-authored-by: Xelus22 <preyas22@gmail.com> Co-authored-by: Ryan <fauxpark@gmail.com>
Diffstat (limited to 'quantum')
-rw-r--r--quantum/color.h20
1 files changed, 19 insertions, 1 deletions
diff --git a/quantum/color.h b/quantum/color.h
index 5c5a0f0ebd..f0ee782757 100644
--- a/quantum/color.h
+++ b/quantum/color.h
@@ -36,20 +36,38 @@
# define LED_TYPE RGB
#endif
-// WS2812 specific layout
+#define WS2812_BYTE_ORDER_RGB 0
+#define WS2812_BYTE_ORDER_GRB 1
+
+#ifndef WS2812_BYTE_ORDER
+# define WS2812_BYTE_ORDER WS2812_BYTE_ORDER_GRB
+#endif
+
typedef struct PACKED {
+#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
uint8_t g;
uint8_t r;
uint8_t b;
+#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB)
+ uint8_t r;
+ uint8_t g;
+ uint8_t b;
+#endif
} cRGB;
typedef cRGB RGB;
// WS2812 specific layout
typedef struct PACKED {
+#if (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_GRB)
uint8_t g;
uint8_t r;
uint8_t b;
+#elif (WS2812_BYTE_ORDER == WS2812_BYTE_ORDER_RGB)
+ uint8_t r;
+ uint8_t g;
+ uint8_t b;
+#endif
uint8_t w;
} cRGBW;