1 /*
2 * Copyright (c) 2025 Microchip Technology Inc.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7 #include <stdio.h>
8
9 #include <zephyr/device.h>
10 #include <zephyr/devicetree.h>
11 #include <zephyr/drivers/gpio.h>
12 #include <zephyr/drivers/sensor/mtch9010.h>
13 #include <zephyr/kernel.h>
14
main(void)15 int main(void)
16 {
17 const struct device *my_sensor = DEVICE_DT_GET(
18 DT_COMPAT_GET_ANY_STATUS_OKAY(microchip_mtch9010));
19
20 if (!device_is_ready(my_sensor)) {
21 printk("MTCH9010 is NOT Ready\n");
22 return 0;
23 }
24
25 struct sensor_value val;
26
27 while (1) {
28 sensor_sample_fetch(my_sensor);
29
30 if (sensor_channel_get(my_sensor, SENSOR_CHAN_MTCH9010_SW_OUT_STATE, &val) < 0) {
31 printk("Unable to fetch SENSOR_CHAN_MTCH9010_SW_OUT_STATE\r\n");
32 } else {
33 printk("SENSOR_CHAN_MTCH9010_SW_OUT_STATE = %d\r\n", val.val1);
34 }
35
36 if (sensor_channel_get(my_sensor, SENSOR_CHAN_MTCH9010_OUT_STATE, &val) < 0) {
37 printk("Unable to fetch SENSOR_CHAN_MTCH9010_OUT_STATE\r\n");
38 } else {
39 printk("SENSOR_CHAN_MTCH9010_OUT_STATE = %d\r\n", val.val1);
40 }
41
42 if (sensor_channel_get(my_sensor, SENSOR_CHAN_MTCH9010_REFERENCE_VALUE, &val) < 0) {
43 printk("Unable to fetch SENSOR_CHAN_MTCH9010_REFERENCE_VALUE\r\n");
44 } else {
45 printk("SENSOR_CHAN_MTCH9010_REFERENCE_VALUE = %d\r\n", val.val1);
46 }
47
48 if (sensor_channel_get(my_sensor, SENSOR_CHAN_MTCH9010_THRESHOLD_VALUE, &val) < 0) {
49 printk("Unable to fetch SENSOR_CHAN_MTCH9010_THRESHOLD_VALUE\r\n");
50 } else {
51 printk("SENSOR_CHAN_MTCH9010_THRESHOLD_VALUE = %d\r\n", val.val1);
52 }
53
54 if (sensor_channel_get(my_sensor, SENSOR_CHAN_MTCH9010_MEAS_RESULT, &val) < 0) {
55 printk("Unable to fetch SENSOR_CHAN_MTCH9010_MEAS_RESULT\r\n");
56 } else {
57 printk("SENSOR_CHAN_MTCH9010_MEAS_RESULT = %d\r\n", val.val1);
58 }
59
60 if (sensor_channel_get(my_sensor, SENSOR_CHAN_MTCH9010_MEAS_DELTA, &val) < 0) {
61 printk("Unable to fetch SENSOR_CHAN_MTCH9010_MEAS_DELTA\r\n");
62 } else {
63 printk("SENSOR_CHAN_MTCH9010_MEAS_DELTA = %d\r\n", val.val1);
64 }
65
66 if (sensor_channel_get(my_sensor, SENSOR_CHAN_MTCH9010_HEARTBEAT_ERROR_STATE,
67 &val) < 0) {
68 printk("Unable to fetch SENSOR_CHAN_MTCH9010_HEARTBEAT_ERROR_STATE\r\n");
69 } else {
70 printk("SENSOR_CHAN_MTCH9010_HEARTBEAT_ERROR_STATE = %d\r\n", val.val1);
71 }
72
73 printk("\n");
74 k_sleep(K_MSEC(1000));
75 }
76
77 return 0;
78 }
79