From 0fdef97c76bacacd3032bf589cd88ddfc2e1f4bd Mon Sep 17 00:00:00 2001
From: Andrew Tridgell <andrew@tridgell.net>
Date: Sun, 11 Feb 2018 19:29:16 +1100
Subject: [PATCH] AP_Notify: allow ChibiOS to use PixracerLED driver

---
 libraries/AP_Notify/AP_Notify.cpp   |  9 +++++++++
 libraries/AP_Notify/PixRacerLED.cpp | 14 +++++++-------
 2 files changed, 16 insertions(+), 7 deletions(-)

diff --git a/libraries/AP_Notify/AP_Notify.cpp b/libraries/AP_Notify/AP_Notify.cpp
index 1f37ac9941..540341cdf4 100644
--- a/libraries/AP_Notify/AP_Notify.cpp
+++ b/libraries/AP_Notify/AP_Notify.cpp
@@ -220,8 +220,17 @@ void AP_Notify::add_backends(void)
     ADD_BACKEND(new ToneAlarm_Linux());
   #endif
 
+#elif CONFIG_HAL_BOARD == HAL_BOARD_CHIBIOS
+#ifdef HAL_HAVE_PIXRACER_LED
+    ADD_BACKEND(new PixRacerLED());
 #else
     ADD_BACKEND(new AP_BoardLED());
+#endif
+    ADD_BACKEND(new ToshibaLED_I2C(TOSHIBA_LED_I2C_BUS_EXTERNAL));
+    ADD_BACKEND(new ToshibaLED_I2C(TOSHIBA_LED_I2C_BUS_INTERNAL));
+    ADD_BACKEND(new Display());
+#lese
+    ADD_BACKEND(new AP_BoardLED());
     ADD_BACKEND(new ToshibaLED_I2C(TOSHIBA_LED_I2C_BUS_EXTERNAL));
     ADD_BACKEND(new ToshibaLED_I2C(TOSHIBA_LED_I2C_BUS_INTERNAL));
     ADD_BACKEND(new Display());
diff --git a/libraries/AP_Notify/PixRacerLED.cpp b/libraries/AP_Notify/PixRacerLED.cpp
index 1c2064bc09..63c9171cae 100644
--- a/libraries/AP_Notify/PixRacerLED.cpp
+++ b/libraries/AP_Notify/PixRacerLED.cpp
@@ -21,23 +21,23 @@
 extern const AP_HAL::HAL& hal;
 
 PixRacerLED::PixRacerLED() :
-    RGBLed(0, 1, 1, 1)
+    RGBLed(0, HAL_GPIO_LED_OFF, HAL_GPIO_LED_OFF, HAL_GPIO_LED_OFF)
 {
 }
 
 bool PixRacerLED::hw_init(void)
 {
-    hal.gpio->write(HAL_GPIO_A_LED_PIN, 0);
-    hal.gpio->write(HAL_GPIO_B_LED_PIN, 0);
-    hal.gpio->write(HAL_GPIO_C_LED_PIN, 0);
+    hal.gpio->write(HAL_GPIO_A_LED_PIN, HAL_GPIO_LED_OFF);
+    hal.gpio->write(HAL_GPIO_B_LED_PIN, HAL_GPIO_LED_OFF);
+    hal.gpio->write(HAL_GPIO_C_LED_PIN, HAL_GPIO_LED_OFF);
     return true;
 }
 
 bool PixRacerLED::hw_set_rgb(uint8_t r, uint8_t g, uint8_t b)
 {
-    hal.gpio->write(HAL_GPIO_A_LED_PIN, (r > 0));
-    hal.gpio->write(HAL_GPIO_B_LED_PIN, (g > 0));
-    hal.gpio->write(HAL_GPIO_C_LED_PIN, (b > 0));
+    hal.gpio->write(HAL_GPIO_A_LED_PIN, (r > 0)?HAL_GPIO_LED_ON:HAL_GPIO_LED_OFF);
+    hal.gpio->write(HAL_GPIO_B_LED_PIN, (g > 0)?HAL_GPIO_LED_ON:HAL_GPIO_LED_OFF);
+    hal.gpio->write(HAL_GPIO_C_LED_PIN, (b > 0)?HAL_GPIO_LED_ON:HAL_GPIO_LED_OFF);
     return true;
 }