cc26xx_cc13xx_ioc.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 
19 #ifndef CC26XX_CC13XX_IOC_H
20 #define CC26XX_CC13XX_IOC_H
21 
22 #include "cc26xx_cc13xx.h"
23 
24 #ifdef __cplusplus
25 extern "C" {
26 #endif
27 
31 #define MCU_IOC_BASE (0x40081000)
39 typedef struct {
40  reg32_t CFG[32];
42 
43 #define IOC ((cc26x0_ioc_regs_t *)(MCU_IOC_BASE))
49 #define IOCFG_PORTID_GPIO 0x00000000
51 #ifdef CPU_VARIANT_X0
52 #define IOCFG_PORTID_AON_SCS 0x00000001
53 #define IOCFG_PORTID_AON_SCK 0x00000002
54 #define IOCFG_PORTID_AON_SDI 0x00000003
55 #define IOCFG_PORTID_AON_SDO 0x00000004
56 #endif /* CPU_VARIANT_X0 */
57 
58 #define IOCFG_PORTID_AON_CLK32K 0x00000007
59 #define IOCFG_PORTID_AUX_IO 0x00000008
60 #define IOCFG_PORTID_SSI0_RX 0x00000009
61 #define IOCFG_PORTID_SSI0_TX 0x0000000A
62 #define IOCFG_PORTID_SSI0_FSS 0x0000000B
63 #define IOCFG_PORTID_SSI0_CLK 0x0000000C
64 #define IOCFG_PORTID_I2C_MSSDA 0x0000000D
65 #define IOCFG_PORTID_I2C_MSSCL 0x0000000E
66 #define IOCFG_PORTID_UART0_RX 0x0000000F
67 #define IOCFG_PORTID_UART0_TX 0x00000010
68 #define IOCFG_PORTID_UART0_CTS 0x00000011
69 #define IOCFG_PORTID_UART0_RTS 0x00000012
71 #ifdef CPU_VARIANT_X2
72 #define IOCFG_PORTID_UART1_RX 0x00000013
73 #define IOCFG_PORTID_UART1_TX 0x00000014
74 #define IOCFG_PORTID_UART1_CTS 0x00000015
75 #define IOCFG_PORTID_UART1_RTS 0x00000016
76 #endif // CPU_VARIANT_X2
77 
78 #define IOCFG_PORTID_PORT_EVT0 0x00000017
79 #define IOCFG_PORTID_PORT_EVT1 0x00000018
80 #define IOCFG_PORTID_PORT_EVT2 0x00000019
81 #define IOCFG_PORTID_PORT_EVT3 0x0000001A
82 #define IOCFG_PORTID_PORT_EVT4 0x0000001B
83 #define IOCFG_PORTID_PORT_EVT5 0x0000001C
84 #define IOCFG_PORTID_PORT_EVT6 0x0000001D
85 #define IOCFG_PORTID_PORT_EVT7 0x0000001E
86 #define IOCFG_PORTID_SWV 0x00000020
87 #define IOCFG_PORTID_SSI1_RX 0x00000021
88 #define IOCFG_PORTID_SSI1_TX 0x00000022
89 #define IOCFG_PORTID_SSI1_FSS 0x00000023
90 #define IOCFG_PORTID_SSI1_CLK 0x00000024
91 #define IOCFG_PORTID_I2S_AD0 0x00000025
92 #define IOCFG_PORTID_I2S_AD1 0x00000026
93 #define IOCFG_PORTID_I2S_WCLK 0x00000027
94 #define IOCFG_PORTID_I2S_BCLK 0x00000028
95 #define IOCFG_PORTID_I2S_MCLK 0x00000029
96 #define IOCFG_PORTID_RFC_TRC 0x0000002E
97 #define IOCFG_PORTID_RFC_GPO0 0x0000002F
98 #define IOCFG_PORTID_RFC_GPO1 0x00000030
99 #define IOCFG_PORTID_RFC_GPO2 0x00000031
100 #define IOCFG_PORTID_RFC_GPO3 0x00000032
101 #define IOCFG_PORTID_RFC_GPI0 0x00000033
102 #define IOCFG_PORTID_RFC_GPI1 0x00000034
103 #define IOCFG_PORTID_RFC_SMI_DL_OUT 0x00000035
104 #define IOCFG_PORTID_RFC_SMI_DL_IN 0x00000036
105 #define IOCFG_PORTID_RFC_SMI_CMD_OUT 0x00000037
106 #define IOCFG_PORTID_RFC_SMI_CMD_IN 0x00000038
108 #define IOCFG_IOSTR_AUTO 0x00000000
109 #define IOCFG_IOSTR_MAX 0x00000300
110 #define IOCFG_IOSTR_MED 0x00000200
111 #define IOCFG_IOSTR_MIN 0x00000100
113 #define IOCFG_IOCURR_2MA 0x00000000
114 #define IOCFG_IOCURR_4MA 0x00000400
115 #define IOCFG_IOCURR_8MA 0x00000800
116 #define IOCFG_IOCURR_16MA 0x00000C00
118 #define IOCFG_SLEW_RED 0x00001000
120 #define IOCFG_PULLCTL_OFF 0x00006000
121 #define IOCFG_PULLCTL_UP 0x00004000
122 #define IOCFG_PULLCTL_DOWN 0x00002000
124 #define IOCFG_EDGEDET_FALLING 0x00010000
125 #define IOCFG_EDGEDET_RISING 0x00020000
126 #define IOCFG_EDGEDET_BOTH 0x00030000
127 #define IOCFG_EDGEIRQ_ENABLE 0x00040000
129 /* n/a when port_id is AON or AUX */
130 #define IOCFG_IOMODE_INV 0x01000000
131 #define IOCFG_IOMODE_OPEN_DRAIN 0x04000000
132 #define IOCFG_IOMODE_OPEN_SRC 0x06000000
134 /* both enable waking up when port_id is AON or AUX */
135 #define IOCFG_WUCFG_LOW 0x10000000
136 #define IOCFG_WUCFG_HIGH 0x18000000
137 
138 /* ignored if port_id is AUX */
139 #define IOCFG_INPUT_ENABLE 0x20000000
140 
141 #define IOCFG_HYST_ENABLE 0x40000000
147 typedef struct {
153 #ifdef CPU_VARIANT_X2
154  reg32_t TCKCTL;
155 #endif
157 
162 #define AON_IOC_IOCLATCH_EN 0x00000001
163 #define AON_IOC_CLK32KCTL_OEN 0x00000001
173 #define AON_IOC_BASE (PERIPH_BASE + 0x94000)
179 #define AON_IOC ((aon_ioc_regs_t *) (AON_IOC_BASE))
180 
181 #ifdef __cplusplus
182 }
183 #endif
184 
185 #endif /* CC26XX_CC13XX_IOC_H */
CC26xx, CC13xx definitions.
volatile uint32_t reg32_t
Unsigned 32-bit register type.
Definition: cc26xx_cc13xx.h:40
AON_IOC registers.
reg32_t IOSTRMIN
IO Drive Strength Minimum.
reg32_t IOCLATCH
IO Latch Control.
reg32_t CLK32KCTL
SCLK_LF External Output Control.
reg32_t IOSTRMAX
IO Drive Strength Maximum.
reg32_t IOSTRMED
IO Drive Strength Medium.
obtain IOCFG-register for a DIO