From 9d42480f4e6775901803b7de260c65083cf4c760 Mon Sep 17 00:00:00 2001
From: Daniel Agar <daniel@agar.ca>
Date: Sat, 1 Dec 2018 13:53:54 -0500
Subject: [PATCH] drivers create lights category (directory)

---
 boards/aerotenna/ocpoc/ubuntu.cmake           |  4 +-
 boards/airmind/mindpx-v2/default.cmake        |  6 +--
 boards/atlflight/eagle/default.cmake          |  4 +-
 boards/atlflight/excelsior/default.cmake      |  4 +-
 boards/atmel/same70xplained/default.cmake     | 12 +++---
 boards/auav/x21/default.cmake                 |  8 ++--
 boards/av/x-v1/default.cmake                  | 10 ++---
 boards/gumstix/aerocore2/default.cmake        |  8 ++--
 boards/nxp/fmuk66-v3/default.cmake            | 14 +++----
 boards/omnibus/f4sd/default.cmake             |  6 +--
 boards/px4/fmu-v2/default.cmake               | 10 ++---
 boards/px4/fmu-v2/lpe.cmake                   | 10 ++---
 boards/px4/fmu-v2/test.cmake                  | 10 ++---
 boards/px4/fmu-v3/default.cmake               | 12 +++---
 boards/px4/fmu-v3/rtps.cmake                  | 12 +++---
 boards/px4/fmu-v3/stackcheck.cmake            | 10 ++---
 boards/px4/fmu-v4/default.cmake               |  8 ++--
 boards/px4/fmu-v4/rtps.cmake                  |  8 ++--
 boards/px4/fmu-v4/stackcheck.cmake            |  8 ++--
 boards/px4/fmu-v4pro/default.cmake            | 14 +++----
 boards/px4/fmu-v4pro/rtps.cmake               | 14 +++----
 boards/px4/fmu-v5/default.cmake               | 14 +++----
 boards/px4/fmu-v5/rtps.cmake                  | 14 +++----
 boards/px4/fmu-v5/stackcheck.cmake            | 10 ++---
 boards/stm/32f4discovery/default.cmake        |  6 +--
 boards/stm/nucleo-F767ZI/default.cmake        | 10 ++---
 src/drivers/lights/CMakeLists.txt             | 37 +++++++++++++++++++
 .../{ => lights}/blinkm/CMakeLists.txt        |  0
 src/drivers/{ => lights}/blinkm/blinkm.cpp    |  0
 .../{ => lights}/oreoled/CMakeLists.txt       |  0
 src/drivers/{ => lights}/oreoled/oreoled.cpp  |  0
 .../{ => lights}/rgbled/CMakeLists.txt        |  0
 src/drivers/{ => lights}/rgbled/rgbled.cpp    |  0
 .../{ => lights}/rgbled/rgbled_params.c       |  0
 .../rgbled_ncp5623c/CMakeLists.txt            |  0
 .../rgbled_ncp5623c/rgbled_ncp5623c.cpp       |  0
 .../rgbled_ncp5623c/rgbled_ncp5623c_params.c  |  0
 .../{ => lights}/rgbled_pwm/CMakeLists.txt    |  0
 .../{ => lights}/rgbled_pwm/rgbled_pwm.cpp    |  0
 39 files changed, 160 insertions(+), 123 deletions(-)
 create mode 100644 src/drivers/lights/CMakeLists.txt
 rename src/drivers/{ => lights}/blinkm/CMakeLists.txt (100%)
 rename src/drivers/{ => lights}/blinkm/blinkm.cpp (100%)
 rename src/drivers/{ => lights}/oreoled/CMakeLists.txt (100%)
 rename src/drivers/{ => lights}/oreoled/oreoled.cpp (100%)
 rename src/drivers/{ => lights}/rgbled/CMakeLists.txt (100%)
 rename src/drivers/{ => lights}/rgbled/rgbled.cpp (100%)
 rename src/drivers/{ => lights}/rgbled/rgbled_params.c (100%)
 rename src/drivers/{ => lights}/rgbled_ncp5623c/CMakeLists.txt (100%)
 rename src/drivers/{ => lights}/rgbled_ncp5623c/rgbled_ncp5623c.cpp (100%)
 rename src/drivers/{ => lights}/rgbled_ncp5623c/rgbled_ncp5623c_params.c (100%)
 rename src/drivers/{ => lights}/rgbled_pwm/CMakeLists.txt (100%)
 rename src/drivers/{ => lights}/rgbled_pwm/rgbled_pwm.cpp (100%)

diff --git a/boards/aerotenna/ocpoc/ubuntu.cmake b/boards/aerotenna/ocpoc/ubuntu.cmake
index e7d4745285..58ac1c8236 100644
--- a/boards/aerotenna/ocpoc/ubuntu.cmake
+++ b/boards/aerotenna/ocpoc/ubuntu.cmake
@@ -15,11 +15,11 @@ px4_add_board(
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
+		#imu # all available imu drivers
+		lights/rgbled
 		linux_pwm_out
 		linux_sbus
-		#imu # all available imu drivers
 		#magnetometer # all available magnetometer drivers
-		rgbled
 		pwm_out_sim
 		#telemetry # all available telemetry drivers
 		vmount
diff --git a/boards/airmind/mindpx-v2/default.cmake b/boards/airmind/mindpx-v2/default.cmake
index d153ea8935..7655e43a6a 100644
--- a/boards/airmind/mindpx-v2/default.cmake
+++ b/boards/airmind/mindpx-v2/default.cmake
@@ -17,7 +17,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -29,16 +28,17 @@ px4_add_board(
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/atlflight/eagle/default.cmake b/boards/atlflight/eagle/default.cmake
index add68a96e7..33ab3a58c9 100644
--- a/boards/atlflight/eagle/default.cmake
+++ b/boards/atlflight/eagle/default.cmake
@@ -52,10 +52,10 @@ px4_add_board(
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
-		linux_sbus
 		#imu # all available imu drivers
+		lights/rgbled
+		linux_sbus
 		#magnetometer # all available magnetometer drivers
-		rgbled
 		pwm_out_sim
 		qshell/posix
 		#telemetry # all available telemetry drivers
diff --git a/boards/atlflight/excelsior/default.cmake b/boards/atlflight/excelsior/default.cmake
index 7c8581fbc8..01bde7b3f0 100644
--- a/boards/atlflight/excelsior/default.cmake
+++ b/boards/atlflight/excelsior/default.cmake
@@ -52,10 +52,10 @@ px4_add_board(
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
-		linux_sbus
 		#imu # all available imu drivers
+		lights/rgbled
+		linux_sbus
 		#magnetometer # all available magnetometer drivers
-		rgbled
 		pwm_out_sim
 		qshell/posix
 		#telemetry # all available telemetry drivers
diff --git a/boards/atmel/same70xplained/default.cmake b/boards/atmel/same70xplained/default.cmake
index 3f22b70f8a..3c5d2dfd52 100644
--- a/boards/atmel/same70xplained/default.cmake
+++ b/boards/atmel/same70xplained/default.cmake
@@ -17,35 +17,35 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		#camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
 		#imu # all available imu drivers
+		imu/l3gd20
+		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
-		imu/lsm303d
-		imu/l3gd20
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		#pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		#rc_input
-		rgbled
 		samv7
-		#WIP samv7/adc
 		samv7/tone_alarm
 		tap_esc
 		telemetry # all available telemetry drivers
 		#test_ppm
 		vmount
+		#WIP samv7/adc
 
 	MODULES
 		attitude_estimator_q
diff --git a/boards/auav/x21/default.cmake b/boards/auav/x21/default.cmake
index 02593fd0c0..09e25df1da 100644
--- a/boards/auav/x21/default.cmake
+++ b/boards/auav/x21/default.cmake
@@ -18,7 +18,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -28,10 +27,13 @@ px4_add_board(
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -41,8 +43,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/av/x-v1/default.cmake b/boards/av/x-v1/default.cmake
index 6bc430ba7c..e7611ebab4 100644
--- a/boards/av/x-v1/default.cmake
+++ b/boards/av/x-v1/default.cmake
@@ -19,19 +19,21 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16477
+		#imu # all available imu drivers
 		irlock
+		lights/blinkm
+		#lights/oreoled
+		#lights/rgbled
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		#oreoled
 		#pca8574
 		pca9685
 		#pmw3901
@@ -41,8 +43,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		rc_input
-		#rgbled
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/gumstix/aerocore2/default.cmake b/boards/gumstix/aerocore2/default.cmake
index 1c417e32f7..4fe66193f7 100644
--- a/boards/gumstix/aerocore2/default.cmake
+++ b/boards/gumstix/aerocore2/default.cmake
@@ -16,7 +16,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		#batt_smbus
-		#blinkm
 		#camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -26,10 +25,13 @@ px4_add_board(
 		imu/l3gd20
 		imu/lsm303d
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		#lights/rgbled
+		#lights/rgbled_pwm
 		#magnetometer # all available magnetometer drivers
 		#md25
 		#mkblctrl
-		#oreoled
 		#pca8574
 		#pca9685
 		#pmw3901
@@ -39,8 +41,6 @@ px4_add_board(
 		#px4flow
 		px4fmu
 		rc_input
-		#rgbled
-		#rgbled_pwm
 		#roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/nxp/fmuk66-v3/default.cmake b/boards/nxp/fmuk66-v3/default.cmake
index c0a50dcbbc..eb0e141fe1 100644
--- a/boards/nxp/fmuk66-v3/default.cmake
+++ b/boards/nxp/fmuk66-v3/default.cmake
@@ -17,14 +17,10 @@ px4_add_board(
 		barometer # all available barometer drivers
 		barometer/mpl3115a2
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
-		kinetis
-		kinetis/adc
-		kinetis/tone_alarm
 		#heater
 		#imu # all available imu drivers
 		imu/fxas21002c
@@ -33,17 +29,21 @@ px4_add_board(
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		kinetis
+		kinetis/adc
+		kinetis/tone_alarm
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		#pwm_input # NOT Portable YET drivers
 		pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		rgbled_pwm
 		tap_esc
 		telemetry # all available telemetry drivers
 		#test_ppm # NOT Portable YET
diff --git a/boards/omnibus/f4sd/default.cmake b/boards/omnibus/f4sd/default.cmake
index 1bd69e5edc..7903f82155 100644
--- a/boards/omnibus/f4sd/default.cmake
+++ b/boards/omnibus/f4sd/default.cmake
@@ -15,7 +15,6 @@ px4_add_board(
 		#barometer # all available barometer drivers
 		barometer/bmp280
 		#batt_smbus
-		#blinkm
 		#camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		#distance_sensor # all available distance sensor drivers
@@ -24,17 +23,18 @@ px4_add_board(
 		#imu # all available imu drivers
 		imu/mpu6000
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		magnetometer/hmc5883
 		#mkblctrl
-		#oreoled
 		#pca9685
 		#pwm_input
 		#pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
 		stm32
 		stm32/adc
 		#stm32/tone_alarm
diff --git a/boards/px4/fmu-v2/default.cmake b/boards/px4/fmu-v2/default.cmake
index 5fc1db62b9..a47550e118 100644
--- a/boards/px4/fmu-v2/default.cmake
+++ b/boards/px4/fmu-v2/default.cmake
@@ -22,7 +22,6 @@ px4_add_board(
 		#barometer # all available barometer drivers
 		barometer/ms5611
 		#batt_smbus
-		#blinkm
 		#camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		differential_pressure/ms4525
@@ -31,26 +30,27 @@ px4_add_board(
 		distance_sensor/sf0x
 		gps
 		#heater
-		#imu # all available imu drivers
 		#imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
 		#iridiumsbd
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		magnetometer/hmc5883
 		#mkblctrl
-		#oreoled
-		#protocol_splitter
 		#pca9685
+		#protocol_splitter
 		#pwm_input
 		#pwm_out_sim
 		px4flow
 		px4fmu
 		px4io
-		rgbled
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v2/lpe.cmake b/boards/px4/fmu-v2/lpe.cmake
index 398206d16c..08f8961b24 100644
--- a/boards/px4/fmu-v2/lpe.cmake
+++ b/boards/px4/fmu-v2/lpe.cmake
@@ -22,33 +22,33 @@ px4_add_board(
 		#barometer # all available barometer drivers
 		barometer/ms5611
 		#batt_smbus
-		#blinkm
 		camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		#differential_pressure/ms4525
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		#imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		#imu/mpu9250
 		#iridiumsbd
 		irlock
+		#lights/blinkm
+		#lights/oreoled
+		lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		magnetometer/hmc5883
 		#mkblctrl
-		#oreoled
-		#protocol_splitter
 		#pca9685
+		#protocol_splitter
 		#pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		px4io
-		rgbled
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v2/test.cmake b/boards/px4/fmu-v2/test.cmake
index 72327e6612..95096f1565 100644
--- a/boards/px4/fmu-v2/test.cmake
+++ b/boards/px4/fmu-v2/test.cmake
@@ -21,7 +21,6 @@ px4_add_board(
 		#barometer # all available barometer drivers
 		barometer/ms5611
 		#batt_smbus
-		#blinkm
 		camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		differential_pressure/ms4525
@@ -30,26 +29,27 @@ px4_add_board(
 		distance_sensor/sf0x
 		gps
 		#heater
-		#imu # all available imu drivers
 		#imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
 		#iridiumsbd
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		magnetometer/hmc5883
 		#mkblctrl
-		#oreoled
-		#protocol_splitter
 		#pca9685
+		#protocol_splitter
 		#pwm_input
 		#pwm_out_sim
 		px4flow
 		px4fmu
 		px4io
-		rgbled
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v3/default.cmake b/boards/px4/fmu-v3/default.cmake
index 7e38d1f438..dee24922bc 100644
--- a/boards/px4/fmu-v3/default.cmake
+++ b/boards/px4/fmu-v3/default.cmake
@@ -22,23 +22,26 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -48,9 +51,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v3/rtps.cmake b/boards/px4/fmu-v3/rtps.cmake
index 2b4b3585f0..bafead3e48 100644
--- a/boards/px4/fmu-v3/rtps.cmake
+++ b/boards/px4/fmu-v3/rtps.cmake
@@ -22,23 +22,26 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
 		imu/l3gd20
 		imu/lsm303d
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -48,9 +51,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v3/stackcheck.cmake b/boards/px4/fmu-v3/stackcheck.cmake
index b5441c0808..02c4a74803 100644
--- a/boards/px4/fmu-v3/stackcheck.cmake
+++ b/boards/px4/fmu-v3/stackcheck.cmake
@@ -22,7 +22,7 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
+		lights/blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -38,7 +38,7 @@ px4_add_board(
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
+		lights/oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -48,9 +48,9 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v4/default.cmake b/boards/px4/fmu-v4/default.cmake
index 3f616f356c..09b5be6d67 100644
--- a/boards/px4/fmu-v4/default.cmake
+++ b/boards/px4/fmu-v4/default.cmake
@@ -18,7 +18,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -26,17 +25,18 @@ px4_add_board(
 		heater
 		imu # all available imu drivers
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		rgbled_ncp5623c
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v4/rtps.cmake b/boards/px4/fmu-v4/rtps.cmake
index 5f46abf326..1a53101872 100644
--- a/boards/px4/fmu-v4/rtps.cmake
+++ b/boards/px4/fmu-v4/rtps.cmake
@@ -18,7 +18,6 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -26,9 +25,12 @@ px4_add_board(
 		heater
 		imu # all available imu drivers
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
 		pca9685
 		protocol_splitter
 		pwm_input
@@ -36,8 +38,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		rgbled_ncp5623c
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v4/stackcheck.cmake b/boards/px4/fmu-v4/stackcheck.cmake
index f0438a5e77..4634d80a77 100644
--- a/boards/px4/fmu-v4/stackcheck.cmake
+++ b/boards/px4/fmu-v4/stackcheck.cmake
@@ -18,7 +18,7 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
+		lights/blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -28,15 +28,15 @@ px4_add_board(
 		irlock
 		magnetometer # all available magnetometer drivers
 		mkblctrl
-		oreoled
+		lights/oreoled
 		pca9685
 		pwm_input
 		pwm_out_sim
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		rgbled_ncp5623c
+		lights/rgbled
+		lights/rgbled_ncp5623c
 		stm32
 		stm32/adc
 		stm32/tone_alarm
diff --git a/boards/px4/fmu-v4pro/default.cmake b/boards/px4/fmu-v4pro/default.cmake
index 3ef6a77218..6648589536 100644
--- a/boards/px4/fmu-v4pro/default.cmake
+++ b/boards/px4/fmu-v4pro/default.cmake
@@ -21,23 +21,26 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
 		#imu # all available imu drivers
-		imu/bmi160
 		imu/bma180
-		imu/mpu6000
+		imu/bmi160
 		imu/l3gd20
+		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -47,9 +50,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v4pro/rtps.cmake b/boards/px4/fmu-v4pro/rtps.cmake
index b77f54699c..81946efe04 100644
--- a/boards/px4/fmu-v4pro/rtps.cmake
+++ b/boards/px4/fmu-v4pro/rtps.cmake
@@ -21,23 +21,26 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
 		#imu # all available imu drivers
-		imu/bmi160
 		imu/bma180
-		imu/mpu6000
+		imu/bmi160
 		imu/l3gd20
+		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -47,9 +50,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		px4io
-		rgbled
-		rgbled_ncp5623c
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v5/default.cmake b/boards/px4/fmu-v5/default.cmake
index 356e13690e..c86ba88cd2 100644
--- a/boards/px4/fmu-v5/default.cmake
+++ b/boards/px4/fmu-v5/default.cmake
@@ -19,24 +19,27 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
+		imu/bma180
 		imu/bmi055
 		imu/bmi160
-		imu/bma180
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		pmw3901
@@ -47,9 +50,6 @@ px4_add_board(
 		px4fmu
 		px4io
 		rc_input
-		rgbled
-		rgbled_ncp5623c
-		rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v5/rtps.cmake b/boards/px4/fmu-v5/rtps.cmake
index caf5e7785e..a466c76fd2 100644
--- a/boards/px4/fmu-v5/rtps.cmake
+++ b/boards/px4/fmu-v5/rtps.cmake
@@ -20,24 +20,27 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
+		imu/bma180
 		imu/bmi055
 		imu/bmi160
-		imu/bma180
 		imu/mpu6000
 		imu/mpu9250
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		pmw3901
@@ -48,9 +51,6 @@ px4_add_board(
 		px4fmu
 		px4io
 		rc_input
-		rgbled
-		rgbled_ncp5623c
-		rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/px4/fmu-v5/stackcheck.cmake b/boards/px4/fmu-v5/stackcheck.cmake
index 29c1925a8c..77a95e3554 100644
--- a/boards/px4/fmu-v5/stackcheck.cmake
+++ b/boards/px4/fmu-v5/stackcheck.cmake
@@ -20,7 +20,7 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
+		lights/blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
@@ -37,7 +37,7 @@ px4_add_board(
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
+		lights/oreoled
 		pca8574
 		pca9685
 		pmw3901
@@ -48,9 +48,9 @@ px4_add_board(
 		px4fmu
 		px4io
 		rc_input
-		rgbled
-		rgbled_ncp5623c
-		rgbled_pwm
+		lights/rgbled
+		lights/rgbled_ncp5623c
+		lights/rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/boards/stm/32f4discovery/default.cmake b/boards/stm/32f4discovery/default.cmake
index db2dbd450e..8322aad8ae 100644
--- a/boards/stm/32f4discovery/default.cmake
+++ b/boards/stm/32f4discovery/default.cmake
@@ -11,7 +11,6 @@ px4_add_board(
 	DRIVERS
 		#barometer # all available barometer drivers
 		#batt_smbus
-		#blinkm
 		#camera_trigger
 		#differential_pressure # all available differential pressure drivers
 		#distance_sensor # all available distance sensor drivers
@@ -19,16 +18,17 @@ px4_add_board(
 		#heater
 		#imu # all available imu drivers
 		#irlock
+		#lights/blinkm
+		#lights/oreoled
+		#lights/rgbled
 		#magnetometer # all available magnetometer drivers
 		#mkblctrl
-		#oreoled
 		#pca9685
 		#pwm_input
 		#pwm_out_sim
 		#px4flow
 		#px4fmu
 		#rc_input
-		#rgbled
 		stm32
 		#stm32/adc
 		#stm32/tone_alarm
diff --git a/boards/stm/nucleo-F767ZI/default.cmake b/boards/stm/nucleo-F767ZI/default.cmake
index c9595dbedf..5da09ab3b0 100644
--- a/boards/stm/nucleo-F767ZI/default.cmake
+++ b/boards/stm/nucleo-F767ZI/default.cmake
@@ -12,20 +12,22 @@ px4_add_board(
 	DRIVERS
 		barometer # all available barometer drivers
 		batt_smbus
-		blinkm
 		camera_trigger
 		differential_pressure # all available differential pressure drivers
 		distance_sensor # all available distance sensor drivers
 		gps
 		#heater
-		#imu # all available imu drivers
 		imu/adis16448
+		#imu # all available imu drivers
 		imu/mpu6000
 		irlock
+		lights/blinkm
+		lights/oreoled
+		lights/rgbled
+		#lights/rgbled_pwm
 		magnetometer # all available magnetometer drivers
 		#md25
 		mkblctrl
-		oreoled
 		pca8574
 		pca9685
 		#pmw3901
@@ -35,8 +37,6 @@ px4_add_board(
 		px4flow
 		px4fmu
 		rc_input
-		rgbled
-		#rgbled_pwm
 		roboclaw
 		stm32
 		stm32/adc
diff --git a/src/drivers/lights/CMakeLists.txt b/src/drivers/lights/CMakeLists.txt
new file mode 100644
index 0000000000..f80c47a6fb
--- /dev/null
+++ b/src/drivers/lights/CMakeLists.txt
@@ -0,0 +1,37 @@
+############################################################################
+#
+#   Copyright (c) 2018 PX4 Development Team. All rights reserved.
+#
+# Redistribution and use in source and binary forms, with or without
+# modification, are permitted provided that the following conditions
+# are met:
+#
+# 1. Redistributions of source code must retain the above copyright
+#    notice, this list of conditions and the following disclaimer.
+# 2. Redistributions in binary form must reproduce the above copyright
+#    notice, this list of conditions and the following disclaimer in
+#    the documentation and/or other materials provided with the
+#    distribution.
+# 3. Neither the name PX4 nor the names of its contributors may be
+#    used to endorse or promote products derived from this software
+#    without specific prior written permission.
+#
+# THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS
+# "AS IS" AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT
+# LIMITED TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS
+# FOR A PARTICULAR PURPOSE ARE DISCLAIMED. IN NO EVENT SHALL THE
+# COPYRIGHT OWNER OR CONTRIBUTORS BE LIABLE FOR ANY DIRECT, INDIRECT,
+# INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING,
+# BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS
+# OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED
+# AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
+# LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN
+# ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+# POSSIBILITY OF SUCH DAMAGE.
+#
+############################################################################
+
+add_subdirectory(blinkm)
+add_subdirectory(rgbled)
+add_subdirectory(rgbled_ncp5623c)
+add_subdirectory(rgbled_pwm)
diff --git a/src/drivers/blinkm/CMakeLists.txt b/src/drivers/lights/blinkm/CMakeLists.txt
similarity index 100%
rename from src/drivers/blinkm/CMakeLists.txt
rename to src/drivers/lights/blinkm/CMakeLists.txt
diff --git a/src/drivers/blinkm/blinkm.cpp b/src/drivers/lights/blinkm/blinkm.cpp
similarity index 100%
rename from src/drivers/blinkm/blinkm.cpp
rename to src/drivers/lights/blinkm/blinkm.cpp
diff --git a/src/drivers/oreoled/CMakeLists.txt b/src/drivers/lights/oreoled/CMakeLists.txt
similarity index 100%
rename from src/drivers/oreoled/CMakeLists.txt
rename to src/drivers/lights/oreoled/CMakeLists.txt
diff --git a/src/drivers/oreoled/oreoled.cpp b/src/drivers/lights/oreoled/oreoled.cpp
similarity index 100%
rename from src/drivers/oreoled/oreoled.cpp
rename to src/drivers/lights/oreoled/oreoled.cpp
diff --git a/src/drivers/rgbled/CMakeLists.txt b/src/drivers/lights/rgbled/CMakeLists.txt
similarity index 100%
rename from src/drivers/rgbled/CMakeLists.txt
rename to src/drivers/lights/rgbled/CMakeLists.txt
diff --git a/src/drivers/rgbled/rgbled.cpp b/src/drivers/lights/rgbled/rgbled.cpp
similarity index 100%
rename from src/drivers/rgbled/rgbled.cpp
rename to src/drivers/lights/rgbled/rgbled.cpp
diff --git a/src/drivers/rgbled/rgbled_params.c b/src/drivers/lights/rgbled/rgbled_params.c
similarity index 100%
rename from src/drivers/rgbled/rgbled_params.c
rename to src/drivers/lights/rgbled/rgbled_params.c
diff --git a/src/drivers/rgbled_ncp5623c/CMakeLists.txt b/src/drivers/lights/rgbled_ncp5623c/CMakeLists.txt
similarity index 100%
rename from src/drivers/rgbled_ncp5623c/CMakeLists.txt
rename to src/drivers/lights/rgbled_ncp5623c/CMakeLists.txt
diff --git a/src/drivers/rgbled_ncp5623c/rgbled_ncp5623c.cpp b/src/drivers/lights/rgbled_ncp5623c/rgbled_ncp5623c.cpp
similarity index 100%
rename from src/drivers/rgbled_ncp5623c/rgbled_ncp5623c.cpp
rename to src/drivers/lights/rgbled_ncp5623c/rgbled_ncp5623c.cpp
diff --git a/src/drivers/rgbled_ncp5623c/rgbled_ncp5623c_params.c b/src/drivers/lights/rgbled_ncp5623c/rgbled_ncp5623c_params.c
similarity index 100%
rename from src/drivers/rgbled_ncp5623c/rgbled_ncp5623c_params.c
rename to src/drivers/lights/rgbled_ncp5623c/rgbled_ncp5623c_params.c
diff --git a/src/drivers/rgbled_pwm/CMakeLists.txt b/src/drivers/lights/rgbled_pwm/CMakeLists.txt
similarity index 100%
rename from src/drivers/rgbled_pwm/CMakeLists.txt
rename to src/drivers/lights/rgbled_pwm/CMakeLists.txt
diff --git a/src/drivers/rgbled_pwm/rgbled_pwm.cpp b/src/drivers/lights/rgbled_pwm/rgbled_pwm.cpp
similarity index 100%
rename from src/drivers/rgbled_pwm/rgbled_pwm.cpp
rename to src/drivers/lights/rgbled_pwm/rgbled_pwm.cpp
-- 
GitLab