From a17d86be06166641d6cd633f2fd77b62bade0549 Mon Sep 17 00:00:00 2001 From: Rick Talbott Date: Wed, 21 Jun 2023 13:49:59 -0600 Subject: [PATCH 1/3] tests: drivers: sensors: ALS Added a new sensor test for ALS. Signed-off-by: Rick Talbott --- tests/drivers/sensor/als/CMakeLists.txt | 8 +++ .../sensor/als/boards/tmo_dev_edge.conf | 6 ++ .../sensor/als/boards/tmo_dev_edge.overlay | 18 +++++ tests/drivers/sensor/als/prj.conf | 2 + tests/drivers/sensor/als/src/main.c | 67 +++++++++++++++++++ tests/drivers/sensor/als/testcase.yaml | 8 +++ 6 files changed, 109 insertions(+) create mode 100644 tests/drivers/sensor/als/CMakeLists.txt create mode 100644 tests/drivers/sensor/als/boards/tmo_dev_edge.conf create mode 100644 tests/drivers/sensor/als/boards/tmo_dev_edge.overlay create mode 100644 tests/drivers/sensor/als/prj.conf create mode 100644 tests/drivers/sensor/als/src/main.c create mode 100644 tests/drivers/sensor/als/testcase.yaml diff --git a/tests/drivers/sensor/als/CMakeLists.txt b/tests/drivers/sensor/als/CMakeLists.txt new file mode 100644 index 00000000000..4b3d245c53f --- /dev/null +++ b/tests/drivers/sensor/als/CMakeLists.txt @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.20.0) +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) +project(device) + +FILE(GLOB app_sources src/*.c) +target_sources(app PRIVATE ${app_sources}) diff --git a/tests/drivers/sensor/als/boards/tmo_dev_edge.conf b/tests/drivers/sensor/als/boards/tmo_dev_edge.conf new file mode 100644 index 00000000000..72fff0a591b --- /dev/null +++ b/tests/drivers/sensor/als/boards/tmo_dev_edge.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2023 T-Mobile +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_I2C=y +CONFIG_SENSOR=y +CONFIG_TSL2540=y diff --git a/tests/drivers/sensor/als/boards/tmo_dev_edge.overlay b/tests/drivers/sensor/als/boards/tmo_dev_edge.overlay new file mode 100644 index 00000000000..af469ac5ce3 --- /dev/null +++ b/tests/drivers/sensor/als/boards/tmo_dev_edge.overlay @@ -0,0 +1,18 @@ +/* Copyright (c) 2023 T-Mobile + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + als-0 = &tsl2540_i2c; + }; +}; + +&i2c0 { + status = "okay"; + tsl2540_i2c: tsl2540@39 { + status = "okay"; + compatible = "ams,tsl2540"; + reg = <0x39 0x4>; + }; +}; diff --git a/tests/drivers/sensor/als/prj.conf b/tests/drivers/sensor/als/prj.conf new file mode 100644 index 00000000000..9228251051e --- /dev/null +++ b/tests/drivers/sensor/als/prj.conf @@ -0,0 +1,2 @@ +CONFIG_ZTEST=y +CONFIG_ZTEST_NEW_API=y diff --git a/tests/drivers/sensor/als/src/main.c b/tests/drivers/sensor/als/src/main.c new file mode 100644 index 00000000000..898483d0746 --- /dev/null +++ b/tests/drivers/sensor/als/src/main.c @@ -0,0 +1,67 @@ +/* + * Copyright 2032 T-Mobile + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup driver_sensor_subsys_tests sensor_subsys + * @ingroup all_tests + * @{ + * @} + */ + +#include +#include + +struct sensor_als_fixture { + const struct device *als_i2c; +}; + +static enum sensor_channel channel[] = { + SENSOR_CHAN_LIGHT, + SENSOR_CHAN_IR, +}; + +static void test_sensor_als_basic(const struct device *dev) +{ + zassert_equal(sensor_sample_fetch(dev), 0, "fail to fetch sample"); + + for (int i = 0; i < ARRAY_SIZE(channel); i++) { + struct sensor_value val; + + zassert_ok(sensor_channel_get(dev, channel[i], &val), + "fail to get channel"); + } +} + +/* Run all of our tests on an als device with the given label */ +static void run_tests_on_als(const struct device *als) +{ + zassert_true(device_is_ready(als), "als device is not ready"); + + PRINT("Running tests on '%s'\n", als->name); + k_object_access_grant(als, k_current_get()); +} + + +ZTEST_USER_F(sensor_als, test_sensor_als_basic_i2c) +{ + if (fixture->als_i2c == NULL) { + ztest_test_skip(); + } + + run_tests_on_als(fixture->als_i2c); + test_sensor_als_basic(fixture->als_i2c); +} + +static void *sensor_als_setup(void) +{ + static struct sensor_als_fixture fixture = { + .als_i2c = DEVICE_DT_GET_OR_NULL(DT_ALIAS(als_0)) + }; + + return &fixture; +} + +ZTEST_SUITE(sensor_als, NULL, sensor_als_setup, NULL, NULL, NULL); diff --git a/tests/drivers/sensor/als/testcase.yaml b/tests/drivers/sensor/als/testcase.yaml new file mode 100644 index 00000000000..546de919643 --- /dev/null +++ b/tests/drivers/sensor/als/testcase.yaml @@ -0,0 +1,8 @@ +tests: + drivers.sensor.als: + tags: + - drivers + - sensor + - subsys + integration_platforms: + - tmo_dev_edge From 158882609cbf71042fb09f7202201dd7b04e8732 Mon Sep 17 00:00:00 2001 From: Rick Talbott Date: Tue, 27 Jun 2023 12:26:17 -0600 Subject: [PATCH 2/3] tests: drivers: sensors: ALS Added a new sensor test for ALS. Signed-off-by: Rick Talbott tests: drivers: build_all: updated to include TSL2540 build updated to include TSL2540 Signed-off-by: Rick Talbott --- tests/drivers/build_all/sensor/i2c.dtsi | 6 ++ .../sensor/sensors_trigger_global.conf | 1 + .../sensor/sensors_trigger_none.conf | 1 + .../build_all/sensor/sensors_trigger_own.conf | 1 + tests/drivers/sensor/als/CMakeLists.txt | 8 +++ .../sensor/als/boards/tmo_dev_edge.conf | 6 ++ .../sensor/als/boards/tmo_dev_edge.overlay | 18 +++++ tests/drivers/sensor/als/prj.conf | 2 + tests/drivers/sensor/als/src/main.c | 67 +++++++++++++++++++ tests/drivers/sensor/als/testcase.yaml | 8 +++ 10 files changed, 118 insertions(+) create mode 100644 tests/drivers/sensor/als/CMakeLists.txt create mode 100644 tests/drivers/sensor/als/boards/tmo_dev_edge.conf create mode 100644 tests/drivers/sensor/als/boards/tmo_dev_edge.overlay create mode 100644 tests/drivers/sensor/als/prj.conf create mode 100644 tests/drivers/sensor/als/src/main.c create mode 100644 tests/drivers/sensor/als/testcase.yaml diff --git a/tests/drivers/build_all/sensor/i2c.dtsi b/tests/drivers/build_all/sensor/i2c.dtsi index 4023fc88ffd..7b893137772 100644 --- a/tests/drivers/build_all/sensor/i2c.dtsi +++ b/tests/drivers/build_all/sensor/i2c.dtsi @@ -745,3 +745,9 @@ test_i2c_tcs3400: tcs3400@72 { reg = <0x72>; int-gpios = <&test_gpio 0 0>; }; + +test_i2c_tsl2540: tsl2540@73 { + compatible = "ams,tsl2540"; + reg = <0x73>; + int-gpios = <&test_gpio 0 0>; +}; diff --git a/tests/drivers/build_all/sensor/sensors_trigger_global.conf b/tests/drivers/build_all/sensor/sensors_trigger_global.conf index ac5299f78d4..227c28e6368 100644 --- a/tests/drivers/build_all/sensor/sensors_trigger_global.conf +++ b/tests/drivers/build_all/sensor/sensors_trigger_global.conf @@ -33,6 +33,7 @@ CONFIG_LIS2DW12_TRIGGER_GLOBAL_THREAD=y CONFIG_LIS2MDL_TRIGGER_GLOBAL_THREAD=y CONFIG_LIS3MDL_TRIGGER_GLOBAL_THREAD=y CONFIG_LPS22HH_TRIGGER_GLOBAL_THREAD=y +CONFIG_TSL2540_TRIGGER_GLOBAL_THREAD=y CONFIG_LSM6DSL_TRIGGER_GLOBAL_THREAD=y CONFIG_LSM6DSO_TRIGGER_GLOBAL_THREAD=y CONFIG_LSM6DSO16IS_TRIGGER_GLOBAL_THREAD=y diff --git a/tests/drivers/build_all/sensor/sensors_trigger_none.conf b/tests/drivers/build_all/sensor/sensors_trigger_none.conf index 1653cb486c0..91e3a6a8dfc 100644 --- a/tests/drivers/build_all/sensor/sensors_trigger_none.conf +++ b/tests/drivers/build_all/sensor/sensors_trigger_none.conf @@ -33,6 +33,7 @@ CONFIG_LIS2DW12_TRIGGER_NONE=y CONFIG_LIS2MDL_TRIGGER_NONE=y CONFIG_LIS3MDL_TRIGGER_NONE=y CONFIG_LPS22HH_TRIGGER_NONE=y +CONFIG_TSL2540_TRIGGER_NONE=y CONFIG_LSM6DSL_TRIGGER_NONE=y CONFIG_LSM6DSO_TRIGGER_NONE=y CONFIG_LSM6DSO16IS_TRIGGER_NONE=y diff --git a/tests/drivers/build_all/sensor/sensors_trigger_own.conf b/tests/drivers/build_all/sensor/sensors_trigger_own.conf index 83c5680648e..30cf568fabb 100644 --- a/tests/drivers/build_all/sensor/sensors_trigger_own.conf +++ b/tests/drivers/build_all/sensor/sensors_trigger_own.conf @@ -31,6 +31,7 @@ CONFIG_LIS2DW12_TRIGGER_OWN_THREAD=y CONFIG_LIS2MDL_TRIGGER_OWN_THREAD=y CONFIG_LIS3MDL_TRIGGER_OWN_THREAD=y CONFIG_LPS22HH_TRIGGER_OWN_THREAD=y +CONFIG_TSL2540_TRIGGER_OWN_THREAD=y CONFIG_LSM6DSL_TRIGGER_OWN_THREAD=y CONFIG_LSM6DSO_TRIGGER_OWN_THREAD=y CONFIG_LSM6DSO16IS_TRIGGER_OWN_THREAD=y diff --git a/tests/drivers/sensor/als/CMakeLists.txt b/tests/drivers/sensor/als/CMakeLists.txt new file mode 100644 index 00000000000..4b3d245c53f --- /dev/null +++ b/tests/drivers/sensor/als/CMakeLists.txt @@ -0,0 +1,8 @@ +# SPDX-License-Identifier: Apache-2.0 + +cmake_minimum_required(VERSION 3.20.0) +find_package(Zephyr REQUIRED HINTS $ENV{ZEPHYR_BASE}) +project(device) + +FILE(GLOB app_sources src/*.c) +target_sources(app PRIVATE ${app_sources}) diff --git a/tests/drivers/sensor/als/boards/tmo_dev_edge.conf b/tests/drivers/sensor/als/boards/tmo_dev_edge.conf new file mode 100644 index 00000000000..72fff0a591b --- /dev/null +++ b/tests/drivers/sensor/als/boards/tmo_dev_edge.conf @@ -0,0 +1,6 @@ +# Copyright (c) 2023 T-Mobile +# SPDX-License-Identifier: Apache-2.0 + +CONFIG_I2C=y +CONFIG_SENSOR=y +CONFIG_TSL2540=y diff --git a/tests/drivers/sensor/als/boards/tmo_dev_edge.overlay b/tests/drivers/sensor/als/boards/tmo_dev_edge.overlay new file mode 100644 index 00000000000..af469ac5ce3 --- /dev/null +++ b/tests/drivers/sensor/als/boards/tmo_dev_edge.overlay @@ -0,0 +1,18 @@ +/* Copyright (c) 2023 T-Mobile + * SPDX-License-Identifier: Apache-2.0 + */ + +/ { + aliases { + als-0 = &tsl2540_i2c; + }; +}; + +&i2c0 { + status = "okay"; + tsl2540_i2c: tsl2540@39 { + status = "okay"; + compatible = "ams,tsl2540"; + reg = <0x39 0x4>; + }; +}; diff --git a/tests/drivers/sensor/als/prj.conf b/tests/drivers/sensor/als/prj.conf new file mode 100644 index 00000000000..9228251051e --- /dev/null +++ b/tests/drivers/sensor/als/prj.conf @@ -0,0 +1,2 @@ +CONFIG_ZTEST=y +CONFIG_ZTEST_NEW_API=y diff --git a/tests/drivers/sensor/als/src/main.c b/tests/drivers/sensor/als/src/main.c new file mode 100644 index 00000000000..898483d0746 --- /dev/null +++ b/tests/drivers/sensor/als/src/main.c @@ -0,0 +1,67 @@ +/* + * Copyright 2032 T-Mobile + * + * SPDX-License-Identifier: Apache-2.0 + */ + +/** + * @defgroup driver_sensor_subsys_tests sensor_subsys + * @ingroup all_tests + * @{ + * @} + */ + +#include +#include + +struct sensor_als_fixture { + const struct device *als_i2c; +}; + +static enum sensor_channel channel[] = { + SENSOR_CHAN_LIGHT, + SENSOR_CHAN_IR, +}; + +static void test_sensor_als_basic(const struct device *dev) +{ + zassert_equal(sensor_sample_fetch(dev), 0, "fail to fetch sample"); + + for (int i = 0; i < ARRAY_SIZE(channel); i++) { + struct sensor_value val; + + zassert_ok(sensor_channel_get(dev, channel[i], &val), + "fail to get channel"); + } +} + +/* Run all of our tests on an als device with the given label */ +static void run_tests_on_als(const struct device *als) +{ + zassert_true(device_is_ready(als), "als device is not ready"); + + PRINT("Running tests on '%s'\n", als->name); + k_object_access_grant(als, k_current_get()); +} + + +ZTEST_USER_F(sensor_als, test_sensor_als_basic_i2c) +{ + if (fixture->als_i2c == NULL) { + ztest_test_skip(); + } + + run_tests_on_als(fixture->als_i2c); + test_sensor_als_basic(fixture->als_i2c); +} + +static void *sensor_als_setup(void) +{ + static struct sensor_als_fixture fixture = { + .als_i2c = DEVICE_DT_GET_OR_NULL(DT_ALIAS(als_0)) + }; + + return &fixture; +} + +ZTEST_SUITE(sensor_als, NULL, sensor_als_setup, NULL, NULL, NULL); diff --git a/tests/drivers/sensor/als/testcase.yaml b/tests/drivers/sensor/als/testcase.yaml new file mode 100644 index 00000000000..546de919643 --- /dev/null +++ b/tests/drivers/sensor/als/testcase.yaml @@ -0,0 +1,8 @@ +tests: + drivers.sensor.als: + tags: + - drivers + - sensor + - subsys + integration_platforms: + - tmo_dev_edge From 942899bfdce5254e940a2e6d8df9e0ae9501ce4e Mon Sep 17 00:00:00 2001 From: Rick Talbott Date: Thu, 29 Jun 2023 11:21:30 -0600 Subject: [PATCH 3/3] updated Signed-off-by: Rick Talbott --- drivers/sensor/tsl2540/Kconfig | 4 +++- tests/drivers/sensor/als/boards/tmo_dev_edge.conf | 6 ------ tests/drivers/sensor/als/prj.conf | 2 ++ 3 files changed, 5 insertions(+), 7 deletions(-) delete mode 100644 tests/drivers/sensor/als/boards/tmo_dev_edge.conf diff --git a/drivers/sensor/tsl2540/Kconfig b/drivers/sensor/tsl2540/Kconfig index 007a724cc03..b4d3e1ec510 100644 --- a/drivers/sensor/tsl2540/Kconfig +++ b/drivers/sensor/tsl2540/Kconfig @@ -5,7 +5,9 @@ menuconfig TSL2540 bool "TSL2540 Ambient Light Sensor" - depends on I2C + default y + depends on DT_HAS_AMS_TSL2540_ENABLED + select I2C help Enable driver for TSL2540 sensors. diff --git a/tests/drivers/sensor/als/boards/tmo_dev_edge.conf b/tests/drivers/sensor/als/boards/tmo_dev_edge.conf deleted file mode 100644 index 72fff0a591b..00000000000 --- a/tests/drivers/sensor/als/boards/tmo_dev_edge.conf +++ /dev/null @@ -1,6 +0,0 @@ -# Copyright (c) 2023 T-Mobile -# SPDX-License-Identifier: Apache-2.0 - -CONFIG_I2C=y -CONFIG_SENSOR=y -CONFIG_TSL2540=y diff --git a/tests/drivers/sensor/als/prj.conf b/tests/drivers/sensor/als/prj.conf index 9228251051e..e1fc1087c8a 100644 --- a/tests/drivers/sensor/als/prj.conf +++ b/tests/drivers/sensor/als/prj.conf @@ -1,2 +1,4 @@ CONFIG_ZTEST=y CONFIG_ZTEST_NEW_API=y +CONFIG_SENSOR=y +