Statistics
| Branch: | Tag: | Revision:

amiro-os / modules / PowerManagement_1-1 / module.h @ 4a0e2139

History | View | Annotate | Download (31.146 KB)

1 e545e620 Thomas Schöpping
/*
2
AMiRo-OS is an operating system designed for the Autonomous Mini Robot (AMiRo) platform.
3 84f0ce9e Thomas Schöpping
Copyright (C) 2016..2019  Thomas Schöpping et al.
4 e545e620 Thomas Schöpping

5
This program is free software: you can redistribute it and/or modify
6
it under the terms of the GNU General Public License as published by
7
the Free Software Foundation, either version 3 of the License, or
8
(at your option) any later version.
9

10
This program is distributed in the hope that it will be useful,
11
but WITHOUT ANY WARRANTY; without even the implied warranty of
12
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
13
GNU General Public License for more details.
14

15
You should have received a copy of the GNU General Public License
16
along with this program.  If not, see <http://www.gnu.org/licenses/>.
17
*/
18
19 53710ca3 Marc Rothmann
/**
20 acc97cbf Thomas Schöpping
 * @file
21 53710ca3 Marc Rothmann
 * @brief   Structures and constant for the PowerManagement module.
22
 *
23
 * @addtogroup powermanagement_module
24
 * @{
25
 */
26
27 e545e620 Thomas Schöpping
#ifndef _AMIROOS_MODULE_H_
28
#define _AMIROOS_MODULE_H_
29
30 e2d7143f Thomas Schöpping
#include <amiroos.h>
31
32 e545e620 Thomas Schöpping
/*===========================================================================*/
33
/**
34
 * @name Module specific functions
35
 * @{
36
 */
37
/*===========================================================================*/
38
39 1c1b3372 Thomas Schöpping
/**
40 e545e620 Thomas Schöpping
 * @brief Makro to store data in the core coupled memory (ccm).
41
 *        Example:
42
 *        int compute_buffer[128] CCM_RAM;
43
 *
44
 * @note The ccm is not connected to any bus system.
45
 */
46 1c1b3372 Thomas Schöpping
#define CCM_RAM(...)                            __attribute__((section(".ram4"), ##__VA_ARGS__))
47 e545e620 Thomas Schöpping
48 1c1b3372 Thomas Schöpping
/**
49 e545e620 Thomas Schöpping
 * @brief Makro to store data in the ethernet memory (eth).
50
 *        Example:
51
 *        int dma_buffer[128] ETH_RAM;
52
 *
53
 * @note The eth is a dedicated memory block with its own DMA controller.
54
 */
55 1c1b3372 Thomas Schöpping
#define ETH_RAM(...)                            __attribute__((section(".ram2"), ##__VA_ARGS__))
56 e545e620 Thomas Schöpping
57 1c1b3372 Thomas Schöpping
/**
58 e545e620 Thomas Schöpping
 * @brief Makro to store data in the backup memory (bckp).
59
 *        Example:
60
 *        int backup_buffer[128] BCKP_RAM;
61
 *
62
 * @note The eth is a dedicated memory block with its own DMA controller.
63
 */
64 1c1b3372 Thomas Schöpping
#define BCKP_RAM(...)                           __attribute__((section(".ram5"), ##__VA_ARGS__))
65 e545e620 Thomas Schöpping
66
/** @} */
67
68
/*===========================================================================*/
69
/**
70
 * @name ChibiOS/HAL configuration
71
 * @{
72
 */
73
/*===========================================================================*/
74
75
/**
76
 * @brief   ADC driver for reading the system voltage.
77
 */
78
#define MODULE_HAL_ADC_VSYS                     ADCD1
79
80
/**
81
 * @brief   Configuration for the ADC.
82
 */
83
extern ADCConversionGroup moduleHalAdcVsysConversionGroup;
84
85
/**
86
 * @brief   CAN driver to use.
87
 */
88
#define MODULE_HAL_CAN                          CAND1
89
90
/**
91
 * @brief   Configuration for the CAN driver.
92
 */
93
extern CANConfig moduleHalCanConfig;
94
95
/**
96 8be006e0 Thomas Schöpping
 * @brief   I2C driver to access the sensor ring, power monitors for VIO1.8 and VIO3.3, and fuel gauge (rear battery).
97
 * @details Depending on the attached sensor ring, the devices connected to this bus vary:
98
 *          ProximitySensor:
99
 *            - I2C multiplexer (PCA9544A)
100
 *            - proximity sensors (VCNL4020) #1 - #4
101
 *          DistanceSensor (VL53L0X):
102
 *            TODO
103
 *          DistanceSensor (VL53L1X):
104
 *            TODO
105
 */
106
#define MODULE_HAL_I2C_SR_PM18_PM33_GAUGEREAR   I2CD1
107
108
/**
109
 * @brief   Configuration for the sensor ring, power monitors for VIO1.8 and VIO3.3, and fuel gauge (rear battery) I2C driver.
110
 * @details Depending on the attached sensor ring, the devices connected to this bus vary:
111
 *          ProximitySensor:
112
 *            - I2C multiplexer (PCA9544A)
113
 *            - proximity sensors (VCNL4020) #1 - #4
114
 *          DistanceSensor (VL53L0X):
115
 *            TODO
116
 *          DistanceSensor (VL53L1X):
117
 *            TODO
118
 */
119
extern I2CConfig moduleHalI2cSrPm18Pm33GaugeRearConfig;
120
121
/**
122
 * @brief   I2C driver to access the sensor ring, power monitors for VSYS4.2, VIO5.0 and VDD, EEPROM, and fuel gauge (front battery).
123
 * @details Depending on the attached sensor ring, the devices connected to this bus vary:
124
 *          ProximitySensor:
125
 *            - I2C multiplexer (PCA9544A)
126
 *            - proximity sensors (VCNL4020) #1 - #4
127
 *            - touch sensor (MPR121)
128
 *          DistanceSensor (VL53L0X):
129
 *            TODO
130
 *          DistanceSensor (VL53L1X):
131
 *            TODO
132
 */
133
#define MODULE_HAL_I2C_SR_PM42_PM50_PMVDD_EEPROM_GAUGEFRONT I2CD2
134
135
/**
136
 * @brief   Configuration for the sensor ring, power monitors for VSYS4.2, VIO5.0 and VDD, EEPROM, and fuel gauge (front battery) I2C driver.
137
 * @details Depending on the attached sensor ring, the devices connected to this bus vary:
138
 *          ProximitySensor:
139
 *            - I2C multiplexer (PCA9544A)
140
 *            - proximity sensors (VCNL4020) #1 - #4
141
 *            - touch sensor (MPR121)
142
 *          DistanceSensor (VL53L0X):
143
 *            TODO
144
 *          DistanceSensor (VL53L1X):
145
 *            TODO
146
 */
147
extern I2CConfig moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig;
148 e545e620 Thomas Schöpping
149
/**
150
 * @brief   PWM driver for the buzzer.
151
 */
152
#define MODULE_HAL_PWM_BUZZER                   PWMD3
153
154
/**
155
 * @brief   Configuration of the PWM driver.
156
 */
157
extern PWMConfig moduleHalPwmBuzzerConfig;
158
159
/**
160
 * @brief   PWM channeö for the buzzer.
161
 */
162
#define MODULE_HAL_PWM_BUZZER_CHANNEL           1
163
164
/**
165
 * @brief   Serial driver of the programmer interface.
166
 */
167
#define MODULE_HAL_PROGIF                       SD1
168
169
/**
170
 * @brief   Configuration for the programmer serial interface driver.
171
 */
172
extern SerialConfig moduleHalProgIfConfig;
173
174 8399aeae Thomas Schöpping
/**
175
 * @brief   Real-Time Clock driver.
176
 */
177
#define MODULE_HAL_RTC                          RTCD1
178
179 e545e620 Thomas Schöpping
/** @} */
180
181
/*===========================================================================*/
182
/**
183
 * @name GPIO definitions
184
 * @{
185
 */
186
/*===========================================================================*/
187
188
/**
189
 * @brief   SYS_REG_EN output signal GPIO.
190
 */
191 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysRegEn;
192 e545e620 Thomas Schöpping
193
/**
194
 * @brief   IR_INT1 input signal GPIO.
195
 */
196 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioIrInt1;
197 e545e620 Thomas Schöpping
198
/**
199
 * @brief   POWER_EN output signal GPIO.
200
 */
201 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioPowerEn;
202 e545e620 Thomas Schöpping
203
/**
204
 * @brief   SYS_UART_DN bidirectional signal GPIO.
205
 */
206 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysUartDn;
207 e545e620 Thomas Schöpping
208
/**
209
 * @brief   CHARGE_STAT2A input signal GPIO.
210
 */
211 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioChargeStat2A;
212 e545e620 Thomas Schöpping
213
/**
214
 * @brief   GAUGE_BATLOW2 input signal GPIO.
215
 */
216 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioGaugeBatLow2;
217 e545e620 Thomas Schöpping
218
/**
219
 * @brief   GAUGE_BATGD2 input signal GPIO.
220
 */
221 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioGaugeBatGd2;
222 e545e620 Thomas Schöpping
223
/**
224
 * @brief   LED output signal GPIO.
225
 */
226 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioLed;
227 e545e620 Thomas Schöpping
228
/**
229
 * @brief   SYS_UART_UP bidirectional signal GPIO.
230
 */
231 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysUartUp;
232 e545e620 Thomas Schöpping
233
/**
234
 * @brief   CHARGE_STAT1A input signal GPIO.
235
 */
236 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioChargeStat1A;
237 e545e620 Thomas Schöpping
238
/**
239
 * @brief   GAUGE_BATLOW1 input signal GPIO.
240
 */
241 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioGaugeBatLow1;
242 e545e620 Thomas Schöpping
243
/**
244
 * @brief   GAUGE_BATGD1 input signal GPIO.
245
 */
246 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioGaugeBatGd1;
247 e545e620 Thomas Schöpping
248
/**
249
 * @brief   CHARG_EN1 output signal GPIO.
250
 */
251 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioChargeEn1;
252 e545e620 Thomas Schöpping
253
/**
254
 * @brief   IR_INT2 input signal GPIO.
255
 */
256 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioIrInt2;
257 e545e620 Thomas Schöpping
258
/**
259
 * @brief   TOUCH_INT input signal GPIO.
260
 */
261 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioTouchInt;
262 e545e620 Thomas Schöpping
263
/**
264
 * @brief   SYS_DONE input signal GPIO.
265
 */
266 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysDone;
267 e545e620 Thomas Schöpping
268
/**
269
 * @brief   SYS_PROG output signal GPIO.
270
 */
271 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysProg;
272 e545e620 Thomas Schöpping
273
/**
274
 * @brief   PATH_DC input signal GPIO.
275
 */
276 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioPathDc;
277 e545e620 Thomas Schöpping
278
/**
279
 * @brief   SYS_SPI_DIR bidirectional signal GPIO.
280
 */
281 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysSpiDir;
282 e545e620 Thomas Schöpping
283
/**
284
 * @brief   SYS_SYNC bidirectional signal GPIO.
285
 */
286 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysSync;
287 e545e620 Thomas Schöpping
288
/**
289
 * @brief   SYS_PD bidirectional signal GPIO.
290
 */
291 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysPd;
292 e545e620 Thomas Schöpping
293
/**
294
 * @brief   SYS_WARMRST bidirectional signal GPIO.
295
 */
296 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioSysWarmrst;
297 e545e620 Thomas Schöpping
298
/**
299
 * @brief   BT_RST output signal GPIO.
300
 */
301 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioBtRst;
302 e545e620 Thomas Schöpping
303
/**
304
 * @brief   CHARGE_EN2 output signal GPIO.
305
 */
306 acc97cbf Thomas Schöpping
extern ROMCONST apalControlGpio_t moduleGpioChargeEn2;
307 e545e620 Thomas Schöpping
308
/** @} */
309
310
/*===========================================================================*/
311
/**
312
 * @name AMiRo-OS core configurations
313
 * @{
314
 */
315
/*===========================================================================*/
316
317
/**
318
 * @brief   Event flag to be set on a IR_INT1 / CHARGE_STAT1A interrupt.
319
 */
320 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_IRINT1           AOS_IOEVENT_FLAG(GPIOB_IR_INT1_N)
321 e545e620 Thomas Schöpping
322
/**
323
 * @brief   Event flag to be set on a GAUGE_BATLOW1 interrupt.
324
 */
325 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATLOW1     AOS_IOEVENT_FLAG(GPIOC_GAUGE_BATLOW1)
326 e545e620 Thomas Schöpping
327
/**
328
 * @brief   Event flag to be set on a GAUGE_BATGD1 interrupt.
329
 */
330 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATGD1      AOS_IOEVENT_FLAG(GPIOC_GAUGE_BATGD1_N)
331 e545e620 Thomas Schöpping
332
/**
333
 * @brief   Event flag to be set on a SYS_UART_DN interrupt.
334
 */
335 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_SYSUARTDN        AOS_IOEVENT_FLAG(GPIOB_SYS_UART_DN)
336 e545e620 Thomas Schöpping
337
/**
338
 * @brief   Event flag to be set on a IR_INT2 / CHARGE_STAT2A interrupt.
339
 */
340 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_IRINT2           AOS_IOEVENT_FLAG(GPIOC_IR_INT2_N)
341 e545e620 Thomas Schöpping
342
/**
343
 * @brief   Event flag to be set on a TOUCH_INT interrupt.
344
 */
345 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_TOUCHINT         AOS_IOEVENT_FLAG(GPIOC_TOUCH_INT_N)
346 e545e620 Thomas Schöpping
347
/**
348
 * @brief   Event flag to be set on a GAUGE_BATLOW2 interrupt.
349
 */
350 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATLOW2     AOS_IOEVENT_FLAG(GPIOB_GAUGE_BATLOW2)
351 e545e620 Thomas Schöpping
352
/**
353
 * @brief   Event flag to be set on a GAUGE_BATGD2 interrupt.
354
 */
355 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATGD2      AOS_IOEVENT_FLAG(GPIOB_GAUGE_BATGD2_N)
356 e545e620 Thomas Schöpping
357
/**
358
 * @brief   Event flag to be set on a PATH_DC interrupt.
359
 */
360 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_PATHDC           AOS_IOEVENT_FLAG(GPIOC_PATH_DC)
361 e545e620 Thomas Schöpping
362
/**
363
 * @brief   Event flag to be set on a SYS_SPI_DIR interrupt.
364
 */
365 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_SYSSPIDIR        AOS_IOEVENT_FLAG(GPIOC_SYS_SPI_DIR)
366 e545e620 Thomas Schöpping
367
/**
368
 * @brief   Event flag to be set on a SYS_SYNC interrupt.
369
 */
370 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_SYSSYNC          AOS_IOEVENT_FLAG(GPIOC_SYS_INT_N)
371 e545e620 Thomas Schöpping
372
/**
373
 * @brief   Event flag to be set on a SYS_PD interrupt.
374
 */
375 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_SYSPD            AOS_IOEVENT_FLAG(GPIOC_SYS_PD_N)
376 e545e620 Thomas Schöpping
377
/**
378
 * @brief   Event flag to be set on a SYS_WARMRST interrupt.
379
 */
380 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_SYSWARMRST       AOS_IOEVENT_FLAG(GPIOC_SYS_WARMRST_N)
381 e545e620 Thomas Schöpping
382
/**
383
 * @brief   Event flag to be set on a SYS_UART_UP interrupt.
384
 */
385 dada2194 Thomas Schöpping
#define MODULE_OS_IOEVENTFLAGS_SYSUARTUP        AOS_IOEVENT_FLAG(GPIOB_SYS_UART_UP)
386 e545e620 Thomas Schöpping
387 2dd2e257 Thomas Schöpping
#if (AMIROOS_CFG_SHELL_ENABLE == true) || (AMIROOS_CFG_TESTS_ENABLE == true) || defined(__DOXYGEN__)
388 e545e620 Thomas Schöpping
/**
389
 * @brief   Shell prompt text.
390
 */
391 acc97cbf Thomas Schöpping
extern ROMCONST char* moduleShellPrompt;
392 6b53f6bf Thomas Schöpping
#endif
393 e545e620 Thomas Schöpping
394
/**
395 1e5f7648 Thomas Schöpping
 * @brief   Interrupt initialization macro.
396
 * @note    SSSP related interrupt signals are already initialized in 'aos_system.c'.
397
 */
398
#define MODULE_INIT_INTERRUPTS() {                                            \
399
  /* IR_INT1 */                                                               \
400
  palSetPadCallback(moduleGpioIrInt1.gpio->port, moduleGpioIrInt1.gpio->pad, _intCallback, &moduleGpioIrInt1.gpio->pad); \
401
  palEnablePadEvent(moduleGpioIrInt1.gpio->port, moduleGpioIrInt1.gpio->pad, APAL2CH_EDGE(moduleGpioIrInt1.meta.edge));  \
402
  /* GAUGE_BATLOW2 */                                                         \
403
  palSetPadCallback(moduleGpioGaugeBatLow2.gpio->port, moduleGpioGaugeBatLow2.gpio->pad, _intCallback, &moduleGpioGaugeBatLow2.gpio->pad);  \
404
  palEnablePadEvent(moduleGpioGaugeBatLow2.gpio->port, moduleGpioGaugeBatLow2.gpio->pad, APAL2CH_EDGE(moduleGpioGaugeBatLow2.meta.edge));   \
405
  /* GAUGE_BATGD2 */                                                          \
406
  palSetPadCallback(moduleGpioGaugeBatGd2.gpio->port, moduleGpioGaugeBatGd2.gpio->pad, _intCallback, &moduleGpioGaugeBatGd2.gpio->pad); \
407
  palEnablePadEvent(moduleGpioGaugeBatGd2.gpio->port, moduleGpioGaugeBatGd2.gpio->pad, APAL2CH_EDGE(moduleGpioGaugeBatGd2.meta.edge));  \
408
  /* GAUGE_BATLOW1 */                                                         \
409
  palSetPadCallback(moduleGpioGaugeBatLow1.gpio->port, moduleGpioGaugeBatLow1.gpio->pad, _intCallback, &moduleGpioGaugeBatLow1.gpio->pad);  \
410
  palEnablePadEvent(moduleGpioGaugeBatLow1.gpio->port, moduleGpioGaugeBatLow1.gpio->pad, APAL2CH_EDGE(moduleGpioGaugeBatLow1.meta.edge));   \
411
  /* GAUGE_BATGD1 */                                                          \
412
  palSetPadCallback(moduleGpioGaugeBatGd1.gpio->port, moduleGpioGaugeBatGd1.gpio->pad, _intCallback, &moduleGpioGaugeBatGd1.gpio->pad); \
413
  palEnablePadEvent(moduleGpioGaugeBatGd1.gpio->port, moduleGpioGaugeBatGd1.gpio->pad, APAL2CH_EDGE(moduleGpioGaugeBatGd1.meta.edge));  \
414 05b882c0 Thomas Schöpping
  /* IR_INT2 */                                                               \
415
  palSetPadCallback(moduleGpioIrInt2.gpio->port, moduleGpioIrInt2.gpio->pad, _intCallback, &moduleGpioIrInt2.gpio->pad); \
416
  palEnablePadEvent(moduleGpioIrInt2.gpio->port, moduleGpioIrInt2.gpio->pad, APAL2CH_EDGE(moduleGpioIrInt2.meta.edge));  \
417 1e5f7648 Thomas Schöpping
  /* TOUCH_INT */                                                             \
418
  palSetPadCallback(moduleGpioTouchInt.gpio->port, moduleGpioTouchInt.gpio->pad, _intCallback, &moduleGpioTouchInt.gpio->pad); \
419
  palEnablePadEvent(moduleGpioTouchInt.gpio->port, moduleGpioTouchInt.gpio->pad, APAL2CH_EDGE(moduleGpioTouchInt.meta.edge));  \
420
  /* PATH_DC */                                                               \
421
  palSetPadCallback(moduleGpioPathDc.gpio->port, moduleGpioPathDc.gpio->pad, _intCallback, &moduleGpioPathDc.gpio->pad);  \
422
  palEnablePadEvent(moduleGpioPathDc.gpio->port, moduleGpioPathDc.gpio->pad, APAL2CH_EDGE(moduleGpioPathDc.meta.edge));   \
423
  /* SYS_SPI_DIR */                                                           \
424
  palSetPadCallback(moduleGpioSysSpiDir.gpio->port, moduleGpioSysSpiDir.gpio->pad, _intCallback, &moduleGpioSysSpiDir.gpio->pad); \
425
  palEnablePadEvent(moduleGpioSysSpiDir.gpio->port, moduleGpioSysSpiDir.gpio->pad, APAL2CH_EDGE(moduleGpioSysSpiDir.meta.edge));  \
426
  /* SYS_WARMRST */                                                           \
427
  palSetPadCallback(moduleGpioSysWarmrst.gpio->port, moduleGpioSysWarmrst.gpio->pad, _intCallback, &moduleGpioSysWarmrst.gpio->pad);  \
428
  palEnablePadEvent(moduleGpioSysWarmrst.gpio->port, moduleGpioSysWarmrst.gpio->pad, APAL2CH_EDGE(moduleGpioSysWarmrst.meta.edge));   \
429
}
430
431
/**
432 e545e620 Thomas Schöpping
 * @brief   Unit test initialization hook.
433
 */
434
#define MODULE_INIT_TESTS() {                                                 \
435
  /* add unit-test shell commands */                                          \
436 6b53f6bf Thomas Schöpping
  aosShellAddCommand(&aos.shell, &moduleUtAdcVsys.shellcmd);                  \
437
  aosShellAddCommand(&aos.shell, &moduleUtAlldAt24c01bn.shellcmd);            \
438
  aosShellAddCommand(&aos.shell, &moduleUtAlldBq24103a.shellcmd);             \
439
  aosShellAddCommand(&aos.shell, &moduleUtAlldBq27500.shellcmd);              \
440
  aosShellAddCommand(&aos.shell, &moduleUtAlldBq27500Bq24103a.shellcmd);      \
441
  aosShellAddCommand(&aos.shell, &moduleUtAlldIna219.shellcmd);               \
442
  aosShellAddCommand(&aos.shell, &moduleUtAlldPklcs1212e4001.shellcmd);       \
443
  aosShellAddCommand(&aos.shell, &moduleUtAlldLed.shellcmd);                  \
444
  aosShellAddCommand(&aos.shell, &moduleUtAlldTps62113.shellcmd);             \
445
  aosShellAddCommand(&aos.shell, &moduleUtAlldTps62113Ina219.shellcmd);       \
446 8be006e0 Thomas Schöpping
  MODULE_INIT_TEST_SENSORRING();                                              \
447 4a0e2139 Julian L
  aosShellAddCommand(&aos.shell, &moduleUtAlldVcnl4020.shellcmd);             \
448
  aosShellAddCommand(&aos.shell, &moduleUtLldRtCan.shellcmd);                 \
449 e545e620 Thomas Schöpping
}
450 8be006e0 Thomas Schöpping
#if (BOARD_SENSORRING == BOARD_PROXIMITYSENSOR) || defined(__DOXYGEN__)
451
  #define MODULE_INIT_TEST_SENSORRING() {                                     \
452
    aosShellAddCommand(&aos.shell, &moduleUtAlldPca9544a.shellcmd);           \
453
    aosShellAddCommand(&aos.shell, &moduleUtAlldMpr121.shellcmd);             \
454
    aosShellAddCommand(&aos.shell, &moduleUtAlldVcnl4020.shellcmd);           \
455
  }
456
#elif (BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L0X) || defined(__DOXYGEN__)
457
  #define MODULE_INIT_TEST_SENSORRING() {                                     \
458 bffb3465 Thomas Schöpping
    aosShellAddCommand(&aos.shell, &moduleUtAlldPcal6524.shellcmd);           \
459
    aosShellAddCommand(&aos.shell, &moduleUtAlldAt42qt1050.shellcmd);         \
460 8be006e0 Thomas Schöpping
  }
461
#elif (BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L1X) || defined(__DOXYGEN__)
462
  #define MODULE_INIT_TEST_SENSORRING() {                                     \
463 bffb3465 Thomas Schöpping
    aosShellAddCommand(&aos.shell, &moduleUtAlldPcal6524.shellcmd);           \
464
    aosShellAddCommand(&aos.shell, &moduleUtAlldAt42qt1050.shellcmd);         \
465 8be006e0 Thomas Schöpping
  }
466
#else
467
  #define MODULE_INIT_TEST_SENSORRING()         {}
468
#endif
469 e545e620 Thomas Schöpping
470
/**
471
 * @brief   Periphery communication interfaces initialization hook.
472
 */
473
#define MODULE_INIT_PERIPHERY_COMM() {                                        \
474 8be006e0 Thomas Schöpping
  MODULE_INIT_PERIPHERY_COMM_SENSORRING();                                    \
475 e545e620 Thomas Schöpping
  /* serial driver */                                                         \
476
  sdStart(&MODULE_HAL_PROGIF, &moduleHalProgIfConfig);                        \
477
  /* I2C */                                                                   \
478 8be006e0 Thomas Schöpping
  moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed = (INA219_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed) ? INA219_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed;  \
479
  moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed = (BQ27500_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed) ? BQ27500_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed;  \
480
  moduleHalI2cSrPm18Pm33GaugeRearConfig.duty_cycle = (moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed <= 100000) ? STD_DUTY_CYCLE : FAST_DUTY_CYCLE_2;  \
481
  i2cStart(&MODULE_HAL_I2C_SR_PM18_PM33_GAUGEREAR, &moduleHalI2cSrPm18Pm33GaugeRearConfig); \
482
  moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (INA219_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? INA219_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed; \
483
  moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (AT24C01BN_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? AT24C01BN_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed; \
484
  moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (BQ27500_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? BQ27500_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed; \
485
  moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.duty_cycle = (moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed <= 100000) ? STD_DUTY_CYCLE : FAST_DUTY_CYCLE_2;  \
486
  i2cStart(&MODULE_HAL_I2C_SR_PM42_PM50_PMVDD_EEPROM_GAUGEFRONT, &moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig);  \
487 e545e620 Thomas Schöpping
  /* ADC */                                                                   \
488
  adcStart(&MODULE_HAL_ADC_VSYS, NULL);                                       \
489
  /* PWM */                                                                   \
490
  pwmStart(&MODULE_HAL_PWM_BUZZER, &moduleHalPwmBuzzerConfig);                \
491
  moduleHalPwmBuzzerConfig.frequency = MODULE_HAL_PWM_BUZZER.clock;           \
492
  pwmStop(&MODULE_HAL_PWM_BUZZER);                                            \
493
  moduleHalPwmBuzzerConfig.period = moduleHalPwmBuzzerConfig.frequency / PKLCS1212E4001_LLD_FREQUENCY_SPEC; \
494
  pwmStart(&MODULE_HAL_PWM_BUZZER, &moduleHalPwmBuzzerConfig);                \
495
}
496 8be006e0 Thomas Schöpping
#if (BOARD_SENSORRING == BOARD_PROXIMITYSENSOR) || defined(__DOXYGEN__)
497
  #define MODULE_INIT_PERIPHERY_COMM_SENSORRING() {                           \
498
    moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed = (PCA9544A_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed) ? PCA9544A_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed;  \
499
    moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed = (VCNL4020_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed) ? VCNL4020_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed;  \
500
    moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (PCA9544A_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? PCA9544A_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed; \
501
    moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (VCNL4020_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? VCNL4020_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed; \
502
    moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (MPR121_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? MPR121_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed; \
503
  }
504
#elif (BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L0X) || defined(__DOXYGEN__)
505
  #define MODULE_INIT_PERIPHERY_COMM_SENSORRING() {                           \
506 bffb3465 Thomas Schöpping
    moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed = (PCAL6524_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed) ? PCAL6524_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed;  \
507
    moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (PCAL6524_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? PCAL6524_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed;  \
508
    moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (AT42QT1050_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? AT42QT1050_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed;  \
509 8be006e0 Thomas Schöpping
  }
510
#elif (BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L1X) || defined(__DOXYGEN__)
511
  #define MODULE_INIT_PERIPHERY_COMM_SENSORRING() {                           \
512 bffb3465 Thomas Schöpping
    moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed = (PCAL6524_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed) ? PCAL6524_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm18Pm33GaugeRearConfig.clock_speed;  \
513
    moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (PCAL6524_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? PCAL6524_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed;  \
514
    moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed = (AT42QT1050_LLD_I2C_MAXFREQUENCY < moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed) ? AT42QT1050_LLD_I2C_MAXFREQUENCY : moduleHalI2cSrPm42Pm50PmVddEepromGaugeFrontConfig.clock_speed;  \
515 8be006e0 Thomas Schöpping
  }
516
#else
517
  #define MODULE_INIT_PERIPHERY_COMM_SENSORRING() {}
518
#endif
519 e545e620 Thomas Schöpping
520
/**
521
 * @brief   Periphery communication interface deinitialization hook.
522
 */
523
#define MODULE_SHUTDOWN_PERIPHERY_COMM() {                                    \
524
  /* PWM */                                                                   \
525
  pwmStop(&MODULE_HAL_PWM_BUZZER);                                            \
526
  /* ADC */                                                                   \
527
  adcStop(&MODULE_HAL_ADC_VSYS);                                              \
528
  /* I2C */                                                                   \
529 8be006e0 Thomas Schöpping
  i2cStop(&MODULE_HAL_I2C_SR_PM18_PM33_GAUGEREAR);                            \
530
  i2cStop(&MODULE_HAL_I2C_SR_PM42_PM50_PMVDD_EEPROM_GAUGEFRONT);              \
531 e545e620 Thomas Schöpping
  /* don't stop the serial driver so messages can still be printed */         \
532
}
533
534
/** @} */
535
536
/*===========================================================================*/
537
/**
538 6b53f6bf Thomas Schöpping
 * @name Startup Shutdown Synchronization Protocol (SSSP)
539
 * @{
540
 */
541
/*===========================================================================*/
542
543
/**
544
 * @brief   PD signal GPIO.
545
 */
546 1e5f7648 Thomas Schöpping
#define moduleSsspGpioPd                        moduleGpioSysPd
547 6b53f6bf Thomas Schöpping
548
/**
549
 * @brief   SYNC signal GPIO.
550
 */
551 1e5f7648 Thomas Schöpping
#define moduleSsspGpioSync                       moduleGpioSysSync
552 6b53f6bf Thomas Schöpping
553
/**
554 933df08e Thomas Schöpping
 * @brief   DN signal GPIO.
555
 */
556 1e5f7648 Thomas Schöpping
#define moduleSsspGpioDn                        moduleGpioSysUartDn
557 933df08e Thomas Schöpping
558
/**
559
 * @brief   UP signal GPIO.
560
 */
561 1e5f7648 Thomas Schöpping
#define moduleSsspGpioUp                        moduleGpioSysUartUp
562 933df08e Thomas Schöpping
563
/**
564 6b53f6bf Thomas Schöpping
 * @brief   Event flags for PD signal events.
565
 */
566
#define MODULE_SSSP_EVENTFLAGS_PD               MODULE_OS_IOEVENTFLAGS_SYSPD
567
568
/**
569 933df08e Thomas Schöpping
 * @brief   Event flags for SYNC signal events.
570 6b53f6bf Thomas Schöpping
 */
571
#define MODULE_SSSP_EVENTFLAGS_SYNC             MODULE_OS_IOEVENTFLAGS_SYSSYNC
572
573
/**
574 933df08e Thomas Schöpping
 * @brief   Event flags for UP signal events.
575
 */
576
#define MODULE_SSSP_EVENTFLAGS_UP               MODULE_OS_IOEVENTFLAGS_SYSUARTUP
577
578
/**
579
 * @brief   Event flags for DN signal events.
580
 */
581
#define MODULE_SSSP_EVENTFLAGS_DN               MODULE_OS_IOEVENTFLAGS_SYSUARTDN
582
583 6b53f6bf Thomas Schöpping
/** @} */
584
585
/*===========================================================================*/
586
/**
587 e545e620 Thomas Schöpping
 * @name Low-level drivers
588
 * @{
589
 */
590
/*===========================================================================*/
591
#include <alld_at24c01bn-sh-b.h>
592
#include <alld_bq24103a.h>
593
#include <alld_bq27500.h>
594
#include <alld_ina219.h>
595
#include <alld_led.h>
596
#include <alld_pklcs1212e4001.h>
597
#include <alld_tps62113.h>
598
599
/**
600
 * @brief   EEPROM driver.
601
 */
602
extern AT24C01BNDriver moduleLldEeprom;
603
604
/**
605
 * @brief   Battery charger (front battery) driver.
606
 */
607
extern BQ24103ADriver moduleLldBatteryChargerFront;
608
609
/**
610
 * @brief   Battery charger (rear battery) driver.
611
 */
612
extern BQ24103ADriver moduleLldBatteryChargerRear;
613
614
/**
615
 * @brief   Fuel gauge (front battery) driver.
616
 */
617
extern BQ27500Driver moduleLldFuelGaugeFront;
618
619
/**
620
 * @brief   Fuel gauge (rear battery) driver.
621
 */
622
extern BQ27500Driver moduleLldFuelGaugeRear;
623
624
/**
625
 * @brief   Power monitor (VDD) driver.
626
 */
627
extern INA219Driver moduleLldPowerMonitorVdd;
628
629
/**
630
 * @brief   Power monitor (VIO 1.8) driver.
631
 */
632
extern INA219Driver moduleLldPowerMonitorVio18;
633
634
/**
635
 * @brief   Power monitor (VIO 3.3) driver.
636
 */
637
extern INA219Driver moduleLldPowerMonitorVio33;
638
639
/**
640
 * @brief   Power monitor (VSYS 4.2) driver.
641
 */
642
extern INA219Driver moduleLldPowerMonitorVsys42;
643
644
/**
645
 * @brief   Power monitor (VIO 5.0) driver.
646
 */
647
extern INA219Driver moduleLldPowerMonitorVio50;
648
649
/**
650
 * @brief   Status LED driver.
651
 */
652
extern LEDDriver moduleLldStatusLed;
653
654
/**
655 8be006e0 Thomas Schöpping
 * @brief   Step down converter driver.
656
 * @note    Although there multiple TPS62113, those are completely identical from driver few (share the same signals).
657
 */
658
extern TPS62113Driver moduleLldStepDownConverter;
659
660
#if (BOARD_SENSORRING == BOARD_PROXIMITYSENSOR) || defined(__DOXYGEN__)
661
662
#include <alld_mpr121.h>
663
#include <alld_pca9544a.h>
664
#include <alld_vcnl4020.h>
665
666
/**
667 e545e620 Thomas Schöpping
 * @brief   Touch sensor driver.
668
 */
669
extern MPR121Driver moduleLldTouch;
670
671
/**
672 8be006e0 Thomas Schöpping
 * @brief   I2C multiplexer (I2C #1) driver.
673 e545e620 Thomas Schöpping
 */
674
extern PCA9544ADriver moduleLldI2cMultiplexer1;
675
676
/**
677 8be006e0 Thomas Schöpping
 * @brief   I2C multiplexer (I2C #2) driver.
678 e545e620 Thomas Schöpping
 */
679
extern PCA9544ADriver moduleLldI2cMultiplexer2;
680
681
/**
682 8be006e0 Thomas Schöpping
 * @brief   Proximity sensor (I2C #1) driver.
683 e545e620 Thomas Schöpping
 */
684
extern VCNL4020Driver moduleLldProximity1;
685
686
/**
687 8be006e0 Thomas Schöpping
 * @brief   Proximity sensor (I2C #2) driver.
688 e545e620 Thomas Schöpping
 */
689
extern VCNL4020Driver moduleLldProximity2;
690
691 8be006e0 Thomas Schöpping
#endif /* BOARD_SENSORRING == BOARD_PROXIMITYSENSOR */
692
693
#if (BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L0X) || defined(__DOXYGEN__)
694 bffb3465 Thomas Schöpping
695
#include <alld_pcal6524.h>
696
#include <alld_at42qt1050.h>
697
698
/**
699
 * @brief   GPIO extender (I2C #1) driver.
700
 */
701
extern PCAL6524Driver moduleLldGpioExtender1;
702
703
/**
704
 * @brief   GPIO extender (I2C #2) driver.
705
 */
706
extern PCAL6524Driver moduleLldGpioExtender2;
707
708
/**
709
 * @brief   Touch sensor driver.
710
 */
711
extern AT42QT1050Driver moduleLldTouch;
712
713 8be006e0 Thomas Schöpping
#endif /* BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L0X */
714
715
#if (BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L1X) || defined(__DOXYGEN__)
716 bffb3465 Thomas Schöpping
717
#include <alld_pcal6524.h>
718
#include <alld_at42qt1050.h>
719
720
/**
721
 * @brief   GPIO extender (I2C #1) driver.
722
 */
723
extern PCAL6524Driver moduleLldGpioExtender1;
724
725
/**
726
 * @brief   GPIO extender (I2C #2) driver.
727
 */
728
extern PCAL6524Driver moduleLldGpioExtender2;
729
730
/**
731
 * @brief   Touch sensor driver.
732
 */
733
extern AT42QT1050Driver moduleLldTouch;
734
735 8be006e0 Thomas Schöpping
#endif /* BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L1X */
736
737 4a0e2139 Julian L
738 e545e620 Thomas Schöpping
/** @} */
739
740
/*===========================================================================*/
741
/**
742
 * @name Unit tests (UT)
743
 * @{
744
 */
745
/*===========================================================================*/
746
#if (AMIROOS_CFG_TESTS_ENABLE == true) || defined(__DOXYGEN__)
747
#include <ut_lld_adc.h>
748
#include <ut_alld_at24c01bn-sh-b.h>
749
#include <ut_alld_bq24103a.h>
750
#include <ut_alld_bq27500.h>
751
#include <ut_alld_bq27500_bq24103a.h>
752
#include <ut_alld_ina219.h>
753
#include <ut_alld_led.h>
754
#include <ut_alld_pklcs1212e4001.h>
755
#include <ut_alld_tps62113.h>
756
#include <ut_alld_tps62113_ina219.h>
757 4a0e2139 Julian L
#include <ut_alld_vcnl4020.h>
758
#include <ut_lld_rtcan.h>
759 e545e620 Thomas Schöpping
760
/**
761
 * @brief   ADC unit test object.
762
 */
763
extern aos_unittest_t moduleUtAdcVsys;
764
765
/**
766
 * @brief   AT24C01BN-SH-B (EEPROM) unit test object.
767
 */
768
extern aos_unittest_t moduleUtAlldAt24c01bn;
769
770
/**
771
 * @brief   BQ24103A (battery charger) unit test object.
772
 */
773
extern aos_unittest_t moduleUtAlldBq24103a;
774
775
/**
776
 * @brief   BQ27500 (fuel gauge) unit test object.
777
 */
778
extern aos_unittest_t moduleUtAlldBq27500;
779
780
/**
781
 * @brief   BQ27500 (fuela gauge) in combination with BQ24103A (battery charger) unit test object.
782
 */
783
extern aos_unittest_t moduleUtAlldBq27500Bq24103a;
784
785
/**
786
 * @brief   INA219 (power monitor) unit test object.
787
 */
788
extern aos_unittest_t moduleUtAlldIna219;
789
790
/**
791
 * @brief   Status LED unit test object.
792
 */
793
extern aos_unittest_t moduleUtAlldLed;
794
795
/**
796
 * @brief   PKLCS1212E4001 (buzzer) unit test object.
797
 */
798
extern aos_unittest_t moduleUtAlldPklcs1212e4001;
799
800
/**
801
 * @brief   TPS62113 (step-down converter) unit test object.
802
 */
803
extern aos_unittest_t moduleUtAlldTps62113;
804
805
/**
806
 * @brief   TPS62113 (step-sown converter) in combination with INA219 (power monitor) unit test object.
807
 */
808
extern aos_unittest_t moduleUtAlldTps62113Ina219;
809
810 8be006e0 Thomas Schöpping
#if (BOARD_SENSORRING == BOARD_PROXIMITYSENSOR) || defined(__DOXYGEN__)
811
812
#include <ut_alld_mpr121.h>
813
#include <ut_alld_pca9544a.h>
814
#include <ut_alld_vcnl4020.h>
815
816
/**
817
 * @brief   MPR121 (touch sensor) unit test object.
818
 */
819
extern aos_unittest_t moduleUtAlldMpr121;
820
821
/**
822
 * @brief   PCA9544A (I2C multiplexer) unit test object.
823
 */
824
extern aos_unittest_t moduleUtAlldPca9544a;
825
826 e545e620 Thomas Schöpping
/**
827
 * @brief   VCNL4020 (proximity sensor) unit test object.
828
 */
829
extern aos_unittest_t moduleUtAlldVcnl4020;
830
831 8be006e0 Thomas Schöpping
#endif /* BOARD_SENSORRING == BOARD_PROXIMITYSENSOR */
832
833
#if (BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L0X) || defined(__DOXYGEN__)
834 bffb3465 Thomas Schöpping
835
#include <ut_alld_pcal6524.h>
836
#include <ut_alld_at42qt1050.h>
837
838
/**
839
 * @brief   PCAL6524 (GPIO extender) unit test object.
840
 */
841
extern aos_unittest_t moduleUtAlldPcal6524;
842
843
/**
844
 * @brief   AT42QT1050 (touch sensor) unit test object.
845
 */
846
extern aos_unittest_t moduleUtAlldAt42qt1050;
847
848 8be006e0 Thomas Schöpping
#endif /* BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L0X */
849
850
#if (BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L1X) || defined(__DOXYGEN__)
851 bffb3465 Thomas Schöpping
852
#include <ut_alld_pcal6524.h>
853
#include <ut_alld_at42qt1050.h>
854
855
/**
856
 * @brief   PCAL6524 (GPIO extender) unit test object.
857
 */
858
extern aos_unittest_t moduleUtAlldPcal6524;
859
860
/**
861
 * @brief   AT42QT1050 (touch sensor) unit test object.
862
 */
863
extern aos_unittest_t moduleUtAlldAt42qt1050;
864
865 8be006e0 Thomas Schöpping
#endif /* BOARD_SENSORRING == BOARD_DISTANCESENSOR_VL53L1X */
866
867 4a0e2139 Julian L
/**
868
 * @brief RtCan unit test object.
869
*/
870
extern aos_unittest_t moduleUtLldRtCan;
871
872 e545e620 Thomas Schöpping
#endif /* AMIROOS_CFG_TESTS_ENABLE == true */
873
874
/** @} */
875
876
#endif /* _AMIROOS_MODULE_H_ */
877 53710ca3 Marc Rothmann
878
/** @} */