Revision 1e5f7648 modules/PowerManagement_1-1/module.c

View differences:

modules/PowerManagement_1-1/module.c
18 18

  
19 19
#include "module.h"
20 20

  
21
#include <amiroos.h>
22

  
21 23
/*===========================================================================*/
22 24
/**
23 25
 * @name Module specific functions
24 26
 * @{
25 27
 */
26 28
/*===========================================================================*/
27
#include <amiroos.h>
28

  
29
/**
30
 * @brief   Interrupt service routine callback for I/O interrupt signals.
31
 *
32
 * @param   args      Channel on which the interrupt was encountered.
33
 */
34
static void _modulePalIsrCallback(void *args) {
35
  chSysLockFromISR();
36
  chEvtBroadcastFlagsI(&aos.events.io, (1 << (*(uint16_t*)args)));
37
  chSysUnlockFromISR();
38

  
39
  return;
40
}
41 29

  
42 30
/** @} */
43 31

  
......
69 57
  /* btr  */ CAN_BTR_SJW(1) | CAN_BTR_TS2(3) | CAN_BTR_TS1(15) | CAN_BTR_BRP(1),
70 58
};
71 59

  
72
aos_interrupt_cfg_t moduleIntConfig[14] = {
73
    /* channel  1 */ { // IR_INT1_N: must be enabled explicitely
74
      /* port     */ GPIOB,
75
      /* pad      */ GPIOB_IR_INT1_N,
76
      /* flags    */ 0,
77
      /* mode     */ APAL2CH_EDGE(VCNL4020_LLD_INT_EDGE),
78
      /* callback */ _modulePalIsrCallback,
79
      /* cb arg   */ 1,
80
    },
81
    /* channel  2 */ { // GAUGE_BATLOW1: must be enabled explicitely
82
      /* port     */ GPIOC,
83
      /* pad      */ GPIOC_GAUGE_BATLOW1,
84
      /* flags    */ 0,
85
      /* mode     */ PAL_EVENT_MODE_RISING_EDGE,
86
      /* callback */ _modulePalIsrCallback,
87
      /* cb arg   */ 2,
88
    },
89
    /* channel  3 */ { // GAUGE_BATGD1_N: must be enabled explicitely
90
      /* port     */ GPIOC,
91
      /* pad      */ GPIOC_GAUGE_BATGD1_N,
92
      /* flags    */ 0,
93
      /* mode     */ PAL_EVENT_MODE_RISING_EDGE,
94
      /* callback */ _modulePalIsrCallback,
95
      /* cb arg   */ 3,
96
    },
97
    /* channel  4 */ { // SYS_UART_DN: automatic interrupt on event
98
      /* port     */ GPIOB,
99
      /* pad      */ GPIOB_SYS_UART_DN,
100
      /* flags    */ AOS_INTERRUPT_AUTOSTART,
101
      /* mode     */ PAL_EVENT_MODE_BOTH_EDGES,
102
      /* callback */ _modulePalIsrCallback,
103
      /* cb arg   */ 4,
104
    },
105
    /* channel  5 */ { // IR_INT2_N: must be enabled explicitely
106
      /* port     */ GPIOC,
107
      /* pad      */ GPIOC_IR_INT2_N,
108
      /* flags    */ 0,
109
      /* mode     */ APAL2CH_EDGE(VCNL4020_LLD_INT_EDGE),
110
      /* callback */ _modulePalIsrCallback,
111
      /* cb arg   */ 5,
112
    },
113
    /* channel  6 */ { // TOUCH_INT: must be enabled explicitely
114
      /* port     */ GPIOC,
115
      /* pad      */ GPIOC_TOUCH_INT_N,
116
      /* flags    */ 0,
117
      /* mode     */ APAL2CH_EDGE(MPR121_LLD_INT_EDGE),
118
      /* callback */ _modulePalIsrCallback,
119
      /* cb arg   */ 6,
120
    },
121
    /* channel  7 */ { // GAUGE_BATLOW2: must be enabled explicitely
122
      /* port     */ GPIOB,
123
      /* pad      */ GPIOB_GAUGE_BATLOW2,
124
      /* flags    */ 0,
125
      /* mode     */ PAL_EVENT_MODE_RISING_EDGE,
126
      /* callback */ _modulePalIsrCallback,
127
      /* cb arg   */ 7,
128
    },
129
    /* channel  8 */ { // GAUGE_BATGD2_N: must be enabled explicitely
130
      /* port     */ GPIOB,
131
      /* pad      */ GPIOB_GAUGE_BATGD2_N,
132
      /* flags    */ 0,
133
      /* mode     */ PAL_EVENT_MODE_RISING_EDGE,
134
      /* callback */ _modulePalIsrCallback,
135
      /* cb arg   */ 8,
136
    },
137
    /* channel  9 */ { // PATH_DC: must be enabled explicitely
138
      /* port     */ GPIOC,
139
      /* pad      */ GPIOC_PATH_DC,
140
      /* flags    */ 0,
141
      /* mode     */ PAL_EVENT_MODE_BOTH_EDGES,
142
      /* callback */ _modulePalIsrCallback,
143
      /* cb arg   */ 9,
144
    },
145
    /* channel 10 */ { // SYS_SPI_DIR: must be enabled explicitely
146
      /* port     */ GPIOC,
147
      /* pad      */ GPIOC_SYS_SPI_DIR,
148
      /* flags    */ 0,
149
      /* mode     */ PAL_EVENT_MODE_BOTH_EDGES,
150
      /* callback */ _modulePalIsrCallback,
151
      /* cb arg   */ 10,
152
    },
153
    /* channel 11 */ { // SYS_SYNC_N: must be enabled explicitely
154
      /* port     */ GPIOC,
155
      /* pad      */ GPIOC_SYS_INT_N, // TODO: check this
156
      /* flags    */ AOS_INTERRUPT_AUTOSTART,
157
      /* mode     */ PAL_EVENT_MODE_BOTH_EDGES,
158
      /* callback */ _modulePalIsrCallback,
159
      /* cb arg   */ 11,
160
    },
161
    /* channel 12 */ { // SYS_PD_N: must be enabled explicitely
162
      /* port     */ GPIOC,
163
      /* pad      */ GPIOC_SYS_PD_N,
164
      /* flags    */ AOS_INTERRUPT_AUTOSTART,
165
      /* mode     */ PAL_EVENT_MODE_FALLING_EDGE,
166
      /* callback */ _modulePalIsrCallback,
167
      /* cb arg   */ 12,
168
    },
169
    /* channel 13 */ { // SYS_WARMRST_N: must be enabled explicitely
170
      /* port     */ GPIOC,
171
      /* pad      */ GPIOC_SYS_WARMRST_N,
172
      /* flags    */ AOS_INTERRUPT_AUTOSTART,
173
      /* mode     */ PAL_EVENT_MODE_FALLING_EDGE,
174
      /* callback */ _modulePalIsrCallback,
175
      /* cb arg   */ 13,
176
    },
177
    /* channel 14 */ { // SYS_UART_UP: must be enabled explicitely
178
      /* port     */ GPIOB,
179
      /* pad      */ GPIOB_SYS_UART_UP,
180
      /* flags    */ AOS_INTERRUPT_AUTOSTART,
181
      /* mode     */ PAL_EVENT_MODE_BOTH_EDGES,
182
      /* callback */ _modulePalIsrCallback,
183
      /* cb arg   */ 14,
184
    },
185
};
186

  
187
aos_interrupt_driver_t moduleIntDriver = {
188
  /* config     */ NULL,
189
  /* interrupts */ 14,
190
};
191

  
192 60
I2CConfig moduleHalI2cProxPm18Pm33GaugeRearConfig = {
193 61
  /* I²C mode   */ OPMODE_I2C,
194 62
  /* frequency  */ 400000, // TODO: replace with some macro (-> ChibiOS/HAL)
......
246 114
 */
247 115
/*===========================================================================*/
248 116

  
249
apalGpio_t moduleGpioSysRegEn = {
117
/**
118
 * @brief   SYS_REG_EN output signal GPIO.
119
 */
120
static apalGpio_t _gpioSysRegEn = {
250 121
  /* port */ GPIOA,
251 122
  /* pad  */ GPIOA_SYS_REG_EN,
252 123
};
124
apalControlGpio_t moduleSysRegEn = {
125
  /* GPIO */ &_gpioSysRegEn,
126
  /* meta */ {
127
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
128
    /* active state   */ APAL_GPIO_ACTIVE_HIGH,
129
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
130
  },
131
};
253 132

  
254
apalGpio_t moduleGpioIrInt1 = {
133
/**
134
 * @brief   IR_INT1 input signal GPIO.
135
 */
136
static apalGpio_t _gpioIrInt1 = {
255 137
  /* port */ GPIOB,
256 138
  /* pad  */ GPIOB_IR_INT1_N,
257 139
};
140
apalControlGpio_t moduleGpioIrInt1 = {
141
  /* GPIO */ &_gpioIrInt1,
142
  /* meta */ {
143
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
144
    /* active state   */ (VCNL4020_LLD_INT_EDGE == APAL_GPIO_EDGE_RISING) ? APAL_GPIO_ACTIVE_HIGH : APAL_GPIO_ACTIVE_LOW,
145
    /* interrupt edge */ VCNL4020_LLD_INT_EDGE,
146
  },
147
};
258 148

  
259
apalGpio_t moduleGpioPowerEn = {
149
/**
150
 * @brief   POWER_EN output signal GPIO.
151
 */
152
static apalGpio_t _gpioPowerEn = {
260 153
  /* port */ GPIOB,
261 154
  /* pad  */ GPIOB_POWER_EN,
262 155
};
156
apalControlGpio_t moduleGpioPowerEn = {
157
  /* GPIO */ &_gpioPowerEn,
158
  /* meta */ {
159
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
160
    /* active state   */ APAL_GPIO_ACTIVE_HIGH,
161
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
162
  },
163
};
263 164

  
264
apalGpio_t moduleGpioSysUartDn = {
165
/**
166
 * @brief   SYS_UART_DN bidirectional signal GPIO.
167
 */
168
static apalGpio_t _gpioSysUartDn = {
265 169
  /* port */ GPIOB,
266 170
  /* pad  */ GPIOB_SYS_UART_DN,
267 171
};
172
apalControlGpio_t moduleGpioSysUartDn = {
173
  /* GPIO */ &_gpioSysUartDn,
174
  /* meta */ {
175
    /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
176
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
177
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
178
  },
179
};
268 180

  
269
apalGpio_t moduleGpioChargeStat2A = {
181
/**
182
 * @brief   CHARGE_STAT2A input signal GPIO.
183
 */
184
static apalGpio_t _gpioChargeStat2A = {
270 185
  /* port */ GPIOB,
271 186
  /* pad  */ GPIOB_CHARGE_STAT2A,
272 187
};
188
apalControlGpio_t moduleGpioChargeStat2A = {
189
  /* GPIO */ &_gpioChargeStat2A,
190
  /* meta */ {
191
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
192
    /* active state   */ BQ24103A_LLD_CHARGE_STATUS_GPIO_ACTIVE_STATE,
193
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
194
  },
195
};
273 196

  
274
apalGpio_t moduleGpioGaugeBatLow2 = {
197
/**
198
 * @brief   GAUGE_BATLOW2 input signal GPIO.
199
 */
200
static apalGpio_t _gpioGaugeBatLow2 = {
275 201
  /* port */ GPIOB,
276 202
  /* pad  */ GPIOB_GAUGE_BATLOW2,
277 203
};
204
apalControlGpio_t moduleGpioGaugeBatLow2 = {
205
  /* GPIO */ &_gpioGaugeBatLow2,
206
  /* meta */ {
207
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
208
    /* active state   */ BQ27500_LLD_BATLOW_ACTIVE_STATE,
209
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
210
  },
211
};
278 212

  
279
apalGpio_t moduleGpioGaugeBatGd2 = {
213
/**
214
 * @brief   GAUGE_BATGD2 input signal GPIO.
215
 */
216
static apalGpio_t _gpioGaugeBatGd2 = {
280 217
  /* port */ GPIOB,
281 218
  /* pad  */ GPIOB_GAUGE_BATGD2_N,
282 219
};
220
apalControlGpio_t moduleGpioGaugeBatGd2 = {
221
  /* GPIO */ &_gpioGaugeBatGd2,
222
  /* meta */ {
223
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
224
    /* active state   */ BQ27500_LLD_BATGOOD_ACTIVE_STATE,
225
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
226
  },
227
};
283 228

  
284
apalGpio_t moduleGpioLed = {
229
/**
230
 * @brief   LED output signal GPIO.
231
 */
232
static apalGpio_t _gpioLed = {
285 233
  /* port */ GPIOB,
286 234
  /* pad  */ GPIOB_LED,
287 235
};
236
apalControlGpio_t moduleGpioLed = {
237
  /* GPIO */ &_gpioLed,
238
  /* meta */ {
239
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
240
    /* active state   */ LED_LLD_GPIO_ACTIVE_STATE,
241
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
242
  },
243
};
288 244

  
289
apalGpio_t moduleGpioSysUartUp = {
245
/**
246
 * @brief   SYS_UART_UP bidirectional signal GPIO.
247
 */
248
static apalGpio_t _gpioSysUartUp = {
290 249
  /* port */ GPIOB,
291 250
  /* pad  */ GPIOB_SYS_UART_UP,
292 251
};
252
apalControlGpio_t moduleGpioSysUartUp = {
253
  /* GPIO */ &_gpioSysUartUp,
254
  /* meta */ {
255
    /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
256
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
257
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
258
  },
259
};
293 260

  
294
apalGpio_t moduleGpioChargeStat1A = {
261
/**
262
 * @brief   CHARGE_STAT1A input signal GPIO.
263
 */
264
static apalGpio_t _gpioChargeStat1A = {
295 265
  /* port */ GPIOC,
296 266
  /* pad  */ GPIOC_CHARGE_STAT1A,
297 267
};
268
apalControlGpio_t moduleGpioChargeStat1A = {
269
  /* GPIO */ &_gpioChargeStat1A,
270
  /* meta */ {
271
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
272
    /* active state   */ BQ24103A_LLD_CHARGE_STATUS_GPIO_ACTIVE_STATE,
273
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
274
  },
275
};
298 276

  
299
apalGpio_t moduleGpioGaugeBatLow1 = {
277
/**
278
 * @brief   GAUGE_BATLOW1 input signal GPIO.
279
 */
280
static apalGpio_t _gpioGaugeBatLow1 = {
300 281
  /* port */ GPIOC,
301 282
  /* pad  */ GPIOC_GAUGE_BATLOW1,
302 283
};
284
apalControlGpio_t moduleGpioGaugeBatLow1 = {
285
  /* GPIO */ &_gpioGaugeBatLow1,
286
  /* meta */ {
287
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
288
    /* active state   */ BQ27500_LLD_BATLOW_ACTIVE_STATE,
289
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
290
  },
291
};
303 292

  
304
apalGpio_t moduleGpioGaugeBatGd1 = {
293
/**
294
 * @brief   GAUGE_BATGD1 input signal GPIO.
295
 */
296
static apalGpio_t _gpioGaugeBatGd1 = {
305 297
  /* port */ GPIOC,
306 298
  /* pad  */ GPIOC_GAUGE_BATGD1_N,
307 299
};
300
apalControlGpio_t moduleGpioGaugeBatGd1 = {
301
  /* GPIO */ &_gpioGaugeBatGd1,
302
  /* meta */ {
303
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
304
    /* active state   */ BQ27500_LLD_BATGOOD_ACTIVE_STATE,
305
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
306
  },
307
};
308 308

  
309
apalGpio_t moduleGpioChargeEn1 = {
309
/**
310
 * @brief   CHARG_EN1 output signal GPIO.
311
 */
312
static apalGpio_t _gpioChargeEn1 = {
310 313
  /* port */ GPIOC,
311 314
  /* pad  */ GPIOC_CHARGE_EN1_N,
312 315
};
316
apalControlGpio_t moduleGpioChargeEn1 = {
317
  /* GPIO */ &_gpioChargeEn1,
318
  /* meta */ {
319
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
320
    /* active state   */ BQ24103A_LLD_ENABLED_GPIO_ACTIVE_STATE,
321
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
322
  },
323
};
313 324

  
314
apalGpio_t moduleGpioIrInt2 = {
325
/**
326
 * @brief   IR_INT2 input signal GPIO.
327
 */
328
static apalGpio_t _gpioIrInt2 = {
315 329
  /* port */ GPIOC,
316 330
  /* pad  */ GPIOC_IR_INT2_N,
317 331
};
332
apalControlGpio_t moduleGpioIrInt2 = {
333
  /* GPIO */ &_gpioIrInt2,
334
  /* meta */ {
335
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
336
    /* active state   */ (VCNL4020_LLD_INT_EDGE == APAL_GPIO_EDGE_RISING) ? APAL_GPIO_ACTIVE_HIGH : APAL_GPIO_ACTIVE_LOW,
337
    /* interrupt edge */ VCNL4020_LLD_INT_EDGE,
338
  },
339
};
318 340

  
319
apalGpio_t moduleGpioTouchInt = {
341
/**
342
 * @brief   TOUCH_INT input signal GPIO.
343
 */
344
static apalGpio_t _gpioTouchInt = {
320 345
  /* port */ GPIOC,
321 346
  /* pad  */ GPIOC_TOUCH_INT_N,
322 347
};
348
apalControlGpio_t moduleGpioTouchInt = {
349
  /* GPIO */ &_gpioTouchInt,
350
  /* meta */ {
351
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
352
    /* active state   */ (MPR121_LLD_INT_EDGE == APAL_GPIO_EDGE_RISING) ? APAL_GPIO_ACTIVE_HIGH : APAL_GPIO_ACTIVE_LOW,
353
    /* interrupt edge */ MPR121_LLD_INT_EDGE,
354
  },
355
};
323 356

  
324
apalGpio_t moduleGpioSysDone = {
357
/**
358
 * @brief   SYS_DONE input signal GPIO.
359
 */
360
static apalGpio_t _gpioSysDone = {
325 361
  /* port */ GPIOC,
326 362
  /* pad  */ GPIOC_SYS_DONE,
327 363
};
364
apalControlGpio_t moduleGpioSysDone = {
365
  /* GPIO */ &_gpioSysDone,
366
  /* meta */ {
367
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
368
    /* active state   */ APAL_GPIO_ACTIVE_HIGH,
369
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
370
  },
371
};
328 372

  
329
apalGpio_t moduleGpioSysProg = {
373
/**
374
 * @brief   SYS_PROG output signal GPIO.
375
 */
376
static apalGpio_t _gpioSysProg = {
330 377
  /* port */ GPIOC,
331 378
  /* pad  */ GPIOC_SYS_PROG_N,
332 379
};
380
apalControlGpio_t moduleGpioSysProg = {
381
  /* GPIO */ &_gpioSysProg,
382
  /* meta */ {
383
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
384
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
385
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
386
  },
387
};
333 388

  
334
apalGpio_t moduleGpioPathDc = {
389
/**
390
 * @brief   PATH_DC input signal GPIO.
391
 */
392
static apalGpio_t _gpioPathDc = {
335 393
  /* port */ GPIOC,
336 394
  /* pad  */ GPIOC_PATH_DC,
337 395
};
396
apalControlGpio_t moduleGpioPathDc = {
397
  /* GPIO */ &_gpioPathDc,
398
  /* meta */ {
399
    /* direction      */ APAL_GPIO_DIRECTION_INPUT,
400
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
401
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
402
  },
403
};
338 404

  
339
apalGpio_t moduleGpioSysSpiDir = {
405
/**
406
 * @brief   SYS_SPI_DIR bidirectional signal GPIO.
407
 */
408
static apalGpio_t _gpioSysSpiDir = {
340 409
  /* port */ GPIOC,
341 410
  /* pad  */ GPIOC_SYS_SPI_DIR,
342 411
};
412
apalControlGpio_t moduleGpioSysSpiDir = {
413
  /* GPIO */ &_gpioSysSpiDir,
414
  /* meta */ {
415
    /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
416
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
417
    /* interrupt edge */ APAL_GPIO_EDGE_FALLING,
418
  },
419
};
343 420

  
344
apalGpio_t moduleGpioSysSync = {
421
/**
422
 * @brief   SYS_SYNC bidirectional signal GPIO.
423
 */
424
static apalGpio_t _gpioSysSync = {
345 425
  /* port */ GPIOC,
346 426
  /* pad  */ GPIOC_SYS_INT_N,
347 427
};
428
apalControlGpio_t moduleGpioSysSync = {
429
  /* GPIO */ &_gpioSysSync,
430
  /* meta */ {
431
    /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
432
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
433
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
434
  },
435
};
348 436

  
349
apalGpio_t moduleGpioSysPd = {
437
/**
438
 * @brief   SYS_PD bidirectional signal GPIO.
439
 */
440
static apalGpio_t _gpioSysPd = {
350 441
  /* port */ GPIOC,
351 442
  /* pad  */ GPIOC_SYS_PD_N,
352 443
};
444
apalControlGpio_t moduleGpioSysPd = {
445
  /* GPIO */ &_gpioSysPd,
446
  /* meta */ {
447
    /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
448
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
449
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
450
  },
451
};
353 452

  
354
apalGpio_t moduleGpioSysWarmrst = {
453
/**
454
 * @brief   SYS_WARMRST bidirectional signal GPIO.
455
 */
456
static apalGpio_t _gpioSysWarmrst = {
355 457
  /* port */ GPIOC,
356 458
  /* pad  */ GPIOC_SYS_WARMRST_N,
357 459
};
460
apalControlGpio_t moduleGpioSysWarmrst = {
461
  /* GPIO */ &_gpioSysWarmrst,
462
  /* meta */ {
463
    /* direction      */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
464
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
465
    /* interrupt edge */ APAL_GPIO_EDGE_BOTH,
466
  },
467
};
358 468

  
359
apalGpio_t moduleGpioBtRst = {
469
/**
470
 * @brief   BT_RST output signal GPIO.
471
 */
472
static apalGpio_t _gpioBtRst = {
360 473
  /* port */ GPIOC,
361 474
  /* pad  */ GPIOC_BT_RST,
362 475
};
476
apalControlGpio_t moduleGpioBtRst = {
477
  /* GPIO */ &_gpioBtRst,
478
  /* meta */ {
479
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
480
    /* active state   */ APAL_GPIO_ACTIVE_LOW,
481
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
482
  },
483
};
363 484

  
364
apalGpio_t moduleGpioChargeEn2 = {
485
/**
486
 * @brief   CHARGE_EN2 output signal GPIO.
487
 */
488
static apalGpio_t _gpioChargeEn2 = {
365 489
  /* port */ GPIOD,
366 490
  /* pad  */ GPIOD_CHARGE_EN2_N,
367 491
};
492
apalControlGpio_t moduleGpioChargeEn2 = {
493
  /* GPIO */ &_gpioChargeEn2,
494
  /* meta */ {
495
    /* direction      */ APAL_GPIO_DIRECTION_OUTPUT,
496
    /* active state   */ BQ24103A_LLD_ENABLED_GPIO_ACTIVE_STATE,
497
    /* interrupt edge */ APAL_GPIO_EDGE_NONE,
498
  },
499
};
368 500

  
369 501
/** @} */
370 502

  
......
388 520
 */
389 521
/*===========================================================================*/
390 522

  
391
apalControlGpio_t moduleSsspGpioPd = {
392
  /* GPIO */ &moduleGpioSysPd,
393
  /* meta */ {
394
    /* active state */ APAL_GPIO_ACTIVE_LOW,
395
    /* edge         */ APAL_GPIO_EDGE_FALLING,
396
    /* direction    */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
397
  },
398
};
399

  
400
apalControlGpio_t moduleSsspGpioSync = {
401
  /* GPIO */ &moduleGpioSysSync,
402
  /* meta */ {
403
    /* active state */ APAL_GPIO_ACTIVE_LOW,
404
    /* edge         */ APAL_GPIO_EDGE_FALLING,
405
    /* direction    */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
406
  },
407
};
408

  
409
apalControlGpio_t moduleSsspGpioDn = {
410
  /* GPIO */ &moduleGpioSysUartDn,
411
  /* meta */ {
412
    /* active state */ APAL_GPIO_ACTIVE_LOW,
413
    /* edge         */ APAL_GPIO_EDGE_FALLING,
414
    /* direction    */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
415
  },
416
};
417

  
418
apalControlGpio_t moduleSsspGpioUp = {
419
  /* GPIO */ &moduleGpioSysUartUp,
420
  /* meta */ {
421
    /* active state */ APAL_GPIO_ACTIVE_LOW,
422
    /* edge         */ APAL_GPIO_EDGE_FALLING,
423
    /* direction    */ APAL_GPIO_DIRECTION_BIDIRECTIONAL,
424
  },
425
};
426

  
427 523
/** @} */
428 524

  
429 525
/*===========================================================================*/
......
439 535
};
440 536

  
441 537
BQ24103ADriver moduleLldBatteryChargerFront = {
442
  /* charge enable GPIO */ {
443
    /* GPIO */ &moduleGpioChargeEn1,
444
    /* meta */ {
445
      /* active state */ APAL_GPIO_ACTIVE_LOW,
446
      /* edge         */ APAL_GPIO_EDGE_NONE,
447
      /* direction    */ APAL_GPIO_DIRECTION_OUTPUT,
448
    },
449
  },
450
  /* charge status GPIO */ {
451
    /* GPIO */ &moduleGpioChargeStat1A,
452
    /* meta */ {
453
      /* active state */ APAL_GPIO_ACTIVE_LOW,
454
      /* edge         */ APAL_GPIO_EDGE_NONE,
455
      /* direction    */ APAL_GPIO_DIRECTION_INPUT,
456
    },
457
  },
538
  /* charge enable GPIO */ &moduleGpioChargeEn1,
539
  /* charge status GPIO */ &moduleGpioChargeStat1A,
458 540
};
459 541

  
460 542
BQ24103ADriver moduleLldBatteryChargerRear = {
461
  /* charge enable GPIO */ {
462
    /* GPIO */ &moduleGpioChargeEn2,
463
    /* meta */ {
464
      /* active state */ APAL_GPIO_ACTIVE_LOW,
465
      /* edge         */ APAL_GPIO_EDGE_NONE,
466
      /* direction    */ APAL_GPIO_DIRECTION_OUTPUT,
467
    },
468
  },
469
  /* charge status GPIO */ {
470
    /* GPIO */ &moduleGpioChargeStat2A,
471
    /* meta */ {
472
      /* active state */ APAL_GPIO_ACTIVE_LOW,
473
      /* edge         */ APAL_GPIO_EDGE_NONE,
474
      /* direction    */ APAL_GPIO_DIRECTION_INPUT,
475
    },
476
  },
543
  /* charge enable GPIO */ &moduleGpioChargeEn2,
544
  /* charge status GPIO */ &moduleGpioChargeStat2A,
477 545
};
478 546

  
479 547
BQ27500Driver moduleLldFuelGaugeFront = {
480
  /* I2C driver       */ &MODULE_HAL_I2C_PROX_PM42_PM50_PMVDD_EEPROM_TOUCH_GAUGEFRONT,
481
  /* battery low GPIO */ {
482
    /* GPIO */ &moduleGpioGaugeBatLow1,
483
    /* meta */ {
484
      /* active state */ APAL_GPIO_ACTIVE_HIGH,
485
      /* edge         */ APAL_GPIO_EDGE_NONE,
486
      /* direction    */ APAL_GPIO_DIRECTION_INPUT,
487
    },
488
  },
489
  /* battery good GPIO */ {
490
    /* GPIO */ &moduleGpioGaugeBatGd1,
491
    /* meta */ {
492
      /* active state */ APAL_GPIO_ACTIVE_LOW,
493
      /* edge         */ APAL_GPIO_EDGE_NONE,
494
      /* direction    */ APAL_GPIO_DIRECTION_INPUT,
495
    },
496
  },
548
  /* I2C driver         */ &MODULE_HAL_I2C_PROX_PM42_PM50_PMVDD_EEPROM_TOUCH_GAUGEFRONT,
549
  /* battery low GPIO   */ &moduleGpioGaugeBatLow1,
550
  /* battery good GPIO  */ &moduleGpioGaugeBatGd1,
497 551
};
498 552

  
499 553
BQ27500Driver moduleLldFuelGaugeRear = {
500
  /* I2C driver       */ &MODULE_HAL_I2C_PROX_PM18_PM33_GAUGEREAR,
501
  /* battery low GPIO */ {
502
    /* GPIO */ &moduleGpioGaugeBatLow2,
503
    /* meta */ {
504
      /* active state */ APAL_GPIO_ACTIVE_HIGH,
505
      /* edge         */ APAL_GPIO_EDGE_NONE,
506
      /* direction    */ APAL_GPIO_DIRECTION_INPUT,
507
    },
508
  },
509
  /* battery good GPIO */ {
510
    /* GPIO */ &moduleGpioGaugeBatGd2,
511
    /* meta */ {
512
      /* active state */ APAL_GPIO_ACTIVE_LOW,
513
      /* edge         */ APAL_GPIO_EDGE_NONE,
514
      /* direction    */ APAL_GPIO_DIRECTION_INPUT,
515
    },
516
  },
554
  /* I2C driver         */ &MODULE_HAL_I2C_PROX_PM18_PM33_GAUGEREAR,
555
  /* battery low GPIO   */ &moduleGpioGaugeBatLow2,
556
  /* battery good GPIO  */ &moduleGpioGaugeBatGd2,
517 557
};
518 558

  
519 559
INA219Driver moduleLldPowerMonitorVdd = {
......
552 592
};
553 593

  
554 594
LEDDriver moduleLldStatusLed = {
555
  /* LED GPIO */ {
556
    /* GPIO */ &moduleGpioLed,
557
    /* meta */ {
558
      /* active state */ APAL_GPIO_ACTIVE_LOW,
559
      /* edge         */ APAL_GPIO_EDGE_NONE,
560
      /* direction    */ APAL_GPIO_DIRECTION_OUTPUT,
561
    },
562
  },
595
  /* LED GPIO */ &moduleGpioLed,
563 596
};
564 597

  
565 598
MPR121Driver moduleLldTouch = {
......
577 610
};
578 611

  
579 612
TPS62113Driver moduleLldStepDownConverter = {
580
  /* Power enable GPIO */ {
581
    /* GPIO       */ &moduleGpioPowerEn,
582
    /* GPIO meta  */ {
583
      /* active state */ APAL_GPIO_ACTIVE_HIGH,
584
      /* egde         */ APAL_GPIO_EDGE_NONE,
585
      /* direction    */ APAL_GPIO_DIRECTION_OUTPUT,
586
    },
587
  },
613
  /* Power enable GPIO */ &moduleGpioPowerEn,
588 614
};
589 615

  
590 616
VCNL4020Driver moduleLldProximity1 = {
......
899 925
{
900 926
  (void)argc;
901 927
  (void)argv;
902
  aosIntEnable(&moduleIntDriver, MODULE_GPIO_INT_TOUCHINT);
903 928
  aosUtRun(stream, &moduleUtAlldMpr121, NULL);
904
  aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_TOUCHINT);
905 929
  return AOS_OK;
906 930
}
907 931
static ut_mpr121data_t _utAlldMpr121Data= {
908 932
  /* MPR121 driver  */ &moduleLldTouch,
909 933
  /* timeout        */ MICROSECONDS_PER_SECOND,
910 934
  /* event source   */ &aos.events.io,
911
  /* event flags    */ (1 << MODULE_GPIO_INT_TOUCHINT),
935
  /* event flags    */ MODULE_OS_IOEVENTFLAGS_TOUCHINT,
912 936
};
913 937
aos_unittest_t moduleUtAlldMpr121 = {
914 938
  /* name           */ "MPR121",
......
1082 1106
      case WNW:
1083 1107
        mux = &moduleLldI2cMultiplexer1;
1084 1108
        ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->vcnld = &moduleLldProximity1;
1085
        ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->evtflags = (1 << MODULE_GPIO_INT_IRINT2);
1086
        aosIntEnable(&moduleIntDriver, MODULE_GPIO_INT_IRINT2);
1109
        ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->evtflags = MODULE_OS_IOEVENTFLAGS_IRINT2;
1087 1110
        break;
1088 1111
      case NNW:
1089 1112
      case NNE:
......
1091 1114
      case ESE:
1092 1115
        mux = &moduleLldI2cMultiplexer2;
1093 1116
        ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->vcnld = &moduleLldProximity2;
1094
        ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->evtflags = (1 << MODULE_GPIO_INT_IRINT1);
1095
        aosIntEnable(&moduleIntDriver, MODULE_GPIO_INT_IRINT1);
1117
        ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->evtflags = MODULE_OS_IOEVENTFLAGS_IRINT1;
1096 1118
        break;
1097 1119
      default:
1098 1120
        break;
......
1109 1131
      case NNE:
1110 1132
        pca9544a_lld_setchannel(mux, PCA9544A_LLD_CH1, ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->timeout);
1111 1133
        aosUtRun(stream, &moduleUtAlldVcnl4020, "north-northeast sensor");
1112
        aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_IRINT1);
1113 1134
        break;
1114 1135
      case ENE:
1115 1136
        pca9544a_lld_setchannel(mux, PCA9544A_LLD_CH3, ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->timeout);
1116 1137
        aosUtRun(stream, &moduleUtAlldVcnl4020, "east-northeast sensor");
1117
        aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_IRINT1);
1118 1138
        break;
1119 1139
      case ESE:
1120 1140
        pca9544a_lld_setchannel(mux, PCA9544A_LLD_CH2, ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->timeout);
1121 1141
        aosUtRun(stream, &moduleUtAlldVcnl4020, "north-southeast sensor");
1122
        aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_IRINT1);
1123 1142
        break;
1124 1143
      case SSE:
1125 1144
        pca9544a_lld_setchannel(mux, PCA9544A_LLD_CH0, ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->timeout);
1126 1145
        aosUtRun(stream, &moduleUtAlldVcnl4020, "south-southeast sensor");
1127
        aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_IRINT2);
1128 1146
        break;
1129 1147
      case SSW:
1130 1148
        pca9544a_lld_setchannel(mux, PCA9544A_LLD_CH1, ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->timeout);
1131 1149
        aosUtRun(stream, &moduleUtAlldVcnl4020, "south-southwest sensor");
1132
        aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_IRINT2);
1133 1150
        break;
1134 1151
      case WSW:
1135 1152
        pca9544a_lld_setchannel(mux, PCA9544A_LLD_CH3, ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->timeout);
1136 1153
        aosUtRun(stream, &moduleUtAlldVcnl4020, "west-southwest sensor");
1137
        aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_IRINT2);
1138 1154
        break;
1139 1155
      case WNW:
1140 1156
        pca9544a_lld_setchannel(mux, PCA9544A_LLD_CH2, ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->timeout);
1141 1157
        aosUtRun(stream, &moduleUtAlldVcnl4020, "west-northwest sensor");
1142
        aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_IRINT2);
1143 1158
        break;
1144 1159
      case NNW:
1145 1160
        pca9544a_lld_setchannel(mux, PCA9544A_LLD_CH0, ((ut_vcnl4020data_t*)moduleUtAlldVcnl4020.data)->timeout);
1146 1161
        aosUtRun(stream, &moduleUtAlldVcnl4020, "north-northwest sensor");
1147
        aosIntDisable(&moduleIntDriver, MODULE_GPIO_INT_IRINT1);
1148 1162
        break;
1149 1163
      default:
1150 1164
        break;

Also available in: Unified diff