Loading...
Searching...
No Matches
cc26x2_cc13x2_prcm.h
Go to the documentation of this file.
1/*
2 * Copyright (C) 2016 Leon George
3 *
4 * This file is subject to the terms and conditions of the GNU Lesser
5 * General Public License v2.1. See the file LICENSE in the top level
6 * directory for more details.
7 */
8
9#pragma once
10
18
19#include <cc26xx_cc13xx.h>
20
21#ifdef __cplusplus
22extern "C" {
23#endif
24
28typedef struct {
29 reg32_t CTL0;
30 reg32_t CTL1;
31 reg32_t RADCEXTCFG;
32 reg32_t AMPCOMPCTL;
33 reg32_t AMPCOMPTH1;
34 reg32_t AMPCOMPTH2;
35 reg32_t ANABYPASSVAL1;
36 reg32_t ANABYPASSVAL2;
37 reg32_t ATESTCTL;
38 reg32_t ADCDOUBLERNANOAMPCTL;
39 reg32_t XOSCHFCTL;
40 reg32_t LFOSCCTL;
41 reg32_t RCOSCHFCTL;
48
72
77#define DDI_0_OSC_CTL0_SCLK_HF_SRC_SEL_m 0x00000001
78#define DDI_0_OSC_CTL0_SCLK_HF_SRC_SEL_s 0
79#define DDI_0_OSC_CTL0_SCLK_HF_SRC_SEL_XOSC 0x00000001
80#define DDI_0_OSC_CTL0_SCLK_HF_SRC_SEL_RCOSC 0x00000000
81#define DDI_0_OSC_CTL0_SCLK_LF_SRC_SEL_m 0x0000000C
82#define DDI_0_OSC_CTL0_SCLK_LF_SRC_SEL_s 2
83#define DDI_0_OSC_CTL0_ACLK_TDC_SRC_SEL 0x00000180
84#define DDI_0_OSC_CTL0_CLK_LOSS_EN 0x00000200
85#define DDI_0_OSC_CTL0_XOSC_LF_DIG_BYPASS 0x00000400
86#define DDI_0_OSC_CTL0_XOSC_HF_POWER_MODE 0x00000800
87#define DDI_0_OSC_CTL0_RCOSC_LF_TRIMMED 0x00001000
88#define DDI_0_OSC_CTL0_HPOSC_MODE_EN 0x00004000
89#define DDI_0_OSC_CTL0_CLK_DCDC_SRC_SEL_m 0x01000000
90#define DDI_0_OSC_CTL0_DOUBLER_RESET_DURATION 0x02000000
91#define DDI_0_OSC_CTL0_DOUBLER_START_DURATION 0x0C000000
92#define DDI_0_OSC_CTL0_BYPASS_RCOSC_LF_CLK_QUAL 0x10000000
93#define DDI_0_OSC_CTL0_BYPASS_XOSC_LF_CLK_QUAL 0x20000000
94#define DDI_0_OSC_CTL0_XTAL_IS_24M 0x80000000
95#define DDI_0_OSC_STAT0_PENDINGSCLKHFSWITCHING 0x00000001
96#define DDI_0_OSC_STAT0_SCLK_HF_SRC_m 0x10000000
97#define DDI_0_OSC_STAT0_SCLK_HF_SRC_s 28
98#define DDI_0_OSC_STAT0_SCLK_LF_SRC_m 0x60000000
99#define DDI_0_OSC_STAT0_SCLK_LF_SRC_s 29
101
106#define DDI_DIR 0x00000000
107#define DDI_SET 0x00000080
108#define DDI_CLR 0x00000100
109#define DDI_MASK4B 0x00000200
110#define DDI_MASK8B 0x00000300
111#define DDI_MASK16B 0x00000400
115#define DDI0_OSC_BASE (PERIPH_BASE + 0xCA000)
119#define DDI0_OSC_BASE_M16 (DDI0_OSC_BASE + DDI_MASK16B)
121
125#define DDI_0_OSC ((ddi0_osc_regs_t *) (DDI0_OSC_BASE))
129#define DDI_0_OSC_M16 ((ddi0_osc_regs_m16_t *) (DDI0_OSC_BASE_M16))
130
135#define OSC_RCOSC_HF 0x00000000
136#define OSC_XOSC_HF 0x00000001
138
150void osc_hf_source_switch(uint32_t osc);
152
174
179#define AON_PMCTL_SLEEPCTL_IO_PAD_SLEEP_DIS 0x00000001
180#define AON_PMCTL_RESETCTL_BOOT_DET_1_CLR_m 0x02000000
181#define AON_PMCTL_RESETCTL_BOOT_DET_0_CLR_m 0x01000000
182#define AON_PMCTL_RESETCTL_BOOT_DET_1_SET_m 0x00020000
183#define AON_PMCTL_RESETCTL_BOOT_DET_0_SET_m 0x00010000
184#define AON_PMCTL_RESETCTL_BOOT_DET_1_m 0x00002000
185#define AON_PMCTL_RESETCTL_BOOT_DET_0_m 0x00001000
186#define AON_PMCTL_RESETCTL_BOOT_DET_0_s 12
187#define AON_PMCTL_RESETCTL_MCU_WARM_RESET_m 0x00000010
189
197#define AON_PMCTL_BASE (PERIPH_BASE + 0x90000)
199
203#define AON_PMCTL ((aon_pmctl_regs_t *) (AON_PMCTL_BASE))
204
208typedef struct {
209 reg32_t CTL;
210 reg32_t EVFLAGS;
211 reg32_t SEC;
212 reg32_t SUBSEC;
213 reg32_t SUBSECINC;
214 reg32_t CHCTL;
215 reg32_t CH0CMP;
216 reg32_t CH1CMP;
217 reg32_t CH2CMP;
218 reg32_t CH2CMPINC;
219 reg32_t CH1CAPT;
220 reg32_t SYNC;
224
231#define AON_RTC_CTL_RTC_UPD_EN 0x00000002
232
236#define AON_RTC_BASE (PERIPH_BASE + 0x92000)
238
239#define AON_RTC ((aon_rtc_regs_t *) (AON_RTC_BASE))
240
244typedef struct {
245 reg32_t INFRCLKDIVR;
246 reg32_t INFRCLKDIVS;
247 reg32_t INFRCLKDIVDS;
248 reg32_t VDCTL;
249 reg32_t __reserved1[6];
250 reg32_t CLKLOADCTL;
251 reg32_t RFCCLKG;
252 reg32_t VIMSCLKG;
253 reg32_t __reserved2[2];
254 reg32_t SECDMACLKGR;
255 reg32_t SECDMACLKGS;
256 reg32_t SECDMACLKGDS;
257 reg32_t GPIOCLKGR;
258 reg32_t GPIOCLKGS;
259 reg32_t GPIOCLKGDS;
260 reg32_t GPTCLKGR;
261 reg32_t GPTCLKGS;
262 reg32_t GPTCLKGDS;
263 reg32_t I2CCLKGR;
264 reg32_t I2CCLKGS;
265 reg32_t I2CCLKGDS;
266 reg32_t UARTCLKGR;
267 reg32_t UARTCLKGS;
268 reg32_t UARTCLKGDS;
269 reg32_t SSICLKGR;
270 reg32_t SSICLKGS;
271 reg32_t SSICLKGDS;
272 reg32_t I2SCLKGR;
273 reg32_t I2SCLKGS;
274 reg32_t I2SCLKGDS;
275 reg32_t __reserved3[9];
305 reg32_t __reserved8[11];
332
337#define CLKLOADCTL_LOAD 0x1
338#define CLKLOADCTL_LOADDONE 0x2
339
340#define PDCTL0_RFC_ON 0x1
341#define PDCTL0_SERIAL_ON 0x2
342#define PDCTL0_PERIPH_ON 0x4
343
344#define PDSTAT0_RFC_ON 0x1
345#define PDSTAT0_SERIAL_ON 0x2
346#define PDSTAT0_PERIPH_ON 0x4
347
348#define PDCTL1_CPU_ON 0x2
349#define PDCTL1_RFC_ON 0x4
350#define PDCTL1_VIMS_ON 0x8
351
352#define PDSTAT1_CPU_ON 0x2
353#define PDSTAT1_RFC_ON 0x4
354#define PDSTAT1_VIMS_ON 0x8
355
356#define GPIOCLKGR_CLK_EN 0x1
357#define I2CCLKGR_CLK_EN 0x1
358#define UARTCLKGR_CLK_EN_UART0 0x1
359#define UARTCLKGR_CLK_EN_UART1 0x2
360
361#define GPIOCLKGS_CLK_EN 0x1
362#define I2CCLKGS_CLK_EN 0x1
363#define UARTCLKGS_CLK_EN_UART0 0x1
364#define UARTCLKGS_CLK_EN_UART1 0x2
365
366#define GPIOCLKGDS_CLK_EN 0x1
367#define I2CCLKGDS_CLK_EN 0x1
368#define UARTCLKGDS_CLK_EN_UART0 0x1
369#define UARTCLKGDS_CLK_EN_UART1 0x2
371
376#define PRCM_BASE (PERIPH_BASE + 0x82000)
377#define PRCM_BASE_NONBUF (PERIPH_BASE_NONBUF + 0x82000)
379
380#define PRCM ((prcm_regs_t *) (PRCM_BASE))
381#define PRCM_NONBUF ((prcm_regs_t *) (PRCM_BASE_NONBUF))
382
383#ifdef __cplusplus
384} /* end extern "C" */
385#endif
386
void osc_hf_source_switch(uint32_t osc)
DDI_0_OSC functions.
CC26xx, CC13xx definitions.
volatile uint32_t reg32_t
Unsigned 32-bit register type.
AON_PMCTL registers.
reg32_t PWRSTAT
Power status.
reg32_t __reserved3
Reserved.
reg32_t OSCCFG
Oscillator configuration.
reg32_t __reserved1
Reserved.
reg32_t PWRCTL
Power management control.
reg32_t SLEEPCTL
Reset control.
reg32_t JTAGUSERCODE
JTAG USERCODE.
reg32_t SHUTDOWN
Shutdown control.
reg32_t RESETCTL
Reset control.
reg32_t __reserved4
Reserved.
reg32_t RAMCFG
RAM configuration.
reg32_t RECHARGECFG
Recharge controller configuration.
reg32_t RECHARGESTAT
Recharge controller status.
reg32_t __reserved2
Reserved.
reg32_t AUXSCECLK
AUX SCE management.
reg32_t JTAGCFG
JTAG configuration.
AON_RTC registers.
reg32_t TIME
Current Counter Value.
reg32_t SYNCLF
Synchronization to SCLK_LF.
DDI_0_OSC registers with masked 16-bit access.
reg32_m16_t AMPCOMPCTL
Amplitude Compensation Control.
reg32_m16_t ADCDOUBLERNANOAMPCTL
ADC Doubler Nanoamp Control.
reg32_m16_t AMPCOMPTH2
Amplitude Compensation Threshold 2.
reg32_m16_t ANABYPASSVAL1
Analog Bypass Values 1.
reg32_m16_t XOSCHFCTL
XOSCHF Control.
reg32_m16_t CTL1
Control 1.
reg32_m16_t STAT1
Status 1.
reg32_m16_t CTL0
Control 0.
reg32_m16_t LFOSCCTL
Low Frequency Oscillator Control.
reg32_m16_t STAT2
Status 2.
reg32_m16_t RADCEXTCFG
RADC External Configuration.
reg32_m16_t __reserved1
Reserved.
reg32_m16_t RCOSCMFCTL
RCOSC_MF Control.
reg32_m16_t RCOSCHFCTL
RCOSCHF Control.
reg32_m16_t ATESTCTL
Analog Test Control.
reg32_m16_t STAT0
Status 0.
reg32_m16_t ANABYPASSVAL2
Internal.
reg32_m16_t AMPCOMPTH1
Amplitude Compensation Threshold 1.
DDI_0_OSC registers.
reg32_t RCOSCMFCTL
RCOSC_MF Control.
reg32_t STAT2
status 2
reg32_t STAT0
status 0
reg32_t STAT1
status 1
reg32_t __reserved1
Reserved.
PRCM registers.
reg32_t RESETSSI
Reset SSI.
reg32_t I2SBCLKDIV
BCLK division ratio.
reg32_t __reserved11[10]
Reserved.
reg32_t PDCTL1VIMS
VIMS power domain control.
reg32_t RESETGPIO
Reset GPIO.
reg32_t __reserved8[11]
Reserved.
reg32_t PDCTL1
power domain control
reg32_t RESETUART
Reset UART.
reg32_t RFCMODEHWOPT
allowed RFC modes
reg32_t I2SBCLKSEL
I2S clock select.
reg32_t CPUCLKDIV
CPU clock division factor.
reg32_t PDSTAT0RFC
RFC power domain status.
reg32_t RESETI2S
Reset I2S.
reg32_t OSCIMSC
oscillator interrupt mask
reg32_t PDSTAT0SERIAL
SERIAL power domain status.
reg32_t OSCRIS
oscillator raw interrupt status
reg32_t PDSTAT0
power domain status
reg32_t RESETSECDMA
Reset SEC and UDMA.
reg32_t __reserved9
power domain control
reg32_t RFCBITS
Control to RFC.
reg32_t __reserved13
Reserved.
reg32_t PDCTL1CPU
CPU power domain control.
reg32_t __reserved14[8]
Reserved.
reg32_t I2SCLKCTL
I2S clock control.
reg32_t __reserved7
Reserved.
reg32_t RESETI2C
Reset I2C.
reg32_t I2SMCLKDIV
MCLK division ratio.
reg32_t PDCTL0RFC
RFC power domain control.
reg32_t SYSBUSCLKDIV
System bus clock division factor.
reg32_t PDCTL0SERIAL
SERIAL power domain control.
reg32_t __reserved5[11]
Reserved.
reg32_t PDSTAT1BUS
BUS power domain status.
reg32_t RESETGPT
Reset GPTs.
reg32_t __reserved12[20]
Reserved.
reg32_t PDSTAT1VIMS
VIMS power domain status.
reg32_t PDCTL0PERIPH
PERIPH power domain control.
reg32_t PDSTAT1CPU
CPU power domain status.
reg32_t PDCTL0
power domain control
reg32_t PDSTAT0PERIPH
PERIPH power domain status.
reg32_t OSCICR
oscillator raw interrupt clear
reg32_t __reserved4[3]
Reserved.
reg32_t I2SWCLKDIV
WCLK division ratio.
reg32_t PDSTAT1
power domain status
reg32_t RAMRETEN
memory retention control
reg32_t __reserved10
Reserved.
reg32_t MCUSRAMCFG
MCU SRAM configuration.
reg32_t __reserved15[27]
Reserved.
reg32_t __reserved6[6]
Reserved.
reg32_t PDSTAT1RFC
RFC power domain status.
reg32_t PWRPROFSTAT
power profiler register
reg32_t GPTCLKDIV
GPT scalar.
reg32_t PERDMACLKDIV
DMA clock division factor.
reg32_t RFCMODESEL
selected RFC mode
reg32_t PDCTL1RFC
RFC power domain control.
reg32_t PERBUSCPUCLKDIV
Peripheral bus division factor.
Masked 32-bit register.