diff --git a/src/libcamera/camera_sensor.cpp b/src/libcamera/camera_sensor/camera_sensor.cpp
similarity index 100%
rename from src/libcamera/camera_sensor.cpp
rename to src/libcamera/camera_sensor/camera_sensor.cpp
diff --git a/src/libcamera/camera_sensor_properties.cpp b/src/libcamera/camera_sensor/camera_sensor_properties.cpp
similarity index 100%
rename from src/libcamera/camera_sensor_properties.cpp
rename to src/libcamera/camera_sensor/camera_sensor_properties.cpp
diff --git a/src/libcamera/camera_sensor/meson.build b/src/libcamera/camera_sensor/meson.build
new file mode 100644
index 000000000000..bf4b131a94b1
--- /dev/null
+++ b/src/libcamera/camera_sensor/meson.build
@@ -0,0 +1,6 @@
+# SPDX-License-Identifier: CC0-1.0
+
+libcamera_sources += files([
+    'camera_sensor.cpp',
+    'camera_sensor_properties.cpp',
+])
diff --git a/src/libcamera/meson.build b/src/libcamera/meson.build
index 89fdf347c708..897fb259a894 100644
--- a/src/libcamera/meson.build
+++ b/src/libcamera/meson.build
@@ -7,8 +7,6 @@ libcamera_sources = files([
     'camera_controls.cpp',
     'camera_lens.cpp',
     'camera_manager.cpp',
-    'camera_sensor.cpp',
-    'camera_sensor_properties.cpp',
     'color_space.cpp',
     'controls.cpp',
     'control_serializer.cpp',
@@ -61,6 +59,7 @@ includes = [
 libatomic = cc.find_library('atomic', required : false)
 
 subdir('base')
+subdir('camera_sensor')
 subdir('ipa')
 subdir('pipeline')
 subdir('proxy')
