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