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

View differences:

modules/PowerManagement_1-1/module.h
62 62
 */
63 63
/*===========================================================================*/
64 64
#include <hal.h>
65
#include <aos_interrupts.h>
66 65

  
67 66
/**
68 67
 * @brief   ADC driver for reading the system voltage.
......
85 84
extern CANConfig moduleHalCanConfig;
86 85

  
87 86
/**
88
 * @brief   Interrupt driver (PAL).
89
 */
90

  
91
extern aos_interrupt_driver_t moduleIntDriver;
92

  
93
/**
94
 * @brief   Interrupt driver config.
95
 */
96
extern aos_interrupt_cfg_t moduleIntConfig[14];
97

  
98
/**
99 87
 * @brief   I2C driver to access multiplexer, proximity sensors 1 to 4, power monitors for VIO1.8 and VIO 3.3, and fuel gauge (rear battery).
100 88
 */
101 89
#define MODULE_HAL_I2C_PROX_PM18_PM33_GAUGEREAR I2CD1
......
156 144
#include <amiro-lld.h>
157 145

  
158 146
/**
159
 * @brief   Interrupt channel for the IR_INT1 and CHARGE_STAT1A signals.
160
 */
161
#define MODULE_GPIO_INT_IRINT1           ((uint8_t)1)
162

  
163
/**
164
 * @brief   Interrupt channel for the GAUGE_BATLOW1 signal.
165
 */
166
#define MODULE_GPIO_INT_GAUGEBATLOW1     ((uint8_t)2)
167

  
168
/**
169
 * @brief   Interrupt channel for the GAUGE_BATGD1 signal.
170
 */
171
#define MODULE_GPIO_INT_GAUGEBATGD1      ((uint8_t)3)
172

  
173
/**
174
 * @brief   Interrupt channel for the SYS_UART_DN signal.
175
 */
176
#define MODULE_GPIO_INT_SYSUARTDN        ((uint8_t)4)
177

  
178
/**
179
 * @brief   Interrupt channel for the IR_INT2 and CHARGE_STAT2A signals.
180
 */
181
#define MODULE_GPIO_INT_IRINT2           ((uint8_t)5)
182

  
183
/**
184
 * @brief   Interrupt channel for the TOUCH_INT signal.
185
 */
186
#define MODULE_GPIO_INT_TOUCHINT         ((uint8_t)6)
187

  
188
/**
189
 * @brief   Interrupt channel for the GAUGE_BATLOW2 signal.
190
 */
191
#define MODULE_GPIO_INT_GAUGEBATLOW2     ((uint8_t)7)
192

  
193
/**
194
 * @brief   Interrupt channel for the GAUGE_BATGD2 signal.
195
 */
196
#define MODULE_GPIO_INT_GAUGEBATGD2      ((uint8_t)8)
197

  
198
/**
199
 * @brief   Interrupt channel for the PATH_DC signal.
200
 */
201
#define MODULE_GPIO_INT_PATHDC           ((uint8_t)9)
202

  
203
/**
204
 * @brief   Interrupt channel for the SYS_SPI_DIR signal.
205
 */
206
#define MODULE_GPIO_INT_SYSSPIDIR        ((uint8_t)10)
207

  
208
/**
209
 * @brief   Interrupt channel for the SYS_SYNC signal.
210
 */
211
#define MODULE_GPIO_INT_SYSSYNC          ((uint8_t)11)
212

  
213
/**
214
 * @brief   Interrupt channel for the SYS_PD signal.
215
 */
216
#define MODULE_GPIO_INT_SYSPD            ((uint8_t)12)
217

  
218
/**
219
 * @brief   Interrupt channel for the SYS_WARMRST signal.
220
 */
221
#define MODULE_GPIO_INT_SYSWARMRST       ((uint8_t)13)
222

  
223
/**
224
 * @brief   Interrupt channel for the SYS_UART_UP signal.
225
 */
226
#define MODULE_GPIO_INT_SYSUARTUP        ((uint8_t)14)
227

  
228
/**
229 147
 * @brief   SYS_REG_EN output signal GPIO.
230 148
 */
231
extern apalGpio_t moduleGpioSysRegEn;
149
extern apalControlGpio_t moduleGpioSysRegEn;
232 150

  
233 151
/**
234 152
 * @brief   IR_INT1 input signal GPIO.
235 153
 */
236
extern apalGpio_t moduleGpioIrInt1;
154
extern apalControlGpio_t moduleGpioIrInt1;
237 155

  
238 156
/**
239 157
 * @brief   POWER_EN output signal GPIO.
240 158
 */
241
extern apalGpio_t moduleGpioPowerEn;
159
extern apalControlGpio_t moduleGpioPowerEn;
242 160

  
243 161
/**
244 162
 * @brief   SYS_UART_DN bidirectional signal GPIO.
245 163
 */
246
extern apalGpio_t moduleGpioSysUartDn;
164
extern apalControlGpio_t moduleGpioSysUartDn;
247 165

  
248 166
/**
249 167
 * @brief   CHARGE_STAT2A input signal GPIO.
250 168
 */
251
extern apalGpio_t moduleGpioChargeStat2A;
169
extern apalControlGpio_t moduleGpioChargeStat2A;
252 170

  
253 171
/**
254 172
 * @brief   GAUGE_BATLOW2 input signal GPIO.
255 173
 */
256
extern apalGpio_t moduleGpioGaugeBatLow2;
174
extern apalControlGpio_t moduleGpioGaugeBatLow2;
257 175

  
258 176
/**
259 177
 * @brief   GAUGE_BATGD2 input signal GPIO.
260 178
 */
261
extern apalGpio_t moduleGpioGaugeBatGd2;
179
extern apalControlGpio_t moduleGpioGaugeBatGd2;
262 180

  
263 181
/**
264 182
 * @brief   LED output signal GPIO.
265 183
 */
266
extern apalGpio_t moduleGpioLed;
184
extern apalControlGpio_t moduleGpioLed;
267 185

  
268 186
/**
269 187
 * @brief   SYS_UART_UP bidirectional signal GPIO.
270 188
 */
271
extern apalGpio_t moduleGpioSysUartUp;
189
extern apalControlGpio_t moduleGpioSysUartUp;
272 190

  
273 191
/**
274 192
 * @brief   CHARGE_STAT1A input signal GPIO.
275 193
 */
276
extern apalGpio_t moduleGpioChargeStat1A;
194
extern apalControlGpio_t moduleGpioChargeStat1A;
277 195

  
278 196
/**
279 197
 * @brief   GAUGE_BATLOW1 input signal GPIO.
280 198
 */
281
extern apalGpio_t moduleGpioGaugeBatLow1;
199
extern apalControlGpio_t moduleGpioGaugeBatLow1;
282 200

  
283 201
/**
284 202
 * @brief   GAUGE_BATGD1 input signal GPIO.
285 203
 */
286
extern apalGpio_t moduleGpioGaugeBatGd1;
204
extern apalControlGpio_t moduleGpioGaugeBatGd1;
287 205

  
288 206
/**
289 207
 * @brief   CHARG_EN1 output signal GPIO.
290 208
 */
291
extern apalGpio_t moduleGpioChargeEn1;
209
extern apalControlGpio_t moduleGpioChargeEn1;
292 210

  
293 211
/**
294 212
 * @brief   IR_INT2 input signal GPIO.
295 213
 */
296
extern apalGpio_t moduleGpioIrInt2;
214
extern apalControlGpio_t moduleGpioIrInt2;
297 215

  
298 216
/**
299 217
 * @brief   TOUCH_INT input signal GPIO.
300 218
 */
301
extern apalGpio_t moduleGpioTouchInt;
219
extern apalControlGpio_t moduleGpioTouchInt;
302 220

  
303 221
/**
304 222
 * @brief   SYS_DONE input signal GPIO.
305 223
 */
306
extern apalGpio_t moduleGpioSysDone;
224
extern apalControlGpio_t moduleGpioSysDone;
307 225

  
308 226
/**
309 227
 * @brief   SYS_PROG output signal GPIO.
310 228
 */
311
extern apalGpio_t moduleGpioSysProg;
229
extern apalControlGpio_t moduleGpioSysProg;
312 230

  
313 231
/**
314 232
 * @brief   PATH_DC input signal GPIO.
315 233
 */
316
extern apalGpio_t moduleGpioPathDc;
234
extern apalControlGpio_t moduleGpioPathDc;
317 235

  
318 236
/**
319 237
 * @brief   SYS_SPI_DIR bidirectional signal GPIO.
320 238
 */
321
extern apalGpio_t moduleGpioSysSpiDir;
239
extern apalControlGpio_t moduleGpioSysSpiDir;
322 240

  
323 241
/**
324 242
 * @brief   SYS_SYNC bidirectional signal GPIO.
325 243
 */
326
extern apalGpio_t moduleGpioSysSync;
244
extern apalControlGpio_t moduleGpioSysSync;
327 245

  
328 246
/**
329 247
 * @brief   SYS_PD bidirectional signal GPIO.
330 248
 */
331
extern apalGpio_t moduleGpioSysPd;
249
extern apalControlGpio_t moduleGpioSysPd;
332 250

  
333 251
/**
334 252
 * @brief   SYS_WARMRST bidirectional signal GPIO.
335 253
 */
336
extern apalGpio_t moduleGpioSysWarmrst;
254
extern apalControlGpio_t moduleGpioSysWarmrst;
337 255

  
338 256
/**
339 257
 * @brief   BT_RST output signal GPIO.
340 258
 */
341
extern apalGpio_t moduleGpioBtRst;
259
extern apalControlGpio_t moduleGpioBtRst;
342 260

  
343 261
/**
344 262
 * @brief   CHARGE_EN2 output signal GPIO.
345 263
 */
346
extern apalGpio_t moduleGpioChargeEn2;
264
extern apalControlGpio_t moduleGpioChargeEn2;
347 265

  
348 266
/** @} */
349 267

  
......
357 275
/**
358 276
 * @brief   Event flag to be set on a IR_INT1 / CHARGE_STAT1A interrupt.
359 277
 */
360
#define MODULE_OS_IOEVENTFLAGS_IRINT1           ((eventflags_t)1 << MODULE_GPIO_INT_IRINT1)
278
#define MODULE_OS_IOEVENTFLAGS_IRINT1           ((eventflags_t)1 << GPIOB_IR_INT1_N)
361 279

  
362 280
/**
363 281
 * @brief   Event flag to be set on a GAUGE_BATLOW1 interrupt.
364 282
 */
365
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATLOW1     ((eventflags_t)1 << MODULE_GPIO_INT_GAUGEBATLOW1)
283
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATLOW1     ((eventflags_t)1 << GPIOC_GAUGE_BATLOW1)
366 284

  
367 285
/**
368 286
 * @brief   Event flag to be set on a GAUGE_BATGD1 interrupt.
369 287
 */
370
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATGD1      ((eventflags_t)1 << MODULE_GPIO_INT_GAUGEBATGD1)
288
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATGD1      ((eventflags_t)1 << GPIOC_GAUGE_BATGD1_N)
371 289

  
372 290
/**
373 291
 * @brief   Event flag to be set on a SYS_UART_DN interrupt.
374 292
 */
375
#define MODULE_OS_IOEVENTFLAGS_SYSUARTDN        ((eventflags_t)1 << MODULE_GPIO_INT_SYSUARTDN)
293
#define MODULE_OS_IOEVENTFLAGS_SYSUARTDN        ((eventflags_t)1 << GPIOB_SYS_UART_DN)
376 294

  
377 295
/**
378 296
 * @brief   Event flag to be set on a IR_INT2 / CHARGE_STAT2A interrupt.
379 297
 */
380
#define MODULE_OS_IOEVENTFLAGS_IRINT2           ((eventflags_t)1 << MODULE_GPIO_INT_IRINT2)
298
#define MODULE_OS_IOEVENTFLAGS_IRINT2           ((eventflags_t)1 << GPIOC_IR_INT2_N)
381 299

  
382 300
/**
383 301
 * @brief   Event flag to be set on a TOUCH_INT interrupt.
384 302
 */
385
#define MODULE_OS_IOEVENTFLAGS_TOUCHINT         ((eventflags_t)1 << MODULE_GPIO_INT_TOUCHINT)
303
#define MODULE_OS_IOEVENTFLAGS_TOUCHINT         ((eventflags_t)1 << GPIOC_TOUCH_INT_N)
386 304

  
387 305
/**
388 306
 * @brief   Event flag to be set on a GAUGE_BATLOW2 interrupt.
389 307
 */
390
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATLOW2     ((eventflags_t)1 << MODULE_GPIO_INT_GAUGEBATLOW2)
308
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATLOW2     ((eventflags_t)1 << GPIOB_GAUGE_BATLOW2)
391 309

  
392 310
/**
393 311
 * @brief   Event flag to be set on a GAUGE_BATGD2 interrupt.
394 312
 */
395
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATGD2      ((eventflags_t)1 << MODULE_GPIO_INT_GAUGEBATGD2)
313
#define MODULE_OS_IOEVENTFLAGS_GAUGEBATGD2      ((eventflags_t)1 << GPIOB_GAUGE_BATGD2_N)
396 314

  
397 315
/**
398 316
 * @brief   Event flag to be set on a PATH_DC interrupt.
399 317
 */
400
#define MODULE_OS_IOEVENTFLAGS_PATHDC           ((eventflags_t)1 << MODULE_GPIO_INT_PATHDC)
318
#define MODULE_OS_IOEVENTFLAGS_PATHDC           ((eventflags_t)1 << GPIOC_PATH_DC)
401 319

  
402 320
/**
403 321
 * @brief   Event flag to be set on a SYS_SPI_DIR interrupt.
404 322
 */
405
#define MODULE_OS_IOEVENTFLAGS_SYSSPIDIR        ((eventflags_t)1 << MODULE_GPIO_INT_SYSSPIDIR)
323
#define MODULE_OS_IOEVENTFLAGS_SYSSPIDIR        ((eventflags_t)1 << GPIOC_SYS_SPI_DIR)
406 324

  
407 325
/**
408 326
 * @brief   Event flag to be set on a SYS_SYNC interrupt.
409 327
 */
410
#define MODULE_OS_IOEVENTFLAGS_SYSSYNC          ((eventflags_t)1 << MODULE_GPIO_INT_SYSSYNC)
328
#define MODULE_OS_IOEVENTFLAGS_SYSSYNC          ((eventflags_t)1 << GPIOC_SYS_INT_N)
411 329

  
412 330
/**
413 331
 * @brief   Event flag to be set on a SYS_PD interrupt.
414 332
 */
415
#define MODULE_OS_IOEVENTFLAGS_SYSPD            ((eventflags_t)1 << MODULE_GPIO_INT_SYSPD)
333
#define MODULE_OS_IOEVENTFLAGS_SYSPD            ((eventflags_t)1 << GPIOC_SYS_PD_N)
416 334

  
417 335
/**
418 336
 * @brief   Event flag to be set on a SYS_WARMRST interrupt.
419 337
 */
420
#define MODULE_OS_IOEVENTFLAGS_SYSWARMRST       ((eventflags_t)1 << MODULE_GPIO_INT_SYSWARMRST)
338
#define MODULE_OS_IOEVENTFLAGS_SYSWARMRST       ((eventflags_t)1 << GPIOC_SYS_WARMRST_N)
421 339

  
422 340
/**
423 341
 * @brief   Event flag to be set on a SYS_UART_UP interrupt.
424 342
 */
425
#define MODULE_OS_IOEVENTFLAGS_SYSUARTUP        ((eventflags_t)1 << MODULE_GPIO_INT_SYSUARTUP)
343
#define MODULE_OS_IOEVENTFLAGS_SYSUARTUP        ((eventflags_t)1 << GPIOB_SYS_UART_UP)
426 344

  
427 345
#if (AMIROOS_CFG_SHELL_ENABLE == true) || defined(__DOXYGEN__)
428 346
/**
......
432 350
#endif
433 351

  
434 352
/**
353
 * @brief   Interrupt initialization macro.
354
 * @note    SSSP related interrupt signals are already initialized in 'aos_system.c'.
355
 */
356
#define MODULE_INIT_INTERRUPTS() {                                            \
357
  /* IR_INT1 */                                                               \
358
  palSetPadCallback(moduleGpioIrInt1.gpio->port, moduleGpioIrInt1.gpio->pad, _intCallback, &moduleGpioIrInt1.gpio->pad); \
359
  palEnablePadEvent(moduleGpioIrInt1.gpio->port, moduleGpioIrInt1.gpio->pad, APAL2CH_EDGE(moduleGpioIrInt1.meta.edge));  \
360
  /* GAUGE_BATLOW2 */                                                         \
361
  palSetPadCallback(moduleGpioGaugeBatLow2.gpio->port, moduleGpioGaugeBatLow2.gpio->pad, _intCallback, &moduleGpioGaugeBatLow2.gpio->pad);  \
362
  palEnablePadEvent(moduleGpioGaugeBatLow2.gpio->port, moduleGpioGaugeBatLow2.gpio->pad, APAL2CH_EDGE(moduleGpioGaugeBatLow2.meta.edge));   \
363
  /* GAUGE_BATGD2 */                                                          \
364
  palSetPadCallback(moduleGpioGaugeBatGd2.gpio->port, moduleGpioGaugeBatGd2.gpio->pad, _intCallback, &moduleGpioGaugeBatGd2.gpio->pad); \
365
  palEnablePadEvent(moduleGpioGaugeBatGd2.gpio->port, moduleGpioGaugeBatGd2.gpio->pad, APAL2CH_EDGE(moduleGpioGaugeBatGd2.meta.edge));  \
366
  /* GAUGE_BATLOW1 */                                                         \
367
  palSetPadCallback(moduleGpioGaugeBatLow1.gpio->port, moduleGpioGaugeBatLow1.gpio->pad, _intCallback, &moduleGpioGaugeBatLow1.gpio->pad);  \
368
  palEnablePadEvent(moduleGpioGaugeBatLow1.gpio->port, moduleGpioGaugeBatLow1.gpio->pad, APAL2CH_EDGE(moduleGpioGaugeBatLow1.meta.edge));   \
369
  /* GAUGE_BATGD1 */                                                          \
370
  palSetPadCallback(moduleGpioGaugeBatGd1.gpio->port, moduleGpioGaugeBatGd1.gpio->pad, _intCallback, &moduleGpioGaugeBatGd1.gpio->pad); \
371
  palEnablePadEvent(moduleGpioGaugeBatGd1.gpio->port, moduleGpioGaugeBatGd1.gpio->pad, APAL2CH_EDGE(moduleGpioGaugeBatGd1.meta.edge));  \
372
  /* IR_INT1 */                                                               \
373
  palSetPadCallback(moduleGpioIrInt2.gpio->port, moduleGpioIrInt2.gpio->pad, _intCallback, &moduleGpioIrInt1.gpio->pad); \
374
  palEnablePadEvent(moduleGpioIrInt2.gpio->port, moduleGpioIrInt2.gpio->pad, APAL2CH_EDGE(moduleGpioIrInt1.meta.edge));  \
375
  /* TOUCH_INT */                                                             \
376
  palSetPadCallback(moduleGpioTouchInt.gpio->port, moduleGpioTouchInt.gpio->pad, _intCallback, &moduleGpioTouchInt.gpio->pad); \
377
  palEnablePadEvent(moduleGpioTouchInt.gpio->port, moduleGpioTouchInt.gpio->pad, APAL2CH_EDGE(moduleGpioTouchInt.meta.edge));  \
378
  /* PATH_DC */                                                               \
379
  palSetPadCallback(moduleGpioPathDc.gpio->port, moduleGpioPathDc.gpio->pad, _intCallback, &moduleGpioPathDc.gpio->pad);  \
380
  palEnablePadEvent(moduleGpioPathDc.gpio->port, moduleGpioPathDc.gpio->pad, APAL2CH_EDGE(moduleGpioPathDc.meta.edge));   \
381
  /* SYS_SPI_DIR */                                                           \
382
  palSetPadCallback(moduleGpioSysSpiDir.gpio->port, moduleGpioSysSpiDir.gpio->pad, _intCallback, &moduleGpioSysSpiDir.gpio->pad); \
383
  palEnablePadEvent(moduleGpioSysSpiDir.gpio->port, moduleGpioSysSpiDir.gpio->pad, APAL2CH_EDGE(moduleGpioSysSpiDir.meta.edge));  \
384
  /* SYS_WARMRST */                                                           \
385
  palSetPadCallback(moduleGpioSysWarmrst.gpio->port, moduleGpioSysWarmrst.gpio->pad, _intCallback, &moduleGpioSysWarmrst.gpio->pad);  \
386
  palEnablePadEvent(moduleGpioSysWarmrst.gpio->port, moduleGpioSysWarmrst.gpio->pad, APAL2CH_EDGE(moduleGpioSysWarmrst.meta.edge));   \
387
}
388

  
389
/**
435 390
 * @brief   Unit test initialization hook.
436 391
 */
437 392
#define MODULE_INIT_TESTS() {                                                 \
......
508 463
/**
509 464
 * @brief   PD signal GPIO.
510 465
 */
511
extern apalControlGpio_t moduleSsspGpioPd;
466
#define moduleSsspGpioPd                        moduleGpioSysPd
512 467

  
513 468
/**
514 469
 * @brief   SYNC signal GPIO.
515 470
 */
516
extern apalControlGpio_t moduleSsspGpioSync;
471
#define moduleSsspGpioSync                       moduleGpioSysSync
517 472

  
518 473
/**
519 474
 * @brief   DN signal GPIO.
520 475
 */
521
extern apalControlGpio_t moduleSsspGpioDn;
476
#define moduleSsspGpioDn                        moduleGpioSysUartDn
522 477

  
523 478
/**
524 479
 * @brief   UP signal GPIO.
525 480
 */
526
extern apalControlGpio_t moduleSsspGpioUp;
481
#define moduleSsspGpioUp                        moduleGpioSysUartUp
527 482

  
528 483
/**
529 484
 * @brief   Event flags for PD signal events.

Also available in: Unified diff