Toggle navigation
Documentation
The friendly Operating System for the Internet of Things
Loading...
Searching...
No Matches
vcnl40x0_internals.h
Go to the documentation of this file.
1
/*
2
* SPDX-FileCopyrightText: 2017 Inria
3
* SPDX-License-Identifier: LGPL-2.1-only
4
*/
5
6
#pragma once
7
17
18
#ifdef __cplusplus
19
extern
"C"
{
20
#endif
21
25
#define VCNL40X0_ADDR (0x13)
26
30
#define VCNL40X0_PRODUCT_ID (0x20)
31
36
#define VCNL40X0_REG_COMMAND (0x80)
37
#define VCNL40X0_REG_PRODUCT_ID (0x81)
38
#define VCNL40X0_REG_PROXIMITY_RATE (0x82)
39
#define VCNL40X0_REG_PROXIMITY_CURRENT (0x83)
40
#define VCNL40X0_REG_AMBIENT_PARAMETER (0x84)
41
#define VCNL40X0_REG_AMBIENT_VALUE (0x85)
42
#define VCNL40X0_REG_PROXIMITY_VALUE (0x87)
43
#define VCNL40X0_REG_INTERRUPT_CONTROL (0x89)
44
#define VCNL40X0_REG_INTERRUPT_LOW_THRES (0x8a)
45
#define VCNL40X0_REG_HIGH_THRES (0x8c)
46
#define VCNL40X0_REG_INTERRUPT_STATUS (0x8e)
47
#define VCNL40X0_REG_PROX_TIMING (0xf9)
48
#define VCNL40X0_REG_AMBIENT_IR_LIGHT_LEVEL (0x90)
/* should not be used */
50
55
#define VCNL40X0_COMMAND_ALL_DISABLE (0x00)
56
#define VCNL40X0_COMMAND_SELFTIMED_MODE_ENABLE (0x01)
57
#define VCNL40X0_COMMAND_PROX_ENABLE (0x02)
58
#define VCNL40X0_COMMAND_AMBI_ENABLE (0x04)
59
#define VCNL40X0_COMMAND_PROX_ON_DEMAND (0x08)
60
#define VCNL40X0_COMMAND_AMBI_ON_DEMAND (0x10)
61
#define VCNL40X0_COMMAND_MASK_PROX_DATA_READY (0x20)
62
#define VCNL40X0_COMMAND_MASK_AMBI_DATA_READY (0x40)
63
#define VCNL40X0_COMMAND_MASK_LOCK (0x80)
65
70
#define VCNL40X0_PRODUCT_MASK_REVISION_ID (0x0f)
71
#define VCNL40X0_PRODUCT_MASK_PRODUCT_ID (0xf0)
73
78
#define VCNL40X0_PROXIMITY_MASK_MEASUREMENT_RATE (0x07)
79
#define VCNL40X0_PROXIMITY_MASK_LED_CURRENT (0x3f)
80
#define VCNL40X0_PROXIMITY_MASK_FUSE_PROG_ID (0xc0)
82
87
#define VCNL40X0_AMBIENT_MASK_PARA_AVERAGE (0x07)
88
#define VCNL40X0_AMBIENT_PARA_AUTO_OFFSET_ENABLE (0x08)
89
#define VCNL40X0_AMBIENT_MASK_PARA_AUTO_OFFSET (0x08)
90
#define VCNL40X0_AMBIENT_MASK_PARA_MEAS_RATE (0x70)
91
#define VCNL40X0_AMBIENT_PARA_CONT_CONV_ENABLE (0x80)
92
#define VCNL40X0_AMBIENT_MASK_PARA_CONT_CONV (0x80)
94
99
#define VCNL40X0_INTERRUPT_THRES_SEL_PROX (0x00)
100
#define VCNL40X0_INTERRUPT_THRES_SEL_ALS (0x01)
101
#define VCNL40X0_INTERRUPT_THRES_ENABLE (0x02)
102
#define VCNL40X0_INTERRUPT_ALS_READY_ENABLE (0x04)
103
#define VCNL40X0_INTERRUPT_PROX_READY_ENABLE (0x08)
104
#define VCNL40X0_INTERRUPT_COUNT_EXCEED_1 (0x00)
105
#define VCNL40X0_INTERRUPT_COUNT_EXCEED_2 (0x20)
106
#define VCNL40X0_INTERRUPT_COUNT_EXCEED_4 (0x40)
107
#define VCNL40X0_INTERRUPT_COUNT_EXCEED_8 (0x60)
108
#define VCNL40X0_INTERRUPT_COUNT_EXCEED_16 (0x80)
109
#define VCNL40X0_INTERRUPT_COUNT_EXCEED_32 (0xa0)
110
#define VCNL40X0_INTERRUPT_COUNT_EXCEED_64 (0xc0)
111
#define VCNL40X0_INTERRUPT_COUNT_EXCEED_128 (0xe0)
112
#define VCNL40X0_INTERRUPT_MASK_COUNT_EXCEED (0xe0)
114
119
#define VCNL40X0_INTERRUPT_STATUS_THRES_HI (0x01)
120
#define VCNL40X0_INTERRUPT_STATUS_THRES_LO (0x02)
121
#define VCNL40X0_INTERRUPT_STATUS_ALS_READY (0x04)
122
#define VCNL40X0_INTERRUPT_STATUS_PROX_READY (0x08)
123
#define VCNL40X0_INTERRUPT_MASK_STATUS_THRES_HI (0x01)
124
#define VCNL40X0_INTERRUPT_MASK_THRES_LO (0x02)
125
#define VCNL40X0_INTERRUPT_MASK_ALS_READY (0x04)
126
#define VCNL40X0_INTERRUPT_MASK_PROX_READY (0x08)
128
129
#ifdef __cplusplus
130
}
131
#endif
132
Generated on Wed Apr 15 2026 07:36:49 by
1.13.2