Zephyr API Documentation  3.5.0
A Scalable Open Source RTOS
3.5.0
All Data Structures Files Functions Variables Typedefs Enumerations Enumerator Macros Modules Pages
sensing_sensor.h
Go to the documentation of this file.
1/*
2 * Copyright (c) 2022-2023 Intel Corporation.
3 *
4 * SPDX-License-Identifier: Apache-2.0
5 */
6
7#ifndef ZEPHYR_INCLUDE_SENSING_SENSOR_H_
8#define ZEPHYR_INCLUDE_SENSING_SENSOR_H_
9
11#include <zephyr/device.h>
12#include <stdbool.h>
14
28#ifdef __cplusplus
29extern "C" {
30#endif
31
37
42
48
53
59};
60
66
70 void *priv_ptr;
71
76
82 void *const sensor_ctx_ptr;
83};
84
85static inline int sensing_sensor_dev_init(
86 const struct device *dev)
87{
95 return 0;
96}
97
109#define SENSING_SENSOR_DT_DEFINE(node_id, reg_ptr, ctx_ptr, api_ptr) \
110 static struct sensing_sensor_ctx \
111 _CONCAT(__sensing_sensor_ctx_, Z_DEVICE_DT_DEV_ID(node_id)) = { \
112 .register_info = reg_ptr, \
113 .sensor_ctx_ptr = ctx_ptr, \
114 }; \
115 DEVICE_DT_DEFINE(node_id, sensing_sensor_dev_init, NULL, \
116 &_CONCAT(__sensing_sensor_ctx_, Z_DEVICE_DT_DEV_ID(node_id)), \
117 NULL, POST_KERNEL, 99, api_ptr)
118
126static inline void *sensing_sensor_get_ctx_data(
127 const struct device *dev)
128{
129 struct sensing_sensor_ctx *data = dev->data;
130
131 return data->sensor_ctx_ptr;
132}
133
158 const struct device *dev,
159 void *buf, int size);
160
178 const struct device *dev, int type,
179 const int *reporter_handles, int max_handles);
180
191 const struct device *dev, int type);
192
203 const struct device *dev,
205
214 const struct device *dev);
215
226 const struct device *dev, bool data_ready);
227
255 const struct device *dev, const struct sensing_sensor_info *info,
256 const sensing_sensor_handle_t *reporter_handles, int reporters_count);
257
269 const struct device *dev);
270
285 const struct device *dev);
286
304 const struct device *dev,
305 void *buf, int size);
306
326 const struct device *dev,
327 int reporter,
328 void *buf, int size);
329
341 const struct device *dev);
342
369 const struct device *dev,
370 int index, uint32_t sensitivity,
371 void *last_sample_buf, int last_sample_size,
372 void *current_sample_buf, int current_sample_size);
373
385 const struct device *dev,
386 uint32_t value);
387
399 const struct device *dev,
400 uint32_t *value);
401
419 const struct device *dev,
420 int index, uint32_t value);
421
438 const struct device *dev,
439 int index, uint32_t *value);
440
460 const struct device *dev,
461 int index, uint32_t value);
462
482 const struct device *dev,
483 int index, uint32_t *value);
484
498 const struct device *dev,
499 uint32_t samples);
500
514 const struct device *dev,
515 uint32_t *samples);
516
536 const struct device *dev,
537 int index, int32_t value);
538
558 const struct device *dev,
559 int index, int32_t *value);
584};
585
590#ifdef __cplusplus
591}
592#endif
593
594#endif /*ZEPHYR_INCLUDE_SENSING_SENSOR_H_*/
sensing_sensor_state
Sensing subsystem sensor state.
Definition: sensing.h:80
void * sensing_sensor_handle_t
Define Sensing subsystem sensor handle.
Definition: sensing.h:101
int(* sensing_sensor_set_sensitivity_t)(const struct device *dev, int index, uint32_t value)
Set data change sensitivity.
Definition: sensing_sensor.h:418
int(* sensing_sensor_init_t)(const struct device *dev, const struct sensing_sensor_info *info, const sensing_sensor_handle_t *reporter_handles, int reporters_count)
Sensor initialize.
Definition: sensing_sensor.h:254
int(* sensing_sensor_set_offset_t)(const struct device *dev, int index, int32_t value)
Set current sensor data offset.
Definition: sensing_sensor.h:535
int(* sensing_sensor_reset_t)(const struct device *dev)
Sensor reset.
Definition: sensing_sensor.h:284
int(* sensing_sensor_get_interval_t)(const struct device *dev, uint32_t *value)
Get current report interval.
Definition: sensing_sensor.h:398
int(* sensing_sensor_get_sensitivity_t)(const struct device *dev, int index, uint32_t *value)
Get current data change sensitivity.
Definition: sensing_sensor.h:437
int(* sensing_sensor_read_sample_t)(const struct device *dev, void *buf, int size)
Sensor read sample.
Definition: sensing_sensor.h:303
int(* sensing_sensor_get_fifo_t)(const struct device *dev, uint32_t *samples)
Get current sensor's hardware fifo size.
Definition: sensing_sensor.h:513
int(* sensing_sensor_self_calibration_t)(const struct device *dev)
Trigger a sensor to do self calibration.
Definition: sensing_sensor.h:340
int(* sensing_sensor_sensitivity_test_t)(const struct device *dev, int index, uint32_t sensitivity, void *last_sample_buf, int last_sample_size, void *current_sample_buf, int current_sample_size)
Sensitivity arbitration.
Definition: sensing_sensor.h:368
int(* sensing_sensor_process_t)(const struct device *dev, int reporter, void *buf, int size)
Sensor process data.
Definition: sensing_sensor.h:325
int(* sensing_sensor_set_interval_t)(const struct device *dev, uint32_t value)
Set current report interval.
Definition: sensing_sensor.h:384
int(* sensing_sensor_get_range_t)(const struct device *dev, int index, uint32_t *value)
Get current data range.
Definition: sensing_sensor.h:481
int(* sensing_sensor_set_range_t)(const struct device *dev, int index, uint32_t value)
Set data range.
Definition: sensing_sensor.h:459
int(* sensing_sensor_set_fifo_t)(const struct device *dev, uint32_t samples)
Set current sensor's hardware fifo size.
Definition: sensing_sensor.h:497
int(* sensing_sensor_deinit_t)(const struct device *dev)
Sensor's de-initialize.
Definition: sensing_sensor.h:268
int(* sensing_sensor_get_offset_t)(const struct device *dev, int index, int32_t *value)
Get current sensor data offset.
Definition: sensing_sensor.h:557
int sensing_sensor_set_data_ready(const struct device *dev, bool data_ready)
Set the data ready mode of the sensor.
static void * sensing_sensor_get_ctx_data(const struct device *dev)
Get registered context data pointer for a sensor instance.
Definition: sensing_sensor.h:126
int sensing_sensor_notify_data_ready(const struct device *dev)
Trigger the data ready event to sensing.
int sensing_sensor_post_data(const struct device *dev, void *buf, int size)
Post sensor data, sensor subsystem runtime will deliver to it's clients.
int sensing_sensor_get_reporters_count(const struct device *dev, int type)
Get reporters count of a given sensor instance by sensor type.
static int sensing_sensor_dev_init(const struct device *dev)
Definition: sensing_sensor.h:85
int sensing_sensor_get_state(const struct device *dev, enum sensing_sensor_state *state)
Get this sensor's state.
int sensing_sensor_get_reporters(const struct device *dev, int type, const int *reporter_handles, int max_handles)
Get reporter handles of a given sensor instance by sensor type.
state
Definition: parser_state.h:29
Public APIs for the sensor driver.
__UINT32_TYPE__ uint32_t
Definition: stdint.h:90
__INT32_TYPE__ int32_t
Definition: stdint.h:74
__UINT8_TYPE__ uint8_t
Definition: stdint.h:88
__UINT16_TYPE__ uint16_t
Definition: stdint.h:89
Runtime device structure (in ROM) per driver instance.
Definition: device.h:381
void * data
Address of the device instance private data.
Definition: device.h:391
Sensor callback api.
Definition: sensing_sensor.h:566
sensing_sensor_process_t process
Definition: sensing_sensor.h:581
sensing_sensor_get_sensitivity_t get_sensitivity
Definition: sensing_sensor.h:579
sensing_sensor_set_range_t set_range
Definition: sensing_sensor.h:572
sensing_sensor_init_t init
Definition: sensing_sensor.h:567
sensing_sensor_get_offset_t get_offset
Definition: sensing_sensor.h:575
sensing_sensor_get_fifo_t get_fifo
Definition: sensing_sensor.h:576
sensing_sensor_get_range_t get_range
Definition: sensing_sensor.h:573
sensing_sensor_deinit_t deinit
Definition: sensing_sensor.h:569
sensing_sensor_self_calibration_t self_calibration
Definition: sensing_sensor.h:583
sensing_sensor_get_interval_t get_interval
Definition: sensing_sensor.h:571
sensing_sensor_set_fifo_t set_fifo
Definition: sensing_sensor.h:577
sensing_sensor_set_sensitivity_t set_sensitivity
Definition: sensing_sensor.h:578
sensing_sensor_read_sample_t read_sample
Definition: sensing_sensor.h:580
sensing_sensor_sensitivity_test_t sensitivity_test
Definition: sensing_sensor.h:582
sensing_sensor_reset_t reset
Definition: sensing_sensor.h:568
sensing_sensor_set_interval_t set_interval
Definition: sensing_sensor.h:570
sensing_sensor_set_offset_t set_offset
Definition: sensing_sensor.h:574
Sensor context data structure.
Definition: sensing_sensor.h:65
void *const sensor_ctx_ptr
For sensor private context data, registered by sensor with SENSING_SENSOR_DT_DEFINE.
Definition: sensing_sensor.h:82
const struct sensing_sensor_register_info * register_info
Pointer to the sensor register information.
Definition: sensing_sensor.h:75
void * priv_ptr
For sensing runtime internal private data, sensor should not see and touch.
Definition: sensing_sensor.h:70
Sensor basic constant information.
Definition: sensing.h:120
Sensor registration information.
Definition: sensing_sensor.h:36
uint16_t sample_size
Sample size in bytes for a single sample of the registered sensor.
Definition: sensing_sensor.h:47
uint16_t flags
Sensor flags.
Definition: sensing_sensor.h:41
uint8_t sensitivity_count
The number of sensor sensitivities.
Definition: sensing_sensor.h:52
struct sensing_sensor_version version
Sensor version.
Definition: sensing_sensor.h:58
Sensor Version.
Definition: sensing.h:39