Loading...
Searching...
No Matches
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
17
18#include "cc26xx_cc13xx.h"
19
20#ifdef __cplusplus
21extern "C" {
22#endif
23
41
46
50typedef 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)
70
74typedef 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),
113
114#define RFACKIFG_ACKFLAG 0x1
116
121#define RFC_DBELL_BASE (PERIPH_BASE + 0x41000)
122#define RFC_DBELL_BASE_NONBUF (PERIPH_BASE_NONBUF + 0x41000)
124
125#define RFC_DBELL ((rfc_dbell_regs_t *) (RFC_DBELL_BASE))
126#define RFC_DBELL_NONBUF ((rfc_dbell_regs_t *) (RFC_DBELL_BASE_NONBUF))
127
131typedef 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
150
155#define RFC_PWR_BASE (PERIPH_BASE + 0x40000)
156#define RFC_PWR_BASE_NONBUF (PERIPH_BASE_NONBUF + 0x40000)
158
159#define RFC_PWR ((rfc_pwr_regs_t *) (RFC_PWR_BASE))
160#define RFC_PWR_NONBUF ((rfc_pwr_regs_t *) (RFC_PWR_BASE_NONBUF))
161
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.
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.