diff --git a/app/CMakeLists.txt b/app/CMakeLists.txt
index 658412ae..8e88e08d 100644
--- a/app/CMakeLists.txt
+++ b/app/CMakeLists.txt
@@ -57,8 +57,6 @@ target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/battery.c)
 target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL app PRIVATE src/split_listener.c)
 target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_PERIPHERAL app PRIVATE src/split/bluetooth/service.c)
 target_sources_ifdef(CONFIG_ZMK_SPLIT_BLE_ROLE_CENTRAL app PRIVATE src/split/bluetooth/central.c)
-target_sources_ifdef(CONFIG_ZMK_KSCAN_MOCK_DRIVER app PRIVATE src/kscan_mock.c)
-target_sources_ifdef(CONFIG_ZMK_KSCAN_COMPOSITE_DRIVER app PRIVATE src/kscan_composite.c)
 target_sources_ifdef(CONFIG_USB app PRIVATE src/usb.c)
 target_sources_ifdef(CONFIG_ZMK_BLE app PRIVATE src/hog.c)
 target_sources_ifdef(CONFIG_ZMK_RGB_UNDERGLOW app PRIVATE src/rgb_underglow.c)
diff --git a/app/drivers/kscan/CMakeLists.txt b/app/drivers/kscan/CMakeLists.txt
index 19933aa6..b5f86abd 100644
--- a/app/drivers/kscan/CMakeLists.txt
+++ b/app/drivers/kscan/CMakeLists.txt
@@ -1,8 +1,11 @@
 # Copyright (c) 2020 The ZMK Contributors
 # SPDX-License-Identifier: MIT
 
-zephyr_library()
+zephyr_library_named(zmk__drivers__kscan)
+zephyr_library_include_directories(${CMAKE_SOURCE_DIR}/include)
 
 zephyr_library_sources_ifdef(CONFIG_ZMK_KSCAN_GPIO_DRIVER kscan_gpio_matrix.c)
 zephyr_library_sources_ifdef(CONFIG_ZMK_KSCAN_GPIO_DRIVER kscan_gpio_direct.c)
-zephyr_library_sources_ifdef(CONFIG_ZMK_KSCAN_GPIO_DRIVER kscan_gpio_demux.c)
\ No newline at end of file
+zephyr_library_sources_ifdef(CONFIG_ZMK_KSCAN_GPIO_DRIVER kscan_gpio_demux.c)
+zephyr_library_sources_ifdef(CONFIG_ZMK_KSCAN_MOCK_DRIVER kscan_mock.c)
+zephyr_library_sources_ifdef(CONFIG_ZMK_KSCAN_COMPOSITE_DRIVER kscan_composite.c)
diff --git a/app/drivers/kscan/Kconfig b/app/drivers/kscan/Kconfig
index 5b913f3e..654e0ee4 100644
--- a/app/drivers/kscan/Kconfig
+++ b/app/drivers/kscan/Kconfig
@@ -22,4 +22,4 @@ config ZMK_KSCAN_INIT_PRIORITY
 	int "Keyboard scan driver init priority"
 	default 40
 	help
-	  Keyboard scan device driver initialization priority.
\ No newline at end of file
+	  Keyboard scan device driver initialization priority.
diff --git a/app/src/kscan_composite.c b/app/drivers/kscan/kscan_composite.c
similarity index 100%
rename from app/src/kscan_composite.c
rename to app/drivers/kscan/kscan_composite.c
diff --git a/app/src/kscan_mock.c b/app/drivers/kscan/kscan_mock.c
similarity index 100%
rename from app/src/kscan_mock.c
rename to app/drivers/kscan/kscan_mock.c