diff --git a/cmake/configs/nuttx_aerocore2_default.cmake b/cmake/configs/nuttx_aerocore2_default.cmake
index 06749f9cd75ace1d7af22ad2163bb9a42e3b693a..66cea65982d5ab07050119a5b9b96fc084a59f02 100644
--- a/cmake/configs/nuttx_aerocore2_default.cmake
+++ b/cmake/configs/nuttx_aerocore2_default.cmake
@@ -7,6 +7,10 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+	#drivers/magnetometer
+
 	drivers/device
 	drivers/stm32
 	drivers/stm32/adc
@@ -20,8 +24,6 @@ set(config_module_list
 	drivers/gps
 	drivers/pwm_out_sim
 	drivers/airspeed
-	drivers/differential_pressure
-	drivers/distance_sensor
 	#drivers/frsky_telemetry
 	modules/sensors
 	#drivers/pwm_input
diff --git a/cmake/configs/nuttx_aerofc-v1_default.cmake b/cmake/configs/nuttx_aerofc-v1_default.cmake
index b3eee383a82bdb13c621ef6c67ae6e06dc301f08..a85ce27432996f3eb84cefa6ca63d77450df7a78 100644
--- a/cmake/configs/nuttx_aerofc-v1_default.cmake
+++ b/cmake/configs/nuttx_aerofc-v1_default.cmake
@@ -7,19 +7,19 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/aerofc_adc
+	drivers/boards
 	drivers/device
-	drivers/stm32
+	drivers/distance_sensor
+	drivers/gps
 	drivers/led
-	drivers/px4fmu
-	drivers/boards
-	drivers/tap_esc
+	drivers/magnetometer/hmc5883
+	drivers/magnetometer/ist8310
 	drivers/mpu9250
 	drivers/ms5611
-	drivers/hmc5883
-	drivers/gps
-	drivers/ist8310
-	drivers/distance_sensor
-	drivers/aerofc_adc
+	drivers/px4fmu
+	drivers/stm32
+	drivers/tap_esc
 	modules/sensors
 
 	#
diff --git a/cmake/configs/nuttx_auav-x21_default.cmake b/cmake/configs/nuttx_auav-x21_default.cmake
index 7fd48329cc061485af75916efe96428fc05434c6..3eb03ebf6ed3907ee3f7caa02239226937331cea 100644
--- a/cmake/configs/nuttx_auav-x21_default.cmake
+++ b/cmake/configs/nuttx_auav-x21_default.cmake
@@ -7,6 +7,10 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+	drivers/magnetometer
+
 	drivers/device
 	drivers/stm32
 	drivers/stm32/adc
@@ -18,9 +22,7 @@ set(config_module_list
 	drivers/rgbled
 	drivers/mpu6000
 	drivers/mpu9250
-	drivers/hmc5883
 	drivers/ms5611
-	drivers/distance_sensor
 	drivers/gps
 	drivers/pwm_out_sim
 	drivers/hott
@@ -28,7 +30,6 @@ set(config_module_list
 	drivers/hott/hott_sensors
 	drivers/blinkm
 	drivers/airspeed
-	drivers/differential_pressure
 	drivers/frsky_telemetry
 	modules/sensors
 	drivers/mkblctrl
@@ -38,7 +39,6 @@ set(config_module_list
 	drivers/pwm_input
 	drivers/camera_trigger
 	drivers/bst
-	drivers/lis3mdl
 
 	#
 	# System commands
diff --git a/cmake/configs/nuttx_mindpx-v2_default.cmake b/cmake/configs/nuttx_mindpx-v2_default.cmake
index 59e65cba281dbd285ea1189d2f98593d9f2e4a3d..cb92383cb8883d8f682a79362850601af6d55249 100644
--- a/cmake/configs/nuttx_mindpx-v2_default.cmake
+++ b/cmake/configs/nuttx_mindpx-v2_default.cmake
@@ -7,39 +7,40 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+
+	drivers/airspeed
+	drivers/blinkm
+	drivers/boards
+	drivers/bst
+	drivers/camera_trigger
 	drivers/device
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
+	drivers/frsky_telemetry
+	drivers/gps
+	#drivers/hott
+	#drivers/hott/hott_sensors
+	#drivers/hott/hott_telemetry
+	drivers/l3gd20
 	drivers/led
-	drivers/px4fmu
-	drivers/boards
-	drivers/rgbled
-	#drivers/rgbled_pwm
+	drivers/lsm303d
+	drivers/magnetometer/hmc5883
+	#drivers/mkblctrl
 	drivers/mpu6000
 	drivers/mpu9250
-	drivers/lsm303d
-	drivers/l3gd20
-	drivers/hmc5883
 	drivers/ms5611
-	drivers/distance_sensor
-	drivers/gps
+	#drivers/oreoled
+	drivers/pwm_input
 	drivers/pwm_out_sim
-	#drivers/hott
-	#drivers/hott/hott_telemetry
-	#drivers/hott/hott_sensors
-	drivers/blinkm
-	drivers/airspeed
-	drivers/differential_pressure
-	drivers/frsky_telemetry
-	modules/sensors
-	#drivers/mkblctrl
 	drivers/px4flow
-	#drivers/oreoled
+	drivers/px4fmu
+	drivers/rgbled
+	#drivers/rgbled_pwm
+	drivers/stm32
+	drivers/stm32/adc
+	drivers/stm32/tone_alarm
 	drivers/vmount
-	drivers/pwm_input
-	drivers/camera_trigger
-	drivers/bst
+	modules/sensors
 
 	#
 	# System commands
@@ -178,4 +179,4 @@ set(config_module_list
 
 	# Hardware test
 	#examples/hwtest
-)
\ No newline at end of file
+)
diff --git a/cmake/configs/nuttx_nxphlite-v3_default.cmake b/cmake/configs/nuttx_nxphlite-v3_default.cmake
index b0d444be409411a5de1144fb31e432f7edaf92f2..c9e20f4a2ecb0cc4dfdcf712061631633dc2aa83 100644
--- a/cmake/configs/nuttx_nxphlite-v3_default.cmake
+++ b/cmake/configs/nuttx_nxphlite-v3_default.cmake
@@ -7,6 +7,10 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+	drivers/magnetometer
+
 	drivers/airspeed
 	drivers/blinkm
 #NOT Supported	drivers/bma180
@@ -16,12 +20,10 @@ set(config_module_list
 	drivers/bst
 	drivers/camera_trigger
 	drivers/device
-	drivers/differential_pressure
 	drivers/frsky_telemetry
 	drivers/fxos8701cq
 	drivers/fxas21002c
 	drivers/gps
-	drivers/hmc5883
 	drivers/hott
 	drivers/hott/hott_sensors
 	drivers/hott/hott_telemetry
@@ -31,8 +33,6 @@ set(config_module_list
 	drivers/kinetis/tone_alarm
 	drivers/l3gd20
 	drivers/led
-	drivers/lis3mdl
-	drivers/distance_sensor
 	drivers/mkblctrl
 	drivers/mpl3115a2
 	drivers/mpu6000
diff --git a/cmake/configs/nuttx_px4-same70xplained-v1_default.cmake b/cmake/configs/nuttx_px4-same70xplained-v1_default.cmake
index b865a192e5d3f237639f93f79c13bf2fea0d473d..bac5be85bddb3e6abc84d959274368da4e302536 100644
--- a/cmake/configs/nuttx_px4-same70xplained-v1_default.cmake
+++ b/cmake/configs/nuttx_px4-same70xplained-v1_default.cmake
@@ -7,6 +7,10 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+	drivers/magnetometer
+
 	drivers/device
 	drivers/samv7
 #WIP 	drivers/samv7/adc
@@ -17,12 +21,9 @@ set(config_module_list
 	drivers/rgbled
 	drivers/mpu6000
 	drivers/mpu9250
-	drivers/differential_pressure
 	drivers/lsm303d
 	drivers/l3gd20
-	drivers/hmc5883
 	drivers/ms5611
-	drivers/distance_sensor
 	drivers/gps
 #WIP 	drivers/pwm_out_sim
 	drivers/hott
@@ -39,8 +40,6 @@ set(config_module_list
 #WIP  	drivers/pwm_input
 #WIP  	drivers/camera_trigger
 	drivers/bst
-	drivers/lis3mdl
-
 
 	#
 	# System commands
diff --git a/cmake/configs/nuttx_px4fmu-v2_default.cmake b/cmake/configs/nuttx_px4fmu-v2_default.cmake
index 93fa930d1712e471b1c046d20bdca5f4318904f1..e05b47c015f4bbd65e80853b4b05f1712e154eb7 100644
--- a/cmake/configs/nuttx_px4fmu-v2_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v2_default.cmake
@@ -8,6 +8,7 @@ set(config_module_list
 	#
 	drivers/differential_pressure
 	drivers/distance_sensor
+	#drivers/magnetometer
 
 	#drivers/adis16448
 	drivers/airspeed
@@ -20,16 +21,15 @@ set(config_module_list
 	drivers/device
 	#drivers/frsky_telemetry
 	drivers/gps
-	drivers/hmc5883
+	drivers/magnetometer/hmc5883
 	#drivers/hott
 	#drivers/hott/hott_sensors
 	#drivers/hott/hott_telemetry
 	#drivers/iridiumsbd
 	#drivers/irlock
-	#drivers/ist8310
 	drivers/l3gd20
 	drivers/led
-	drivers/lis3mdl
+	drivers/magnetometer/lis3mdl
 	drivers/lsm303d
 	#drivers/mb12xx
 	#drivers/mkblctrl
diff --git a/cmake/configs/nuttx_px4fmu-v3_default.cmake b/cmake/configs/nuttx_px4fmu-v3_default.cmake
index fc0984917039f486bd8bf89a64bcae46787b6ae9..901b89bc8987c6a6bf0a53afb74948c39ef70b39 100644
--- a/cmake/configs/nuttx_px4fmu-v3_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v3_default.cmake
@@ -13,6 +13,10 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+	drivers/magnetometer
+
 	drivers/adis16448
 	drivers/airspeed
 	drivers/blinkm
@@ -22,10 +26,8 @@ set(config_module_list
 	drivers/bst
 	drivers/camera_trigger
 	drivers/device
-	drivers/differential_pressure
 	drivers/frsky_telemetry
 	drivers/gps
-	drivers/hmc5883
 	drivers/hott
 	drivers/hott/hott_sensors
 	drivers/hott/hott_telemetry
@@ -33,9 +35,6 @@ set(config_module_list
 	drivers/irlock
 	drivers/l3gd20
 	drivers/led
-	drivers/lis3mdl
-	drivers/distance_sensor
-	drivers/lsm303d
 	drivers/mkblctrl
 	drivers/mpu6000
 	drivers/mpu9250
diff --git a/cmake/configs/nuttx_px4fmu-v4_default.cmake b/cmake/configs/nuttx_px4fmu-v4_default.cmake
index 1f995bcbe62ceccc5d84b510c265c125e705cc39..d352f27a65dc328eb8203fee7ce8e9cbea8840bb 100644
--- a/cmake/configs/nuttx_px4fmu-v4_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v4_default.cmake
@@ -7,29 +7,28 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+	drivers/magnetometer
+
 	drivers/airspeed
 	drivers/blinkm
 	drivers/bma180
 	drivers/bmi055
 	drivers/bmi160
-	drivers/bmm150
 	drivers/bmp280
 	drivers/boards
 	drivers/bst
 	drivers/camera_trigger
 	drivers/device
-	drivers/differential_pressure
 	drivers/frsky_telemetry
 	drivers/gps
-	drivers/hmc5883
 	drivers/hott
 	drivers/hott/hott_sensors
 	drivers/hott/hott_telemetry
 	drivers/iridiumsbd
 	drivers/irlock
 	drivers/led
-	drivers/lis3mdl
-	drivers/distance_sensor
 	drivers/mkblctrl
 	drivers/mpu6000
 	drivers/mpu9250
diff --git a/cmake/configs/nuttx_px4fmu-v4pro_default.cmake b/cmake/configs/nuttx_px4fmu-v4pro_default.cmake
index 46c267466396cb448bdc7d4cae3059c54e8d7342..d02c18f27eb9b5073573714a0d0ee93f4ef4eed5 100644
--- a/cmake/configs/nuttx_px4fmu-v4pro_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v4pro_default.cmake
@@ -7,6 +7,10 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/distance_sensor
+	drivers/differential_pressure
+	drivers/magnetometer
+
 	drivers/airspeed
 	drivers/blinkm
 	drivers/bma180
@@ -18,7 +22,6 @@ set(config_module_list
 	drivers/device
 	drivers/frsky_telemetry
 	drivers/gps
-	drivers/hmc5883
 	drivers/hott
 	drivers/hott/hott_sensors
 	drivers/hott/hott_telemetry
@@ -26,13 +29,9 @@ set(config_module_list
 	drivers/irlock
 	drivers/l3gd20
 	drivers/led
-	drivers/lis3mdl
-	drivers/distance_sensor
-	drivers/lsm303d
 	drivers/mkblctrl
 	drivers/mpu6000
 	drivers/mpu9250
-	drivers/differential_pressure
 	drivers/ms5611
 	drivers/oreoled
 	drivers/pwm_input
diff --git a/cmake/configs/nuttx_px4fmu-v5_default.cmake b/cmake/configs/nuttx_px4fmu-v5_default.cmake
index b64c734765fb21baca7b4e0c7b9031735ca2b3b8..ee1a63f77c3fdc0b9db88ad08b1cf0e3b5e0c093 100644
--- a/cmake/configs/nuttx_px4fmu-v5_default.cmake
+++ b/cmake/configs/nuttx_px4fmu-v5_default.cmake
@@ -7,10 +7,13 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+	drivers/magnetometer
+
 	drivers/airspeed
 	drivers/blinkm
 	drivers/bma180
-	drivers/bmi055
 	drivers/bmi160
 	drivers/bmp280
 	drivers/boards
@@ -19,20 +22,15 @@ set(config_module_list
 	drivers/device
 	drivers/frsky_telemetry
 	drivers/gps
-	drivers/hmc5883
 	drivers/hott
 	drivers/hott/hott_sensors
 	drivers/hott/hott_telemetry
 	drivers/iridiumsbd
 	drivers/irlock
-	drivers/ist8310
 	drivers/led
-	drivers/lis3mdl
-	drivers/distance_sensor
 	drivers/mkblctrl
 	drivers/mpu6000
 	drivers/mpu9250
-	drivers/differential_pressure
 	drivers/ms5611
 	drivers/oreoled
 	drivers/pwm_input
diff --git a/cmake/configs/nuttx_px4nucleoF767ZI-v1_default.cmake b/cmake/configs/nuttx_px4nucleoF767ZI-v1_default.cmake
index 0b5e45dc5836915df9867580d7939a9e0ed84b36..7ac6b2fa70646fe3976539221e696dd3b415db8a 100644
--- a/cmake/configs/nuttx_px4nucleoF767ZI-v1_default.cmake
+++ b/cmake/configs/nuttx_px4nucleoF767ZI-v1_default.cmake
@@ -7,6 +7,11 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/differential_pressure
+	drivers/distance_sensor
+	drivers/magnetometer
+
+	drivers/adis16448
 	drivers/airspeed
 	drivers/blinkm
 	drivers/bma180
@@ -18,17 +23,13 @@ set(config_module_list
 	drivers/device
 	drivers/frsky_telemetry
 	drivers/gps
-	drivers/hmc5883
 	drivers/hott
 	drivers/hott/hott_sensors
 	drivers/hott/hott_telemetry
 	drivers/led
-	drivers/lis3mdl
-	drivers/distance_sensor
 	drivers/mkblctrl
 	drivers/mpu6000
 	drivers/mpu9250
-	drivers/differential_pressure
 	drivers/ms5611
 	drivers/oreoled
 	drivers/pwm_input
diff --git a/cmake/configs/nuttx_tap-v1_default.cmake b/cmake/configs/nuttx_tap-v1_default.cmake
index 706210a0a5920174480b96aacb7aa5b5d720ffd3..0dfe11c3c823dfc7eae7bd70da311d2486ebd8d4 100644
--- a/cmake/configs/nuttx_tap-v1_default.cmake
+++ b/cmake/configs/nuttx_tap-v1_default.cmake
@@ -7,23 +7,23 @@ set(config_module_list
 	#
 	# Board support modules
 	#
+	drivers/airspeed
+	drivers/boards
 	drivers/device
-	drivers/stm32
-	drivers/stm32/adc
-	drivers/stm32/tone_alarm
+	drivers/differential_pressure
+	drivers/gps
 	drivers/led
+	drivers/magnetometer/hmc5883
+	drivers/mpu6000
+	drivers/ms5611
 	drivers/px4fmu
-	drivers/boards
 	drivers/rgbled_pwm
+	drivers/stm32
+	drivers/stm32/adc
+	drivers/stm32/tone_alarm
 	drivers/tap_esc
-	drivers/mpu6000
-	drivers/ms5611
-	drivers/hmc5883
-	drivers/gps
-	drivers/airspeed
-	drivers/differential_pressure
-	modules/sensors
 	drivers/vmount
+	modules/sensors
 
 	#
 	# System commands
@@ -105,4 +105,4 @@ set(config_module_list
 	# had to add for cmake, not sure why wasn't in original config
 	platforms/common
 	platforms/nuttx/px4_layer
-)
\ No newline at end of file
+)
diff --git a/src/drivers/boards/px4fmu-v4/board_config.h b/src/drivers/boards/px4fmu-v4/board_config.h
index 89904ddaa11511b1280f552c89b8a6425bc4f3ff..d524375896a9dcf51572f40e006acac9098dd937 100644
--- a/src/drivers/boards/px4fmu-v4/board_config.h
+++ b/src/drivers/boards/px4fmu-v4/board_config.h
@@ -165,7 +165,6 @@
 #define PX4_I2C_OBDEV_LED            0x55
 #define PX4_I2C_OBDEV_HMC5883        0x1e
 #define PX4_I2C_OBDEV_LIS3MDL        0x1e
-#define PX4_I2C_OBDEV_BMM150         0x10
 #define PX4_I2C_OBDEV_BMP280         0x76
 
 /*
diff --git a/src/drivers/magnetometer/CMakeLists.txt b/src/drivers/magnetometer/CMakeLists.txt
new file mode 100644
index 0000000000000000000000000000000000000000..88c468c35aad5a833d5a8be91b256b842a33ad18
--- /dev/null
+++ b/src/drivers/magnetometer/CMakeLists.txt
@@ -0,0 +1,37 @@
+############################################################################
+#
+#   Copyright (c) 2017 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(bmm150)
+add_subdirectory(hmc5883)
+add_subdirectory(ist8310)
+add_subdirectory(lis3mdl)
diff --git a/src/drivers/bmm150/CMakeLists.txt b/src/drivers/magnetometer/bmm150/CMakeLists.txt
similarity index 100%
rename from src/drivers/bmm150/CMakeLists.txt
rename to src/drivers/magnetometer/bmm150/CMakeLists.txt
diff --git a/src/drivers/bmm150/bmm150.cpp b/src/drivers/magnetometer/bmm150/bmm150.cpp
similarity index 100%
rename from src/drivers/bmm150/bmm150.cpp
rename to src/drivers/magnetometer/bmm150/bmm150.cpp
diff --git a/src/drivers/bmm150/bmm150.hpp b/src/drivers/magnetometer/bmm150/bmm150.hpp
similarity index 99%
rename from src/drivers/bmm150/bmm150.hpp
rename to src/drivers/magnetometer/bmm150/bmm150.hpp
index 14cdb9da46dc8a220acefff17d791ae8684350c6..7dc0f6991850b3b840ea92a5d7310c09fd24d113 100644
--- a/src/drivers/bmm150/bmm150.hpp
+++ b/src/drivers/magnetometer/bmm150/bmm150.hpp
@@ -42,7 +42,7 @@
 
 #define BMM150_DEVICE_PATH_MAG_EXT          "/dev/bmm150_i2c_ext"
 
-#define BMM150_SLAVE_ADDRESS                 PX4_I2C_OBDEV_BMM150
+#define BMM150_SLAVE_ADDRESS                 0x10
 
 #define BMM150_BUS_SPEED                     1000*100
 
diff --git a/src/drivers/hmc5883/CMakeLists.txt b/src/drivers/magnetometer/hmc5883/CMakeLists.txt
similarity index 100%
rename from src/drivers/hmc5883/CMakeLists.txt
rename to src/drivers/magnetometer/hmc5883/CMakeLists.txt
diff --git a/src/drivers/hmc5883/hmc5883.cpp b/src/drivers/magnetometer/hmc5883/hmc5883.cpp
similarity index 100%
rename from src/drivers/hmc5883/hmc5883.cpp
rename to src/drivers/magnetometer/hmc5883/hmc5883.cpp
diff --git a/src/drivers/hmc5883/hmc5883.h b/src/drivers/magnetometer/hmc5883/hmc5883.h
similarity index 100%
rename from src/drivers/hmc5883/hmc5883.h
rename to src/drivers/magnetometer/hmc5883/hmc5883.h
diff --git a/src/drivers/hmc5883/hmc5883_i2c.cpp b/src/drivers/magnetometer/hmc5883/hmc5883_i2c.cpp
similarity index 100%
rename from src/drivers/hmc5883/hmc5883_i2c.cpp
rename to src/drivers/magnetometer/hmc5883/hmc5883_i2c.cpp
diff --git a/src/drivers/hmc5883/hmc5883_spi.cpp b/src/drivers/magnetometer/hmc5883/hmc5883_spi.cpp
similarity index 100%
rename from src/drivers/hmc5883/hmc5883_spi.cpp
rename to src/drivers/magnetometer/hmc5883/hmc5883_spi.cpp
diff --git a/src/drivers/ist8310/CMakeLists.txt b/src/drivers/magnetometer/ist8310/CMakeLists.txt
similarity index 100%
rename from src/drivers/ist8310/CMakeLists.txt
rename to src/drivers/magnetometer/ist8310/CMakeLists.txt
diff --git a/src/drivers/ist8310/ist8310.cpp b/src/drivers/magnetometer/ist8310/ist8310.cpp
similarity index 100%
rename from src/drivers/ist8310/ist8310.cpp
rename to src/drivers/magnetometer/ist8310/ist8310.cpp
diff --git a/src/drivers/lis3mdl/CMakeLists.txt b/src/drivers/magnetometer/lis3mdl/CMakeLists.txt
similarity index 100%
rename from src/drivers/lis3mdl/CMakeLists.txt
rename to src/drivers/magnetometer/lis3mdl/CMakeLists.txt
diff --git a/src/drivers/lis3mdl/lis3mdl.cpp b/src/drivers/magnetometer/lis3mdl/lis3mdl.cpp
similarity index 100%
rename from src/drivers/lis3mdl/lis3mdl.cpp
rename to src/drivers/magnetometer/lis3mdl/lis3mdl.cpp
diff --git a/src/drivers/lis3mdl/lis3mdl.h b/src/drivers/magnetometer/lis3mdl/lis3mdl.h
similarity index 100%
rename from src/drivers/lis3mdl/lis3mdl.h
rename to src/drivers/magnetometer/lis3mdl/lis3mdl.h
diff --git a/src/drivers/lis3mdl/lis3mdl_i2c.cpp b/src/drivers/magnetometer/lis3mdl/lis3mdl_i2c.cpp
similarity index 100%
rename from src/drivers/lis3mdl/lis3mdl_i2c.cpp
rename to src/drivers/magnetometer/lis3mdl/lis3mdl_i2c.cpp
diff --git a/src/drivers/lis3mdl/lis3mdl_spi.cpp b/src/drivers/magnetometer/lis3mdl/lis3mdl_spi.cpp
similarity index 100%
rename from src/drivers/lis3mdl/lis3mdl_spi.cpp
rename to src/drivers/magnetometer/lis3mdl/lis3mdl_spi.cpp