cc26x2_cc13x2_aux.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2016 Leon George
3  * SPDX-FileCopyrightText: 2018 Anton Gerasimov
4  * SPDX-License-Identifier: LGPL-2.1-only
5  */
6 
7 #pragma once
8 
17 #include <stdbool.h>
18 
19 #include "cc26xx_cc13xx.h"
20 
21 #ifdef __cplusplus
22 extern "C" {
23 #endif
24 
28 typedef struct {
29  reg32_t IOMODE;
30  reg32_t GPIODIE;
32  reg32_t GPIODOUT;
33  reg32_t GPIODIN;
34  reg32_t GPIODOUTSET;
35  reg32_t GPIODOUTCLR;
36  reg32_t GPIODOUTTGL;
48 
56 #define AUX_AIODIO0_BASE (PERIPH_BASE + 0xCC000)
60 #define AUX_AIODIO1_BASE (PERIPH_BASE + 0xCD000)
64 #define AUX_AIODIO2_BASE (PERIPH_BASE + 0xCE000)
68 #define AUX_AIODIO3_BASE (PERIPH_BASE + 0xCF000)
74 #define AUX_AIODIO0 ((aux_aiodio_regs_t *) (AUX_AIODIO0_BASE))
78 #define AUX_AIODIO1 ((aux_aiodio_regs_t *) (AUX_AIODIO1_BASE))
82 #define AUX_AIODIO2 ((aux_aiodio_regs_t *) (AUX_AIODIO2_BASE))
86 #define AUX_AIODIO3 ((aux_aiodio_regs_t *) (AUX_AIODIO3_BASE))
87 
91 typedef struct {
92  reg32_t CTL;
93  reg32_t STAT;
94  reg32_t RESULT;
95  reg32_t SATCFG;
96  reg32_t TRIGSRC;
97  reg32_t TRIGCNT;
98  reg32_t TRIGCNTLOAD;
99  reg32_t TRIGCNTCFG;
100  reg32_t PRECTL;
103 
111 #define AUX_TDC_BASE (PERIPH_BASE + 0xC4000)
117 #define AUX_TDC ((aux_tdc_regs_t *) (AUX_TDC_BASE))
118 
122 typedef struct {
151 
159 #define AUX_EVCTL_BASE (PERIPH_BASE + 0xC5000)
165 #define AUX_EVCTL ((aux_evctl_regs_t *) (AUX_EVCTL_BASE))
166 
170 typedef struct {
212  reg32_t __reserved3[0x3];
216 
221 #define AUX_SYSIF_OPMODEREQ_REQ_PDLP 0x00000003
222 #define AUX_SYSIF_OPMODEREQ_REQ_PDA 0x00000002
223 #define AUX_SYSIF_OPMODEREQ_REQ_LP 0x00000001
224 #define AUX_SYSIF_OPMODEREQ_REQ_A 0x00000000
234 #define AUX_SYSIF_BASE (PERIPH_BASE + 0xC6000)
240 #define AUX_SYSIF ((aux_sysif_regs_t *) (AUX_SYSIF_BASE))
241 
254 void aux_sysif_opmode_change(uint32_t target_opmode);
260 typedef struct {
270 
278 #define AUX_TIMER01_BASE (PERIPH_BASE + 0xC7000)
284 #define AUX_TIMER01 ((aux_timer01_regs_t *) (AUX_TIMER01_BASE))
285 
289 typedef struct {
297  reg32_t __reserved1[0x19];
315 
323 #define AUX_TIMER2_BASE (PERIPH_BASE + 0xC3000)
329 #define AUX_TIMER2 ((aux_timer2_regs_t *) (AUX_TIMER2_BASE))
330 
334 typedef struct {
335  reg32_t SMPH0;
336  reg32_t SMPH1;
337  reg32_t SMPH2;
338  reg32_t SMPH3;
339  reg32_t SMPH4;
340  reg32_t SMPH5;
341  reg32_t SMPH6;
342  reg32_t SMPH7;
343  reg32_t AUTOTAKE;
345 
353 #define AUX_SMPH_BASE (PERIPH_BASE + 0xC8000)
359 #define AUX_SMPH ((aux_smph_regs_t *) (AUX_SMPH_BASE))
360 
364 typedef struct {
365  reg32_t __reserved1[0x4];
366  reg32_t ADCCTL;
367  reg32_t ADCFIFOSTAT;
368  reg32_t ADCFIFO;
369  reg32_t ADCTRIG;
370  reg32_t ISRCCTL;
371  reg32_t __reserved2[0x3];
380 
388 #define AUX_ANAIF_BASE (PERIPH_BASE + 0xC9000)
394 #define AUX_ANAIF ((aux_anaif_regs_t *) (AUX_ANAIF_BASE))
395 
399 typedef struct {
400  reg8_t MUX0;
401  reg8_t MUX1;
402  reg8_t MUX2;
403  reg8_t MUX3;
404  reg8_t ISRC;
405  reg8_t COMP;
406  reg8_t MUX4;
407  reg8_t ADC0;
408  reg8_t ADC1;
409  reg8_t ADCREF0;
410  reg8_t ADCREF1;
411  reg8_t __reserved1[0x3];
414 
418 typedef struct {
430  reg8_m8_t __reserved1[0x3];
433 
438 #define ADI_4_AUX_COMP_LPM_BIAS_WIDTH_TRIM_m 0x00000038
439 #define ADI_4_AUX_COMP_LPM_BIAS_WIDTH_TRIM_s 3
440 #define ADI_4_AUX_LPMBIAS_LPM_TRIM_IOUT_m 0x0000003F
441 #define ADI_4_AUX_LPMBIAS_LPM_TRIM_IOUT_s 0
451 #define ADI_4_AUX_BASE (PERIPH_BASE + 0xCB000)
455 #define ADI_4_AUX_BASE_M8 (ADI_4_AUX_BASE + ADI_MASK8B)
461 #define ADI_4_AUX ((adi_4_aux_regs_t *) (ADI_4_AUX_BASE))
465 #define ADI_4_AUX_M8 ((adi_4_aux_regs_m8_t *) (ADI_4_AUX_BASE_M8))
466 
470 #define ADDI_SEM AUX_SMPH->SMPH0
471 
472 #ifdef __cplusplus
473 } /* end extern "C" */
474 #endif
475 
void aux_sysif_opmode_change(uint32_t target_opmode)
AUX_SYSIF functions.
CC26xx, CC13xx definitions.
volatile uint32_t reg32_t
Unsigned 32-bit register type.
Definition: cc26xx_cc13xx.h:36
reg16_t reg8_m8_t
Masked 8-bit register.
Definition: cc26xx_cc13xx.h:49
volatile uint8_t reg8_t
Unsigned 8-bit register type.
Definition: cc26xx_cc13xx.h:28
ADI_4_AUX registers using masked 8-bit access.
reg8_m8_t MUX0
Multiplexer 0.
reg8_m8_t ADCREF1
ADC Reference 1.
reg8_m8_t ISRC
Current Source.
reg8_m8_t ADC1
ADC Control 1.
reg8_m8_t MUX1
Multiplexer 1.
reg8_m8_t LPMBIAS
Internal.
reg8_m8_t ADC0
ADC Control 0.
reg8_m8_t COMP
Comparator.
reg8_m8_t MUX2
Multiplexer 2.
reg8_m8_t ADCREF0
ADC Reference 0.
reg8_m8_t MUX4
Multiplexer 4.
reg8_m8_t MUX3
Multiplexer 3.
ADI_4_AUX registers.
reg8_t LPMBIAS
Internal.
AUX_AIODIO registers.
reg32_t IO1PSEL
I/O 1 peripheral select.
reg32_t IO2PSEL
I/O 2 peripheral select.
reg32_t IO5PSEL
I/O 5 peripheral select.
reg32_t IOMODEL
Input output mode low.
reg32_t IO6PSEL
I/O 6 peripheral select.
reg32_t IO0PSEL
I/O 0 peripheral select.
reg32_t IO3PSEL
I/O 3 peripheral select.
reg32_t IO4PSEL
I/O 4 peripheral select.
reg32_t IOPOE
I/O peripheral output enable.
reg32_t IO7PSEL
I/O 7 peripheral select.
reg32_t IOMODEH
Input output mode high.
AUX_ANAIF registers.
reg32_t DACSMPLCTL
DAC Sample Control.
reg32_t DACSMPLCFG0
DAC Sample Configuration 0.
reg32_t DACSMPLCFG1
DAC Sample Configuration 1.
reg32_t DACSTAT
DAC Status.
reg32_t DACVALUE
DAC Value.
reg32_t DACCTL
DAC Control.
reg32_t LPMBIASCTL
Low-Power Mode Bias Control.
AUX_EVCTL registers.
reg32_t EVSTAT1L
Event Status 1 Low.
reg32_t EVSTAT0L
Event Status 0 Low.
reg32_t DMACTL
Direct Memory Access Control.
reg32_t EVSTAT0H
Event Status 0 High.
reg32_t EVTOMCUFLAGS
Events to MCU Flags.
reg32_t EVSTAT2H
Event Status 2 High.
reg32_t COMBEVTOMCUMASK
Combined Event To MCU Mask.
reg32_t EVOBSCFG
Event Observation Configuration.
reg32_t SCEWEVCFG0
Sensor Controller Engine Wait Event Configuration 0.
reg32_t EVSTAT3L
Event Status 3 Low.
reg32_t __reserved1
Reserved.
reg32_t EVSTAT0
Event Status 0.
reg32_t EVTOMCUFLAGSCLR
Events To MCU Flags Clear.
reg32_t EVTOMCUPOL
Event To MCU Polarity.
reg32_t PROGDLY
Programmable Delay.
reg32_t EVTOAONPOL
Events To AON Polarity.
reg32_t SCEWEVCFG1
Sensor Controller Engine Wait Event Configuration 1.
reg32_t EVSTAT2
Event Status 2.
reg32_t EVTOAONFLAGS
Events To AON Flags.
reg32_t EVSTAT2L
Event Status 2 Low.
reg32_t EVSTAT3
Event Status 3.
reg32_t MANUAL
Manual.
reg32_t EVSTAT1H
Event Status 1 High.
reg32_t SWEVSET
Software Event Set.
reg32_t EVTOAONFLAGSCLR
Events To AON Clear.
reg32_t EVSTAT3H
Event Status 3 High.
reg32_t EVSTAT1
Event Status 1.
AUX_SMPH registers.
AUX_SYSIF registers.
reg32_t RTCSUBSECINC1
Real Time Counter Sub Second Increment 1.
reg32_t PEROPRATE
Peripheral Operational Rate.
reg32_t VECCFG3
Vector Configuration 3.
reg32_t VECCFG0
Vector Configuration 0.
reg32_t VECCFG1
Vector Configuration 1.
reg32_t BATMONBAT
AON_BATMON Battery Voltage Value.
reg32_t TIMER2CLKSTAT
AUX_TIMER2 Clock Status.
reg32_t EVSYNCRATE
Event Synchronization Rate.
reg32_t TIMERHALT
Timer Halt.
reg32_t VECCFG7
Vector Configuration 7.
reg32_t TIMER2CLKSWITCH
AUX_TIMER2 Clock Switch.
reg32_t PROGWU3CFG
Programmable Wakeup 3 Configuration.
reg32_t BATMONTEMP
AON_BATMON Temperature Value.
reg32_t RECHARGETRIG
VDDR Recharge Trigger.
reg32_t TIMER2DBGCTL
AUX_TIMER2 Debug Control.
reg32_t RTCSUBSECINC0
Real Time Counter Sub Second Increment 0.
reg32_t PROGWU1CFG
Programmable Wakeup 1 Configuration.
reg32_t TIMER2CLKCTL
AUX_TIMER2 Clock Control.
reg32_t TDCREFCLKCTL
TDC Reference Clock Control.
reg32_t RTCSEC
Real Time Counter Second.
reg32_t TIMER2BRIDGE
AUX_TIMER2 Bridge.
reg32_t OPMODEREQ
Operational Mode Request.
reg32_t __reserved2
Reserved.
reg32_t TDCCLKCTL
TDC Counter Clock Control.
reg32_t RTCSUBSECINCCTL
Real Time Counter Sub Second Increment Control.
reg32_t RTCSUBSEC
Real Time Counter Sub-Second.
reg32_t SWPWRPROF
Software Power Profiler.
reg32_t RTCEVCLR
AON_RTC Event Clear.
reg32_t VECCFG4
Vector Configuration 4.
reg32_t WUGATE
Wakeup Gate.
reg32_t OPMODEACK
Operational Mode Acknowledgement.
reg32_t PROGWU0CFG
Programmable Wakeup 0 Configuration.
reg32_t RECHARGEDET
VDDR Recharge Detection.
reg32_t VECCFG6
Vector Configuration 6.
reg32_t SWWUTRIG
Software Wakeup Triggers.
reg32_t CLKSHIFTDET
Clock Shift Detection.
reg32_t ADCCLKCTL
ADC Clock Control.
reg32_t __reserved1
Reserved.
reg32_t PROGWU2CFG
Programmable Wakeup 2 Configuration.
reg32_t WUFLAGSCLR
Wakeup Flags Clear.
reg32_t WUFLAGS
Wakeup Flags.
reg32_t VECCFG2
Vector Configuration 2.
reg32_t VECCFG5
Vector Configuration 5.
AUX_TDC registers.
reg32_t PRECNTR
Prescaler counter.
AUX_TIMER01 registers.
reg32_t T1CTL
Timer 1 Control.
reg32_t T0CNTR
Timer 0 Counter.
reg32_t T1CFG
Timer 1 Configuration.
reg32_t T1CNTR
Timer 0 Counter.
reg32_t T0CTL
Timer 0 Control.
reg32_t T0CFG
Timer 0 Configuration.
reg32_t T1TARGET
Timer 1 Target.
reg32_t T0TARGET
Timer 0 Target.
AUX_TIMER2 registers.
reg32_t CH3EVCFG
Timer 2 Channel 3 Event Configuration.
reg32_t CH1CC
Timer 2 Channel 1 Capture Compare.
reg32_t CH0CCFG
Timer 2 Channel 0 Capture Configuration.
reg32_t CH0CC
Timer 2 Channel 0 Capture Compare.
reg32_t CH2CC
Timer 2 Channel 2 Capture Compare.
reg32_t PRECFG
Timer 2 Prescaler Config.
reg32_t CH1CCFG
Timer 2 Channel 1 Capture Configuration.
reg32_t CH1EVCFG
Timer 2 Channel 1 Event Configuration.
reg32_t CH3PCC
Timer 2 Channel 3 Pipeline Capture Compare.
reg32_t TARGET
Timer 2 Target.
reg32_t CH2CCFG
Timer 2 Channel 2 Capture Configuration.
reg32_t CH2EVCFG
Timer 2 Channel 2 Event Configuration.
reg32_t SHDWTARGET
Timer 2 Shadow Target.
reg32_t CH3CCFG
Timer 2 Channel 3 Capture Configuration.
reg32_t CTL
Timer 2 Control.
reg32_t CH0EVCFG
Timer 2 Channel 0 Event Configuration.
reg32_t CH2PCC
Timer 2 Channel 2 Pipeline Capture Compare.
reg32_t EVCTL
Timer 2 Event Control.
reg32_t CH3CC
Timer 2 Channel 3 Capture Compare.
reg32_t CH0PCC
Timer 2 Channel 0 Pipeline Capture Compare.
reg32_t CH1PCC
Timer 2 Channel 1 Pipeline Capture Compare.
reg32_t CNTR
Timer 2 Counter.
reg32_t PULSETRIG
Timer 2 Pulse Trigger.