From 2102899dccb4955b5d6753cfe06c213a0dbca995 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Oct 2025 16:43:59 +0100 Subject: [PATCH 1/2] configs: Enable the SCD4X sensor driver See: https://github.com/raspberrypi/linux/issues/7091 Signed-off-by: Phil Elwell --- arch/arm/configs/bcm2709_defconfig | 1 + arch/arm/configs/bcm2711_defconfig | 1 + arch/arm/configs/bcmrpi_defconfig | 1 + arch/arm64/configs/bcm2711_defconfig | 1 + arch/arm64/configs/bcm2711_rt_defconfig | 1 + arch/arm64/configs/bcm2712_defconfig | 1 + 6 files changed, 6 insertions(+) diff --git a/arch/arm/configs/bcm2709_defconfig b/arch/arm/configs/bcm2709_defconfig index 89243eb64223fd..308a25dd51eafb 100644 --- a/arch/arm/configs/bcm2709_defconfig +++ b/arch/arm/configs/bcm2709_defconfig @@ -1437,6 +1437,7 @@ CONFIG_MCP3422=m CONFIG_TI_ADS1015=m CONFIG_BME680=m CONFIG_CCS811=m +CONFIG_SCD4X=m CONFIG_SENSIRION_SGP30=m CONFIG_SPS30_I2C=m CONFIG_MAX30102=m diff --git a/arch/arm/configs/bcm2711_defconfig b/arch/arm/configs/bcm2711_defconfig index d09f5d17a2bae5..e5a6f28ce6a1c5 100644 --- a/arch/arm/configs/bcm2711_defconfig +++ b/arch/arm/configs/bcm2711_defconfig @@ -1482,6 +1482,7 @@ CONFIG_MCP3422=m CONFIG_TI_ADS1015=m CONFIG_BME680=m CONFIG_CCS811=m +CONFIG_SCD4X=m CONFIG_SENSIRION_SGP30=m CONFIG_SPS30_I2C=m CONFIG_MAX30102=m diff --git a/arch/arm/configs/bcmrpi_defconfig b/arch/arm/configs/bcmrpi_defconfig index 45b51a86c4acaf..09523c520d1b33 100644 --- a/arch/arm/configs/bcmrpi_defconfig +++ b/arch/arm/configs/bcmrpi_defconfig @@ -1429,6 +1429,7 @@ CONFIG_MCP3422=m CONFIG_TI_ADS1015=m CONFIG_BME680=m CONFIG_CCS811=m +CONFIG_SCD4X=m CONFIG_SENSIRION_SGP30=m CONFIG_SPS30_I2C=m CONFIG_MAX30102=m diff --git a/arch/arm64/configs/bcm2711_defconfig b/arch/arm64/configs/bcm2711_defconfig index 90a5006be1e795..cab13cedcdf009 100644 --- a/arch/arm64/configs/bcm2711_defconfig +++ b/arch/arm64/configs/bcm2711_defconfig @@ -1550,6 +1550,7 @@ CONFIG_MCP3422=m CONFIG_TI_ADS1015=m CONFIG_BME680=m CONFIG_CCS811=m +CONFIG_SCD4X=m CONFIG_SENSIRION_SGP30=m CONFIG_SPS30_I2C=m CONFIG_MAX30102=m diff --git a/arch/arm64/configs/bcm2711_rt_defconfig b/arch/arm64/configs/bcm2711_rt_defconfig index 7fb07e53fd7e99..239b9ae0088228 100644 --- a/arch/arm64/configs/bcm2711_rt_defconfig +++ b/arch/arm64/configs/bcm2711_rt_defconfig @@ -1549,6 +1549,7 @@ CONFIG_MCP3422=m CONFIG_TI_ADS1015=m CONFIG_BME680=m CONFIG_CCS811=m +CONFIG_SCD4X=m CONFIG_SENSIRION_SGP30=m CONFIG_SPS30_I2C=m CONFIG_MAX30102=m diff --git a/arch/arm64/configs/bcm2712_defconfig b/arch/arm64/configs/bcm2712_defconfig index 56292357c08892..e6f0904704447c 100644 --- a/arch/arm64/configs/bcm2712_defconfig +++ b/arch/arm64/configs/bcm2712_defconfig @@ -1552,6 +1552,7 @@ CONFIG_MCP3422=m CONFIG_TI_ADS1015=m CONFIG_BME680=m CONFIG_CCS811=m +CONFIG_SCD4X=m CONFIG_SENSIRION_SGP30=m CONFIG_SPS30_I2C=m CONFIG_MAX30102=m From d47e4270a0c9cb1c03a2ffa62646480b6c3eb703 Mon Sep 17 00:00:00 2001 From: Phil Elwell Date: Fri, 17 Oct 2025 16:45:18 +0100 Subject: [PATCH 2/2] overlays: i2c-sensor: Add the scd4x CO2 sensors See: https://github.com/raspberrypi/linux/issues/7091 Signed-off-by: Phil Elwell --- arch/arm/boot/dts/overlays/README | 2 ++ arch/arm/boot/dts/overlays/i2c-sensor-common.dtsi | 15 +++++++++++++++ 2 files changed, 17 insertions(+) diff --git a/arch/arm/boot/dts/overlays/README b/arch/arm/boot/dts/overlays/README index 72a2b2d6aaf348..c7df8e3b1a4928 100644 --- a/arch/arm/boot/dts/overlays/README +++ b/arch/arm/boot/dts/overlays/README @@ -2576,6 +2576,8 @@ Params: addr Set the address for the ADS7828, ADS7830, measurement in uOhms. (ina238 only, disabled by default) + scd4x Select the Sensirion SCD40/41 CO2 sensors. + sht3x Select the Sensirion SHT3x temperature and humidity sensors. Valid addresses 0x44-0x45, default 0x44 diff --git a/arch/arm/boot/dts/overlays/i2c-sensor-common.dtsi b/arch/arm/boot/dts/overlays/i2c-sensor-common.dtsi index 3fda6cee1c95a9..5213b38e675539 100755 --- a/arch/arm/boot/dts/overlays/i2c-sensor-common.dtsi +++ b/arch/arm/boot/dts/overlays/i2c-sensor-common.dtsi @@ -804,6 +804,20 @@ }; }; + fragment@52 { + target = <&i2cbus>; + __dormant__ { + #address-cells = <1>; + #size-cells = <0>; + status = "okay"; + + scd4x: scd4x@62 { + compatible = "sensirion,scd40"; + reg = <0x62>; + }; + }; + }; + fragment@98 { target-path = "/"; __dormant__ { @@ -881,6 +895,7 @@ bmp58x = <0>,"+49"; veml6030 = <0>,"+50+99"; tmp117 = <0>,"+51+98"; + scd4x = <0>,"+52"; addr = <&bme280>,"reg:0", <&bmp280>,"reg:0", <&tmp102>,"reg:0", <&lm75>,"reg:0", <&hdc100x>,"reg:0", <&sht3x>,"reg:0",