cc26xx_cc13xx_rfc.h
Go to the documentation of this file.
1 /*
2  * SPDX-FileCopyrightText: 2020 Locha Inc
3  * SPDX-License-Identifier: LGPL-2.1-only
4  */
5 
6 #pragma once
7 
18 #include "cc26xx_cc13xx.h"
19 
20 #ifdef __cplusplus
21 extern "C" {
22 #endif
23 
27 typedef struct {
41 
50 typedef enum {
51  HW_IRQ_FSCA = (1 << 1),
52  HW_IRQ_MDMDONE = (1 << 2),
53  HW_IRQ_MDMIN = (1 << 3),
54  HW_IRQ_MDMOUT = (1 << 4),
55  HW_IRQ_MDMSOFT = (1 << 5),
56  HW_IRQ_TRCTK = (1 << 6),
57  HW_IRQ_RFEDONE = (1 << 8),
58  HW_IRQ_RFESOFT0 = (1 << 9),
59  HW_IRQ_RFESOFT1 = (1 << 10),
60  HW_IRQ_RFESOFT2 = (1 << 11),
61  HW_IRQ_RATCH0 = (1 << 12),
62  HW_IRQ_RATCH1 = (1 << 13),
63  HW_IRQ_RATCH2 = (1 << 14),
64  HW_IRQ_RATCH3 = (1 << 15),
65  HW_IRQ_RATCH4 = (1 << 16),
66  HW_IRQ_RATCH5 = (1 << 17),
67  HW_IRQ_RATCH6 = (1 << 18),
68  HW_IRQ_RATCH7 = (1 << 19)
69 } rf_hw_irq_t;
70 
74 typedef enum {
75  CPE_IRQ_COMMAND_DONE = (1 << 0),
76  CPE_IRQ_LAST_COMMAND_DONE = (1 << 1),
77  CPE_IRQ_FG_COMMAND_DONE = (1 << 2),
78  CPE_IRQ_LAST_FG_COMMAND_DONE = (1 << 3),
79  CPE_IRQ_TX_DONE = (1 << 4),
80  CPE_IRQ_TX_ACK = (1 << 5),
81  CPE_IRQ_TX_CTRL = (1 << 6),
82  CPE_IRQ_TX_CTRL_ACK = (1 << 7),
83  CPE_IRQ_TX_CTRL_ACK_ACK = (1 << 8),
84  CPE_IRQ_TX_RETRANS = (1 << 9),
85  CPE_IRQ_TX_ENTRY_DONE = (1 << 10),
86  CPE_IRQ_TX_BUFFER_CHANGED = (1 << 11),
87 #ifdef CPU_VARIANT_X2
88  CPE_IRQ_COMMAND_STARTED = (1 << 12),
89  CPE_IRQ_FG_COMMAND_STARTED = (1 << 13),
90 #else
91  CPE_IRQ_IRQ12 = (1 << 12),
92  CPE_IRQ_IRQ13 = (1 << 13),
93 #endif
94  CPE_IRQ_IRQ14 = (1 << 14),
95  CPE_IRQ_IRQ15 = (1 << 15),
96  CPE_IRQ_RX_OK = (1 << 16),
97  CPE_IRQ_RX_NOK = (1 << 17),
98  CPE_IRQ_RX_IGNORED = (1 << 18),
99  CPE_IRQ_RX_EMPTY = (1 << 19),
100  CPE_IRQ_RX_CTRL = (1 << 20),
101  CPE_IRQ_RX_CTRL_ACK = (1 << 21),
102  CPE_IRQ_RX_BUF_FULL = (1 << 22),
103  CPE_IRQ_RX_ENTRY_DONE = (1 << 23),
104  CPE_IRQ_RX_DATA_WRITTEN = (1 << 24),
105  CPE_IRQ_RX_N_DATA_WRITTEN = (1 << 25),
106  CPE_IRQ_RX_ABORTED = (1 << 26),
107  CPE_IRQ_IRQ27 = (1 << 27),
108  CPE_IRQ_SYNTH_NO_LOCK = (1 << 28),
109  CPE_IRQ_MODULES_UNLOCKED = (1 << 29),
110  CPE_IRQ_BOOT_DONE = (1 << 30),
111  CPE_IRQ_INTERNAL_ERROR = (1 << 31),
112 } rf_cpe_irq_t;
113 
114 #define RFACKIFG_ACKFLAG 0x1
121 #define RFC_DBELL_BASE (PERIPH_BASE + 0x41000)
122 #define RFC_DBELL_BASE_NONBUF (PERIPH_BASE_NONBUF + 0x41000)
125 #define RFC_DBELL ((rfc_dbell_regs_t *) (RFC_DBELL_BASE))
126 #define RFC_DBELL_NONBUF ((rfc_dbell_regs_t *) (RFC_DBELL_BASE_NONBUF))
131 typedef struct {
134 
139 #define PWMCLKEN_RFCTRC 0x400
140 #define PWMCLKEN_FSCA 0x200
141 #define PWMCLKEN_PHA 0x100
142 #define PWMCLKEN_RAT 0x80
143 #define PWMCLKEN_RFERAM 0x40
144 #define PWMCLKEN_MDMRAM 0x10
145 #define PWMCLKEN_MDM 0x8
146 #define PWMCLKEN_CPERAM 0x4
147 #define PWMCLKEN_CPE 0x2
148 #define PWMCLKEN_RFC 0x1
155 #define RFC_PWR_BASE (PERIPH_BASE + 0x40000)
156 #define RFC_PWR_BASE_NONBUF (PERIPH_BASE_NONBUF + 0x40000)
159 #define RFC_PWR ((rfc_pwr_regs_t *) (RFC_PWR_BASE))
160 #define RFC_PWR_NONBUF ((rfc_pwr_regs_t *) (RFC_PWR_BASE_NONBUF))
162 #ifdef __cplusplus
163 }
164 #endif
165 
CC26xx, CC13xx definitions.
rf_cpe_irq_t
RFCPEIEN/RFCPEIFG/RFCPEISL interrupt flags.
rf_hw_irq_t
RFC_DBELL definitions.
volatile uint32_t reg32_t
Unsigned 32-bit register type.
Definition: cc26xx_cc13xx.h:36
RFC_DBELL registers.
reg32_t RFHWIFG
Interrupt Flags From RF Hardware Modules.
reg32_t RFCPEIFG
Interrupt Flags For Command and Packet Engine Generated Interrupts.
reg32_t RFCPEIEN
Interrupt Enable For Command and Packet Engine Generated Interrupts.
reg32_t SYSGPOCTL
RF Core General Purpose Output Control.
reg32_t RFACKIFG
Doorbell Command Acknowledgement Interrupt Flag.
reg32_t CMDSTA
Doorbell Command Status Register.
reg32_t CMDR
Doorbell Command Register.
reg32_t RFCPEISL
Interrupt Vector Selection For Command and Packet Engine Generated Interrupts.
reg32_t RFHWIEN
Interrupt Enable For RF Hardware Modules.
RFC_PWR registers.
reg32_t PWMCLKEN
RF Core Power Management and Clock Enable.