diff --git a/drivers/sensor/CMakeLists.txt b/drivers/sensor/CMakeLists.txt index 76a8cff9b96..0458ed61666 100644 --- a/drivers/sensor/CMakeLists.txt +++ b/drivers/sensor/CMakeLists.txt @@ -10,6 +10,7 @@ add_subdirectory(espressif) add_subdirectory(honeywell) add_subdirectory(infineon) add_subdirectory(ite) +add_subdirectory(jedec) add_subdirectory(maxim) add_subdirectory(meas) add_subdirectory(microchip) diff --git a/drivers/sensor/Kconfig b/drivers/sensor/Kconfig index d347443ad46..ad3e8af27d3 100644 --- a/drivers/sensor/Kconfig +++ b/drivers/sensor/Kconfig @@ -94,6 +94,7 @@ source "drivers/sensor/espressif/Kconfig" source "drivers/sensor/honeywell/Kconfig" source "drivers/sensor/infineon/Kconfig" source "drivers/sensor/ite/Kconfig" +source "drivers/sensor/jedec/Kconfig" source "drivers/sensor/maxim/Kconfig" source "drivers/sensor/meas/Kconfig" source "drivers/sensor/microchip/Kconfig" diff --git a/drivers/sensor/jedec/CMakeLists.txt b/drivers/sensor/jedec/CMakeLists.txt new file mode 100644 index 00000000000..16b8599637e --- /dev/null +++ b/drivers/sensor/jedec/CMakeLists.txt @@ -0,0 +1,6 @@ +# Copyright (c) 2024 Vogl Electronic GmbH +# SPDX-License-Identifier: Apache-2.0 + +# zephyr-keep-sorted-start +add_subdirectory_ifdef(CONFIG_JC42 jc42) +# zephyr-keep-sorted-stop diff --git a/drivers/sensor/jedec/Kconfig b/drivers/sensor/jedec/Kconfig new file mode 100644 index 00000000000..ef0a7c2f29b --- /dev/null +++ b/drivers/sensor/jedec/Kconfig @@ -0,0 +1,6 @@ +# Copyright (c) 2024 Vogl Electronic GmbH +# SPDX-License-Identifier: Apache-2.0 + +# zephyr-keep-sorted-start +source "drivers/sensor/jedec/jc42/Kconfig" +# zephyr-keep-sorted-stop diff --git a/drivers/sensor/jedec/jc42/CMakeLists.txt b/drivers/sensor/jedec/jc42/CMakeLists.txt new file mode 100644 index 00000000000..5fbdc7fe05a --- /dev/null +++ b/drivers/sensor/jedec/jc42/CMakeLists.txt @@ -0,0 +1,7 @@ +# Copyright (c) 2024 Vogl Electronic GmbH +# SPDX-License-Identifier: Apache-2.0 + +zephyr_library() + +zephyr_library_sources(jc42.c) +zephyr_library_sources_ifdef(CONFIG_JC42_TRIGGER jc42_trigger.c) diff --git a/drivers/sensor/jedec/jc42/Kconfig b/drivers/sensor/jedec/jc42/Kconfig new file mode 100644 index 00000000000..1e6d08d6349 --- /dev/null +++ b/drivers/sensor/jedec/jc42/Kconfig @@ -0,0 +1,49 @@ +# JEDEC JC 42.4 compliant temperature sensor configuration options + +# Copyright (c) 2016 Intel Corporation +# Copyright (c) 2024 Vogl Electronic GmbH +# SPDX-License-Identifier: Apache-2.0 + +menuconfig JC42 + bool "JC42 temperature sensor" + default y + depends on DT_HAS_JEDEC_JC_42_4_TEMP_ENABLED + select I2C + help + Enable driver for JC42 temperature sensor. + +if JC42 + +choice + prompt "JC42 trigger mode" + default JC42_TRIGGER_NONE + +config JC42_TRIGGER_NONE + bool "No trigger" + +config JC42_TRIGGER_GLOBAL_THREAD + depends on GPIO + select JC42_TRIGGER + bool "Use global thread" + +config JC42_TRIGGER_OWN_THREAD + depends on GPIO + select JC42_TRIGGER + bool "Use own thread" + +endchoice + +config JC42_TRIGGER + bool + +config JC42_THREAD_STACK_SIZE + int "Sensor delayed work thread stack size" + depends on JC42_TRIGGER_OWN_THREAD + default 1024 + +config JC42_THREAD_PRIORITY + int "JC42 thread priority" + depends on JC42_TRIGGER_OWN_THREAD + default 10 + +endif # JC42 diff --git a/drivers/sensor/jedec/jc42/jc42.c b/drivers/sensor/jedec/jc42/jc42.c new file mode 100644 index 00000000000..8d1e87abeae --- /dev/null +++ b/drivers/sensor/jedec/jc42/jc42.c @@ -0,0 +1,139 @@ +/* + * Copyright (c) 2019 Peter Bigot Consulting, LLC + * Copyright (c) 2016 Intel Corporation + * Copyright (c) 2024 Vogl Electronic GmbH + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#define DT_DRV_COMPAT jedec_jc_42_4_temp + +#include + +#include +#include +#include +#include +#include +#include + +#include "jc42.h" + +LOG_MODULE_REGISTER(JC42, CONFIG_SENSOR_LOG_LEVEL); + +int jc42_reg_read(const struct device *dev, uint8_t reg, uint16_t *val) +{ + const struct jc42_config *cfg = dev->config; + int rc = i2c_write_read_dt(&cfg->i2c, ®, sizeof(reg), val, sizeof(*val)); + + if (rc == 0) { + *val = sys_be16_to_cpu(*val); + } + + return rc; +} + +int jc42_reg_write_16bit(const struct device *dev, uint8_t reg, uint16_t val) +{ + const struct jc42_config *cfg = dev->config; + + uint8_t buf[3]; + + buf[0] = reg; + sys_put_be16(val, &buf[1]); + + return i2c_write_dt(&cfg->i2c, buf, sizeof(buf)); +} + +int jc42_reg_write_8bit(const struct device *dev, uint8_t reg, uint8_t val) +{ + const struct jc42_config *cfg = dev->config; + uint8_t buf[2] = { + reg, + val, + }; + + return i2c_write_dt(&cfg->i2c, buf, sizeof(buf)); +} + +static int jc42_set_temperature_resolution(const struct device *dev, uint8_t resolution) +{ + return jc42_reg_write_8bit(dev, JC42_REG_RESOLUTION, resolution); +} + +static int jc42_sample_fetch(const struct device *dev, enum sensor_channel chan) +{ + struct jc42_data *data = dev->data; + + __ASSERT_NO_MSG(chan == SENSOR_CHAN_ALL || chan == SENSOR_CHAN_AMBIENT_TEMP); + + return jc42_reg_read(dev, JC42_REG_TEMP_AMB, &data->reg_val); +} + +static int jc42_channel_get(const struct device *dev, enum sensor_channel chan, + struct sensor_value *val) +{ + const struct jc42_data *data = dev->data; + int temp = jc42_temp_signed_from_reg(data->reg_val); + + __ASSERT_NO_MSG(chan == SENSOR_CHAN_AMBIENT_TEMP); + + if (chan != SENSOR_CHAN_AMBIENT_TEMP) { + return -ENOTSUP; + } + + val->val1 = temp / JC42_TEMP_SCALE_CEL; + temp -= val->val1 * JC42_TEMP_SCALE_CEL; + val->val2 = (temp * 1000000) / JC42_TEMP_SCALE_CEL; + + return 0; +} + +static const struct sensor_driver_api jc42_api_funcs = { + .sample_fetch = jc42_sample_fetch, + .channel_get = jc42_channel_get, +#ifdef CONFIG_JC42_TRIGGER + .attr_set = jc42_attr_set, + .trigger_set = jc42_trigger_set, +#endif /* CONFIG_JC42_TRIGGER */ +}; + +int jc42_init(const struct device *dev) +{ + const struct jc42_config *cfg = dev->config; + int rc = 0; + + if (!device_is_ready(cfg->i2c.bus)) { + LOG_ERR("Bus device is not ready"); + return -ENODEV; + } + + rc = jc42_set_temperature_resolution(dev, cfg->resolution); + if (rc) { + LOG_ERR("Could not set the resolution of jc42 module"); + return rc; + } + +#ifdef CONFIG_JC42_TRIGGER + if (cfg->int_gpio.port) { + rc = jc42_setup_interrupt(dev); + } +#endif /* CONFIG_JC42_TRIGGER */ + + return rc; +} + +#define JC42_DEFINE(inst) \ + static struct jc42_data jc42_data_##inst; \ + \ + static const struct jc42_config jc42_config_##inst = { \ + .i2c = I2C_DT_SPEC_INST_GET(inst), \ + .resolution = DT_INST_PROP(inst, resolution), \ + IF_ENABLED(CONFIG_JC42_TRIGGER, \ + (.int_gpio = GPIO_DT_SPEC_INST_GET_OR(inst, int_gpios, {0}),))}; \ + \ + SENSOR_DEVICE_DT_INST_DEFINE(inst, jc42_init, NULL, &jc42_data_##inst, \ + &jc42_config_##inst, POST_KERNEL, \ + CONFIG_SENSOR_INIT_PRIORITY, &jc42_api_funcs); + +DT_INST_FOREACH_STATUS_OKAY(JC42_DEFINE) diff --git a/drivers/sensor/jedec/jc42/jc42.h b/drivers/sensor/jedec/jc42/jc42.h new file mode 100644 index 00000000000..03108044731 --- /dev/null +++ b/drivers/sensor/jedec/jc42/jc42.h @@ -0,0 +1,133 @@ +/* + * Copyright (c) 2019 Peter Bigot Consulting, LLC + * Copyright (c) 2016 Intel Corporation + * Copyright (c) 2024 Vogl Electronic GmbH + * + * SPDX-License-Identifier: Apache-2.0 + */ + +#ifndef ZEPHYR_DRIVERS_SENSOR_JEDEC_JC42_H_ +#define ZEPHYR_DRIVERS_SENSOR_JEDEC_JC42_H_ + +#include + +#include +#include +#include +#include +#include +#include + +#define JC42_REG_CONFIG 0x01 +#define JC42_REG_UPPER_LIMIT 0x02 +#define JC42_REG_LOWER_LIMIT 0x03 +#define JC42_REG_CRITICAL 0x04 +#define JC42_REG_TEMP_AMB 0x05 + +/* 16 bits control configuration and state. + * + * * Bit 0 controls alert signal output mode + * * Bit 1 controls interrupt polarity + * * Bit 2 disables upper and lower threshold checking + * * Bit 3 enables alert signal output + * * Bit 4 records alert status + * * Bit 5 records interrupt status + * * Bit 6 locks the upper/lower window registers + * * Bit 7 locks the critical register + * * Bit 8 enters shutdown mode + * * Bits 9-10 control threshold hysteresis + */ +#define JC42_CFG_ALERT_MODE_INT BIT(0) +#define JC42_CFG_ALERT_ENA BIT(3) +#define JC42_CFG_ALERT_STATE BIT(4) +#define JC42_CFG_INT_CLEAR BIT(5) + +/* 16 bits are used for temperature and state encoding: + * * Bits 0..11 encode the temperature in a 2s complement signed value + * in Celsius with 1/16 Cel resolution + * * Bit 12 is set to indicate a negative temperature + * * Bit 13 is set to indicate a temperature below the lower threshold + * * Bit 14 is set to indicate a temperature above the upper threshold + * * Bit 15 is set to indicate a temperature above the critical threshold + */ +#define JC42_TEMP_SCALE_CEL 16 /* signed */ +#define JC42_TEMP_SIGN_BIT BIT(12) +#define JC42_TEMP_ABS_MASK ((uint16_t)(JC42_TEMP_SIGN_BIT - 1U)) +#define JC42_TEMP_LWR_BIT BIT(13) +#define JC42_TEMP_UPR_BIT BIT(14) +#define JC42_TEMP_CRT_BIT BIT(15) + +#define JC42_REG_RESOLUTION 0x08 + +struct jc42_data { + uint16_t reg_val; + +#ifdef CONFIG_JC42_TRIGGER + struct gpio_callback alert_cb; + + const struct device *dev; + + const struct sensor_trigger *trig; + sensor_trigger_handler_t trigger_handler; +#endif + +#ifdef CONFIG_JC42_TRIGGER_OWN_THREAD + struct k_sem sem; +#endif + +#ifdef CONFIG_JC42_TRIGGER_GLOBAL_THREAD + struct k_work work; +#endif +}; + +struct jc42_config { + struct i2c_dt_spec i2c; + uint8_t resolution; +#ifdef CONFIG_JC42_TRIGGER + struct gpio_dt_spec int_gpio; +#endif /* CONFIG_JC42_TRIGGER */ +}; + +int jc42_reg_read(const struct device *dev, uint8_t reg, uint16_t *val); +int jc42_reg_write_16bit(const struct device *dev, uint8_t reg, uint16_t val); +int jc42_reg_write_8bit(const struct device *dev, uint8_t reg, uint8_t val); + +#ifdef CONFIG_JC42_TRIGGER +int jc42_attr_set(const struct device *dev, enum sensor_channel chan, enum sensor_attribute attr, + const struct sensor_value *val); +int jc42_trigger_set(const struct device *dev, const struct sensor_trigger *trig, + sensor_trigger_handler_t handler); +int jc42_setup_interrupt(const struct device *dev); +#endif /* CONFIG_JC42_TRIGGER */ + +/* Encode a signed temperature in scaled Celsius to the format used in + * register values. + */ +static inline uint16_t jc42_temp_reg_from_signed(int temp) +{ + /* Get the 12-bit 2s complement value */ + uint16_t rv = temp & JC42_TEMP_ABS_MASK; + + if (temp < 0) { + rv |= JC42_TEMP_SIGN_BIT; + } + return rv; +} + +/* Decode a register temperature value to a signed temperature in + * scaled Celsius. + */ +static inline int jc42_temp_signed_from_reg(uint16_t reg) +{ + int rv = reg & JC42_TEMP_ABS_MASK; + + if (reg & JC42_TEMP_SIGN_BIT) { + /* Convert 12-bit 2s complement to signed negative + * value. + */ + rv = -(1U + (rv ^ JC42_TEMP_ABS_MASK)); + } + return rv; +} + +#endif /* ZEPHYR_DRIVERS_SENSOR_JEDEC_JC42_H_ */ diff --git a/drivers/sensor/microchip/mcp9808/mcp9808_trigger.c b/drivers/sensor/jedec/jc42/jc42_trigger.c similarity index 54% rename from drivers/sensor/microchip/mcp9808/mcp9808_trigger.c rename to drivers/sensor/jedec/jc42/jc42_trigger.c index 6c42661d073..8ba9970720d 100644 --- a/drivers/sensor/microchip/mcp9808/mcp9808_trigger.c +++ b/drivers/sensor/jedec/jc42/jc42_trigger.c @@ -1,5 +1,6 @@ /* * Copyright (c) 2019 Peter Bigot Consulting, LLC + * Copyright (c) 2024 Vogl Electronic GmbH * * SPDX-License-Identifier: Apache-2.0 */ @@ -10,15 +11,15 @@ #include #include #include -#include "mcp9808.h" +#include "jc42.h" -LOG_MODULE_DECLARE(MCP9808, CONFIG_SENSOR_LOG_LEVEL); +LOG_MODULE_DECLARE(JC42, CONFIG_SENSOR_LOG_LEVEL); -int mcp9808_attr_set(const struct device *dev, enum sensor_channel chan, +int jc42_attr_set(const struct device *dev, enum sensor_channel chan, enum sensor_attribute attr, const struct sensor_value *val) { - const struct mcp9808_config *cfg = dev->config; + const struct jc42_config *cfg = dev->config; uint8_t reg_addr; int temp; @@ -30,10 +31,10 @@ int mcp9808_attr_set(const struct device *dev, enum sensor_channel chan, switch (attr) { case SENSOR_ATTR_LOWER_THRESH: - reg_addr = MCP9808_REG_LOWER_LIMIT; + reg_addr = JC42_REG_LOWER_LIMIT; break; case SENSOR_ATTR_UPPER_THRESH: - reg_addr = MCP9808_REG_UPPER_LIMIT; + reg_addr = JC42_REG_UPPER_LIMIT; break; default: return -EINVAL; @@ -42,17 +43,17 @@ int mcp9808_attr_set(const struct device *dev, enum sensor_channel chan, /* Convert temperature to a signed scaled value, then write * the 12-bit 2s complement-plus-sign-bit register value. */ - temp = val->val1 * MCP9808_TEMP_SCALE_CEL; - temp += (MCP9808_TEMP_SCALE_CEL * val->val2) / 1000000; + temp = val->val1 * JC42_TEMP_SCALE_CEL; + temp += (JC42_TEMP_SCALE_CEL * val->val2) / 1000000; - return mcp9808_reg_write_16bit(dev, reg_addr, - mcp9808_temp_reg_from_signed(temp)); + return jc42_reg_write_16bit(dev, reg_addr, + jc42_temp_reg_from_signed(temp)); } static inline void setup_int(const struct device *dev, bool enable) { - const struct mcp9808_config *cfg = dev->config; + const struct jc42_config *cfg = dev->config; unsigned int flags = enable ? GPIO_INT_EDGE_TO_ACTIVE : GPIO_INT_DISABLE; @@ -62,20 +63,20 @@ static inline void setup_int(const struct device *dev, static void handle_int(const struct device *dev) { - struct mcp9808_data *data = dev->data; + struct jc42_data *data = dev->data; setup_int(dev, false); -#if defined(CONFIG_MCP9808_TRIGGER_OWN_THREAD) +#if defined(CONFIG_JC42_TRIGGER_OWN_THREAD) k_sem_give(&data->sem); -#elif defined(CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD) +#elif defined(CONFIG_JC42_TRIGGER_GLOBAL_THREAD) k_work_submit(&data->work); #endif } static void process_int(const struct device *dev) { - struct mcp9808_data *data = dev->data; + struct jc42_data *data = dev->data; if (data->trigger_handler) { data->trigger_handler(dev, data->trig); @@ -86,12 +87,12 @@ static void process_int(const struct device *dev) } } -int mcp9808_trigger_set(const struct device *dev, +int jc42_trigger_set(const struct device *dev, const struct sensor_trigger *trig, sensor_trigger_handler_t handler) { - struct mcp9808_data *data = dev->data; - const struct mcp9808_config *cfg = dev->config; + struct jc42_data *data = dev->data; + const struct jc42_config *cfg = dev->config; int rv = 0; if (!cfg->int_gpio.port) { @@ -119,22 +120,22 @@ int mcp9808_trigger_set(const struct device *dev, static void alert_cb(const struct device *dev, struct gpio_callback *cb, uint32_t pins) { - struct mcp9808_data *data = - CONTAINER_OF(cb, struct mcp9808_data, alert_cb); + struct jc42_data *data = + CONTAINER_OF(cb, struct jc42_data, alert_cb); ARG_UNUSED(pins); handle_int(data->dev); } -#ifdef CONFIG_MCP9808_TRIGGER_OWN_THREAD +#ifdef CONFIG_JC42_TRIGGER_OWN_THREAD -static void mcp9808_thread_main(void *p1, void *p2, void *p3) +static void jc42_thread_main(void *p1, void *p2, void *p3) { ARG_UNUSED(p2); ARG_UNUSED(p3); - struct mcp9808_data *data = p1; + struct jc42_data *data = p1; while (true) { k_sem_take(&data->sem, K_FOREVER); @@ -142,43 +143,43 @@ static void mcp9808_thread_main(void *p1, void *p2, void *p3) } } -static K_KERNEL_STACK_DEFINE(mcp9808_thread_stack, CONFIG_MCP9808_THREAD_STACK_SIZE); -static struct k_thread mcp9808_thread; -#else /* CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD */ +static K_KERNEL_STACK_DEFINE(jc42_thread_stack, CONFIG_JC42_THREAD_STACK_SIZE); +static struct k_thread jc42_thread; +#else /* CONFIG_JC42_TRIGGER_GLOBAL_THREAD */ -static void mcp9808_gpio_thread_cb(struct k_work *work) +static void jc42_gpio_thread_cb(struct k_work *work) { - struct mcp9808_data *data = - CONTAINER_OF(work, struct mcp9808_data, work); + struct jc42_data *data = + CONTAINER_OF(work, struct jc42_data, work); process_int(data->dev); } -#endif /* CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD */ +#endif /* CONFIG_JC42_TRIGGER_GLOBAL_THREAD */ -int mcp9808_setup_interrupt(const struct device *dev) +int jc42_setup_interrupt(const struct device *dev) { - struct mcp9808_data *data = dev->data; - const struct mcp9808_config *cfg = dev->config; - int rc = mcp9808_reg_write_16bit(dev, MCP9808_REG_CRITICAL, - MCP9808_TEMP_ABS_MASK); + struct jc42_data *data = dev->data; + const struct jc42_config *cfg = dev->config; + int rc = jc42_reg_write_16bit(dev, JC42_REG_CRITICAL, + JC42_TEMP_ABS_MASK); if (rc == 0) { - rc = mcp9808_reg_write_16bit(dev, MCP9808_REG_CONFIG, - MCP9808_CFG_ALERT_ENA); + rc = jc42_reg_write_16bit(dev, JC42_REG_CONFIG, + JC42_CFG_ALERT_ENA); } data->dev = dev; -#ifdef CONFIG_MCP9808_TRIGGER_OWN_THREAD +#ifdef CONFIG_JC42_TRIGGER_OWN_THREAD k_sem_init(&data->sem, 0, K_SEM_MAX_LIMIT); - k_thread_create(&mcp9808_thread, mcp9808_thread_stack, - CONFIG_MCP9808_THREAD_STACK_SIZE, - mcp9808_thread_main, data, NULL, NULL, - K_PRIO_COOP(CONFIG_MCP9808_THREAD_PRIORITY), + k_thread_create(&jc42_thread, jc42_thread_stack, + CONFIG_JC42_THREAD_STACK_SIZE, + jc42_thread_main, data, NULL, NULL, + K_PRIO_COOP(CONFIG_JC42_THREAD_PRIORITY), 0, K_NO_WAIT); -#else /* CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD */ - data->work.handler = mcp9808_gpio_thread_cb; +#else /* CONFIG_JC42_TRIGGER_GLOBAL_THREAD */ + data->work.handler = jc42_gpio_thread_cb; #endif /* trigger type */ if (!gpio_is_ready_dt(&cfg->int_gpio)) { diff --git a/drivers/sensor/microchip/CMakeLists.txt b/drivers/sensor/microchip/CMakeLists.txt index f9cb91f8dae..f26696ba1bb 100644 --- a/drivers/sensor/microchip/CMakeLists.txt +++ b/drivers/sensor/microchip/CMakeLists.txt @@ -4,7 +4,6 @@ # zephyr-keep-sorted-start add_subdirectory_ifdef(CONFIG_MCP9600 mcp9600) add_subdirectory_ifdef(CONFIG_MCP970X mcp970x) -add_subdirectory_ifdef(CONFIG_MCP9808 mcp9808) add_subdirectory_ifdef(CONFIG_TACH_XEC mchp_tach_xec) add_subdirectory_ifdef(CONFIG_TCN75A tcn75a) # zephyr-keep-sorted-stop diff --git a/drivers/sensor/microchip/Kconfig b/drivers/sensor/microchip/Kconfig index 7b57487dcd0..dd33798135a 100644 --- a/drivers/sensor/microchip/Kconfig +++ b/drivers/sensor/microchip/Kconfig @@ -5,6 +5,5 @@ source "drivers/sensor/microchip/mchp_tach_xec/Kconfig" source "drivers/sensor/microchip/mcp9600/Kconfig" source "drivers/sensor/microchip/mcp970x/Kconfig" -source "drivers/sensor/microchip/mcp9808/Kconfig" source "drivers/sensor/microchip/tcn75a/Kconfig" # zephyr-keep-sorted-stop diff --git a/drivers/sensor/microchip/mcp9808/CMakeLists.txt b/drivers/sensor/microchip/mcp9808/CMakeLists.txt deleted file mode 100644 index 8baa84cb09f..00000000000 --- a/drivers/sensor/microchip/mcp9808/CMakeLists.txt +++ /dev/null @@ -1,6 +0,0 @@ -# SPDX-License-Identifier: Apache-2.0 - -zephyr_library() - -zephyr_library_sources(mcp9808.c) -zephyr_library_sources_ifdef(CONFIG_MCP9808_TRIGGER mcp9808_trigger.c) diff --git a/drivers/sensor/microchip/mcp9808/Kconfig b/drivers/sensor/microchip/mcp9808/Kconfig deleted file mode 100644 index c487dd0b160..00000000000 --- a/drivers/sensor/microchip/mcp9808/Kconfig +++ /dev/null @@ -1,48 +0,0 @@ -# MCP9808 temperature sensor configuration options - -# Copyright (c) 2016 Intel Corporation -# SPDX-License-Identifier: Apache-2.0 - -menuconfig MCP9808 - bool "MCP9808 temperature sensor" - default y - depends on DT_HAS_MICROCHIP_MCP9808_ENABLED - select I2C - help - Enable driver for MCP9808 temperature sensor. - -if MCP9808 - -choice - prompt "MCP9808 trigger mode" - default MCP9808_TRIGGER_NONE - -config MCP9808_TRIGGER_NONE - bool "No trigger" - -config MCP9808_TRIGGER_GLOBAL_THREAD - depends on GPIO - select MCP9808_TRIGGER - bool "Use global thread" - -config MCP9808_TRIGGER_OWN_THREAD - depends on GPIO - select MCP9808_TRIGGER - bool "Use own thread" - -endchoice - -config MCP9808_TRIGGER - bool - -config MCP9808_THREAD_STACK_SIZE - int "Sensor delayed work thread stack size" - depends on MCP9808_TRIGGER_OWN_THREAD - default 1024 - -config MCP9808_THREAD_PRIORITY - int "MCP9808 thread priority" - depends on MCP9808_TRIGGER_OWN_THREAD - default 10 - -endif # MCP9808 diff --git a/drivers/sensor/microchip/mcp9808/mcp9808.c b/drivers/sensor/microchip/mcp9808/mcp9808.c deleted file mode 100644 index 0563a558559..00000000000 --- a/drivers/sensor/microchip/mcp9808/mcp9808.c +++ /dev/null @@ -1,145 +0,0 @@ -/* - * Copyright (c) 2019 Peter Bigot Consulting, LLC - * Copyright (c) 2016 Intel Corporation - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#define DT_DRV_COMPAT microchip_mcp9808 - -#include - -#include -#include -#include -#include -#include -#include - -#include "mcp9808.h" - -LOG_MODULE_REGISTER(MCP9808, CONFIG_SENSOR_LOG_LEVEL); - -int mcp9808_reg_read(const struct device *dev, uint8_t reg, uint16_t *val) -{ - const struct mcp9808_config *cfg = dev->config; - int rc = i2c_write_read_dt(&cfg->i2c, ®, sizeof(reg), val, - sizeof(*val)); - - if (rc == 0) { - *val = sys_be16_to_cpu(*val); - } - - return rc; -} - -int mcp9808_reg_write_16bit(const struct device *dev, uint8_t reg, - uint16_t val) -{ - const struct mcp9808_config *cfg = dev->config; - - uint8_t buf[3]; - - buf[0] = reg; - sys_put_be16(val, &buf[1]); - - return i2c_write_dt(&cfg->i2c, buf, sizeof(buf)); -} - -int mcp9808_reg_write_8bit(const struct device *dev, uint8_t reg, - uint8_t val) -{ - const struct mcp9808_config *cfg = dev->config; - uint8_t buf[2] = { - reg, - val, - }; - - return i2c_write_dt(&cfg->i2c, buf, sizeof(buf)); -} - -static int mcp9808_set_temperature_resolution(const struct device *dev, - uint8_t resolution) -{ - return mcp9808_reg_write_8bit(dev, MCP9808_REG_RESOLUTION, resolution); -} - -static int mcp9808_sample_fetch(const struct device *dev, - enum sensor_channel chan) -{ - struct mcp9808_data *data = dev->data; - - __ASSERT_NO_MSG(chan == SENSOR_CHAN_ALL || chan == SENSOR_CHAN_AMBIENT_TEMP); - - return mcp9808_reg_read(dev, MCP9808_REG_TEMP_AMB, &data->reg_val); -} - -static int mcp9808_channel_get(const struct device *dev, - enum sensor_channel chan, - struct sensor_value *val) -{ - const struct mcp9808_data *data = dev->data; - int temp = mcp9808_temp_signed_from_reg(data->reg_val); - - __ASSERT_NO_MSG(chan == SENSOR_CHAN_AMBIENT_TEMP); - - if (chan != SENSOR_CHAN_AMBIENT_TEMP) { - return -ENOTSUP; - } - - val->val1 = temp / MCP9808_TEMP_SCALE_CEL; - temp -= val->val1 * MCP9808_TEMP_SCALE_CEL; - val->val2 = (temp * 1000000) / MCP9808_TEMP_SCALE_CEL; - - return 0; -} - -static const struct sensor_driver_api mcp9808_api_funcs = { - .sample_fetch = mcp9808_sample_fetch, - .channel_get = mcp9808_channel_get, -#ifdef CONFIG_MCP9808_TRIGGER - .attr_set = mcp9808_attr_set, - .trigger_set = mcp9808_trigger_set, -#endif /* CONFIG_MCP9808_TRIGGER */ -}; - -int mcp9808_init(const struct device *dev) -{ - const struct mcp9808_config *cfg = dev->config; - int rc = 0; - - if (!device_is_ready(cfg->i2c.bus)) { - LOG_ERR("Bus device is not ready"); - return -ENODEV; - } - - rc = mcp9808_set_temperature_resolution(dev, cfg->resolution); - if (rc) { - LOG_ERR("Could not set the resolution of mcp9808 module"); - return rc; - } - -#ifdef CONFIG_MCP9808_TRIGGER - if (cfg->int_gpio.port) { - rc = mcp9808_setup_interrupt(dev); - } -#endif /* CONFIG_MCP9808_TRIGGER */ - - return rc; -} - -#define MCP9808_DEFINE(inst) \ - static struct mcp9808_data mcp9808_data_##inst; \ - \ - static const struct mcp9808_config mcp9808_config_##inst = { \ - .i2c = I2C_DT_SPEC_INST_GET(inst), \ - .resolution = DT_INST_PROP(inst, resolution), \ - IF_ENABLED(CONFIG_MCP9808_TRIGGER, \ - (.int_gpio = GPIO_DT_SPEC_INST_GET_OR(inst, int_gpios, { 0 }),)) \ - }; \ - \ - SENSOR_DEVICE_DT_INST_DEFINE(inst, mcp9808_init, NULL, \ - &mcp9808_data_##inst, &mcp9808_config_##inst, POST_KERNEL, \ - CONFIG_SENSOR_INIT_PRIORITY, &mcp9808_api_funcs); \ - -DT_INST_FOREACH_STATUS_OKAY(MCP9808_DEFINE) diff --git a/drivers/sensor/microchip/mcp9808/mcp9808.h b/drivers/sensor/microchip/mcp9808/mcp9808.h deleted file mode 100644 index 7867b98e338..00000000000 --- a/drivers/sensor/microchip/mcp9808/mcp9808.h +++ /dev/null @@ -1,136 +0,0 @@ -/* - * Copyright (c) 2019 Peter Bigot Consulting, LLC - * Copyright (c) 2016 Intel Corporation - * - * SPDX-License-Identifier: Apache-2.0 - */ - -#ifndef ZEPHYR_DRIVERS_SENSOR_MCP9808_MCP9808_H_ -#define ZEPHYR_DRIVERS_SENSOR_MCP9808_MCP9808_H_ - -#include - -#include -#include -#include -#include -#include -#include - -#define MCP9808_REG_CONFIG 0x01 -#define MCP9808_REG_UPPER_LIMIT 0x02 -#define MCP9808_REG_LOWER_LIMIT 0x03 -#define MCP9808_REG_CRITICAL 0x04 -#define MCP9808_REG_TEMP_AMB 0x05 - -/* 16 bits control configuration and state. - * - * * Bit 0 controls alert signal output mode - * * Bit 1 controls interrupt polarity - * * Bit 2 disables upper and lower threshold checking - * * Bit 3 enables alert signal output - * * Bit 4 records alert status - * * Bit 5 records interrupt status - * * Bit 6 locks the upper/lower window registers - * * Bit 7 locks the critical register - * * Bit 8 enters shutdown mode - * * Bits 9-10 control threshold hysteresis - */ -#define MCP9808_CFG_ALERT_MODE_INT BIT(0) -#define MCP9808_CFG_ALERT_ENA BIT(3) -#define MCP9808_CFG_ALERT_STATE BIT(4) -#define MCP9808_CFG_INT_CLEAR BIT(5) - -/* 16 bits are used for temperature and state encoding: - * * Bits 0..11 encode the temperature in a 2s complement signed value - * in Celsius with 1/16 Cel resolution - * * Bit 12 is set to indicate a negative temperature - * * Bit 13 is set to indicate a temperature below the lower threshold - * * Bit 14 is set to indicate a temperature above the upper threshold - * * Bit 15 is set to indicate a temperature above the critical threshold - */ -#define MCP9808_TEMP_SCALE_CEL 16 /* signed */ -#define MCP9808_TEMP_SIGN_BIT BIT(12) -#define MCP9808_TEMP_ABS_MASK ((uint16_t)(MCP9808_TEMP_SIGN_BIT - 1U)) -#define MCP9808_TEMP_LWR_BIT BIT(13) -#define MCP9808_TEMP_UPR_BIT BIT(14) -#define MCP9808_TEMP_CRT_BIT BIT(15) - -#define MCP9808_REG_RESOLUTION 0x08 - -struct mcp9808_data { - uint16_t reg_val; - -#ifdef CONFIG_MCP9808_TRIGGER - struct gpio_callback alert_cb; - - const struct device *dev; - - const struct sensor_trigger *trig; - sensor_trigger_handler_t trigger_handler; -#endif - -#ifdef CONFIG_MCP9808_TRIGGER_OWN_THREAD - struct k_sem sem; -#endif - -#ifdef CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD - struct k_work work; -#endif -}; - -struct mcp9808_config { - struct i2c_dt_spec i2c; - uint8_t resolution; -#ifdef CONFIG_MCP9808_TRIGGER - struct gpio_dt_spec int_gpio; -#endif /* CONFIG_MCP9808_TRIGGER */ -}; - -int mcp9808_reg_read(const struct device *dev, uint8_t reg, uint16_t *val); -int mcp9808_reg_write_16bit(const struct device *dev, uint8_t reg, - uint16_t val); -int mcp9808_reg_write_8bit(const struct device *dev, uint8_t reg, - uint8_t val); - -#ifdef CONFIG_MCP9808_TRIGGER -int mcp9808_attr_set(const struct device *dev, enum sensor_channel chan, - enum sensor_attribute attr, - const struct sensor_value *val); -int mcp9808_trigger_set(const struct device *dev, - const struct sensor_trigger *trig, - sensor_trigger_handler_t handler); -int mcp9808_setup_interrupt(const struct device *dev); -#endif /* CONFIG_MCP9808_TRIGGER */ - -/* Encode a signed temperature in scaled Celsius to the format used in - * register values. - */ -static inline uint16_t mcp9808_temp_reg_from_signed(int temp) -{ - /* Get the 12-bit 2s complement value */ - uint16_t rv = temp & MCP9808_TEMP_ABS_MASK; - - if (temp < 0) { - rv |= MCP9808_TEMP_SIGN_BIT; - } - return rv; -} - -/* Decode a register temperature value to a signed temperature in - * scaled Celsius. - */ -static inline int mcp9808_temp_signed_from_reg(uint16_t reg) -{ - int rv = reg & MCP9808_TEMP_ABS_MASK; - - if (reg & MCP9808_TEMP_SIGN_BIT) { - /* Convert 12-bit 2s complement to signed negative - * value. - */ - rv = -(1U + (rv ^ MCP9808_TEMP_ABS_MASK)); - } - return rv; -} - -#endif /* ZEPHYR_DRIVERS_SENSOR_MCP9808_MCP9808_H_ */ diff --git a/dts/bindings/sensor/microchip,mcp9808.yaml b/dts/bindings/sensor/jedec,jc-42.4-temp.yaml similarity index 68% rename from dts/bindings/sensor/microchip,mcp9808.yaml rename to dts/bindings/sensor/jedec,jc-42.4-temp.yaml index 7467d75e0f8..baf911b9126 100644 --- a/dts/bindings/sensor/microchip,mcp9808.yaml +++ b/dts/bindings/sensor/jedec,jc-42.4-temp.yaml @@ -1,11 +1,14 @@ # Copyright (c) 2019, Linaro Limited +# Copyright (c) 2024 Vogl Electronic GmbH # SPDX-License-Identifier: Apache-2.0 description: | - Microchip MCP9808 Digital Temperature Sensor. See + JEDEC JC42.4 compliant temperature sensor. See + http://www.jedec.org/sites/default/files/docs/4_01_04R19.pdf. + Driver based on the Microchip MCP9808 Digital Temperature Sensor. See http://ww1.microchip.com/downloads/en/DeviceDoc/25095A.pdf. -compatible: "microchip,mcp9808" +compatible: "jedec,jc-42.4-temp" include: [sensor-device.yaml, i2c-device.yaml] @@ -24,6 +27,10 @@ properties: description: | Sensor resolution. Default is 0.0625C (0b11), which is the power-up default. + 0 = 0.5°C + 1 = 0.25°C + 2 = 0.125°C + 3 = 0.0625°C enum: - 0 # 0.5C - 1 # 0.25C diff --git a/samples/sensor/mcp9808/CMakeLists.txt b/samples/sensor/jc42/CMakeLists.txt similarity index 100% rename from samples/sensor/mcp9808/CMakeLists.txt rename to samples/sensor/jc42/CMakeLists.txt diff --git a/samples/sensor/mcp9808/README.rst b/samples/sensor/jc42/README.rst similarity index 83% rename from samples/sensor/mcp9808/README.rst rename to samples/sensor/jc42/README.rst index 3901b5e40d7..0b218d92e7b 100644 --- a/samples/sensor/mcp9808/README.rst +++ b/samples/sensor/jc42/README.rst @@ -1,7 +1,7 @@ -.. _mcp9808-sample: +.. _jc42-sample: -MCP9808 Temperature Sensor -########################## +JEDEC JC 42.4 compliant Temperature Sensor +########################################## Overview ******** @@ -17,6 +17,9 @@ window is moved to center on the new temperature. Requirements ************ +The sample requires a JEDEC JC 42.4 compliant temperature sensor. The +sample is configured to use the MCP9808 sensor. + The MCP9808 digital temperature sensor converts temperatures between -20 |deg| C and +100 |deg| C to a digital word with |plusminus| 0.5 |deg| C (max.) accuracy. It is I2C compatible and supports up to 16 devices on the bus. @@ -24,7 +27,8 @@ accuracy. It is I2C compatible and supports up to 16 devices on the bus. Wiring ******* -The MCP9808 is available in a discrete component form but it is much easier to +The MCP9808, which is a JEDEC JC 42.4 compliant temperature sensor, is +available in a discrete component form but it is much easier to use it mounted on a breakout board. We used the Adafruit `MCP9808 Sensor`_ breakout board. @@ -37,7 +41,7 @@ After providing a devicetree overlay that specifies the sensor I2C bus and alert GPIO, build this sample app using: .. zephyr-app-commands:: - :zephyr-app: samples/sensor/mcp9808 + :zephyr-app: samples/sensor/jc42 :board: particle_xenon :goals: build flash diff --git a/samples/sensor/mcp9808/boards/frdm_k64f.overlay b/samples/sensor/jc42/boards/frdm_k64f.overlay similarity index 76% rename from samples/sensor/mcp9808/boards/frdm_k64f.overlay rename to samples/sensor/jc42/boards/frdm_k64f.overlay index bff4f527a5b..129dc1090c9 100644 --- a/samples/sensor/mcp9808/boards/frdm_k64f.overlay +++ b/samples/sensor/jc42/boards/frdm_k64f.overlay @@ -6,7 +6,7 @@ &i2c0 { mcp9808@18 { - compatible = "microchip,mcp9808"; + compatible = "microchip,mcp9808", "jedec,jc-42.4-temp"; reg = <0x18>; int-gpios = <&gpioc 16 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; }; diff --git a/samples/sensor/mcp9808/boards/nucleo_l031k6.overlay b/samples/sensor/jc42/boards/nucleo_l031k6.overlay similarity index 80% rename from samples/sensor/mcp9808/boards/nucleo_l031k6.overlay rename to samples/sensor/jc42/boards/nucleo_l031k6.overlay index 1d08f69827a..fb67ba8d804 100644 --- a/samples/sensor/mcp9808/boards/nucleo_l031k6.overlay +++ b/samples/sensor/jc42/boards/nucleo_l031k6.overlay @@ -6,7 +6,7 @@ &i2c1 { mcp9808@18 { - compatible = "microchip,mcp9808"; + compatible = "microchip,mcp9808", "jedec,jc-42.4-temp"; reg = <0x18>; int-gpios = <&gpiob 4 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; resolution = <3>; diff --git a/samples/sensor/mcp9808/boards/nucleo_l053r8.overlay b/samples/sensor/jc42/boards/nucleo_l053r8.overlay similarity index 80% rename from samples/sensor/mcp9808/boards/nucleo_l053r8.overlay rename to samples/sensor/jc42/boards/nucleo_l053r8.overlay index 7448b6908d6..3e687381676 100644 --- a/samples/sensor/mcp9808/boards/nucleo_l053r8.overlay +++ b/samples/sensor/jc42/boards/nucleo_l053r8.overlay @@ -6,7 +6,7 @@ &i2c1 { mcp9808@18 { - compatible = "microchip,mcp9808"; + compatible = "microchip,mcp9808", "jedec,jc-42.4-temp"; reg = <0x18>; int-gpios = <&gpioa 8 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; resolution = <3>; diff --git a/samples/sensor/mcp9808/boards/particle_xenon.overlay b/samples/sensor/jc42/boards/particle_xenon.overlay similarity index 76% rename from samples/sensor/mcp9808/boards/particle_xenon.overlay rename to samples/sensor/jc42/boards/particle_xenon.overlay index bf389d1a6ae..d10066a203c 100644 --- a/samples/sensor/mcp9808/boards/particle_xenon.overlay +++ b/samples/sensor/jc42/boards/particle_xenon.overlay @@ -6,7 +6,7 @@ &i2c0 { mcp9808@18 { - compatible = "microchip,mcp9808"; + compatible = "microchip,mcp9808", "jedec,jc-42.4-temp"; reg = <0x18>; int-gpios = <&gpio1 1 (GPIO_PULL_UP | GPIO_ACTIVE_LOW)>; }; diff --git a/samples/sensor/jc42/prj.conf b/samples/sensor/jc42/prj.conf new file mode 100644 index 00000000000..92953b4394e --- /dev/null +++ b/samples/sensor/jc42/prj.conf @@ -0,0 +1,8 @@ +CONFIG_STDOUT_CONSOLE=y +CONFIG_I2C=y +CONFIG_GPIO=y +CONFIG_SENSOR=y +#CONFIG_JC42_TRIGGER_NONE=y +CONFIG_JC42_TRIGGER_OWN_THREAD=y +#CONFIG_JC42_TRIGGER_GLOBAL_THREAD=y +CONFIG_CBPRINTF_FP_SUPPORT=y diff --git a/samples/sensor/mcp9808/sample.yaml b/samples/sensor/jc42/sample.yaml similarity index 55% rename from samples/sensor/mcp9808/sample.yaml rename to samples/sensor/jc42/sample.yaml index 14b73f40dee..2da02f4879e 100644 --- a/samples/sensor/mcp9808/sample.yaml +++ b/samples/sensor/jc42/sample.yaml @@ -1,11 +1,11 @@ sample: - name: MCP9808 Temperature Sensor + name: JEDEC JC 42.4 compliant Temperature Sensor tests: - sample.sensor.mcp9808: + sample.sensor.jc42: harness: sensor tags: sensors depends_on: i2c - filter: dt_compat_enabled("microchip,mcp9808") + filter: dt_compat_enabled("jedec,jc-42.4-temp") platform_allow: nucleo_l053r8 integration_platforms: - nucleo_l053r8 diff --git a/samples/sensor/mcp9808/src/main.c b/samples/sensor/jc42/src/main.c similarity index 96% rename from samples/sensor/mcp9808/src/main.c rename to samples/sensor/jc42/src/main.c index b6fbbf0bfbb..5a5f1db5f34 100644 --- a/samples/sensor/mcp9808/src/main.c +++ b/samples/sensor/jc42/src/main.c @@ -36,7 +36,7 @@ static const char *now_str(void) return buf; } -#ifdef CONFIG_MCP9808_TRIGGER +#ifdef CONFIG_JC42_TRIGGER static struct sensor_trigger sensor_trig; @@ -106,7 +106,7 @@ static void trigger_handler(const struct device *dev, int main(void) { - const struct device *const dev = DEVICE_DT_GET_ANY(microchip_mcp9808); + const struct device *const dev = DEVICE_DT_GET_ANY(jedec_jc_42_4_temp); int rc; if (dev == NULL) { @@ -118,7 +118,7 @@ int main(void) return 0; } -#ifdef CONFIG_MCP9808_TRIGGER +#ifdef CONFIG_JC42_TRIGGER rc = set_window_ucel(dev, TEMP_INITIAL_CEL * UCEL_PER_CEL); if (rc == 0) { sensor_trig.type = SENSOR_TRIG_THRESHOLD; diff --git a/samples/sensor/mcp9808/prj.conf b/samples/sensor/mcp9808/prj.conf deleted file mode 100644 index cd2981806d2..00000000000 --- a/samples/sensor/mcp9808/prj.conf +++ /dev/null @@ -1,8 +0,0 @@ -CONFIG_STDOUT_CONSOLE=y -CONFIG_I2C=y -CONFIG_GPIO=y -CONFIG_SENSOR=y -#CONFIG_MCP9808_TRIGGER_NONE=y -CONFIG_MCP9808_TRIGGER_OWN_THREAD=y -#CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD=y -CONFIG_CBPRINTF_FP_SUPPORT=y diff --git a/tests/drivers/build_all/sensor/i2c.dtsi b/tests/drivers/build_all/sensor/i2c.dtsi index 8bf865c14f2..f7a744a4a27 100644 --- a/tests/drivers/build_all/sensor/i2c.dtsi +++ b/tests/drivers/build_all/sensor/i2c.dtsi @@ -180,8 +180,8 @@ test_i2c_ms5837: ms5837@18 { reg = <0x18>; }; -test_i2c_mcp9808: mcp9808@19 { - compatible = "microchip,mcp9808"; +test_i2c_jc42: jc42@19 { + compatible = "jedec,jc-42.4-temp"; reg = <0x19>; 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 3a36a350e6a..9d40c48336d 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_IIS2MDC_TRIGGER_GLOBAL_THREAD=y CONFIG_IIS3DHHC_TRIGGER_GLOBAL_THREAD=y CONFIG_ISL29035_TRIGGER_GLOBAL_THREAD=y CONFIG_ISM330DHCX_TRIGGER_GLOBAL_THREAD=y +CONFIG_JC42_TRIGGER_GLOBAL_THREAD=y CONFIG_LIS2DH_TRIGGER_GLOBAL_THREAD=y CONFIG_LIS2DE12_TRIGGER_GLOBAL_THREAD=y CONFIG_LIS2DS12_TRIGGER_GLOBAL_THREAD=y @@ -48,7 +49,6 @@ CONFIG_LSM6DSL_TRIGGER_GLOBAL_THREAD=y CONFIG_LSM6DSO_TRIGGER_GLOBAL_THREAD=y CONFIG_LSM6DSO16IS_TRIGGER_GLOBAL_THREAD=y CONFIG_LSM6DSV16X_TRIGGER_GLOBAL_THREAD=y -CONFIG_MCP9808_TRIGGER_GLOBAL_THREAD=y CONFIG_MPU6050_TRIGGER_GLOBAL_THREAD=y CONFIG_MPU9250_TRIGGER_GLOBAL_THREAD=y CONFIG_SHT3XD_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 805347a11a7..428d385d0b9 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_IIS2MDC_TRIGGER_NONE=y CONFIG_IIS3DHHC_TRIGGER_NONE=y CONFIG_ISL29035_TRIGGER_NONE=y CONFIG_ISM330DHCX_TRIGGER_NONE=y +CONFIG_JC42_TRIGGER_NONE=y CONFIG_LIS2DH_TRIGGER_NONE=y CONFIG_LIS2DE12_TRIGGER_NONE=y CONFIG_LIS2DS12_TRIGGER_NONE=y @@ -48,7 +49,6 @@ CONFIG_LSM6DSL_TRIGGER_NONE=y CONFIG_LSM6DSO_TRIGGER_NONE=y CONFIG_LSM6DSO16IS_TRIGGER_NONE=y CONFIG_LSM6DSV16X_TRIGGER_NONE=y -CONFIG_MCP9808_TRIGGER_NONE=y CONFIG_MPU6050_TRIGGER_NONE=y CONFIG_MPU9250_TRIGGER_NONE=y CONFIG_SHT3XD_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 ef31101c3c1..e373ba0f1bd 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_IIS2MDC_TRIGGER_OWN_THREAD=y CONFIG_IIS3DHHC_TRIGGER_OWN_THREAD=y CONFIG_ISL29035_TRIGGER_OWN_THREAD=y CONFIG_ISM330DHCX_TRIGGER_OWN_THREAD=y +CONFIG_JC42_TRIGGER_OWN_THREAD=y CONFIG_LIS2DH_TRIGGER_OWN_THREAD=y CONFIG_LIS2DE12_TRIGGER_OWN_THREAD=y CONFIG_LIS2DS12_TRIGGER_OWN_THREAD=y @@ -46,7 +47,6 @@ CONFIG_LSM6DSO_TRIGGER_OWN_THREAD=y CONFIG_LSM6DSO16IS_TRIGGER_OWN_THREAD=y CONFIG_LSM6DSV16X_TRIGGER_OWN_THREAD=y CONFIG_MC3419_TRIGGER_OWN_THREAD=y -CONFIG_MCP9808_TRIGGER_OWN_THREAD=y CONFIG_MPU6050_TRIGGER_OWN_THREAD=y CONFIG_MPU9250_TRIGGER_OWN_THREAD=y CONFIG_SHT3XD_TRIGGER_OWN_THREAD=y