1 /**
2  * SPDX-FileCopyrightText: 2022 Espressif Systems (Shanghai) CO LTD
3  *
4  *  SPDX-License-Identifier: Apache-2.0
5  */
6 #pragma once
7 
8 #include <stdint.h>
9 #include "soc/soc.h"
10 
11 #ifdef __cplusplus
12 extern "C" {
13 #endif
14 
15 /** RMT_CH0DATA_REG register
16  *  Read and write data for channel 0 via APB FIFO
17  */
18 #define RMT_CH0DATA_REG (DR_REG_RMT_BASE + 0x0)
19 /** RMT_CH0_DATA : RO; bitpos: [31:0]; default: 0;
20  *  This register is used to read and write data for channel 0 via APB FIFO.
21  */
22 #define RMT_CH0_DATA    0xFFFFFFFFU
23 #define RMT_CH0_DATA_M  (RMT_CH0_DATA_V << RMT_CH0_DATA_S)
24 #define RMT_CH0_DATA_V  0xFFFFFFFFU
25 #define RMT_CH0_DATA_S  0
26 
27 /** RMT_CH1DATA_REG register
28  *  Read and write data for channel 1 via APB FIFO
29  */
30 #define RMT_CH1DATA_REG (DR_REG_RMT_BASE + 0x4)
31 /** RMT_CH0_DATA : RO; bitpos: [31:0]; default: 0;
32  *  This register is used to read and write data for channel 1 via APB FIFO.
33  */
34 #define RMT_CH0_DATA    0xFFFFFFFFU
35 #define RMT_CH0_DATA_M  (RMT_CH0_DATA_V << RMT_CH0_DATA_S)
36 #define RMT_CH0_DATA_V  0xFFFFFFFFU
37 #define RMT_CH0_DATA_S  0
38 
39 /** RMT_CH2DATA_REG register
40  *  Read and write data for channel 2 via APB FIFO
41  */
42 #define RMT_CH2DATA_REG (DR_REG_RMT_BASE + 0x8)
43 /** RMT_CH0_DATA : RO; bitpos: [31:0]; default: 0;
44  *  This register is used to read and write data for channel 2 via APB FIFO.
45  */
46 #define RMT_CH0_DATA    0xFFFFFFFFU
47 #define RMT_CH0_DATA_M  (RMT_CH0_DATA_V << RMT_CH0_DATA_S)
48 #define RMT_CH0_DATA_V  0xFFFFFFFFU
49 #define RMT_CH0_DATA_S  0
50 
51 /** RMT_CH3DATA_REG register
52  *  Read and write data for channel 3 via APB FIFO
53  */
54 #define RMT_CH3DATA_REG (DR_REG_RMT_BASE + 0xc)
55 /** RMT_CH0_DATA : RO; bitpos: [31:0]; default: 0;
56  *  This register is used to read and write data for channel 3 via APB FIFO.
57  */
58 #define RMT_CH0_DATA    0xFFFFFFFFU
59 #define RMT_CH0_DATA_M  (RMT_CH0_DATA_V << RMT_CH0_DATA_S)
60 #define RMT_CH0_DATA_V  0xFFFFFFFFU
61 #define RMT_CH0_DATA_S  0
62 
63 /** RMT_CH0CONF0_REG register
64  *  Channel 0 configuration register 0
65  */
66 #define RMT_CH0CONF0_REG (DR_REG_RMT_BASE + 0x10)
67 /** RMT_DIV_CNT_CH0 : R/W; bitpos: [7:0]; default: 2;
68  *  This field is used to configure clock divider for channel 0.
69  */
70 #define RMT_DIV_CNT_CH0    0x000000FFU
71 #define RMT_DIV_CNT_CH0_M  (RMT_DIV_CNT_CH0_V << RMT_DIV_CNT_CH0_S)
72 #define RMT_DIV_CNT_CH0_V  0x000000FFU
73 #define RMT_DIV_CNT_CH0_S  0
74 /** RMT_IDLE_THRES_CH0 : R/W; bitpos: [23:8]; default: 4096;
75  *  Receiving ends when no edge is detected on input signals for continuous clock
76  *  cycles longer than this field value.
77  */
78 #define RMT_IDLE_THRES_CH0    0x0000FFFFU
79 #define RMT_IDLE_THRES_CH0_M  (RMT_IDLE_THRES_CH0_V << RMT_IDLE_THRES_CH0_S)
80 #define RMT_IDLE_THRES_CH0_V  0x0000FFFFU
81 #define RMT_IDLE_THRES_CH0_S  8
82 /** RMT_MEM_SIZE_CH0 : R/W; bitpos: [26:24]; default: 1;
83  *  This field is used to configure the maximum blocks allocated to channel 0. The
84  *  valid range is from 1 ~ 4-0.
85  */
86 #define RMT_MEM_SIZE_CH0    0x00000007U
87 #define RMT_MEM_SIZE_CH0_M  (RMT_MEM_SIZE_CH0_V << RMT_MEM_SIZE_CH0_S)
88 #define RMT_MEM_SIZE_CH0_V  0x00000007U
89 #define RMT_MEM_SIZE_CH0_S  24
90 /** RMT_CARRIER_EFF_EN_CH0 : R/W; bitpos: [27]; default: 1;
91  *  1: Add carrier modulation on output signals only at data sending state for channel
92  *  0. 0: Add carrier modulation on signals at all states for channel 0. States here
93  *  include idle state (ST_IDLE), reading data from RAM (ST_RD_MEM), and sending data
94  *  stored in RAM (ST_SEND). Only valid when RMT_CARRIER_EN_CH0 is set to 1.
95  */
96 #define RMT_CARRIER_EFF_EN_CH0    (BIT(27))
97 #define RMT_CARRIER_EFF_EN_CH0_M  (RMT_CARRIER_EFF_EN_CH0_V << RMT_CARRIER_EFF_EN_CH0_S)
98 #define RMT_CARRIER_EFF_EN_CH0_V  0x00000001U
99 #define RMT_CARRIER_EFF_EN_CH0_S  27
100 /** RMT_CARRIER_EN_CH0 : R/W; bitpos: [28]; default: 1;
101  *  This bit is used to enable carrier modulation for channel 0. 1: Add carrier
102  *  modulation on output signals. 0: No carrier modulation is added on output signals.
103  */
104 #define RMT_CARRIER_EN_CH0    (BIT(28))
105 #define RMT_CARRIER_EN_CH0_M  (RMT_CARRIER_EN_CH0_V << RMT_CARRIER_EN_CH0_S)
106 #define RMT_CARRIER_EN_CH0_V  0x00000001U
107 #define RMT_CARRIER_EN_CH0_S  28
108 /** RMT_CARRIER_OUT_LV_CH0 : R/W; bitpos: [29]; default: 1;
109  *  This bit is used to configure the position of carrier wave for channel 0.
110  *
111  *  1'h0: Add carrier wave on low-level output signals.
112  *
113  *  1'h1: Add carrier wave on high-level output signals.
114  */
115 #define RMT_CARRIER_OUT_LV_CH0    (BIT(29))
116 #define RMT_CARRIER_OUT_LV_CH0_M  (RMT_CARRIER_OUT_LV_CH0_V << RMT_CARRIER_OUT_LV_CH0_S)
117 #define RMT_CARRIER_OUT_LV_CH0_V  0x00000001U
118 #define RMT_CARRIER_OUT_LV_CH0_S  29
119 
120 /** RMT_CH0CONF1_REG register
121  *  Channel 0 configuration register 1
122  */
123 #define RMT_CH0CONF1_REG (DR_REG_RMT_BASE + 0x14)
124 /** RMT_TX_START_CH0 : R/W; bitpos: [0]; default: 0;
125  *  Set this bit to start sending data on channel 0.
126  */
127 #define RMT_TX_START_CH0    (BIT(0))
128 #define RMT_TX_START_CH0_M  (RMT_TX_START_CH0_V << RMT_TX_START_CH0_S)
129 #define RMT_TX_START_CH0_V  0x00000001U
130 #define RMT_TX_START_CH0_S  0
131 /** RMT_RX_EN_CH0 : R/W; bitpos: [1]; default: 0;
132  *  Set this bit to enable receiver to receive data on channel 0.
133  */
134 #define RMT_RX_EN_CH0    (BIT(1))
135 #define RMT_RX_EN_CH0_M  (RMT_RX_EN_CH0_V << RMT_RX_EN_CH0_S)
136 #define RMT_RX_EN_CH0_V  0x00000001U
137 #define RMT_RX_EN_CH0_S  1
138 /** RMT_MEM_WR_RST_CH0 : WO; bitpos: [2]; default: 0;
139  *  Set this bit to reset RAM write address accessed by the receiver for channel 0.
140  */
141 #define RMT_MEM_WR_RST_CH0    (BIT(2))
142 #define RMT_MEM_WR_RST_CH0_M  (RMT_MEM_WR_RST_CH0_V << RMT_MEM_WR_RST_CH0_S)
143 #define RMT_MEM_WR_RST_CH0_V  0x00000001U
144 #define RMT_MEM_WR_RST_CH0_S  2
145 /** RMT_MEM_RD_RST_CH0 : WO; bitpos: [3]; default: 0;
146  *  Set this bit to reset RAM read address accessed by the transmitter for channel 0.
147  */
148 #define RMT_MEM_RD_RST_CH0    (BIT(3))
149 #define RMT_MEM_RD_RST_CH0_M  (RMT_MEM_RD_RST_CH0_V << RMT_MEM_RD_RST_CH0_S)
150 #define RMT_MEM_RD_RST_CH0_V  0x00000001U
151 #define RMT_MEM_RD_RST_CH0_S  3
152 /** RMT_APB_MEM_RST_CH0 : WO; bitpos: [4]; default: 0;
153  *  Set this bit to reset W/R ram address for channel 0 by accessing apb fifo.
154  */
155 #define RMT_APB_MEM_RST_CH0    (BIT(4))
156 #define RMT_APB_MEM_RST_CH0_M  (RMT_APB_MEM_RST_CH0_V << RMT_APB_MEM_RST_CH0_S)
157 #define RMT_APB_MEM_RST_CH0_V  0x00000001U
158 #define RMT_APB_MEM_RST_CH0_S  4
159 /** RMT_MEM_OWNER_CH0 : R/W; bitpos: [5]; default: 1;
160  *  This bit marks the ownership of channel 0's RAM block.
161  *
162  *  1'h1: Receiver is using the RAM.
163  *
164  *  1'h0: Transmitter is using the RAM.
165  */
166 #define RMT_MEM_OWNER_CH0    (BIT(5))
167 #define RMT_MEM_OWNER_CH0_M  (RMT_MEM_OWNER_CH0_V << RMT_MEM_OWNER_CH0_S)
168 #define RMT_MEM_OWNER_CH0_V  0x00000001U
169 #define RMT_MEM_OWNER_CH0_S  5
170 /** RMT_TX_CONTI_MODE_CH0 : R/W; bitpos: [6]; default: 0;
171  *  Set this bit to restart transmission in continuous node from the first data in
172  *  channel 0.
173  */
174 #define RMT_TX_CONTI_MODE_CH0    (BIT(6))
175 #define RMT_TX_CONTI_MODE_CH0_M  (RMT_TX_CONTI_MODE_CH0_V << RMT_TX_CONTI_MODE_CH0_S)
176 #define RMT_TX_CONTI_MODE_CH0_V  0x00000001U
177 #define RMT_TX_CONTI_MODE_CH0_S  6
178 /** RMT_RX_FILTER_EN_CH0 : R/W; bitpos: [7]; default: 0;
179  *  Set this bit to enable the receiver's filter for channel 0.
180  */
181 #define RMT_RX_FILTER_EN_CH0    (BIT(7))
182 #define RMT_RX_FILTER_EN_CH0_M  (RMT_RX_FILTER_EN_CH0_V << RMT_RX_FILTER_EN_CH0_S)
183 #define RMT_RX_FILTER_EN_CH0_V  0x00000001U
184 #define RMT_RX_FILTER_EN_CH0_S  7
185 /** RMT_RX_FILTER_THRES_CH0 : R/W; bitpos: [15:8]; default: 15;
186  *  Set this field to ignore the input pulse when its width is less than
187  *  RMT_RX_FILTER_THRES_CH0 APB clock cycles in receive mode.
188  */
189 #define RMT_RX_FILTER_THRES_CH0    0x000000FFU
190 #define RMT_RX_FILTER_THRES_CH0_M  (RMT_RX_FILTER_THRES_CH0_V << RMT_RX_FILTER_THRES_CH0_S)
191 #define RMT_RX_FILTER_THRES_CH0_V  0x000000FFU
192 #define RMT_RX_FILTER_THRES_CH0_S  8
193 /** RMT_CHK_RX_CARRIER_EN_CH0 : R/W; bitpos: [16]; default: 0;
194  *  Set this bit to enable memory loop read mode when carrier modulation is enabled for
195  *  channel 0.
196  */
197 #define RMT_CHK_RX_CARRIER_EN_CH0    (BIT(16))
198 #define RMT_CHK_RX_CARRIER_EN_CH0_M  (RMT_CHK_RX_CARRIER_EN_CH0_V << RMT_CHK_RX_CARRIER_EN_CH0_S)
199 #define RMT_CHK_RX_CARRIER_EN_CH0_V  0x00000001U
200 #define RMT_CHK_RX_CARRIER_EN_CH0_S  16
201 /** RMT_REF_ALWAYS_ON_CH0 : R/W; bitpos: [17]; default: 0;
202  *  Set this bit to select a base clock for channel 0.
203  *
204  *  1'h1: APB_CLK    1'h0: REF_TICK
205  */
206 #define RMT_REF_ALWAYS_ON_CH0    (BIT(17))
207 #define RMT_REF_ALWAYS_ON_CH0_M  (RMT_REF_ALWAYS_ON_CH0_V << RMT_REF_ALWAYS_ON_CH0_S)
208 #define RMT_REF_ALWAYS_ON_CH0_V  0x00000001U
209 #define RMT_REF_ALWAYS_ON_CH0_S  17
210 /** RMT_IDLE_OUT_LV_CH0 : R/W; bitpos: [18]; default: 0;
211  *  This bit configures the level of output signals in channel 0 when the transmitter
212  *  is in idle state.
213  */
214 #define RMT_IDLE_OUT_LV_CH0    (BIT(18))
215 #define RMT_IDLE_OUT_LV_CH0_M  (RMT_IDLE_OUT_LV_CH0_V << RMT_IDLE_OUT_LV_CH0_S)
216 #define RMT_IDLE_OUT_LV_CH0_V  0x00000001U
217 #define RMT_IDLE_OUT_LV_CH0_S  18
218 /** RMT_IDLE_OUT_EN_CH0 : R/W; bitpos: [19]; default: 0;
219  *  This is the output enable bit for channel 0 in idle state.
220  */
221 #define RMT_IDLE_OUT_EN_CH0    (BIT(19))
222 #define RMT_IDLE_OUT_EN_CH0_M  (RMT_IDLE_OUT_EN_CH0_V << RMT_IDLE_OUT_EN_CH0_S)
223 #define RMT_IDLE_OUT_EN_CH0_V  0x00000001U
224 #define RMT_IDLE_OUT_EN_CH0_S  19
225 /** RMT_TX_STOP_CH0 : R/W; bitpos: [20]; default: 0;
226  *  Set this bit to stop the transmitter of channel 0 sending data out.
227  */
228 #define RMT_TX_STOP_CH0    (BIT(20))
229 #define RMT_TX_STOP_CH0_M  (RMT_TX_STOP_CH0_V << RMT_TX_STOP_CH0_S)
230 #define RMT_TX_STOP_CH0_V  0x00000001U
231 #define RMT_TX_STOP_CH0_S  20
232 
233 /** RMT_CH1CONF0_REG register
234  *  Channel 1 configuration register 0
235  */
236 #define RMT_CH1CONF0_REG (DR_REG_RMT_BASE + 0x18)
237 /** RMT_DIV_CNT_CH0 : R/W; bitpos: [7:0]; default: 2;
238  *  This field is used to configure clock divider for channel 1.
239  */
240 #define RMT_DIV_CNT_CH0    0x000000FFU
241 #define RMT_DIV_CNT_CH0_M  (RMT_DIV_CNT_CH0_V << RMT_DIV_CNT_CH0_S)
242 #define RMT_DIV_CNT_CH0_V  0x000000FFU
243 #define RMT_DIV_CNT_CH0_S  0
244 /** RMT_IDLE_THRES_CH0 : R/W; bitpos: [23:8]; default: 4096;
245  *  Receiving ends when no edge is detected on input signals for continuous clock
246  *  cycles longer than this field value.
247  */
248 #define RMT_IDLE_THRES_CH0    0x0000FFFFU
249 #define RMT_IDLE_THRES_CH0_M  (RMT_IDLE_THRES_CH0_V << RMT_IDLE_THRES_CH0_S)
250 #define RMT_IDLE_THRES_CH0_V  0x0000FFFFU
251 #define RMT_IDLE_THRES_CH0_S  8
252 /** RMT_MEM_SIZE_CH0 : R/W; bitpos: [26:24]; default: 1;
253  *  This field is used to configure the maximum blocks allocated to channel 1. The
254  *  valid range is from 1 ~ 4-1.
255  */
256 #define RMT_MEM_SIZE_CH0    0x00000007U
257 #define RMT_MEM_SIZE_CH0_M  (RMT_MEM_SIZE_CH0_V << RMT_MEM_SIZE_CH0_S)
258 #define RMT_MEM_SIZE_CH0_V  0x00000007U
259 #define RMT_MEM_SIZE_CH0_S  24
260 /** RMT_CARRIER_EFF_EN_CH0 : R/W; bitpos: [27]; default: 1;
261  *  1: Add carrier modulation on output signals only at data sending state for channel
262  *  1. 0: Add carrier modulation on signals at all states for channel 1. States here
263  *  include idle state (ST_IDLE), reading data from RAM (ST_RD_MEM), and sending data
264  *  stored in RAM (ST_SEND). Only valid when RMT_CARRIER_EN_CH1 is set to 1.
265  */
266 #define RMT_CARRIER_EFF_EN_CH0    (BIT(27))
267 #define RMT_CARRIER_EFF_EN_CH0_M  (RMT_CARRIER_EFF_EN_CH0_V << RMT_CARRIER_EFF_EN_CH0_S)
268 #define RMT_CARRIER_EFF_EN_CH0_V  0x00000001U
269 #define RMT_CARRIER_EFF_EN_CH0_S  27
270 /** RMT_CARRIER_EN_CH0 : R/W; bitpos: [28]; default: 1;
271  *  This bit is used to enable carrier modulation for channel 1. 1: Add carrier
272  *  modulation on output signals. 0: No carrier modulation is added on output signals.
273  */
274 #define RMT_CARRIER_EN_CH0    (BIT(28))
275 #define RMT_CARRIER_EN_CH0_M  (RMT_CARRIER_EN_CH0_V << RMT_CARRIER_EN_CH0_S)
276 #define RMT_CARRIER_EN_CH0_V  0x00000001U
277 #define RMT_CARRIER_EN_CH0_S  28
278 /** RMT_CARRIER_OUT_LV_CH0 : R/W; bitpos: [29]; default: 1;
279  *  This bit is used to configure the position of carrier wave for channel 1.
280  *
281  *  1'h0: Add carrier wave on low-level output signals.
282  *
283  *  1'h1: Add carrier wave on high-level output signals.
284  */
285 #define RMT_CARRIER_OUT_LV_CH0    (BIT(29))
286 #define RMT_CARRIER_OUT_LV_CH0_M  (RMT_CARRIER_OUT_LV_CH0_V << RMT_CARRIER_OUT_LV_CH0_S)
287 #define RMT_CARRIER_OUT_LV_CH0_V  0x00000001U
288 #define RMT_CARRIER_OUT_LV_CH0_S  29
289 
290 /** RMT_CH1CONF1_REG register
291  *  Channel 1 configuration register 1
292  */
293 #define RMT_CH1CONF1_REG (DR_REG_RMT_BASE + 0x1c)
294 /** RMT_TX_START_CH0 : R/W; bitpos: [0]; default: 0;
295  *  Set this bit to start sending data on channel 1.
296  */
297 #define RMT_TX_START_CH0    (BIT(0))
298 #define RMT_TX_START_CH0_M  (RMT_TX_START_CH0_V << RMT_TX_START_CH0_S)
299 #define RMT_TX_START_CH0_V  0x00000001U
300 #define RMT_TX_START_CH0_S  0
301 /** RMT_RX_EN_CH0 : R/W; bitpos: [1]; default: 0;
302  *  Set this bit to enable receiver to receive data on channel 1.
303  */
304 #define RMT_RX_EN_CH0    (BIT(1))
305 #define RMT_RX_EN_CH0_M  (RMT_RX_EN_CH0_V << RMT_RX_EN_CH0_S)
306 #define RMT_RX_EN_CH0_V  0x00000001U
307 #define RMT_RX_EN_CH0_S  1
308 /** RMT_MEM_WR_RST_CH0 : WO; bitpos: [2]; default: 0;
309  *  Set this bit to reset RAM write address accessed by the receiver for channel 1.
310  */
311 #define RMT_MEM_WR_RST_CH0    (BIT(2))
312 #define RMT_MEM_WR_RST_CH0_M  (RMT_MEM_WR_RST_CH0_V << RMT_MEM_WR_RST_CH0_S)
313 #define RMT_MEM_WR_RST_CH0_V  0x00000001U
314 #define RMT_MEM_WR_RST_CH0_S  2
315 /** RMT_MEM_RD_RST_CH0 : WO; bitpos: [3]; default: 0;
316  *  Set this bit to reset RAM read address accessed by the transmitter for channel 1.
317  */
318 #define RMT_MEM_RD_RST_CH0    (BIT(3))
319 #define RMT_MEM_RD_RST_CH0_M  (RMT_MEM_RD_RST_CH0_V << RMT_MEM_RD_RST_CH0_S)
320 #define RMT_MEM_RD_RST_CH0_V  0x00000001U
321 #define RMT_MEM_RD_RST_CH0_S  3
322 /** RMT_APB_MEM_RST_CH0 : WO; bitpos: [4]; default: 0;
323  *  Set this bit to reset W/R ram address for channel 1 by accessing apb fifo.
324  */
325 #define RMT_APB_MEM_RST_CH0    (BIT(4))
326 #define RMT_APB_MEM_RST_CH0_M  (RMT_APB_MEM_RST_CH0_V << RMT_APB_MEM_RST_CH0_S)
327 #define RMT_APB_MEM_RST_CH0_V  0x00000001U
328 #define RMT_APB_MEM_RST_CH0_S  4
329 /** RMT_MEM_OWNER_CH0 : R/W; bitpos: [5]; default: 1;
330  *  This bit marks the ownership of channel 1's RAM block.
331  *
332  *  1'h1: Receiver is using the RAM.
333  *
334  *  1'h0: Transmitter is using the RAM.
335  */
336 #define RMT_MEM_OWNER_CH0    (BIT(5))
337 #define RMT_MEM_OWNER_CH0_M  (RMT_MEM_OWNER_CH0_V << RMT_MEM_OWNER_CH0_S)
338 #define RMT_MEM_OWNER_CH0_V  0x00000001U
339 #define RMT_MEM_OWNER_CH0_S  5
340 /** RMT_TX_CONTI_MODE_CH0 : R/W; bitpos: [6]; default: 0;
341  *  Set this bit to restart transmission in continuous node from the first data in
342  *  channel 1.
343  */
344 #define RMT_TX_CONTI_MODE_CH0    (BIT(6))
345 #define RMT_TX_CONTI_MODE_CH0_M  (RMT_TX_CONTI_MODE_CH0_V << RMT_TX_CONTI_MODE_CH0_S)
346 #define RMT_TX_CONTI_MODE_CH0_V  0x00000001U
347 #define RMT_TX_CONTI_MODE_CH0_S  6
348 /** RMT_RX_FILTER_EN_CH0 : R/W; bitpos: [7]; default: 0;
349  *  Set this bit to enable the receiver's filter for channel 1.
350  */
351 #define RMT_RX_FILTER_EN_CH0    (BIT(7))
352 #define RMT_RX_FILTER_EN_CH0_M  (RMT_RX_FILTER_EN_CH0_V << RMT_RX_FILTER_EN_CH0_S)
353 #define RMT_RX_FILTER_EN_CH0_V  0x00000001U
354 #define RMT_RX_FILTER_EN_CH0_S  7
355 /** RMT_RX_FILTER_THRES_CH0 : R/W; bitpos: [15:8]; default: 15;
356  *  Set this field to ignore the input pulse when its width is less than
357  *  RMT_RX_FILTER_THRES_CH1 APB clock cycles in receive mode.
358  */
359 #define RMT_RX_FILTER_THRES_CH0    0x000000FFU
360 #define RMT_RX_FILTER_THRES_CH0_M  (RMT_RX_FILTER_THRES_CH0_V << RMT_RX_FILTER_THRES_CH0_S)
361 #define RMT_RX_FILTER_THRES_CH0_V  0x000000FFU
362 #define RMT_RX_FILTER_THRES_CH0_S  8
363 /** RMT_CHK_RX_CARRIER_EN_CH0 : R/W; bitpos: [16]; default: 0;
364  *  Set this bit to enable memory loop read mode when carrier modulation is enabled for
365  *  channel 1.
366  */
367 #define RMT_CHK_RX_CARRIER_EN_CH0    (BIT(16))
368 #define RMT_CHK_RX_CARRIER_EN_CH0_M  (RMT_CHK_RX_CARRIER_EN_CH0_V << RMT_CHK_RX_CARRIER_EN_CH0_S)
369 #define RMT_CHK_RX_CARRIER_EN_CH0_V  0x00000001U
370 #define RMT_CHK_RX_CARRIER_EN_CH0_S  16
371 /** RMT_REF_ALWAYS_ON_CH0 : R/W; bitpos: [17]; default: 0;
372  *  Set this bit to select a base clock for channel 1.
373  *
374  *  1'h1: APB_CLK    1'h0: REF_TICK
375  */
376 #define RMT_REF_ALWAYS_ON_CH0    (BIT(17))
377 #define RMT_REF_ALWAYS_ON_CH0_M  (RMT_REF_ALWAYS_ON_CH0_V << RMT_REF_ALWAYS_ON_CH0_S)
378 #define RMT_REF_ALWAYS_ON_CH0_V  0x00000001U
379 #define RMT_REF_ALWAYS_ON_CH0_S  17
380 /** RMT_IDLE_OUT_LV_CH0 : R/W; bitpos: [18]; default: 0;
381  *  This bit configures the level of output signals in channel 1 when the transmitter
382  *  is in idle state.
383  */
384 #define RMT_IDLE_OUT_LV_CH0    (BIT(18))
385 #define RMT_IDLE_OUT_LV_CH0_M  (RMT_IDLE_OUT_LV_CH0_V << RMT_IDLE_OUT_LV_CH0_S)
386 #define RMT_IDLE_OUT_LV_CH0_V  0x00000001U
387 #define RMT_IDLE_OUT_LV_CH0_S  18
388 /** RMT_IDLE_OUT_EN_CH0 : R/W; bitpos: [19]; default: 0;
389  *  This is the output enable bit for channel 1 in idle state.
390  */
391 #define RMT_IDLE_OUT_EN_CH0    (BIT(19))
392 #define RMT_IDLE_OUT_EN_CH0_M  (RMT_IDLE_OUT_EN_CH0_V << RMT_IDLE_OUT_EN_CH0_S)
393 #define RMT_IDLE_OUT_EN_CH0_V  0x00000001U
394 #define RMT_IDLE_OUT_EN_CH0_S  19
395 /** RMT_TX_STOP_CH0 : R/W; bitpos: [20]; default: 0;
396  *  Set this bit to stop the transmitter of channel 1 sending data out.
397  */
398 #define RMT_TX_STOP_CH0    (BIT(20))
399 #define RMT_TX_STOP_CH0_M  (RMT_TX_STOP_CH0_V << RMT_TX_STOP_CH0_S)
400 #define RMT_TX_STOP_CH0_V  0x00000001U
401 #define RMT_TX_STOP_CH0_S  20
402 
403 /** RMT_CH2CONF0_REG register
404  *  Channel 2 configuration register 0
405  */
406 #define RMT_CH2CONF0_REG (DR_REG_RMT_BASE + 0x20)
407 /** RMT_DIV_CNT_CH0 : R/W; bitpos: [7:0]; default: 2;
408  *  This field is used to configure clock divider for channel 2.
409  */
410 #define RMT_DIV_CNT_CH0    0x000000FFU
411 #define RMT_DIV_CNT_CH0_M  (RMT_DIV_CNT_CH0_V << RMT_DIV_CNT_CH0_S)
412 #define RMT_DIV_CNT_CH0_V  0x000000FFU
413 #define RMT_DIV_CNT_CH0_S  0
414 /** RMT_IDLE_THRES_CH0 : R/W; bitpos: [23:8]; default: 4096;
415  *  Receiving ends when no edge is detected on input signals for continuous clock
416  *  cycles longer than this field value.
417  */
418 #define RMT_IDLE_THRES_CH0    0x0000FFFFU
419 #define RMT_IDLE_THRES_CH0_M  (RMT_IDLE_THRES_CH0_V << RMT_IDLE_THRES_CH0_S)
420 #define RMT_IDLE_THRES_CH0_V  0x0000FFFFU
421 #define RMT_IDLE_THRES_CH0_S  8
422 /** RMT_MEM_SIZE_CH0 : R/W; bitpos: [26:24]; default: 1;
423  *  This field is used to configure the maximum blocks allocated to channel 2. The
424  *  valid range is from 1 ~ 4-2.
425  */
426 #define RMT_MEM_SIZE_CH0    0x00000007U
427 #define RMT_MEM_SIZE_CH0_M  (RMT_MEM_SIZE_CH0_V << RMT_MEM_SIZE_CH0_S)
428 #define RMT_MEM_SIZE_CH0_V  0x00000007U
429 #define RMT_MEM_SIZE_CH0_S  24
430 /** RMT_CARRIER_EFF_EN_CH0 : R/W; bitpos: [27]; default: 1;
431  *  1: Add carrier modulation on output signals only at data sending state for channel
432  *  2. 0: Add carrier modulation on signals at all states for channel 2. States here
433  *  include idle state (ST_IDLE), reading data from RAM (ST_RD_MEM), and sending data
434  *  stored in RAM (ST_SEND). Only valid when RMT_CARRIER_EN_CH2 is set to 1.
435  */
436 #define RMT_CARRIER_EFF_EN_CH0    (BIT(27))
437 #define RMT_CARRIER_EFF_EN_CH0_M  (RMT_CARRIER_EFF_EN_CH0_V << RMT_CARRIER_EFF_EN_CH0_S)
438 #define RMT_CARRIER_EFF_EN_CH0_V  0x00000001U
439 #define RMT_CARRIER_EFF_EN_CH0_S  27
440 /** RMT_CARRIER_EN_CH0 : R/W; bitpos: [28]; default: 1;
441  *  This bit is used to enable carrier modulation for channel 2. 1: Add carrier
442  *  modulation on output signals. 0: No carrier modulation is added on output signals.
443  */
444 #define RMT_CARRIER_EN_CH0    (BIT(28))
445 #define RMT_CARRIER_EN_CH0_M  (RMT_CARRIER_EN_CH0_V << RMT_CARRIER_EN_CH0_S)
446 #define RMT_CARRIER_EN_CH0_V  0x00000001U
447 #define RMT_CARRIER_EN_CH0_S  28
448 /** RMT_CARRIER_OUT_LV_CH0 : R/W; bitpos: [29]; default: 1;
449  *  This bit is used to configure the position of carrier wave for channel 2.
450  *
451  *  1'h0: Add carrier wave on low-level output signals.
452  *
453  *  1'h1: Add carrier wave on high-level output signals.
454  */
455 #define RMT_CARRIER_OUT_LV_CH0    (BIT(29))
456 #define RMT_CARRIER_OUT_LV_CH0_M  (RMT_CARRIER_OUT_LV_CH0_V << RMT_CARRIER_OUT_LV_CH0_S)
457 #define RMT_CARRIER_OUT_LV_CH0_V  0x00000001U
458 #define RMT_CARRIER_OUT_LV_CH0_S  29
459 
460 /** RMT_CH2CONF1_REG register
461  *  Channel 2 configuration register 1
462  */
463 #define RMT_CH2CONF1_REG (DR_REG_RMT_BASE + 0x24)
464 /** RMT_TX_START_CH0 : R/W; bitpos: [0]; default: 0;
465  *  Set this bit to start sending data on channel 2.
466  */
467 #define RMT_TX_START_CH0    (BIT(0))
468 #define RMT_TX_START_CH0_M  (RMT_TX_START_CH0_V << RMT_TX_START_CH0_S)
469 #define RMT_TX_START_CH0_V  0x00000001U
470 #define RMT_TX_START_CH0_S  0
471 /** RMT_RX_EN_CH0 : R/W; bitpos: [1]; default: 0;
472  *  Set this bit to enable receiver to receive data on channel 2.
473  */
474 #define RMT_RX_EN_CH0    (BIT(1))
475 #define RMT_RX_EN_CH0_M  (RMT_RX_EN_CH0_V << RMT_RX_EN_CH0_S)
476 #define RMT_RX_EN_CH0_V  0x00000001U
477 #define RMT_RX_EN_CH0_S  1
478 /** RMT_MEM_WR_RST_CH0 : WO; bitpos: [2]; default: 0;
479  *  Set this bit to reset RAM write address accessed by the receiver for channel 2.
480  */
481 #define RMT_MEM_WR_RST_CH0    (BIT(2))
482 #define RMT_MEM_WR_RST_CH0_M  (RMT_MEM_WR_RST_CH0_V << RMT_MEM_WR_RST_CH0_S)
483 #define RMT_MEM_WR_RST_CH0_V  0x00000001U
484 #define RMT_MEM_WR_RST_CH0_S  2
485 /** RMT_MEM_RD_RST_CH0 : WO; bitpos: [3]; default: 0;
486  *  Set this bit to reset RAM read address accessed by the transmitter for channel 2.
487  */
488 #define RMT_MEM_RD_RST_CH0    (BIT(3))
489 #define RMT_MEM_RD_RST_CH0_M  (RMT_MEM_RD_RST_CH0_V << RMT_MEM_RD_RST_CH0_S)
490 #define RMT_MEM_RD_RST_CH0_V  0x00000001U
491 #define RMT_MEM_RD_RST_CH0_S  3
492 /** RMT_APB_MEM_RST_CH0 : WO; bitpos: [4]; default: 0;
493  *  Set this bit to reset W/R ram address for channel 2 by accessing apb fifo.
494  */
495 #define RMT_APB_MEM_RST_CH0    (BIT(4))
496 #define RMT_APB_MEM_RST_CH0_M  (RMT_APB_MEM_RST_CH0_V << RMT_APB_MEM_RST_CH0_S)
497 #define RMT_APB_MEM_RST_CH0_V  0x00000001U
498 #define RMT_APB_MEM_RST_CH0_S  4
499 /** RMT_MEM_OWNER_CH0 : R/W; bitpos: [5]; default: 1;
500  *  This bit marks the ownership of channel 2's RAM block.
501  *
502  *  1'h1: Receiver is using the RAM.
503  *
504  *  1'h0: Transmitter is using the RAM.
505  */
506 #define RMT_MEM_OWNER_CH0    (BIT(5))
507 #define RMT_MEM_OWNER_CH0_M  (RMT_MEM_OWNER_CH0_V << RMT_MEM_OWNER_CH0_S)
508 #define RMT_MEM_OWNER_CH0_V  0x00000001U
509 #define RMT_MEM_OWNER_CH0_S  5
510 /** RMT_TX_CONTI_MODE_CH0 : R/W; bitpos: [6]; default: 0;
511  *  Set this bit to restart transmission in continuous node from the first data in
512  *  channel 2.
513  */
514 #define RMT_TX_CONTI_MODE_CH0    (BIT(6))
515 #define RMT_TX_CONTI_MODE_CH0_M  (RMT_TX_CONTI_MODE_CH0_V << RMT_TX_CONTI_MODE_CH0_S)
516 #define RMT_TX_CONTI_MODE_CH0_V  0x00000001U
517 #define RMT_TX_CONTI_MODE_CH0_S  6
518 /** RMT_RX_FILTER_EN_CH0 : R/W; bitpos: [7]; default: 0;
519  *  Set this bit to enable the receiver's filter for channel 2.
520  */
521 #define RMT_RX_FILTER_EN_CH0    (BIT(7))
522 #define RMT_RX_FILTER_EN_CH0_M  (RMT_RX_FILTER_EN_CH0_V << RMT_RX_FILTER_EN_CH0_S)
523 #define RMT_RX_FILTER_EN_CH0_V  0x00000001U
524 #define RMT_RX_FILTER_EN_CH0_S  7
525 /** RMT_RX_FILTER_THRES_CH0 : R/W; bitpos: [15:8]; default: 15;
526  *  Set this field to ignore the input pulse when its width is less than
527  *  RMT_RX_FILTER_THRES_CH2 APB clock cycles in receive mode.
528  */
529 #define RMT_RX_FILTER_THRES_CH0    0x000000FFU
530 #define RMT_RX_FILTER_THRES_CH0_M  (RMT_RX_FILTER_THRES_CH0_V << RMT_RX_FILTER_THRES_CH0_S)
531 #define RMT_RX_FILTER_THRES_CH0_V  0x000000FFU
532 #define RMT_RX_FILTER_THRES_CH0_S  8
533 /** RMT_CHK_RX_CARRIER_EN_CH0 : R/W; bitpos: [16]; default: 0;
534  *  Set this bit to enable memory loop read mode when carrier modulation is enabled for
535  *  channel 2.
536  */
537 #define RMT_CHK_RX_CARRIER_EN_CH0    (BIT(16))
538 #define RMT_CHK_RX_CARRIER_EN_CH0_M  (RMT_CHK_RX_CARRIER_EN_CH0_V << RMT_CHK_RX_CARRIER_EN_CH0_S)
539 #define RMT_CHK_RX_CARRIER_EN_CH0_V  0x00000001U
540 #define RMT_CHK_RX_CARRIER_EN_CH0_S  16
541 /** RMT_REF_ALWAYS_ON_CH0 : R/W; bitpos: [17]; default: 0;
542  *  Set this bit to select a base clock for channel 2.
543  *
544  *  1'h1: APB_CLK    1'h0: REF_TICK
545  */
546 #define RMT_REF_ALWAYS_ON_CH0    (BIT(17))
547 #define RMT_REF_ALWAYS_ON_CH0_M  (RMT_REF_ALWAYS_ON_CH0_V << RMT_REF_ALWAYS_ON_CH0_S)
548 #define RMT_REF_ALWAYS_ON_CH0_V  0x00000001U
549 #define RMT_REF_ALWAYS_ON_CH0_S  17
550 /** RMT_IDLE_OUT_LV_CH0 : R/W; bitpos: [18]; default: 0;
551  *  This bit configures the level of output signals in channel 2 when the transmitter
552  *  is in idle state.
553  */
554 #define RMT_IDLE_OUT_LV_CH0    (BIT(18))
555 #define RMT_IDLE_OUT_LV_CH0_M  (RMT_IDLE_OUT_LV_CH0_V << RMT_IDLE_OUT_LV_CH0_S)
556 #define RMT_IDLE_OUT_LV_CH0_V  0x00000001U
557 #define RMT_IDLE_OUT_LV_CH0_S  18
558 /** RMT_IDLE_OUT_EN_CH0 : R/W; bitpos: [19]; default: 0;
559  *  This is the output enable bit for channel 2 in idle state.
560  */
561 #define RMT_IDLE_OUT_EN_CH0    (BIT(19))
562 #define RMT_IDLE_OUT_EN_CH0_M  (RMT_IDLE_OUT_EN_CH0_V << RMT_IDLE_OUT_EN_CH0_S)
563 #define RMT_IDLE_OUT_EN_CH0_V  0x00000001U
564 #define RMT_IDLE_OUT_EN_CH0_S  19
565 /** RMT_TX_STOP_CH0 : R/W; bitpos: [20]; default: 0;
566  *  Set this bit to stop the transmitter of channel 2 sending data out.
567  */
568 #define RMT_TX_STOP_CH0    (BIT(20))
569 #define RMT_TX_STOP_CH0_M  (RMT_TX_STOP_CH0_V << RMT_TX_STOP_CH0_S)
570 #define RMT_TX_STOP_CH0_V  0x00000001U
571 #define RMT_TX_STOP_CH0_S  20
572 
573 /** RMT_CH3CONF0_REG register
574  *  Channel 3 configuration register 0
575  */
576 #define RMT_CH3CONF0_REG (DR_REG_RMT_BASE + 0x28)
577 /** RMT_DIV_CNT_CH0 : R/W; bitpos: [7:0]; default: 2;
578  *  This field is used to configure clock divider for channel 3.
579  */
580 #define RMT_DIV_CNT_CH0    0x000000FFU
581 #define RMT_DIV_CNT_CH0_M  (RMT_DIV_CNT_CH0_V << RMT_DIV_CNT_CH0_S)
582 #define RMT_DIV_CNT_CH0_V  0x000000FFU
583 #define RMT_DIV_CNT_CH0_S  0
584 /** RMT_IDLE_THRES_CH0 : R/W; bitpos: [23:8]; default: 4096;
585  *  Receiving ends when no edge is detected on input signals for continuous clock
586  *  cycles longer than this field value.
587  */
588 #define RMT_IDLE_THRES_CH0    0x0000FFFFU
589 #define RMT_IDLE_THRES_CH0_M  (RMT_IDLE_THRES_CH0_V << RMT_IDLE_THRES_CH0_S)
590 #define RMT_IDLE_THRES_CH0_V  0x0000FFFFU
591 #define RMT_IDLE_THRES_CH0_S  8
592 /** RMT_MEM_SIZE_CH0 : R/W; bitpos: [26:24]; default: 1;
593  *  This field is used to configure the maximum blocks allocated to channel 3. The
594  *  valid range is from 1 ~ 4-3.
595  */
596 #define RMT_MEM_SIZE_CH0    0x00000007U
597 #define RMT_MEM_SIZE_CH0_M  (RMT_MEM_SIZE_CH0_V << RMT_MEM_SIZE_CH0_S)
598 #define RMT_MEM_SIZE_CH0_V  0x00000007U
599 #define RMT_MEM_SIZE_CH0_S  24
600 /** RMT_CARRIER_EFF_EN_CH0 : R/W; bitpos: [27]; default: 1;
601  *  1: Add carrier modulation on output signals only at data sending state for channel
602  *  3. 0: Add carrier modulation on signals at all states for channel 3. States here
603  *  include idle state (ST_IDLE), reading data from RAM (ST_RD_MEM), and sending data
604  *  stored in RAM (ST_SEND). Only valid when RMT_CARRIER_EN_CH3 is set to 1.
605  */
606 #define RMT_CARRIER_EFF_EN_CH0    (BIT(27))
607 #define RMT_CARRIER_EFF_EN_CH0_M  (RMT_CARRIER_EFF_EN_CH0_V << RMT_CARRIER_EFF_EN_CH0_S)
608 #define RMT_CARRIER_EFF_EN_CH0_V  0x00000001U
609 #define RMT_CARRIER_EFF_EN_CH0_S  27
610 /** RMT_CARRIER_EN_CH0 : R/W; bitpos: [28]; default: 1;
611  *  This bit is used to enable carrier modulation for channel 3. 1: Add carrier
612  *  modulation on output signals. 0: No carrier modulation is added on output signals.
613  */
614 #define RMT_CARRIER_EN_CH0    (BIT(28))
615 #define RMT_CARRIER_EN_CH0_M  (RMT_CARRIER_EN_CH0_V << RMT_CARRIER_EN_CH0_S)
616 #define RMT_CARRIER_EN_CH0_V  0x00000001U
617 #define RMT_CARRIER_EN_CH0_S  28
618 /** RMT_CARRIER_OUT_LV_CH0 : R/W; bitpos: [29]; default: 1;
619  *  This bit is used to configure the position of carrier wave for channel 3.
620  *
621  *  1'h0: Add carrier wave on low-level output signals.
622  *
623  *  1'h1: Add carrier wave on high-level output signals.
624  */
625 #define RMT_CARRIER_OUT_LV_CH0    (BIT(29))
626 #define RMT_CARRIER_OUT_LV_CH0_M  (RMT_CARRIER_OUT_LV_CH0_V << RMT_CARRIER_OUT_LV_CH0_S)
627 #define RMT_CARRIER_OUT_LV_CH0_V  0x00000001U
628 #define RMT_CARRIER_OUT_LV_CH0_S  29
629 
630 /** RMT_CH3CONF1_REG register
631  *  Channel 3 configuration register 1
632  */
633 #define RMT_CH3CONF1_REG (DR_REG_RMT_BASE + 0x2c)
634 /** RMT_TX_START_CH0 : R/W; bitpos: [0]; default: 0;
635  *  Set this bit to start sending data on channel 3.
636  */
637 #define RMT_TX_START_CH0    (BIT(0))
638 #define RMT_TX_START_CH0_M  (RMT_TX_START_CH0_V << RMT_TX_START_CH0_S)
639 #define RMT_TX_START_CH0_V  0x00000001U
640 #define RMT_TX_START_CH0_S  0
641 /** RMT_RX_EN_CH0 : R/W; bitpos: [1]; default: 0;
642  *  Set this bit to enable receiver to receive data on channel 3.
643  */
644 #define RMT_RX_EN_CH0    (BIT(1))
645 #define RMT_RX_EN_CH0_M  (RMT_RX_EN_CH0_V << RMT_RX_EN_CH0_S)
646 #define RMT_RX_EN_CH0_V  0x00000001U
647 #define RMT_RX_EN_CH0_S  1
648 /** RMT_MEM_WR_RST_CH0 : WO; bitpos: [2]; default: 0;
649  *  Set this bit to reset RAM write address accessed by the receiver for channel 3.
650  */
651 #define RMT_MEM_WR_RST_CH0    (BIT(2))
652 #define RMT_MEM_WR_RST_CH0_M  (RMT_MEM_WR_RST_CH0_V << RMT_MEM_WR_RST_CH0_S)
653 #define RMT_MEM_WR_RST_CH0_V  0x00000001U
654 #define RMT_MEM_WR_RST_CH0_S  2
655 /** RMT_MEM_RD_RST_CH0 : WO; bitpos: [3]; default: 0;
656  *  Set this bit to reset RAM read address accessed by the transmitter for channel 3.
657  */
658 #define RMT_MEM_RD_RST_CH0    (BIT(3))
659 #define RMT_MEM_RD_RST_CH0_M  (RMT_MEM_RD_RST_CH0_V << RMT_MEM_RD_RST_CH0_S)
660 #define RMT_MEM_RD_RST_CH0_V  0x00000001U
661 #define RMT_MEM_RD_RST_CH0_S  3
662 /** RMT_APB_MEM_RST_CH0 : WO; bitpos: [4]; default: 0;
663  *  Set this bit to reset W/R ram address for channel 3 by accessing apb fifo.
664  */
665 #define RMT_APB_MEM_RST_CH0    (BIT(4))
666 #define RMT_APB_MEM_RST_CH0_M  (RMT_APB_MEM_RST_CH0_V << RMT_APB_MEM_RST_CH0_S)
667 #define RMT_APB_MEM_RST_CH0_V  0x00000001U
668 #define RMT_APB_MEM_RST_CH0_S  4
669 /** RMT_MEM_OWNER_CH0 : R/W; bitpos: [5]; default: 1;
670  *  This bit marks the ownership of channel 3's RAM block.
671  *
672  *  1'h1: Receiver is using the RAM.
673  *
674  *  1'h0: Transmitter is using the RAM.
675  */
676 #define RMT_MEM_OWNER_CH0    (BIT(5))
677 #define RMT_MEM_OWNER_CH0_M  (RMT_MEM_OWNER_CH0_V << RMT_MEM_OWNER_CH0_S)
678 #define RMT_MEM_OWNER_CH0_V  0x00000001U
679 #define RMT_MEM_OWNER_CH0_S  5
680 /** RMT_TX_CONTI_MODE_CH0 : R/W; bitpos: [6]; default: 0;
681  *  Set this bit to restart transmission in continuous node from the first data in
682  *  channel 3.
683  */
684 #define RMT_TX_CONTI_MODE_CH0    (BIT(6))
685 #define RMT_TX_CONTI_MODE_CH0_M  (RMT_TX_CONTI_MODE_CH0_V << RMT_TX_CONTI_MODE_CH0_S)
686 #define RMT_TX_CONTI_MODE_CH0_V  0x00000001U
687 #define RMT_TX_CONTI_MODE_CH0_S  6
688 /** RMT_RX_FILTER_EN_CH0 : R/W; bitpos: [7]; default: 0;
689  *  Set this bit to enable the receiver's filter for channel 3.
690  */
691 #define RMT_RX_FILTER_EN_CH0    (BIT(7))
692 #define RMT_RX_FILTER_EN_CH0_M  (RMT_RX_FILTER_EN_CH0_V << RMT_RX_FILTER_EN_CH0_S)
693 #define RMT_RX_FILTER_EN_CH0_V  0x00000001U
694 #define RMT_RX_FILTER_EN_CH0_S  7
695 /** RMT_RX_FILTER_THRES_CH0 : R/W; bitpos: [15:8]; default: 15;
696  *  Set this field to ignore the input pulse when its width is less than
697  *  RMT_RX_FILTER_THRES_CH3 APB clock cycles in receive mode.
698  */
699 #define RMT_RX_FILTER_THRES_CH0    0x000000FFU
700 #define RMT_RX_FILTER_THRES_CH0_M  (RMT_RX_FILTER_THRES_CH0_V << RMT_RX_FILTER_THRES_CH0_S)
701 #define RMT_RX_FILTER_THRES_CH0_V  0x000000FFU
702 #define RMT_RX_FILTER_THRES_CH0_S  8
703 /** RMT_CHK_RX_CARRIER_EN_CH0 : R/W; bitpos: [16]; default: 0;
704  *  Set this bit to enable memory loop read mode when carrier modulation is enabled for
705  *  channel 3.
706  */
707 #define RMT_CHK_RX_CARRIER_EN_CH0    (BIT(16))
708 #define RMT_CHK_RX_CARRIER_EN_CH0_M  (RMT_CHK_RX_CARRIER_EN_CH0_V << RMT_CHK_RX_CARRIER_EN_CH0_S)
709 #define RMT_CHK_RX_CARRIER_EN_CH0_V  0x00000001U
710 #define RMT_CHK_RX_CARRIER_EN_CH0_S  16
711 /** RMT_REF_ALWAYS_ON_CH0 : R/W; bitpos: [17]; default: 0;
712  *  Set this bit to select a base clock for channel 3.
713  *
714  *  1'h1: APB_CLK    1'h0: REF_TICK
715  */
716 #define RMT_REF_ALWAYS_ON_CH0    (BIT(17))
717 #define RMT_REF_ALWAYS_ON_CH0_M  (RMT_REF_ALWAYS_ON_CH0_V << RMT_REF_ALWAYS_ON_CH0_S)
718 #define RMT_REF_ALWAYS_ON_CH0_V  0x00000001U
719 #define RMT_REF_ALWAYS_ON_CH0_S  17
720 /** RMT_IDLE_OUT_LV_CH0 : R/W; bitpos: [18]; default: 0;
721  *  This bit configures the level of output signals in channel 3 when the transmitter
722  *  is in idle state.
723  */
724 #define RMT_IDLE_OUT_LV_CH0    (BIT(18))
725 #define RMT_IDLE_OUT_LV_CH0_M  (RMT_IDLE_OUT_LV_CH0_V << RMT_IDLE_OUT_LV_CH0_S)
726 #define RMT_IDLE_OUT_LV_CH0_V  0x00000001U
727 #define RMT_IDLE_OUT_LV_CH0_S  18
728 /** RMT_IDLE_OUT_EN_CH0 : R/W; bitpos: [19]; default: 0;
729  *  This is the output enable bit for channel 3 in idle state.
730  */
731 #define RMT_IDLE_OUT_EN_CH0    (BIT(19))
732 #define RMT_IDLE_OUT_EN_CH0_M  (RMT_IDLE_OUT_EN_CH0_V << RMT_IDLE_OUT_EN_CH0_S)
733 #define RMT_IDLE_OUT_EN_CH0_V  0x00000001U
734 #define RMT_IDLE_OUT_EN_CH0_S  19
735 /** RMT_TX_STOP_CH0 : R/W; bitpos: [20]; default: 0;
736  *  Set this bit to stop the transmitter of channel 3 sending data out.
737  */
738 #define RMT_TX_STOP_CH0    (BIT(20))
739 #define RMT_TX_STOP_CH0_M  (RMT_TX_STOP_CH0_V << RMT_TX_STOP_CH0_S)
740 #define RMT_TX_STOP_CH0_V  0x00000001U
741 #define RMT_TX_STOP_CH0_S  20
742 
743 /** RMT_CH0STATUS_REG register
744  *  Channel 0 status register
745  */
746 #define RMT_CH0STATUS_REG (DR_REG_RMT_BASE + 0x30)
747 /** RMT_MEM_WADDR_EX_CH0 : RO; bitpos: [8:0]; default: 0;
748  *  This field records the memory address offset when receiver of channel 0 is using
749  *  the RAM.
750  */
751 #define RMT_MEM_WADDR_EX_CH0    0x000001FFU
752 #define RMT_MEM_WADDR_EX_CH0_M  (RMT_MEM_WADDR_EX_CH0_V << RMT_MEM_WADDR_EX_CH0_S)
753 #define RMT_MEM_WADDR_EX_CH0_V  0x000001FFU
754 #define RMT_MEM_WADDR_EX_CH0_S  0
755 /** RMT_MEM_RADDR_EX_CH0 : RO; bitpos: [18:10]; default: 0;
756  *  This field records the memory address offset when transmitter of channel 0 is using
757  *  the RAM.
758  */
759 #define RMT_MEM_RADDR_EX_CH0    0x000001FFU
760 #define RMT_MEM_RADDR_EX_CH0_M  (RMT_MEM_RADDR_EX_CH0_V << RMT_MEM_RADDR_EX_CH0_S)
761 #define RMT_MEM_RADDR_EX_CH0_V  0x000001FFU
762 #define RMT_MEM_RADDR_EX_CH0_S  10
763 /** RMT_STATE_CH0 : RO; bitpos: [22:20]; default: 0;
764  *  This field records the FSM status of channel 0.
765  */
766 #define RMT_STATE_CH0    0x00000007U
767 #define RMT_STATE_CH0_M  (RMT_STATE_CH0_V << RMT_STATE_CH0_S)
768 #define RMT_STATE_CH0_V  0x00000007U
769 #define RMT_STATE_CH0_S  20
770 /** RMT_MEM_OWNER_ERR_CH0 : RO; bitpos: [23]; default: 0;
771  *  This status bit will be set when the ownership of memory block is violated.
772  */
773 #define RMT_MEM_OWNER_ERR_CH0    (BIT(23))
774 #define RMT_MEM_OWNER_ERR_CH0_M  (RMT_MEM_OWNER_ERR_CH0_V << RMT_MEM_OWNER_ERR_CH0_S)
775 #define RMT_MEM_OWNER_ERR_CH0_V  0x00000001U
776 #define RMT_MEM_OWNER_ERR_CH0_S  23
777 /** RMT_MEM_FULL_CH0 : RO; bitpos: [24]; default: 0;
778  *  This status bit will be set if the receiver receives more data than the memory
779  *  allows.
780  */
781 #define RMT_MEM_FULL_CH0    (BIT(24))
782 #define RMT_MEM_FULL_CH0_M  (RMT_MEM_FULL_CH0_V << RMT_MEM_FULL_CH0_S)
783 #define RMT_MEM_FULL_CH0_V  0x00000001U
784 #define RMT_MEM_FULL_CH0_S  24
785 /** RMT_MEM_EMPTY_CH0 : RO; bitpos: [25]; default: 0;
786  *  This status bit will be set when the data to be sent is more than memory allows and
787  *  the wrap mode is disabled.
788  */
789 #define RMT_MEM_EMPTY_CH0    (BIT(25))
790 #define RMT_MEM_EMPTY_CH0_M  (RMT_MEM_EMPTY_CH0_V << RMT_MEM_EMPTY_CH0_S)
791 #define RMT_MEM_EMPTY_CH0_V  0x00000001U
792 #define RMT_MEM_EMPTY_CH0_S  25
793 /** RMT_APB_MEM_WR_ERR_CH0 : RO; bitpos: [26]; default: 0;
794  *  This status bit will be set if the offset address out of memory size when writes
795  *  RAM via APB bus.
796  */
797 #define RMT_APB_MEM_WR_ERR_CH0    (BIT(26))
798 #define RMT_APB_MEM_WR_ERR_CH0_M  (RMT_APB_MEM_WR_ERR_CH0_V << RMT_APB_MEM_WR_ERR_CH0_S)
799 #define RMT_APB_MEM_WR_ERR_CH0_V  0x00000001U
800 #define RMT_APB_MEM_WR_ERR_CH0_S  26
801 /** RMT_APB_MEM_RD_ERR_CH0 : RO; bitpos: [27]; default: 0;
802  *  This status bit will be set if the offset address out of memory size when reads RAM
803  *  via APB bus.
804  */
805 #define RMT_APB_MEM_RD_ERR_CH0    (BIT(27))
806 #define RMT_APB_MEM_RD_ERR_CH0_M  (RMT_APB_MEM_RD_ERR_CH0_V << RMT_APB_MEM_RD_ERR_CH0_S)
807 #define RMT_APB_MEM_RD_ERR_CH0_V  0x00000001U
808 #define RMT_APB_MEM_RD_ERR_CH0_S  27
809 
810 /** RMT_CH1STATUS_REG register
811  *  Channel 1 status register
812  */
813 #define RMT_CH1STATUS_REG (DR_REG_RMT_BASE + 0x34)
814 /** RMT_MEM_WADDR_EX_CH0 : RO; bitpos: [8:0]; default: 0;
815  *  This field records the memory address offset when receiver of channel 1 is using
816  *  the RAM.
817  */
818 #define RMT_MEM_WADDR_EX_CH0    0x000001FFU
819 #define RMT_MEM_WADDR_EX_CH0_M  (RMT_MEM_WADDR_EX_CH0_V << RMT_MEM_WADDR_EX_CH0_S)
820 #define RMT_MEM_WADDR_EX_CH0_V  0x000001FFU
821 #define RMT_MEM_WADDR_EX_CH0_S  0
822 /** RMT_MEM_RADDR_EX_CH0 : RO; bitpos: [18:10]; default: 0;
823  *  This field records the memory address offset when transmitter of channel 1 is using
824  *  the RAM.
825  */
826 #define RMT_MEM_RADDR_EX_CH0    0x000001FFU
827 #define RMT_MEM_RADDR_EX_CH0_M  (RMT_MEM_RADDR_EX_CH0_V << RMT_MEM_RADDR_EX_CH0_S)
828 #define RMT_MEM_RADDR_EX_CH0_V  0x000001FFU
829 #define RMT_MEM_RADDR_EX_CH0_S  10
830 /** RMT_STATE_CH0 : RO; bitpos: [22:20]; default: 0;
831  *  This field records the FSM status of channel 1.
832  */
833 #define RMT_STATE_CH0    0x00000007U
834 #define RMT_STATE_CH0_M  (RMT_STATE_CH0_V << RMT_STATE_CH0_S)
835 #define RMT_STATE_CH0_V  0x00000007U
836 #define RMT_STATE_CH0_S  20
837 /** RMT_MEM_OWNER_ERR_CH0 : RO; bitpos: [23]; default: 0;
838  *  This status bit will be set when the ownership of memory block is violated.
839  */
840 #define RMT_MEM_OWNER_ERR_CH0    (BIT(23))
841 #define RMT_MEM_OWNER_ERR_CH0_M  (RMT_MEM_OWNER_ERR_CH0_V << RMT_MEM_OWNER_ERR_CH0_S)
842 #define RMT_MEM_OWNER_ERR_CH0_V  0x00000001U
843 #define RMT_MEM_OWNER_ERR_CH0_S  23
844 /** RMT_MEM_FULL_CH0 : RO; bitpos: [24]; default: 0;
845  *  This status bit will be set if the receiver receives more data than the memory
846  *  allows.
847  */
848 #define RMT_MEM_FULL_CH0    (BIT(24))
849 #define RMT_MEM_FULL_CH0_M  (RMT_MEM_FULL_CH0_V << RMT_MEM_FULL_CH0_S)
850 #define RMT_MEM_FULL_CH0_V  0x00000001U
851 #define RMT_MEM_FULL_CH0_S  24
852 /** RMT_MEM_EMPTY_CH0 : RO; bitpos: [25]; default: 0;
853  *  This status bit will be set when the data to be sent is more than memory allows and
854  *  the wrap mode is disabled.
855  */
856 #define RMT_MEM_EMPTY_CH0    (BIT(25))
857 #define RMT_MEM_EMPTY_CH0_M  (RMT_MEM_EMPTY_CH0_V << RMT_MEM_EMPTY_CH0_S)
858 #define RMT_MEM_EMPTY_CH0_V  0x00000001U
859 #define RMT_MEM_EMPTY_CH0_S  25
860 /** RMT_APB_MEM_WR_ERR_CH0 : RO; bitpos: [26]; default: 0;
861  *  This status bit will be set if the offset address out of memory size when writes
862  *  RAM via APB bus.
863  */
864 #define RMT_APB_MEM_WR_ERR_CH0    (BIT(26))
865 #define RMT_APB_MEM_WR_ERR_CH0_M  (RMT_APB_MEM_WR_ERR_CH0_V << RMT_APB_MEM_WR_ERR_CH0_S)
866 #define RMT_APB_MEM_WR_ERR_CH0_V  0x00000001U
867 #define RMT_APB_MEM_WR_ERR_CH0_S  26
868 /** RMT_APB_MEM_RD_ERR_CH0 : RO; bitpos: [27]; default: 0;
869  *  This status bit will be set if the offset address out of memory size when reads RAM
870  *  via APB bus.
871  */
872 #define RMT_APB_MEM_RD_ERR_CH0    (BIT(27))
873 #define RMT_APB_MEM_RD_ERR_CH0_M  (RMT_APB_MEM_RD_ERR_CH0_V << RMT_APB_MEM_RD_ERR_CH0_S)
874 #define RMT_APB_MEM_RD_ERR_CH0_V  0x00000001U
875 #define RMT_APB_MEM_RD_ERR_CH0_S  27
876 
877 /** RMT_CH2STATUS_REG register
878  *  Channel 2 status register
879  */
880 #define RMT_CH2STATUS_REG (DR_REG_RMT_BASE + 0x38)
881 /** RMT_MEM_WADDR_EX_CH0 : RO; bitpos: [8:0]; default: 0;
882  *  This field records the memory address offset when receiver of channel 2 is using
883  *  the RAM.
884  */
885 #define RMT_MEM_WADDR_EX_CH0    0x000001FFU
886 #define RMT_MEM_WADDR_EX_CH0_M  (RMT_MEM_WADDR_EX_CH0_V << RMT_MEM_WADDR_EX_CH0_S)
887 #define RMT_MEM_WADDR_EX_CH0_V  0x000001FFU
888 #define RMT_MEM_WADDR_EX_CH0_S  0
889 /** RMT_MEM_RADDR_EX_CH0 : RO; bitpos: [18:10]; default: 0;
890  *  This field records the memory address offset when transmitter of channel 2 is using
891  *  the RAM.
892  */
893 #define RMT_MEM_RADDR_EX_CH0    0x000001FFU
894 #define RMT_MEM_RADDR_EX_CH0_M  (RMT_MEM_RADDR_EX_CH0_V << RMT_MEM_RADDR_EX_CH0_S)
895 #define RMT_MEM_RADDR_EX_CH0_V  0x000001FFU
896 #define RMT_MEM_RADDR_EX_CH0_S  10
897 /** RMT_STATE_CH0 : RO; bitpos: [22:20]; default: 0;
898  *  This field records the FSM status of channel 2.
899  */
900 #define RMT_STATE_CH0    0x00000007U
901 #define RMT_STATE_CH0_M  (RMT_STATE_CH0_V << RMT_STATE_CH0_S)
902 #define RMT_STATE_CH0_V  0x00000007U
903 #define RMT_STATE_CH0_S  20
904 /** RMT_MEM_OWNER_ERR_CH0 : RO; bitpos: [23]; default: 0;
905  *  This status bit will be set when the ownership of memory block is violated.
906  */
907 #define RMT_MEM_OWNER_ERR_CH0    (BIT(23))
908 #define RMT_MEM_OWNER_ERR_CH0_M  (RMT_MEM_OWNER_ERR_CH0_V << RMT_MEM_OWNER_ERR_CH0_S)
909 #define RMT_MEM_OWNER_ERR_CH0_V  0x00000001U
910 #define RMT_MEM_OWNER_ERR_CH0_S  23
911 /** RMT_MEM_FULL_CH0 : RO; bitpos: [24]; default: 0;
912  *  This status bit will be set if the receiver receives more data than the memory
913  *  allows.
914  */
915 #define RMT_MEM_FULL_CH0    (BIT(24))
916 #define RMT_MEM_FULL_CH0_M  (RMT_MEM_FULL_CH0_V << RMT_MEM_FULL_CH0_S)
917 #define RMT_MEM_FULL_CH0_V  0x00000001U
918 #define RMT_MEM_FULL_CH0_S  24
919 /** RMT_MEM_EMPTY_CH0 : RO; bitpos: [25]; default: 0;
920  *  This status bit will be set when the data to be sent is more than memory allows and
921  *  the wrap mode is disabled.
922  */
923 #define RMT_MEM_EMPTY_CH0    (BIT(25))
924 #define RMT_MEM_EMPTY_CH0_M  (RMT_MEM_EMPTY_CH0_V << RMT_MEM_EMPTY_CH0_S)
925 #define RMT_MEM_EMPTY_CH0_V  0x00000001U
926 #define RMT_MEM_EMPTY_CH0_S  25
927 /** RMT_APB_MEM_WR_ERR_CH0 : RO; bitpos: [26]; default: 0;
928  *  This status bit will be set if the offset address out of memory size when writes
929  *  RAM via APB bus.
930  */
931 #define RMT_APB_MEM_WR_ERR_CH0    (BIT(26))
932 #define RMT_APB_MEM_WR_ERR_CH0_M  (RMT_APB_MEM_WR_ERR_CH0_V << RMT_APB_MEM_WR_ERR_CH0_S)
933 #define RMT_APB_MEM_WR_ERR_CH0_V  0x00000001U
934 #define RMT_APB_MEM_WR_ERR_CH0_S  26
935 /** RMT_APB_MEM_RD_ERR_CH0 : RO; bitpos: [27]; default: 0;
936  *  This status bit will be set if the offset address out of memory size when reads RAM
937  *  via APB bus.
938  */
939 #define RMT_APB_MEM_RD_ERR_CH0    (BIT(27))
940 #define RMT_APB_MEM_RD_ERR_CH0_M  (RMT_APB_MEM_RD_ERR_CH0_V << RMT_APB_MEM_RD_ERR_CH0_S)
941 #define RMT_APB_MEM_RD_ERR_CH0_V  0x00000001U
942 #define RMT_APB_MEM_RD_ERR_CH0_S  27
943 
944 /** RMT_CH3STATUS_REG register
945  *  Channel 3 status register
946  */
947 #define RMT_CH3STATUS_REG (DR_REG_RMT_BASE + 0x3c)
948 /** RMT_MEM_WADDR_EX_CH0 : RO; bitpos: [8:0]; default: 0;
949  *  This field records the memory address offset when receiver of channel 3 is using
950  *  the RAM.
951  */
952 #define RMT_MEM_WADDR_EX_CH0    0x000001FFU
953 #define RMT_MEM_WADDR_EX_CH0_M  (RMT_MEM_WADDR_EX_CH0_V << RMT_MEM_WADDR_EX_CH0_S)
954 #define RMT_MEM_WADDR_EX_CH0_V  0x000001FFU
955 #define RMT_MEM_WADDR_EX_CH0_S  0
956 /** RMT_MEM_RADDR_EX_CH0 : RO; bitpos: [18:10]; default: 0;
957  *  This field records the memory address offset when transmitter of channel 3 is using
958  *  the RAM.
959  */
960 #define RMT_MEM_RADDR_EX_CH0    0x000001FFU
961 #define RMT_MEM_RADDR_EX_CH0_M  (RMT_MEM_RADDR_EX_CH0_V << RMT_MEM_RADDR_EX_CH0_S)
962 #define RMT_MEM_RADDR_EX_CH0_V  0x000001FFU
963 #define RMT_MEM_RADDR_EX_CH0_S  10
964 /** RMT_STATE_CH0 : RO; bitpos: [22:20]; default: 0;
965  *  This field records the FSM status of channel 3.
966  */
967 #define RMT_STATE_CH0    0x00000007U
968 #define RMT_STATE_CH0_M  (RMT_STATE_CH0_V << RMT_STATE_CH0_S)
969 #define RMT_STATE_CH0_V  0x00000007U
970 #define RMT_STATE_CH0_S  20
971 /** RMT_MEM_OWNER_ERR_CH0 : RO; bitpos: [23]; default: 0;
972  *  This status bit will be set when the ownership of memory block is violated.
973  */
974 #define RMT_MEM_OWNER_ERR_CH0    (BIT(23))
975 #define RMT_MEM_OWNER_ERR_CH0_M  (RMT_MEM_OWNER_ERR_CH0_V << RMT_MEM_OWNER_ERR_CH0_S)
976 #define RMT_MEM_OWNER_ERR_CH0_V  0x00000001U
977 #define RMT_MEM_OWNER_ERR_CH0_S  23
978 /** RMT_MEM_FULL_CH0 : RO; bitpos: [24]; default: 0;
979  *  This status bit will be set if the receiver receives more data than the memory
980  *  allows.
981  */
982 #define RMT_MEM_FULL_CH0    (BIT(24))
983 #define RMT_MEM_FULL_CH0_M  (RMT_MEM_FULL_CH0_V << RMT_MEM_FULL_CH0_S)
984 #define RMT_MEM_FULL_CH0_V  0x00000001U
985 #define RMT_MEM_FULL_CH0_S  24
986 /** RMT_MEM_EMPTY_CH0 : RO; bitpos: [25]; default: 0;
987  *  This status bit will be set when the data to be sent is more than memory allows and
988  *  the wrap mode is disabled.
989  */
990 #define RMT_MEM_EMPTY_CH0    (BIT(25))
991 #define RMT_MEM_EMPTY_CH0_M  (RMT_MEM_EMPTY_CH0_V << RMT_MEM_EMPTY_CH0_S)
992 #define RMT_MEM_EMPTY_CH0_V  0x00000001U
993 #define RMT_MEM_EMPTY_CH0_S  25
994 /** RMT_APB_MEM_WR_ERR_CH0 : RO; bitpos: [26]; default: 0;
995  *  This status bit will be set if the offset address out of memory size when writes
996  *  RAM via APB bus.
997  */
998 #define RMT_APB_MEM_WR_ERR_CH0    (BIT(26))
999 #define RMT_APB_MEM_WR_ERR_CH0_M  (RMT_APB_MEM_WR_ERR_CH0_V << RMT_APB_MEM_WR_ERR_CH0_S)
1000 #define RMT_APB_MEM_WR_ERR_CH0_V  0x00000001U
1001 #define RMT_APB_MEM_WR_ERR_CH0_S  26
1002 /** RMT_APB_MEM_RD_ERR_CH0 : RO; bitpos: [27]; default: 0;
1003  *  This status bit will be set if the offset address out of memory size when reads RAM
1004  *  via APB bus.
1005  */
1006 #define RMT_APB_MEM_RD_ERR_CH0    (BIT(27))
1007 #define RMT_APB_MEM_RD_ERR_CH0_M  (RMT_APB_MEM_RD_ERR_CH0_V << RMT_APB_MEM_RD_ERR_CH0_S)
1008 #define RMT_APB_MEM_RD_ERR_CH0_V  0x00000001U
1009 #define RMT_APB_MEM_RD_ERR_CH0_S  27
1010 
1011 /** RMT_CH0ADDR_REG register
1012  *  Channel 0 address register
1013  */
1014 #define RMT_CH0ADDR_REG (DR_REG_RMT_BASE + 0x40)
1015 /** RMT_APB_MEM_WADDR_CH0 : RO; bitpos: [8:0]; default: 0;
1016  *  This field records the memory address offset when channel 0 writes RAM via APB bus.
1017  */
1018 #define RMT_APB_MEM_WADDR_CH0    0x000001FFU
1019 #define RMT_APB_MEM_WADDR_CH0_M  (RMT_APB_MEM_WADDR_CH0_V << RMT_APB_MEM_WADDR_CH0_S)
1020 #define RMT_APB_MEM_WADDR_CH0_V  0x000001FFU
1021 #define RMT_APB_MEM_WADDR_CH0_S  0
1022 /** RMT_APB_MEM_RADDR_CH0 : RO; bitpos: [18:10]; default: 0;
1023  *  This field records the memory address offset when channel 0 reads RAM via APB bus.
1024  */
1025 #define RMT_APB_MEM_RADDR_CH0    0x000001FFU
1026 #define RMT_APB_MEM_RADDR_CH0_M  (RMT_APB_MEM_RADDR_CH0_V << RMT_APB_MEM_RADDR_CH0_S)
1027 #define RMT_APB_MEM_RADDR_CH0_V  0x000001FFU
1028 #define RMT_APB_MEM_RADDR_CH0_S  10
1029 
1030 /** RMT_CH1ADDR_REG register
1031  *  Channel 1 address register
1032  */
1033 #define RMT_CH1ADDR_REG (DR_REG_RMT_BASE + 0x44)
1034 /** RMT_APB_MEM_WADDR_CH0 : RO; bitpos: [8:0]; default: 0;
1035  *  This field records the memory address offset when channel 1 writes RAM via APB bus.
1036  */
1037 #define RMT_APB_MEM_WADDR_CH0    0x000001FFU
1038 #define RMT_APB_MEM_WADDR_CH0_M  (RMT_APB_MEM_WADDR_CH0_V << RMT_APB_MEM_WADDR_CH0_S)
1039 #define RMT_APB_MEM_WADDR_CH0_V  0x000001FFU
1040 #define RMT_APB_MEM_WADDR_CH0_S  0
1041 /** RMT_APB_MEM_RADDR_CH0 : RO; bitpos: [18:10]; default: 0;
1042  *  This field records the memory address offset when channel 1 reads RAM via APB bus.
1043  */
1044 #define RMT_APB_MEM_RADDR_CH0    0x000001FFU
1045 #define RMT_APB_MEM_RADDR_CH0_M  (RMT_APB_MEM_RADDR_CH0_V << RMT_APB_MEM_RADDR_CH0_S)
1046 #define RMT_APB_MEM_RADDR_CH0_V  0x000001FFU
1047 #define RMT_APB_MEM_RADDR_CH0_S  10
1048 
1049 /** RMT_CH2ADDR_REG register
1050  *  Channel 2 address register
1051  */
1052 #define RMT_CH2ADDR_REG (DR_REG_RMT_BASE + 0x48)
1053 /** RMT_APB_MEM_WADDR_CH0 : RO; bitpos: [8:0]; default: 0;
1054  *  This field records the memory address offset when channel 2 writes RAM via APB bus.
1055  */
1056 #define RMT_APB_MEM_WADDR_CH0    0x000001FFU
1057 #define RMT_APB_MEM_WADDR_CH0_M  (RMT_APB_MEM_WADDR_CH0_V << RMT_APB_MEM_WADDR_CH0_S)
1058 #define RMT_APB_MEM_WADDR_CH0_V  0x000001FFU
1059 #define RMT_APB_MEM_WADDR_CH0_S  0
1060 /** RMT_APB_MEM_RADDR_CH0 : RO; bitpos: [18:10]; default: 0;
1061  *  This field records the memory address offset when channel 2 reads RAM via APB bus.
1062  */
1063 #define RMT_APB_MEM_RADDR_CH0    0x000001FFU
1064 #define RMT_APB_MEM_RADDR_CH0_M  (RMT_APB_MEM_RADDR_CH0_V << RMT_APB_MEM_RADDR_CH0_S)
1065 #define RMT_APB_MEM_RADDR_CH0_V  0x000001FFU
1066 #define RMT_APB_MEM_RADDR_CH0_S  10
1067 
1068 /** RMT_CH3ADDR_REG register
1069  *  Channel 3 address register
1070  */
1071 #define RMT_CH3ADDR_REG (DR_REG_RMT_BASE + 0x4c)
1072 /** RMT_APB_MEM_WADDR_CH0 : RO; bitpos: [8:0]; default: 0;
1073  *  This field records the memory address offset when channel 3 writes RAM via APB bus.
1074  */
1075 #define RMT_APB_MEM_WADDR_CH0    0x000001FFU
1076 #define RMT_APB_MEM_WADDR_CH0_M  (RMT_APB_MEM_WADDR_CH0_V << RMT_APB_MEM_WADDR_CH0_S)
1077 #define RMT_APB_MEM_WADDR_CH0_V  0x000001FFU
1078 #define RMT_APB_MEM_WADDR_CH0_S  0
1079 /** RMT_APB_MEM_RADDR_CH0 : RO; bitpos: [18:10]; default: 0;
1080  *  This field records the memory address offset when channel 3 reads RAM via APB bus.
1081  */
1082 #define RMT_APB_MEM_RADDR_CH0    0x000001FFU
1083 #define RMT_APB_MEM_RADDR_CH0_M  (RMT_APB_MEM_RADDR_CH0_V << RMT_APB_MEM_RADDR_CH0_S)
1084 #define RMT_APB_MEM_RADDR_CH0_V  0x000001FFU
1085 #define RMT_APB_MEM_RADDR_CH0_S  10
1086 
1087 /** RMT_INT_RAW_REG register
1088  *  Raw interrupt status register
1089  */
1090 #define RMT_INT_RAW_REG (DR_REG_RMT_BASE + 0x50)
1091 /** RMT_CH0_TX_END_INT_RAW : RO; bitpos: [0]; default: 0;
1092  *  The interrupt raw bit for channel 0. Triggered when transmitting ends.
1093  */
1094 #define RMT_CH0_TX_END_INT_RAW    (BIT(0))
1095 #define RMT_CH0_TX_END_INT_RAW_M  (RMT_CH0_TX_END_INT_RAW_V << RMT_CH0_TX_END_INT_RAW_S)
1096 #define RMT_CH0_TX_END_INT_RAW_V  0x00000001U
1097 #define RMT_CH0_TX_END_INT_RAW_S  0
1098 /** RMT_CH0_RX_END_INT_RAW : RO; bitpos: [1]; default: 0;
1099  *  The interrupt raw bit for channel 0. Triggered when receiving ends.
1100  */
1101 #define RMT_CH0_RX_END_INT_RAW    (BIT(1))
1102 #define RMT_CH0_RX_END_INT_RAW_M  (RMT_CH0_RX_END_INT_RAW_V << RMT_CH0_RX_END_INT_RAW_S)
1103 #define RMT_CH0_RX_END_INT_RAW_V  0x00000001U
1104 #define RMT_CH0_RX_END_INT_RAW_S  1
1105 /** RMT_CH0_ERR_INT_RAW : RO; bitpos: [2]; default: 0;
1106  *  The interrupt raw bit for channel 0. Triggered when error occurs.
1107  */
1108 #define RMT_CH0_ERR_INT_RAW    (BIT(2))
1109 #define RMT_CH0_ERR_INT_RAW_M  (RMT_CH0_ERR_INT_RAW_V << RMT_CH0_ERR_INT_RAW_S)
1110 #define RMT_CH0_ERR_INT_RAW_V  0x00000001U
1111 #define RMT_CH0_ERR_INT_RAW_S  2
1112 /** RMT_CH1_TX_END_INT_RAW : RO; bitpos: [3]; default: 0;
1113  *  The interrupt raw bit for channel 1. Triggered when transmitting ends.
1114  */
1115 #define RMT_CH1_TX_END_INT_RAW    (BIT(3))
1116 #define RMT_CH1_TX_END_INT_RAW_M  (RMT_CH1_TX_END_INT_RAW_V << RMT_CH1_TX_END_INT_RAW_S)
1117 #define RMT_CH1_TX_END_INT_RAW_V  0x00000001U
1118 #define RMT_CH1_TX_END_INT_RAW_S  3
1119 /** RMT_CH1_RX_END_INT_RAW : RO; bitpos: [4]; default: 0;
1120  *  The interrupt raw bit for channel 1. Triggered when receiving ends.
1121  */
1122 #define RMT_CH1_RX_END_INT_RAW    (BIT(4))
1123 #define RMT_CH1_RX_END_INT_RAW_M  (RMT_CH1_RX_END_INT_RAW_V << RMT_CH1_RX_END_INT_RAW_S)
1124 #define RMT_CH1_RX_END_INT_RAW_V  0x00000001U
1125 #define RMT_CH1_RX_END_INT_RAW_S  4
1126 /** RMT_CH1_ERR_INT_RAW : RO; bitpos: [5]; default: 0;
1127  *  The interrupt raw bit for channel 1. Triggered when error occurs.
1128  */
1129 #define RMT_CH1_ERR_INT_RAW    (BIT(5))
1130 #define RMT_CH1_ERR_INT_RAW_M  (RMT_CH1_ERR_INT_RAW_V << RMT_CH1_ERR_INT_RAW_S)
1131 #define RMT_CH1_ERR_INT_RAW_V  0x00000001U
1132 #define RMT_CH1_ERR_INT_RAW_S  5
1133 /** RMT_CH2_TX_END_INT_RAW : RO; bitpos: [6]; default: 0;
1134  *  The interrupt raw bit for channel 2. Triggered when transmitting ends.
1135  */
1136 #define RMT_CH2_TX_END_INT_RAW    (BIT(6))
1137 #define RMT_CH2_TX_END_INT_RAW_M  (RMT_CH2_TX_END_INT_RAW_V << RMT_CH2_TX_END_INT_RAW_S)
1138 #define RMT_CH2_TX_END_INT_RAW_V  0x00000001U
1139 #define RMT_CH2_TX_END_INT_RAW_S  6
1140 /** RMT_CH2_RX_END_INT_RAW : RO; bitpos: [7]; default: 0;
1141  *  The interrupt raw bit for channel 2. Triggered when receiving ends.
1142  */
1143 #define RMT_CH2_RX_END_INT_RAW    (BIT(7))
1144 #define RMT_CH2_RX_END_INT_RAW_M  (RMT_CH2_RX_END_INT_RAW_V << RMT_CH2_RX_END_INT_RAW_S)
1145 #define RMT_CH2_RX_END_INT_RAW_V  0x00000001U
1146 #define RMT_CH2_RX_END_INT_RAW_S  7
1147 /** RMT_CH2_ERR_INT_RAW : RO; bitpos: [8]; default: 0;
1148  *  The interrupt raw bit for channel 2. Triggered when error occurs.
1149  */
1150 #define RMT_CH2_ERR_INT_RAW    (BIT(8))
1151 #define RMT_CH2_ERR_INT_RAW_M  (RMT_CH2_ERR_INT_RAW_V << RMT_CH2_ERR_INT_RAW_S)
1152 #define RMT_CH2_ERR_INT_RAW_V  0x00000001U
1153 #define RMT_CH2_ERR_INT_RAW_S  8
1154 /** RMT_CH3_TX_END_INT_RAW : RO; bitpos: [9]; default: 0;
1155  *  The interrupt raw bit for channel 3. Triggered when transmitting ends.
1156  */
1157 #define RMT_CH3_TX_END_INT_RAW    (BIT(9))
1158 #define RMT_CH3_TX_END_INT_RAW_M  (RMT_CH3_TX_END_INT_RAW_V << RMT_CH3_TX_END_INT_RAW_S)
1159 #define RMT_CH3_TX_END_INT_RAW_V  0x00000001U
1160 #define RMT_CH3_TX_END_INT_RAW_S  9
1161 /** RMT_CH3_RX_END_INT_RAW : RO; bitpos: [10]; default: 0;
1162  *  The interrupt raw bit for channel 3. Triggered when receiving ends.
1163  */
1164 #define RMT_CH3_RX_END_INT_RAW    (BIT(10))
1165 #define RMT_CH3_RX_END_INT_RAW_M  (RMT_CH3_RX_END_INT_RAW_V << RMT_CH3_RX_END_INT_RAW_S)
1166 #define RMT_CH3_RX_END_INT_RAW_V  0x00000001U
1167 #define RMT_CH3_RX_END_INT_RAW_S  10
1168 /** RMT_CH3_ERR_INT_RAW : RO; bitpos: [11]; default: 0;
1169  *  The interrupt raw bit for channel 3. Triggered when error occurs.
1170  */
1171 #define RMT_CH3_ERR_INT_RAW    (BIT(11))
1172 #define RMT_CH3_ERR_INT_RAW_M  (RMT_CH3_ERR_INT_RAW_V << RMT_CH3_ERR_INT_RAW_S)
1173 #define RMT_CH3_ERR_INT_RAW_V  0x00000001U
1174 #define RMT_CH3_ERR_INT_RAW_S  11
1175 /** RMT_CH0_TX_THR_EVENT_INT_RAW : RO; bitpos: [12]; default: 0;
1176  *  The interrupt raw bit for channel 0. Triggered when transmitter sends more data
1177  *  than configured value.
1178  */
1179 #define RMT_CH0_TX_THR_EVENT_INT_RAW    (BIT(12))
1180 #define RMT_CH0_TX_THR_EVENT_INT_RAW_M  (RMT_CH0_TX_THR_EVENT_INT_RAW_V << RMT_CH0_TX_THR_EVENT_INT_RAW_S)
1181 #define RMT_CH0_TX_THR_EVENT_INT_RAW_V  0x00000001U
1182 #define RMT_CH0_TX_THR_EVENT_INT_RAW_S  12
1183 /** RMT_CH1_TX_THR_EVENT_INT_RAW : RO; bitpos: [13]; default: 0;
1184  *  The interrupt raw bit for channel 1. Triggered when transmitter sends more data
1185  *  than configured value.
1186  */
1187 #define RMT_CH1_TX_THR_EVENT_INT_RAW    (BIT(13))
1188 #define RMT_CH1_TX_THR_EVENT_INT_RAW_M  (RMT_CH1_TX_THR_EVENT_INT_RAW_V << RMT_CH1_TX_THR_EVENT_INT_RAW_S)
1189 #define RMT_CH1_TX_THR_EVENT_INT_RAW_V  0x00000001U
1190 #define RMT_CH1_TX_THR_EVENT_INT_RAW_S  13
1191 /** RMT_CH2_TX_THR_EVENT_INT_RAW : RO; bitpos: [14]; default: 0;
1192  *  The interrupt raw bit for channel 2. Triggered when transmitter sends more data
1193  *  than configured value.
1194  */
1195 #define RMT_CH2_TX_THR_EVENT_INT_RAW    (BIT(14))
1196 #define RMT_CH2_TX_THR_EVENT_INT_RAW_M  (RMT_CH2_TX_THR_EVENT_INT_RAW_V << RMT_CH2_TX_THR_EVENT_INT_RAW_S)
1197 #define RMT_CH2_TX_THR_EVENT_INT_RAW_V  0x00000001U
1198 #define RMT_CH2_TX_THR_EVENT_INT_RAW_S  14
1199 /** RMT_CH3_TX_THR_EVENT_INT_RAW : RO; bitpos: [15]; default: 0;
1200  *  The interrupt raw bit for channel 3. Triggered when transmitter sends more data
1201  *  than configured value.
1202  */
1203 #define RMT_CH3_TX_THR_EVENT_INT_RAW    (BIT(15))
1204 #define RMT_CH3_TX_THR_EVENT_INT_RAW_M  (RMT_CH3_TX_THR_EVENT_INT_RAW_V << RMT_CH3_TX_THR_EVENT_INT_RAW_S)
1205 #define RMT_CH3_TX_THR_EVENT_INT_RAW_V  0x00000001U
1206 #define RMT_CH3_TX_THR_EVENT_INT_RAW_S  15
1207 /** RMT_CH0_TX_LOOP_INT_RAW : RO; bitpos: [16]; default: 0;
1208  *  The interrupt raw bit for channel 0. Triggered when loop counting reaches the
1209  *  configured threshold value.
1210  */
1211 #define RMT_CH0_TX_LOOP_INT_RAW    (BIT(16))
1212 #define RMT_CH0_TX_LOOP_INT_RAW_M  (RMT_CH0_TX_LOOP_INT_RAW_V << RMT_CH0_TX_LOOP_INT_RAW_S)
1213 #define RMT_CH0_TX_LOOP_INT_RAW_V  0x00000001U
1214 #define RMT_CH0_TX_LOOP_INT_RAW_S  16
1215 /** RMT_CH1_TX_LOOP_INT_RAW : RO; bitpos: [17]; default: 0;
1216  *  The interrupt raw bit for channel 1. Triggered when loop counting reaches the
1217  *  configured threshold value.
1218  */
1219 #define RMT_CH1_TX_LOOP_INT_RAW    (BIT(17))
1220 #define RMT_CH1_TX_LOOP_INT_RAW_M  (RMT_CH1_TX_LOOP_INT_RAW_V << RMT_CH1_TX_LOOP_INT_RAW_S)
1221 #define RMT_CH1_TX_LOOP_INT_RAW_V  0x00000001U
1222 #define RMT_CH1_TX_LOOP_INT_RAW_S  17
1223 /** RMT_CH2_TX_LOOP_INT_RAW : RO; bitpos: [18]; default: 0;
1224  *  The interrupt raw bit for channel 2. Triggered when loop counting reaches the
1225  *  configured threshold value.
1226  */
1227 #define RMT_CH2_TX_LOOP_INT_RAW    (BIT(18))
1228 #define RMT_CH2_TX_LOOP_INT_RAW_M  (RMT_CH2_TX_LOOP_INT_RAW_V << RMT_CH2_TX_LOOP_INT_RAW_S)
1229 #define RMT_CH2_TX_LOOP_INT_RAW_V  0x00000001U
1230 #define RMT_CH2_TX_LOOP_INT_RAW_S  18
1231 /** RMT_CH3_TX_LOOP_INT_RAW : RO; bitpos: [19]; default: 0;
1232  *  The interrupt raw bit for channel 3. Triggered when loop counting reaches the
1233  *  configured threshold value.
1234  */
1235 #define RMT_CH3_TX_LOOP_INT_RAW    (BIT(19))
1236 #define RMT_CH3_TX_LOOP_INT_RAW_M  (RMT_CH3_TX_LOOP_INT_RAW_V << RMT_CH3_TX_LOOP_INT_RAW_S)
1237 #define RMT_CH3_TX_LOOP_INT_RAW_V  0x00000001U
1238 #define RMT_CH3_TX_LOOP_INT_RAW_S  19
1239 
1240 /** RMT_INT_ST_REG register
1241  *  Masked interrupt status register
1242  */
1243 #define RMT_INT_ST_REG (DR_REG_RMT_BASE + 0x54)
1244 /** RMT_CH0_TX_END_INT_ST : RO; bitpos: [0]; default: 0;
1245  *  The masked interrupt status bit for RMT_CH0_TX_END_INT.
1246  */
1247 #define RMT_CH0_TX_END_INT_ST    (BIT(0))
1248 #define RMT_CH0_TX_END_INT_ST_M  (RMT_CH0_TX_END_INT_ST_V << RMT_CH0_TX_END_INT_ST_S)
1249 #define RMT_CH0_TX_END_INT_ST_V  0x00000001U
1250 #define RMT_CH0_TX_END_INT_ST_S  0
1251 /** RMT_CH0_RX_END_INT_ST : RO; bitpos: [1]; default: 0;
1252  *  The masked interrupt status bit for RMT_CH0_RX_END_INT.
1253  */
1254 #define RMT_CH0_RX_END_INT_ST    (BIT(1))
1255 #define RMT_CH0_RX_END_INT_ST_M  (RMT_CH0_RX_END_INT_ST_V << RMT_CH0_RX_END_INT_ST_S)
1256 #define RMT_CH0_RX_END_INT_ST_V  0x00000001U
1257 #define RMT_CH0_RX_END_INT_ST_S  1
1258 /** RMT_CH0_ERR_INT_ST : RO; bitpos: [2]; default: 0;
1259  *  The masked interrupt status bit for RMT_CH0_ERR_INT.
1260  */
1261 #define RMT_CH0_ERR_INT_ST    (BIT(2))
1262 #define RMT_CH0_ERR_INT_ST_M  (RMT_CH0_ERR_INT_ST_V << RMT_CH0_ERR_INT_ST_S)
1263 #define RMT_CH0_ERR_INT_ST_V  0x00000001U
1264 #define RMT_CH0_ERR_INT_ST_S  2
1265 /** RMT_CH1_TX_END_INT_ST : RO; bitpos: [3]; default: 0;
1266  *  The masked interrupt status bit for RMT_CH1_TX_END_INT.
1267  */
1268 #define RMT_CH1_TX_END_INT_ST    (BIT(3))
1269 #define RMT_CH1_TX_END_INT_ST_M  (RMT_CH1_TX_END_INT_ST_V << RMT_CH1_TX_END_INT_ST_S)
1270 #define RMT_CH1_TX_END_INT_ST_V  0x00000001U
1271 #define RMT_CH1_TX_END_INT_ST_S  3
1272 /** RMT_CH1_RX_END_INT_ST : RO; bitpos: [4]; default: 0;
1273  *  The masked interrupt status bit for RMT_CH1_RX_END_INT.
1274  */
1275 #define RMT_CH1_RX_END_INT_ST    (BIT(4))
1276 #define RMT_CH1_RX_END_INT_ST_M  (RMT_CH1_RX_END_INT_ST_V << RMT_CH1_RX_END_INT_ST_S)
1277 #define RMT_CH1_RX_END_INT_ST_V  0x00000001U
1278 #define RMT_CH1_RX_END_INT_ST_S  4
1279 /** RMT_CH1_ERR_INT_ST : RO; bitpos: [5]; default: 0;
1280  *  The masked interrupt status bit for RMT_CH1_ERR_INT.
1281  */
1282 #define RMT_CH1_ERR_INT_ST    (BIT(5))
1283 #define RMT_CH1_ERR_INT_ST_M  (RMT_CH1_ERR_INT_ST_V << RMT_CH1_ERR_INT_ST_S)
1284 #define RMT_CH1_ERR_INT_ST_V  0x00000001U
1285 #define RMT_CH1_ERR_INT_ST_S  5
1286 /** RMT_CH2_TX_END_INT_ST : RO; bitpos: [6]; default: 0;
1287  *  The masked interrupt status bit for RMT_CH2_TX_END_INT.
1288  */
1289 #define RMT_CH2_TX_END_INT_ST    (BIT(6))
1290 #define RMT_CH2_TX_END_INT_ST_M  (RMT_CH2_TX_END_INT_ST_V << RMT_CH2_TX_END_INT_ST_S)
1291 #define RMT_CH2_TX_END_INT_ST_V  0x00000001U
1292 #define RMT_CH2_TX_END_INT_ST_S  6
1293 /** RMT_CH2_RX_END_INT_ST : RO; bitpos: [7]; default: 0;
1294  *  The masked interrupt status bit for RMT_CH2_RX_END_INT.
1295  */
1296 #define RMT_CH2_RX_END_INT_ST    (BIT(7))
1297 #define RMT_CH2_RX_END_INT_ST_M  (RMT_CH2_RX_END_INT_ST_V << RMT_CH2_RX_END_INT_ST_S)
1298 #define RMT_CH2_RX_END_INT_ST_V  0x00000001U
1299 #define RMT_CH2_RX_END_INT_ST_S  7
1300 /** RMT_CH2_ERR_INT_ST : RO; bitpos: [8]; default: 0;
1301  *  The masked interrupt status bit for RMT_CH2_ERR_INT.
1302  */
1303 #define RMT_CH2_ERR_INT_ST    (BIT(8))
1304 #define RMT_CH2_ERR_INT_ST_M  (RMT_CH2_ERR_INT_ST_V << RMT_CH2_ERR_INT_ST_S)
1305 #define RMT_CH2_ERR_INT_ST_V  0x00000001U
1306 #define RMT_CH2_ERR_INT_ST_S  8
1307 /** RMT_CH3_TX_END_INT_ST : RO; bitpos: [9]; default: 0;
1308  *  The masked interrupt status bit for RMT_CH3_TX_END_INT.
1309  */
1310 #define RMT_CH3_TX_END_INT_ST    (BIT(9))
1311 #define RMT_CH3_TX_END_INT_ST_M  (RMT_CH3_TX_END_INT_ST_V << RMT_CH3_TX_END_INT_ST_S)
1312 #define RMT_CH3_TX_END_INT_ST_V  0x00000001U
1313 #define RMT_CH3_TX_END_INT_ST_S  9
1314 /** RMT_CH3_RX_END_INT_ST : RO; bitpos: [10]; default: 0;
1315  *  The masked interrupt status bit for RMT_CH3_RX_END_INT.
1316  */
1317 #define RMT_CH3_RX_END_INT_ST    (BIT(10))
1318 #define RMT_CH3_RX_END_INT_ST_M  (RMT_CH3_RX_END_INT_ST_V << RMT_CH3_RX_END_INT_ST_S)
1319 #define RMT_CH3_RX_END_INT_ST_V  0x00000001U
1320 #define RMT_CH3_RX_END_INT_ST_S  10
1321 /** RMT_CH3_ERR_INT_ST : RO; bitpos: [11]; default: 0;
1322  *  The masked interrupt status bit for RMT_CH3_ERR_INT.
1323  */
1324 #define RMT_CH3_ERR_INT_ST    (BIT(11))
1325 #define RMT_CH3_ERR_INT_ST_M  (RMT_CH3_ERR_INT_ST_V << RMT_CH3_ERR_INT_ST_S)
1326 #define RMT_CH3_ERR_INT_ST_V  0x00000001U
1327 #define RMT_CH3_ERR_INT_ST_S  11
1328 /** RMT_CH0_TX_THR_EVENT_INT_ST : RO; bitpos: [12]; default: 0;
1329  *  The masked interrupt status bit for RMT_CH0_TX_THR_EVENT_INT.
1330  */
1331 #define RMT_CH0_TX_THR_EVENT_INT_ST    (BIT(12))
1332 #define RMT_CH0_TX_THR_EVENT_INT_ST_M  (RMT_CH0_TX_THR_EVENT_INT_ST_V << RMT_CH0_TX_THR_EVENT_INT_ST_S)
1333 #define RMT_CH0_TX_THR_EVENT_INT_ST_V  0x00000001U
1334 #define RMT_CH0_TX_THR_EVENT_INT_ST_S  12
1335 /** RMT_CH1_TX_THR_EVENT_INT_ST : RO; bitpos: [13]; default: 0;
1336  *  The masked interrupt status bit for RMT_CH1_TX_THR_EVENT_INT.
1337  */
1338 #define RMT_CH1_TX_THR_EVENT_INT_ST    (BIT(13))
1339 #define RMT_CH1_TX_THR_EVENT_INT_ST_M  (RMT_CH1_TX_THR_EVENT_INT_ST_V << RMT_CH1_TX_THR_EVENT_INT_ST_S)
1340 #define RMT_CH1_TX_THR_EVENT_INT_ST_V  0x00000001U
1341 #define RMT_CH1_TX_THR_EVENT_INT_ST_S  13
1342 /** RMT_CH2_TX_THR_EVENT_INT_ST : RO; bitpos: [14]; default: 0;
1343  *  The masked interrupt status bit for RMT_CH2_TX_THR_EVENT_INT.
1344  */
1345 #define RMT_CH2_TX_THR_EVENT_INT_ST    (BIT(14))
1346 #define RMT_CH2_TX_THR_EVENT_INT_ST_M  (RMT_CH2_TX_THR_EVENT_INT_ST_V << RMT_CH2_TX_THR_EVENT_INT_ST_S)
1347 #define RMT_CH2_TX_THR_EVENT_INT_ST_V  0x00000001U
1348 #define RMT_CH2_TX_THR_EVENT_INT_ST_S  14
1349 /** RMT_CH3_TX_THR_EVENT_INT_ST : RO; bitpos: [15]; default: 0;
1350  *  The masked interrupt status bit for RMT_CH3_TX_THR_EVENT_INT.
1351  */
1352 #define RMT_CH3_TX_THR_EVENT_INT_ST    (BIT(15))
1353 #define RMT_CH3_TX_THR_EVENT_INT_ST_M  (RMT_CH3_TX_THR_EVENT_INT_ST_V << RMT_CH3_TX_THR_EVENT_INT_ST_S)
1354 #define RMT_CH3_TX_THR_EVENT_INT_ST_V  0x00000001U
1355 #define RMT_CH3_TX_THR_EVENT_INT_ST_S  15
1356 /** RMT_CH0_TX_LOOP_INT_ST : RO; bitpos: [16]; default: 0;
1357  *  The masked interrupt status bit for RMT_CH0_TX_LOOP_INT.
1358  */
1359 #define RMT_CH0_TX_LOOP_INT_ST    (BIT(16))
1360 #define RMT_CH0_TX_LOOP_INT_ST_M  (RMT_CH0_TX_LOOP_INT_ST_V << RMT_CH0_TX_LOOP_INT_ST_S)
1361 #define RMT_CH0_TX_LOOP_INT_ST_V  0x00000001U
1362 #define RMT_CH0_TX_LOOP_INT_ST_S  16
1363 /** RMT_CH1_TX_LOOP_INT_ST : RO; bitpos: [17]; default: 0;
1364  *  The masked interrupt status bit for RMT_CH1_TX_LOOP_INT.
1365  */
1366 #define RMT_CH1_TX_LOOP_INT_ST    (BIT(17))
1367 #define RMT_CH1_TX_LOOP_INT_ST_M  (RMT_CH1_TX_LOOP_INT_ST_V << RMT_CH1_TX_LOOP_INT_ST_S)
1368 #define RMT_CH1_TX_LOOP_INT_ST_V  0x00000001U
1369 #define RMT_CH1_TX_LOOP_INT_ST_S  17
1370 /** RMT_CH2_TX_LOOP_INT_ST : RO; bitpos: [18]; default: 0;
1371  *  The masked interrupt status bit for RMT_CH2_TX_LOOP_INT.
1372  */
1373 #define RMT_CH2_TX_LOOP_INT_ST    (BIT(18))
1374 #define RMT_CH2_TX_LOOP_INT_ST_M  (RMT_CH2_TX_LOOP_INT_ST_V << RMT_CH2_TX_LOOP_INT_ST_S)
1375 #define RMT_CH2_TX_LOOP_INT_ST_V  0x00000001U
1376 #define RMT_CH2_TX_LOOP_INT_ST_S  18
1377 /** RMT_CH3_TX_LOOP_INT_ST : RO; bitpos: [19]; default: 0;
1378  *  The masked interrupt status bit for RMT_CH3_TX_LOOP_INT.
1379  */
1380 #define RMT_CH3_TX_LOOP_INT_ST    (BIT(19))
1381 #define RMT_CH3_TX_LOOP_INT_ST_M  (RMT_CH3_TX_LOOP_INT_ST_V << RMT_CH3_TX_LOOP_INT_ST_S)
1382 #define RMT_CH3_TX_LOOP_INT_ST_V  0x00000001U
1383 #define RMT_CH3_TX_LOOP_INT_ST_S  19
1384 
1385 /** RMT_INT_ENA_REG register
1386  *  Interrupt enable register
1387  */
1388 #define RMT_INT_ENA_REG (DR_REG_RMT_BASE + 0x58)
1389 /** RMT_CH0_TX_END_INT_ENA : R/W; bitpos: [0]; default: 0;
1390  *  The interrupt enabled bit for RMT_CH0_TX_END_INT.
1391  */
1392 #define RMT_CH0_TX_END_INT_ENA    (BIT(0))
1393 #define RMT_CH0_TX_END_INT_ENA_M  (RMT_CH0_TX_END_INT_ENA_V << RMT_CH0_TX_END_INT_ENA_S)
1394 #define RMT_CH0_TX_END_INT_ENA_V  0x00000001U
1395 #define RMT_CH0_TX_END_INT_ENA_S  0
1396 /** RMT_CH0_RX_END_INT_ENA : R/W; bitpos: [1]; default: 0;
1397  *  The interrupt enabled bit for RMT_CH0_RX_END_INT.
1398  */
1399 #define RMT_CH0_RX_END_INT_ENA    (BIT(1))
1400 #define RMT_CH0_RX_END_INT_ENA_M  (RMT_CH0_RX_END_INT_ENA_V << RMT_CH0_RX_END_INT_ENA_S)
1401 #define RMT_CH0_RX_END_INT_ENA_V  0x00000001U
1402 #define RMT_CH0_RX_END_INT_ENA_S  1
1403 /** RMT_CH0_ERR_INT_ENA : R/W; bitpos: [2]; default: 0;
1404  *  The interrupt enabled bit for RMT_CH0_ERR_INT.
1405  */
1406 #define RMT_CH0_ERR_INT_ENA    (BIT(2))
1407 #define RMT_CH0_ERR_INT_ENA_M  (RMT_CH0_ERR_INT_ENA_V << RMT_CH0_ERR_INT_ENA_S)
1408 #define RMT_CH0_ERR_INT_ENA_V  0x00000001U
1409 #define RMT_CH0_ERR_INT_ENA_S  2
1410 /** RMT_CH1_TX_END_INT_ENA : R/W; bitpos: [3]; default: 0;
1411  *  The interrupt enabled bit for RMT_CH1_TX_END_INT.
1412  */
1413 #define RMT_CH1_TX_END_INT_ENA    (BIT(3))
1414 #define RMT_CH1_TX_END_INT_ENA_M  (RMT_CH1_TX_END_INT_ENA_V << RMT_CH1_TX_END_INT_ENA_S)
1415 #define RMT_CH1_TX_END_INT_ENA_V  0x00000001U
1416 #define RMT_CH1_TX_END_INT_ENA_S  3
1417 /** RMT_CH1_RX_END_INT_ENA : R/W; bitpos: [4]; default: 0;
1418  *  The interrupt enabled bit for RMT_CH1_RX_END_INT.
1419  */
1420 #define RMT_CH1_RX_END_INT_ENA    (BIT(4))
1421 #define RMT_CH1_RX_END_INT_ENA_M  (RMT_CH1_RX_END_INT_ENA_V << RMT_CH1_RX_END_INT_ENA_S)
1422 #define RMT_CH1_RX_END_INT_ENA_V  0x00000001U
1423 #define RMT_CH1_RX_END_INT_ENA_S  4
1424 /** RMT_CH1_ERR_INT_ENA : R/W; bitpos: [5]; default: 0;
1425  *  The interrupt enabled bit for RMT_CH1_ERR_INT.
1426  */
1427 #define RMT_CH1_ERR_INT_ENA    (BIT(5))
1428 #define RMT_CH1_ERR_INT_ENA_M  (RMT_CH1_ERR_INT_ENA_V << RMT_CH1_ERR_INT_ENA_S)
1429 #define RMT_CH1_ERR_INT_ENA_V  0x00000001U
1430 #define RMT_CH1_ERR_INT_ENA_S  5
1431 /** RMT_CH2_TX_END_INT_ENA : R/W; bitpos: [6]; default: 0;
1432  *  The interrupt enabled bit for RMT_CH2_TX_END_INT.
1433  */
1434 #define RMT_CH2_TX_END_INT_ENA    (BIT(6))
1435 #define RMT_CH2_TX_END_INT_ENA_M  (RMT_CH2_TX_END_INT_ENA_V << RMT_CH2_TX_END_INT_ENA_S)
1436 #define RMT_CH2_TX_END_INT_ENA_V  0x00000001U
1437 #define RMT_CH2_TX_END_INT_ENA_S  6
1438 /** RMT_CH2_RX_END_INT_ENA : R/W; bitpos: [7]; default: 0;
1439  *  The interrupt enabled bit for RMT_CH2_RX_END_INT.
1440  */
1441 #define RMT_CH2_RX_END_INT_ENA    (BIT(7))
1442 #define RMT_CH2_RX_END_INT_ENA_M  (RMT_CH2_RX_END_INT_ENA_V << RMT_CH2_RX_END_INT_ENA_S)
1443 #define RMT_CH2_RX_END_INT_ENA_V  0x00000001U
1444 #define RMT_CH2_RX_END_INT_ENA_S  7
1445 /** RMT_CH2_ERR_INT_ENA : R/W; bitpos: [8]; default: 0;
1446  *  The interrupt enabled bit for RMT_CH2_ERR_INT.
1447  */
1448 #define RMT_CH2_ERR_INT_ENA    (BIT(8))
1449 #define RMT_CH2_ERR_INT_ENA_M  (RMT_CH2_ERR_INT_ENA_V << RMT_CH2_ERR_INT_ENA_S)
1450 #define RMT_CH2_ERR_INT_ENA_V  0x00000001U
1451 #define RMT_CH2_ERR_INT_ENA_S  8
1452 /** RMT_CH3_TX_END_INT_ENA : R/W; bitpos: [9]; default: 0;
1453  *  The interrupt enabled bit for RMT_CH3_TX_END_INT.
1454  */
1455 #define RMT_CH3_TX_END_INT_ENA    (BIT(9))
1456 #define RMT_CH3_TX_END_INT_ENA_M  (RMT_CH3_TX_END_INT_ENA_V << RMT_CH3_TX_END_INT_ENA_S)
1457 #define RMT_CH3_TX_END_INT_ENA_V  0x00000001U
1458 #define RMT_CH3_TX_END_INT_ENA_S  9
1459 /** RMT_CH3_RX_END_INT_ENA : R/W; bitpos: [10]; default: 0;
1460  *  The interrupt enabled bit for RMT_CH3_RX_END_INT.
1461  */
1462 #define RMT_CH3_RX_END_INT_ENA    (BIT(10))
1463 #define RMT_CH3_RX_END_INT_ENA_M  (RMT_CH3_RX_END_INT_ENA_V << RMT_CH3_RX_END_INT_ENA_S)
1464 #define RMT_CH3_RX_END_INT_ENA_V  0x00000001U
1465 #define RMT_CH3_RX_END_INT_ENA_S  10
1466 /** RMT_CH3_ERR_INT_ENA : R/W; bitpos: [11]; default: 0;
1467  *  The interrupt enabled bit for RMT_CH3_ERR_INT.
1468  */
1469 #define RMT_CH3_ERR_INT_ENA    (BIT(11))
1470 #define RMT_CH3_ERR_INT_ENA_M  (RMT_CH3_ERR_INT_ENA_V << RMT_CH3_ERR_INT_ENA_S)
1471 #define RMT_CH3_ERR_INT_ENA_V  0x00000001U
1472 #define RMT_CH3_ERR_INT_ENA_S  11
1473 /** RMT_CH0_TX_THR_EVENT_INT_ENA : R/W; bitpos: [12]; default: 0;
1474  *  The interrupt enabled bit for RMT_CH0_TX_THR_EVENT_INT.
1475  */
1476 #define RMT_CH0_TX_THR_EVENT_INT_ENA    (BIT(12))
1477 #define RMT_CH0_TX_THR_EVENT_INT_ENA_M  (RMT_CH0_TX_THR_EVENT_INT_ENA_V << RMT_CH0_TX_THR_EVENT_INT_ENA_S)
1478 #define RMT_CH0_TX_THR_EVENT_INT_ENA_V  0x00000001U
1479 #define RMT_CH0_TX_THR_EVENT_INT_ENA_S  12
1480 /** RMT_CH1_TX_THR_EVENT_INT_ENA : R/W; bitpos: [13]; default: 0;
1481  *  The interrupt enabled bit for RMT_CH1_TX_THR_EVENT_INT.
1482  */
1483 #define RMT_CH1_TX_THR_EVENT_INT_ENA    (BIT(13))
1484 #define RMT_CH1_TX_THR_EVENT_INT_ENA_M  (RMT_CH1_TX_THR_EVENT_INT_ENA_V << RMT_CH1_TX_THR_EVENT_INT_ENA_S)
1485 #define RMT_CH1_TX_THR_EVENT_INT_ENA_V  0x00000001U
1486 #define RMT_CH1_TX_THR_EVENT_INT_ENA_S  13
1487 /** RMT_CH2_TX_THR_EVENT_INT_ENA : R/W; bitpos: [14]; default: 0;
1488  *  The interrupt enabled bit for RMT_CH2_TX_THR_EVENT_INT.
1489  */
1490 #define RMT_CH2_TX_THR_EVENT_INT_ENA    (BIT(14))
1491 #define RMT_CH2_TX_THR_EVENT_INT_ENA_M  (RMT_CH2_TX_THR_EVENT_INT_ENA_V << RMT_CH2_TX_THR_EVENT_INT_ENA_S)
1492 #define RMT_CH2_TX_THR_EVENT_INT_ENA_V  0x00000001U
1493 #define RMT_CH2_TX_THR_EVENT_INT_ENA_S  14
1494 /** RMT_CH3_TX_THR_EVENT_INT_ENA : R/W; bitpos: [15]; default: 0;
1495  *  The interrupt enabled bit for RMT_CH3_TX_THR_EVENT_INT.
1496  */
1497 #define RMT_CH3_TX_THR_EVENT_INT_ENA    (BIT(15))
1498 #define RMT_CH3_TX_THR_EVENT_INT_ENA_M  (RMT_CH3_TX_THR_EVENT_INT_ENA_V << RMT_CH3_TX_THR_EVENT_INT_ENA_S)
1499 #define RMT_CH3_TX_THR_EVENT_INT_ENA_V  0x00000001U
1500 #define RMT_CH3_TX_THR_EVENT_INT_ENA_S  15
1501 /** RMT_CH0_TX_LOOP_INT_ENA : R/W; bitpos: [16]; default: 0;
1502  *  The interrupt enabled bit for RMT_CH0_TX_LOOP_INT.
1503  */
1504 #define RMT_CH0_TX_LOOP_INT_ENA    (BIT(16))
1505 #define RMT_CH0_TX_LOOP_INT_ENA_M  (RMT_CH0_TX_LOOP_INT_ENA_V << RMT_CH0_TX_LOOP_INT_ENA_S)
1506 #define RMT_CH0_TX_LOOP_INT_ENA_V  0x00000001U
1507 #define RMT_CH0_TX_LOOP_INT_ENA_S  16
1508 /** RMT_CH1_TX_LOOP_INT_ENA : R/W; bitpos: [17]; default: 0;
1509  *  The interrupt enabled bit for RMT_CH1_TX_LOOP_INT.
1510  */
1511 #define RMT_CH1_TX_LOOP_INT_ENA    (BIT(17))
1512 #define RMT_CH1_TX_LOOP_INT_ENA_M  (RMT_CH1_TX_LOOP_INT_ENA_V << RMT_CH1_TX_LOOP_INT_ENA_S)
1513 #define RMT_CH1_TX_LOOP_INT_ENA_V  0x00000001U
1514 #define RMT_CH1_TX_LOOP_INT_ENA_S  17
1515 /** RMT_CH2_TX_LOOP_INT_ENA : R/W; bitpos: [18]; default: 0;
1516  *  The interrupt enabled bit for RMT_CH2_TX_LOOP_INT.
1517  */
1518 #define RMT_CH2_TX_LOOP_INT_ENA    (BIT(18))
1519 #define RMT_CH2_TX_LOOP_INT_ENA_M  (RMT_CH2_TX_LOOP_INT_ENA_V << RMT_CH2_TX_LOOP_INT_ENA_S)
1520 #define RMT_CH2_TX_LOOP_INT_ENA_V  0x00000001U
1521 #define RMT_CH2_TX_LOOP_INT_ENA_S  18
1522 /** RMT_CH3_TX_LOOP_INT_ENA : R/W; bitpos: [19]; default: 0;
1523  *  The interrupt enabled bit for RMT_CH3_TX_LOOP_INT.
1524  */
1525 #define RMT_CH3_TX_LOOP_INT_ENA    (BIT(19))
1526 #define RMT_CH3_TX_LOOP_INT_ENA_M  (RMT_CH3_TX_LOOP_INT_ENA_V << RMT_CH3_TX_LOOP_INT_ENA_S)
1527 #define RMT_CH3_TX_LOOP_INT_ENA_V  0x00000001U
1528 #define RMT_CH3_TX_LOOP_INT_ENA_S  19
1529 
1530 /** RMT_INT_CLR_REG register
1531  *  Interrupt clear register
1532  */
1533 #define RMT_INT_CLR_REG (DR_REG_RMT_BASE + 0x5c)
1534 /** RMT_CH0_TX_END_INT_CLR : WO; bitpos: [0]; default: 0;
1535  *  Set this bit to clear RMT_CH0_TX_END_INT interrupt.
1536  */
1537 #define RMT_CH0_TX_END_INT_CLR    (BIT(0))
1538 #define RMT_CH0_TX_END_INT_CLR_M  (RMT_CH0_TX_END_INT_CLR_V << RMT_CH0_TX_END_INT_CLR_S)
1539 #define RMT_CH0_TX_END_INT_CLR_V  0x00000001U
1540 #define RMT_CH0_TX_END_INT_CLR_S  0
1541 /** RMT_CH0_RX_END_INT_CLR : WO; bitpos: [1]; default: 0;
1542  *  Set this bit to clear RMT_CH0_RX_END_INT interrupt.
1543  */
1544 #define RMT_CH0_RX_END_INT_CLR    (BIT(1))
1545 #define RMT_CH0_RX_END_INT_CLR_M  (RMT_CH0_RX_END_INT_CLR_V << RMT_CH0_RX_END_INT_CLR_S)
1546 #define RMT_CH0_RX_END_INT_CLR_V  0x00000001U
1547 #define RMT_CH0_RX_END_INT_CLR_S  1
1548 /** RMT_CH0_ERR_INT_CLR : WO; bitpos: [2]; default: 0;
1549  *  Set this bit to clear RMT_CH0_ERR_INT interrupt.
1550  */
1551 #define RMT_CH0_ERR_INT_CLR    (BIT(2))
1552 #define RMT_CH0_ERR_INT_CLR_M  (RMT_CH0_ERR_INT_CLR_V << RMT_CH0_ERR_INT_CLR_S)
1553 #define RMT_CH0_ERR_INT_CLR_V  0x00000001U
1554 #define RMT_CH0_ERR_INT_CLR_S  2
1555 /** RMT_CH1_TX_END_INT_CLR : WO; bitpos: [3]; default: 0;
1556  *  Set this bit to clear RMT_CH1_TX_END_INT interrupt.
1557  */
1558 #define RMT_CH1_TX_END_INT_CLR    (BIT(3))
1559 #define RMT_CH1_TX_END_INT_CLR_M  (RMT_CH1_TX_END_INT_CLR_V << RMT_CH1_TX_END_INT_CLR_S)
1560 #define RMT_CH1_TX_END_INT_CLR_V  0x00000001U
1561 #define RMT_CH1_TX_END_INT_CLR_S  3
1562 /** RMT_CH1_RX_END_INT_CLR : WO; bitpos: [4]; default: 0;
1563  *  Set this bit to clear RMT_CH1_RX_END_INT interrupt.
1564  */
1565 #define RMT_CH1_RX_END_INT_CLR    (BIT(4))
1566 #define RMT_CH1_RX_END_INT_CLR_M  (RMT_CH1_RX_END_INT_CLR_V << RMT_CH1_RX_END_INT_CLR_S)
1567 #define RMT_CH1_RX_END_INT_CLR_V  0x00000001U
1568 #define RMT_CH1_RX_END_INT_CLR_S  4
1569 /** RMT_CH1_ERR_INT_CLR : WO; bitpos: [5]; default: 0;
1570  *  Set this bit to clear RMT_CH1_ERR_INT interrupt.
1571  */
1572 #define RMT_CH1_ERR_INT_CLR    (BIT(5))
1573 #define RMT_CH1_ERR_INT_CLR_M  (RMT_CH1_ERR_INT_CLR_V << RMT_CH1_ERR_INT_CLR_S)
1574 #define RMT_CH1_ERR_INT_CLR_V  0x00000001U
1575 #define RMT_CH1_ERR_INT_CLR_S  5
1576 /** RMT_CH2_TX_END_INT_CLR : WO; bitpos: [6]; default: 0;
1577  *  Set this bit to clear RMT_CH2_TX_END_INT interrupt.
1578  */
1579 #define RMT_CH2_TX_END_INT_CLR    (BIT(6))
1580 #define RMT_CH2_TX_END_INT_CLR_M  (RMT_CH2_TX_END_INT_CLR_V << RMT_CH2_TX_END_INT_CLR_S)
1581 #define RMT_CH2_TX_END_INT_CLR_V  0x00000001U
1582 #define RMT_CH2_TX_END_INT_CLR_S  6
1583 /** RMT_CH2_RX_END_INT_CLR : WO; bitpos: [7]; default: 0;
1584  *  Set this bit to clear RMT_CH2_RX_END_INT interrupt.
1585  */
1586 #define RMT_CH2_RX_END_INT_CLR    (BIT(7))
1587 #define RMT_CH2_RX_END_INT_CLR_M  (RMT_CH2_RX_END_INT_CLR_V << RMT_CH2_RX_END_INT_CLR_S)
1588 #define RMT_CH2_RX_END_INT_CLR_V  0x00000001U
1589 #define RMT_CH2_RX_END_INT_CLR_S  7
1590 /** RMT_CH2_ERR_INT_CLR : WO; bitpos: [8]; default: 0;
1591  *  Set this bit to clear RMT_CH2_ERR_INT interrupt.
1592  */
1593 #define RMT_CH2_ERR_INT_CLR    (BIT(8))
1594 #define RMT_CH2_ERR_INT_CLR_M  (RMT_CH2_ERR_INT_CLR_V << RMT_CH2_ERR_INT_CLR_S)
1595 #define RMT_CH2_ERR_INT_CLR_V  0x00000001U
1596 #define RMT_CH2_ERR_INT_CLR_S  8
1597 /** RMT_CH3_TX_END_INT_CLR : WO; bitpos: [9]; default: 0;
1598  *  Set this bit to clear RMT_CH3_TX_END_INT interrupt.
1599  */
1600 #define RMT_CH3_TX_END_INT_CLR    (BIT(9))
1601 #define RMT_CH3_TX_END_INT_CLR_M  (RMT_CH3_TX_END_INT_CLR_V << RMT_CH3_TX_END_INT_CLR_S)
1602 #define RMT_CH3_TX_END_INT_CLR_V  0x00000001U
1603 #define RMT_CH3_TX_END_INT_CLR_S  9
1604 /** RMT_CH3_RX_END_INT_CLR : WO; bitpos: [10]; default: 0;
1605  *  Set this bit to clear RMT_CH3_RX_END_INT interrupt.
1606  */
1607 #define RMT_CH3_RX_END_INT_CLR    (BIT(10))
1608 #define RMT_CH3_RX_END_INT_CLR_M  (RMT_CH3_RX_END_INT_CLR_V << RMT_CH3_RX_END_INT_CLR_S)
1609 #define RMT_CH3_RX_END_INT_CLR_V  0x00000001U
1610 #define RMT_CH3_RX_END_INT_CLR_S  10
1611 /** RMT_CH3_ERR_INT_CLR : WO; bitpos: [11]; default: 0;
1612  *  Set this bit to clear RMT_CH3_ERR_INT interrupt.
1613  */
1614 #define RMT_CH3_ERR_INT_CLR    (BIT(11))
1615 #define RMT_CH3_ERR_INT_CLR_M  (RMT_CH3_ERR_INT_CLR_V << RMT_CH3_ERR_INT_CLR_S)
1616 #define RMT_CH3_ERR_INT_CLR_V  0x00000001U
1617 #define RMT_CH3_ERR_INT_CLR_S  11
1618 /** RMT_CH0_TX_THR_EVENT_INT_CLR : WO; bitpos: [12]; default: 0;
1619  *  Set this bit to clear RMT_CH0_TX_THR_EVENT_INT interrupt.
1620  */
1621 #define RMT_CH0_TX_THR_EVENT_INT_CLR    (BIT(12))
1622 #define RMT_CH0_TX_THR_EVENT_INT_CLR_M  (RMT_CH0_TX_THR_EVENT_INT_CLR_V << RMT_CH0_TX_THR_EVENT_INT_CLR_S)
1623 #define RMT_CH0_TX_THR_EVENT_INT_CLR_V  0x00000001U
1624 #define RMT_CH0_TX_THR_EVENT_INT_CLR_S  12
1625 /** RMT_CH1_TX_THR_EVENT_INT_CLR : WO; bitpos: [13]; default: 0;
1626  *  Set this bit to clear RMT_CH1_TX_THR_EVENT_INT interrupt.
1627  */
1628 #define RMT_CH1_TX_THR_EVENT_INT_CLR    (BIT(13))
1629 #define RMT_CH1_TX_THR_EVENT_INT_CLR_M  (RMT_CH1_TX_THR_EVENT_INT_CLR_V << RMT_CH1_TX_THR_EVENT_INT_CLR_S)
1630 #define RMT_CH1_TX_THR_EVENT_INT_CLR_V  0x00000001U
1631 #define RMT_CH1_TX_THR_EVENT_INT_CLR_S  13
1632 /** RMT_CH2_TX_THR_EVENT_INT_CLR : WO; bitpos: [14]; default: 0;
1633  *  Set this bit to clear RMT_CH2_TX_THR_EVENT_INT interrupt.
1634  */
1635 #define RMT_CH2_TX_THR_EVENT_INT_CLR    (BIT(14))
1636 #define RMT_CH2_TX_THR_EVENT_INT_CLR_M  (RMT_CH2_TX_THR_EVENT_INT_CLR_V << RMT_CH2_TX_THR_EVENT_INT_CLR_S)
1637 #define RMT_CH2_TX_THR_EVENT_INT_CLR_V  0x00000001U
1638 #define RMT_CH2_TX_THR_EVENT_INT_CLR_S  14
1639 /** RMT_CH3_TX_THR_EVENT_INT_CLR : WO; bitpos: [15]; default: 0;
1640  *  Set this bit to clear RMT_CH3_TX_THR_EVENT_INT interrupt.
1641  */
1642 #define RMT_CH3_TX_THR_EVENT_INT_CLR    (BIT(15))
1643 #define RMT_CH3_TX_THR_EVENT_INT_CLR_M  (RMT_CH3_TX_THR_EVENT_INT_CLR_V << RMT_CH3_TX_THR_EVENT_INT_CLR_S)
1644 #define RMT_CH3_TX_THR_EVENT_INT_CLR_V  0x00000001U
1645 #define RMT_CH3_TX_THR_EVENT_INT_CLR_S  15
1646 /** RMT_CH0_TX_LOOP_INT_CLR : WO; bitpos: [16]; default: 0;
1647  *  Set this bit to clear RMT_CH0_TX_LOOP_INT interrupt.
1648  */
1649 #define RMT_CH0_TX_LOOP_INT_CLR    (BIT(16))
1650 #define RMT_CH0_TX_LOOP_INT_CLR_M  (RMT_CH0_TX_LOOP_INT_CLR_V << RMT_CH0_TX_LOOP_INT_CLR_S)
1651 #define RMT_CH0_TX_LOOP_INT_CLR_V  0x00000001U
1652 #define RMT_CH0_TX_LOOP_INT_CLR_S  16
1653 /** RMT_CH1_TX_LOOP_INT_CLR : WO; bitpos: [17]; default: 0;
1654  *  Set this bit to clear RMT_CH1_TX_LOOP_INT interrupt.
1655  */
1656 #define RMT_CH1_TX_LOOP_INT_CLR    (BIT(17))
1657 #define RMT_CH1_TX_LOOP_INT_CLR_M  (RMT_CH1_TX_LOOP_INT_CLR_V << RMT_CH1_TX_LOOP_INT_CLR_S)
1658 #define RMT_CH1_TX_LOOP_INT_CLR_V  0x00000001U
1659 #define RMT_CH1_TX_LOOP_INT_CLR_S  17
1660 /** RMT_CH2_TX_LOOP_INT_CLR : WO; bitpos: [18]; default: 0;
1661  *  Set this bit to clear RMT_CH2_TX_LOOP_INT interrupt.
1662  */
1663 #define RMT_CH2_TX_LOOP_INT_CLR    (BIT(18))
1664 #define RMT_CH2_TX_LOOP_INT_CLR_M  (RMT_CH2_TX_LOOP_INT_CLR_V << RMT_CH2_TX_LOOP_INT_CLR_S)
1665 #define RMT_CH2_TX_LOOP_INT_CLR_V  0x00000001U
1666 #define RMT_CH2_TX_LOOP_INT_CLR_S  18
1667 /** RMT_CH3_TX_LOOP_INT_CLR : WO; bitpos: [19]; default: 0;
1668  *  Set this bit to clear RMT_CH3_TX_LOOP_INT interrupt.
1669  */
1670 #define RMT_CH3_TX_LOOP_INT_CLR    (BIT(19))
1671 #define RMT_CH3_TX_LOOP_INT_CLR_M  (RMT_CH3_TX_LOOP_INT_CLR_V << RMT_CH3_TX_LOOP_INT_CLR_S)
1672 #define RMT_CH3_TX_LOOP_INT_CLR_V  0x00000001U
1673 #define RMT_CH3_TX_LOOP_INT_CLR_S  19
1674 
1675 /** RMT_CH0CARRIER_DUTY_REG register
1676  *  Channel 0 duty cycle configuration register
1677  */
1678 #define RMT_CH0CARRIER_DUTY_REG (DR_REG_RMT_BASE + 0x60)
1679 /** RMT_CARRIER_LOW_CH0 : R/W; bitpos: [15:0]; default: 64;
1680  *  This field is used to configure the clock cycles of carrier wave at low level for
1681  *  channel 0.
1682  */
1683 #define RMT_CARRIER_LOW_CH0    0x0000FFFFU
1684 #define RMT_CARRIER_LOW_CH0_M  (RMT_CARRIER_LOW_CH0_V << RMT_CARRIER_LOW_CH0_S)
1685 #define RMT_CARRIER_LOW_CH0_V  0x0000FFFFU
1686 #define RMT_CARRIER_LOW_CH0_S  0
1687 /** RMT_CARRIER_HIGH_CH0 : R/W; bitpos: [31:16]; default: 64;
1688  *  This field is used to configure the clock cycles of carrier wave at high level for
1689  *  channel 0.
1690  */
1691 #define RMT_CARRIER_HIGH_CH0    0x0000FFFFU
1692 #define RMT_CARRIER_HIGH_CH0_M  (RMT_CARRIER_HIGH_CH0_V << RMT_CARRIER_HIGH_CH0_S)
1693 #define RMT_CARRIER_HIGH_CH0_V  0x0000FFFFU
1694 #define RMT_CARRIER_HIGH_CH0_S  16
1695 
1696 /** RMT_CH1CARRIER_DUTY_REG register
1697  *  Channel 1 duty cycle configuration register
1698  */
1699 #define RMT_CH1CARRIER_DUTY_REG (DR_REG_RMT_BASE + 0x64)
1700 /** RMT_CARRIER_LOW_CH0 : R/W; bitpos: [15:0]; default: 64;
1701  *  This field is used to configure the clock cycles of carrier wave at low level for
1702  *  channel 1.
1703  */
1704 #define RMT_CARRIER_LOW_CH0    0x0000FFFFU
1705 #define RMT_CARRIER_LOW_CH0_M  (RMT_CARRIER_LOW_CH0_V << RMT_CARRIER_LOW_CH0_S)
1706 #define RMT_CARRIER_LOW_CH0_V  0x0000FFFFU
1707 #define RMT_CARRIER_LOW_CH0_S  0
1708 /** RMT_CARRIER_HIGH_CH0 : R/W; bitpos: [31:16]; default: 64;
1709  *  This field is used to configure the clock cycles of carrier wave at high level for
1710  *  channel 1.
1711  */
1712 #define RMT_CARRIER_HIGH_CH0    0x0000FFFFU
1713 #define RMT_CARRIER_HIGH_CH0_M  (RMT_CARRIER_HIGH_CH0_V << RMT_CARRIER_HIGH_CH0_S)
1714 #define RMT_CARRIER_HIGH_CH0_V  0x0000FFFFU
1715 #define RMT_CARRIER_HIGH_CH0_S  16
1716 
1717 /** RMT_CH2CARRIER_DUTY_REG register
1718  *  Channel 2 duty cycle configuration register
1719  */
1720 #define RMT_CH2CARRIER_DUTY_REG (DR_REG_RMT_BASE + 0x68)
1721 /** RMT_CARRIER_LOW_CH0 : R/W; bitpos: [15:0]; default: 64;
1722  *  This field is used to configure the clock cycles of carrier wave at low level for
1723  *  channel 2.
1724  */
1725 #define RMT_CARRIER_LOW_CH0    0x0000FFFFU
1726 #define RMT_CARRIER_LOW_CH0_M  (RMT_CARRIER_LOW_CH0_V << RMT_CARRIER_LOW_CH0_S)
1727 #define RMT_CARRIER_LOW_CH0_V  0x0000FFFFU
1728 #define RMT_CARRIER_LOW_CH0_S  0
1729 /** RMT_CARRIER_HIGH_CH0 : R/W; bitpos: [31:16]; default: 64;
1730  *  This field is used to configure the clock cycles of carrier wave at high level for
1731  *  channel 2.
1732  */
1733 #define RMT_CARRIER_HIGH_CH0    0x0000FFFFU
1734 #define RMT_CARRIER_HIGH_CH0_M  (RMT_CARRIER_HIGH_CH0_V << RMT_CARRIER_HIGH_CH0_S)
1735 #define RMT_CARRIER_HIGH_CH0_V  0x0000FFFFU
1736 #define RMT_CARRIER_HIGH_CH0_S  16
1737 
1738 /** RMT_CH3CARRIER_DUTY_REG register
1739  *  Channel 3 duty cycle configuration register
1740  */
1741 #define RMT_CH3CARRIER_DUTY_REG (DR_REG_RMT_BASE + 0x6c)
1742 /** RMT_CARRIER_LOW_CH0 : R/W; bitpos: [15:0]; default: 64;
1743  *  This field is used to configure the clock cycles of carrier wave at low level for
1744  *  channel 3.
1745  */
1746 #define RMT_CARRIER_LOW_CH0    0x0000FFFFU
1747 #define RMT_CARRIER_LOW_CH0_M  (RMT_CARRIER_LOW_CH0_V << RMT_CARRIER_LOW_CH0_S)
1748 #define RMT_CARRIER_LOW_CH0_V  0x0000FFFFU
1749 #define RMT_CARRIER_LOW_CH0_S  0
1750 /** RMT_CARRIER_HIGH_CH0 : R/W; bitpos: [31:16]; default: 64;
1751  *  This field is used to configure the clock cycles of carrier wave at high level for
1752  *  channel 3.
1753  */
1754 #define RMT_CARRIER_HIGH_CH0    0x0000FFFFU
1755 #define RMT_CARRIER_HIGH_CH0_M  (RMT_CARRIER_HIGH_CH0_V << RMT_CARRIER_HIGH_CH0_S)
1756 #define RMT_CARRIER_HIGH_CH0_V  0x0000FFFFU
1757 #define RMT_CARRIER_HIGH_CH0_S  16
1758 
1759 /** RMT_CH0_TX_LIM_REG register
1760  *  Channel 0 Tx event configuration register
1761  */
1762 #define RMT_CH0_TX_LIM_REG (DR_REG_RMT_BASE + 0x70)
1763 /** RMT_TX_LIM_CH0 : R/W; bitpos: [8:0]; default: 128;
1764  *  This field is used to configure the maximum entries that channel 0 can send out.
1765  *  When RMT_MEM_SIZE_CH0 = 1, this field can be set to any value among 0 ~ 128
1766  *  (64*32/16 = 128). When RMT_MEM_SIZE_CH0 > 1, this field can be set to any value
1767  *  among (0 ~ 128)*RMT_MEM_SIZE_CH0.
1768  */
1769 #define RMT_TX_LIM_CH0    0x000001FFU
1770 #define RMT_TX_LIM_CH0_M  (RMT_TX_LIM_CH0_V << RMT_TX_LIM_CH0_S)
1771 #define RMT_TX_LIM_CH0_V  0x000001FFU
1772 #define RMT_TX_LIM_CH0_S  0
1773 /** RMT_TX_LOOP_NUM_CH0 : R/W; bitpos: [18:9]; default: 0;
1774  *  This field is used to configure the maximum loop times when continuous transmission
1775  *  mode is enabled.
1776  */
1777 #define RMT_TX_LOOP_NUM_CH0    0x000003FFU
1778 #define RMT_TX_LOOP_NUM_CH0_M  (RMT_TX_LOOP_NUM_CH0_V << RMT_TX_LOOP_NUM_CH0_S)
1779 #define RMT_TX_LOOP_NUM_CH0_V  0x000003FFU
1780 #define RMT_TX_LOOP_NUM_CH0_S  9
1781 /** RMT_TX_LOOP_CNT_EN_CH0 : R/W; bitpos: [19]; default: 0;
1782  *  This bit is used to enable loop counting.
1783  */
1784 #define RMT_TX_LOOP_CNT_EN_CH0    (BIT(19))
1785 #define RMT_TX_LOOP_CNT_EN_CH0_M  (RMT_TX_LOOP_CNT_EN_CH0_V << RMT_TX_LOOP_CNT_EN_CH0_S)
1786 #define RMT_TX_LOOP_CNT_EN_CH0_V  0x00000001U
1787 #define RMT_TX_LOOP_CNT_EN_CH0_S  19
1788 /** RMT_LOOP_COUNT_RESET_CH0 : WO; bitpos: [20]; default: 0;
1789  *  This bit is used to reset loop counting when continuous transmission mode is valid.
1790  */
1791 #define RMT_LOOP_COUNT_RESET_CH0    (BIT(20))
1792 #define RMT_LOOP_COUNT_RESET_CH0_M  (RMT_LOOP_COUNT_RESET_CH0_V << RMT_LOOP_COUNT_RESET_CH0_S)
1793 #define RMT_LOOP_COUNT_RESET_CH0_V  0x00000001U
1794 #define RMT_LOOP_COUNT_RESET_CH0_S  20
1795 
1796 /** RMT_CH1_TX_LIM_REG register
1797  *  Channel 1 Tx event configuration register
1798  */
1799 #define RMT_CH1_TX_LIM_REG (DR_REG_RMT_BASE + 0x74)
1800 /** RMT_TX_LIM_CH0 : R/W; bitpos: [8:0]; default: 128;
1801  *  This field is used to configure the maximum entries that channel 1 can send out.
1802  *  When RMT_MEM_SIZE_CH1 = 1, this field can be set to any value among 0 ~ 128
1803  *  (64*32/16 = 128). When RMT_MEM_SIZE_CH1 > 1, this field can be set to any value
1804  *  among (0 ~ 128)*RMT_MEM_SIZE_CH1.
1805  */
1806 #define RMT_TX_LIM_CH0    0x000001FFU
1807 #define RMT_TX_LIM_CH0_M  (RMT_TX_LIM_CH0_V << RMT_TX_LIM_CH0_S)
1808 #define RMT_TX_LIM_CH0_V  0x000001FFU
1809 #define RMT_TX_LIM_CH0_S  0
1810 /** RMT_TX_LOOP_NUM_CH0 : R/W; bitpos: [18:9]; default: 0;
1811  *  This field is used to configure the maximum loop times when continuous transmission
1812  *  mode is enabled.
1813  */
1814 #define RMT_TX_LOOP_NUM_CH0    0x000003FFU
1815 #define RMT_TX_LOOP_NUM_CH0_M  (RMT_TX_LOOP_NUM_CH0_V << RMT_TX_LOOP_NUM_CH0_S)
1816 #define RMT_TX_LOOP_NUM_CH0_V  0x000003FFU
1817 #define RMT_TX_LOOP_NUM_CH0_S  9
1818 /** RMT_TX_LOOP_CNT_EN_CH0 : R/W; bitpos: [19]; default: 0;
1819  *  This bit is used to enable loop counting.
1820  */
1821 #define RMT_TX_LOOP_CNT_EN_CH0    (BIT(19))
1822 #define RMT_TX_LOOP_CNT_EN_CH0_M  (RMT_TX_LOOP_CNT_EN_CH0_V << RMT_TX_LOOP_CNT_EN_CH0_S)
1823 #define RMT_TX_LOOP_CNT_EN_CH0_V  0x00000001U
1824 #define RMT_TX_LOOP_CNT_EN_CH0_S  19
1825 /** RMT_LOOP_COUNT_RESET_CH0 : WO; bitpos: [20]; default: 0;
1826  *  This bit is used to reset loop counting when continuous transmission mode is valid.
1827  */
1828 #define RMT_LOOP_COUNT_RESET_CH0    (BIT(20))
1829 #define RMT_LOOP_COUNT_RESET_CH0_M  (RMT_LOOP_COUNT_RESET_CH0_V << RMT_LOOP_COUNT_RESET_CH0_S)
1830 #define RMT_LOOP_COUNT_RESET_CH0_V  0x00000001U
1831 #define RMT_LOOP_COUNT_RESET_CH0_S  20
1832 
1833 /** RMT_CH2_TX_LIM_REG register
1834  *  Channel 2 Tx event configuration register
1835  */
1836 #define RMT_CH2_TX_LIM_REG (DR_REG_RMT_BASE + 0x78)
1837 /** RMT_TX_LIM_CH0 : R/W; bitpos: [8:0]; default: 128;
1838  *  This field is used to configure the maximum entries that channel 2 can send out.
1839  *  When RMT_MEM_SIZE_CH2 = 1, this field can be set to any value among 0 ~ 128
1840  *  (64*32/16 = 128). When RMT_MEM_SIZE_CH2 > 1, this field can be set to any value
1841  *  among (0 ~ 128)*RMT_MEM_SIZE_CH2.
1842  */
1843 #define RMT_TX_LIM_CH0    0x000001FFU
1844 #define RMT_TX_LIM_CH0_M  (RMT_TX_LIM_CH0_V << RMT_TX_LIM_CH0_S)
1845 #define RMT_TX_LIM_CH0_V  0x000001FFU
1846 #define RMT_TX_LIM_CH0_S  0
1847 /** RMT_TX_LOOP_NUM_CH0 : R/W; bitpos: [18:9]; default: 0;
1848  *  This field is used to configure the maximum loop times when continuous transmission
1849  *  mode is enabled.
1850  */
1851 #define RMT_TX_LOOP_NUM_CH0    0x000003FFU
1852 #define RMT_TX_LOOP_NUM_CH0_M  (RMT_TX_LOOP_NUM_CH0_V << RMT_TX_LOOP_NUM_CH0_S)
1853 #define RMT_TX_LOOP_NUM_CH0_V  0x000003FFU
1854 #define RMT_TX_LOOP_NUM_CH0_S  9
1855 /** RMT_TX_LOOP_CNT_EN_CH0 : R/W; bitpos: [19]; default: 0;
1856  *  This bit is used to enable loop counting.
1857  */
1858 #define RMT_TX_LOOP_CNT_EN_CH0    (BIT(19))
1859 #define RMT_TX_LOOP_CNT_EN_CH0_M  (RMT_TX_LOOP_CNT_EN_CH0_V << RMT_TX_LOOP_CNT_EN_CH0_S)
1860 #define RMT_TX_LOOP_CNT_EN_CH0_V  0x00000001U
1861 #define RMT_TX_LOOP_CNT_EN_CH0_S  19
1862 /** RMT_LOOP_COUNT_RESET_CH0 : WO; bitpos: [20]; default: 0;
1863  *  This bit is used to reset loop counting when continuous transmission mode is valid.
1864  */
1865 #define RMT_LOOP_COUNT_RESET_CH0    (BIT(20))
1866 #define RMT_LOOP_COUNT_RESET_CH0_M  (RMT_LOOP_COUNT_RESET_CH0_V << RMT_LOOP_COUNT_RESET_CH0_S)
1867 #define RMT_LOOP_COUNT_RESET_CH0_V  0x00000001U
1868 #define RMT_LOOP_COUNT_RESET_CH0_S  20
1869 
1870 /** RMT_CH3_TX_LIM_REG register
1871  *  Channel 3 Tx event configuration register
1872  */
1873 #define RMT_CH3_TX_LIM_REG (DR_REG_RMT_BASE + 0x7c)
1874 /** RMT_TX_LIM_CH0 : R/W; bitpos: [8:0]; default: 128;
1875  *  This field is used to configure the maximum entries that channel 3 can send out.
1876  *  When RMT_MEM_SIZE_CH3 = 1, this field can be set to any value among 0 ~ 128
1877  *  (64*32/16 = 128). When RMT_MEM_SIZE_CH3 > 1, this field can be set to any value
1878  *  among (0 ~ 128)*RMT_MEM_SIZE_CH3.
1879  */
1880 #define RMT_TX_LIM_CH0    0x000001FFU
1881 #define RMT_TX_LIM_CH0_M  (RMT_TX_LIM_CH0_V << RMT_TX_LIM_CH0_S)
1882 #define RMT_TX_LIM_CH0_V  0x000001FFU
1883 #define RMT_TX_LIM_CH0_S  0
1884 /** RMT_TX_LOOP_NUM_CH0 : R/W; bitpos: [18:9]; default: 0;
1885  *  This field is used to configure the maximum loop times when continuous transmission
1886  *  mode is enabled.
1887  */
1888 #define RMT_TX_LOOP_NUM_CH0    0x000003FFU
1889 #define RMT_TX_LOOP_NUM_CH0_M  (RMT_TX_LOOP_NUM_CH0_V << RMT_TX_LOOP_NUM_CH0_S)
1890 #define RMT_TX_LOOP_NUM_CH0_V  0x000003FFU
1891 #define RMT_TX_LOOP_NUM_CH0_S  9
1892 /** RMT_TX_LOOP_CNT_EN_CH0 : R/W; bitpos: [19]; default: 0;
1893  *  This bit is used to enable loop counting.
1894  */
1895 #define RMT_TX_LOOP_CNT_EN_CH0    (BIT(19))
1896 #define RMT_TX_LOOP_CNT_EN_CH0_M  (RMT_TX_LOOP_CNT_EN_CH0_V << RMT_TX_LOOP_CNT_EN_CH0_S)
1897 #define RMT_TX_LOOP_CNT_EN_CH0_V  0x00000001U
1898 #define RMT_TX_LOOP_CNT_EN_CH0_S  19
1899 /** RMT_LOOP_COUNT_RESET_CH0 : WO; bitpos: [20]; default: 0;
1900  *  This bit is used to reset loop counting when continuous transmission mode is valid.
1901  */
1902 #define RMT_LOOP_COUNT_RESET_CH0    (BIT(20))
1903 #define RMT_LOOP_COUNT_RESET_CH0_M  (RMT_LOOP_COUNT_RESET_CH0_V << RMT_LOOP_COUNT_RESET_CH0_S)
1904 #define RMT_LOOP_COUNT_RESET_CH0_V  0x00000001U
1905 #define RMT_LOOP_COUNT_RESET_CH0_S  20
1906 
1907 /** RMT_APB_CONF_REG register
1908  *  RMT APB configuration register
1909  */
1910 #define RMT_APB_CONF_REG (DR_REG_RMT_BASE + 0x80)
1911 /** RMT_APB_FIFO_MASK : R/W; bitpos: [0]; default: 0;
1912  *  1'h1: Access memory directly.  1'h0: access memory via APB FIFO.
1913  */
1914 #define RMT_APB_FIFO_MASK    (BIT(0))
1915 #define RMT_APB_FIFO_MASK_M  (RMT_APB_FIFO_MASK_V << RMT_APB_FIFO_MASK_S)
1916 #define RMT_APB_FIFO_MASK_V  0x00000001U
1917 #define RMT_APB_FIFO_MASK_S  0
1918 /** RMT_MEM_TX_WRAP_EN : R/W; bitpos: [1]; default: 0;
1919  *  Set this bit to enable wrap mode.
1920  */
1921 #define RMT_MEM_TX_WRAP_EN    (BIT(1))
1922 #define RMT_MEM_TX_WRAP_EN_M  (RMT_MEM_TX_WRAP_EN_V << RMT_MEM_TX_WRAP_EN_S)
1923 #define RMT_MEM_TX_WRAP_EN_V  0x00000001U
1924 #define RMT_MEM_TX_WRAP_EN_S  1
1925 /** RMT_MEM_CLK_FORCE_ON : R/W; bitpos: [2]; default: 1;
1926  *  Set this bit to enable the clock for RAM when RMT module starts working, disable
1927  *  this clock when RMT stops working, to achieve low-power scheme.
1928  */
1929 #define RMT_MEM_CLK_FORCE_ON    (BIT(2))
1930 #define RMT_MEM_CLK_FORCE_ON_M  (RMT_MEM_CLK_FORCE_ON_V << RMT_MEM_CLK_FORCE_ON_S)
1931 #define RMT_MEM_CLK_FORCE_ON_V  0x00000001U
1932 #define RMT_MEM_CLK_FORCE_ON_S  2
1933 /** RMT_MEM_FORCE_PD : R/W; bitpos: [3]; default: 0;
1934  *  Set this bit to power down RMT memory.
1935  */
1936 #define RMT_MEM_FORCE_PD    (BIT(3))
1937 #define RMT_MEM_FORCE_PD_M  (RMT_MEM_FORCE_PD_V << RMT_MEM_FORCE_PD_S)
1938 #define RMT_MEM_FORCE_PD_V  0x00000001U
1939 #define RMT_MEM_FORCE_PD_S  3
1940 /** RMT_MEM_FORCE_PU : R/W; bitpos: [4]; default: 0;
1941  *  1: Disable RAM's Light-sleep power down function. 0: power down RMT RAM when RMT is
1942  *  in Light-sleep mode.
1943  */
1944 #define RMT_MEM_FORCE_PU    (BIT(4))
1945 #define RMT_MEM_FORCE_PU_M  (RMT_MEM_FORCE_PU_V << RMT_MEM_FORCE_PU_S)
1946 #define RMT_MEM_FORCE_PU_V  0x00000001U
1947 #define RMT_MEM_FORCE_PU_S  4
1948 /** RMT_CLK_EN : R/W; bitpos: [31]; default: 0;
1949  *  Clock gating enable bit for RMT registers to achieve low-power scheme. 1: Power up
1950  *  drive clock for RMT registers. 0: Power down drive clock for RMT registers.
1951  */
1952 #define RMT_CLK_EN    (BIT(31))
1953 #define RMT_CLK_EN_M  (RMT_CLK_EN_V << RMT_CLK_EN_S)
1954 #define RMT_CLK_EN_V  0x00000001U
1955 #define RMT_CLK_EN_S  31
1956 
1957 /** RMT_TX_SIM_REG register
1958  *  Enable RMT simultaneous transmission
1959  */
1960 #define RMT_TX_SIM_REG (DR_REG_RMT_BASE + 0x84)
1961 /** RMT_TX_SIM_CH0 : R/W; bitpos: [0]; default: 0;
1962  *  Set this bit to enable channel 0 to start sending data simultaneously with other
1963  *  enabled channels.
1964  */
1965 #define RMT_TX_SIM_CH0    (BIT(0))
1966 #define RMT_TX_SIM_CH0_M  (RMT_TX_SIM_CH0_V << RMT_TX_SIM_CH0_S)
1967 #define RMT_TX_SIM_CH0_V  0x00000001U
1968 #define RMT_TX_SIM_CH0_S  0
1969 /** RMT_TX_SIM_CH1 : R/W; bitpos: [1]; default: 0;
1970  *  Set this bit to enable channel 1 to start sending data simultaneously with other
1971  *  enabled channels.
1972  */
1973 #define RMT_TX_SIM_CH1    (BIT(1))
1974 #define RMT_TX_SIM_CH1_M  (RMT_TX_SIM_CH1_V << RMT_TX_SIM_CH1_S)
1975 #define RMT_TX_SIM_CH1_V  0x00000001U
1976 #define RMT_TX_SIM_CH1_S  1
1977 /** RMT_TX_SIM_CH2 : R/W; bitpos: [2]; default: 0;
1978  *  Set this bit to enable channel 2 to start sending data simultaneously with other
1979  *  enabled channels.
1980  */
1981 #define RMT_TX_SIM_CH2    (BIT(2))
1982 #define RMT_TX_SIM_CH2_M  (RMT_TX_SIM_CH2_V << RMT_TX_SIM_CH2_S)
1983 #define RMT_TX_SIM_CH2_V  0x00000001U
1984 #define RMT_TX_SIM_CH2_S  2
1985 /** RMT_TX_SIM_CH3 : R/W; bitpos: [3]; default: 0;
1986  *  Set this bit to enable channel 3 to start sending data simultaneously with other
1987  *  enabled channels.
1988  */
1989 #define RMT_TX_SIM_CH3    (BIT(3))
1990 #define RMT_TX_SIM_CH3_M  (RMT_TX_SIM_CH3_V << RMT_TX_SIM_CH3_S)
1991 #define RMT_TX_SIM_CH3_V  0x00000001U
1992 #define RMT_TX_SIM_CH3_S  3
1993 /** RMT_TX_SIM_EN : R/W; bitpos: [4]; default: 0;
1994  *  This bit is used to enable multiple channels to start sending data simultaneously.
1995  */
1996 #define RMT_TX_SIM_EN    (BIT(4))
1997 #define RMT_TX_SIM_EN_M  (RMT_TX_SIM_EN_V << RMT_TX_SIM_EN_S)
1998 #define RMT_TX_SIM_EN_V  0x00000001U
1999 #define RMT_TX_SIM_EN_S  4
2000 
2001 /** RMT_REF_CNT_RST_REG register
2002  *  RMT clock divider reset register
2003  */
2004 #define RMT_REF_CNT_RST_REG (DR_REG_RMT_BASE + 0x88)
2005 /** RMT_REF_CNT_RST_CH0 : R/W; bitpos: [0]; default: 0;
2006  *  This bit is used to reset the clock divider of channel 0.
2007  */
2008 #define RMT_REF_CNT_RST_CH0    (BIT(0))
2009 #define RMT_REF_CNT_RST_CH0_M  (RMT_REF_CNT_RST_CH0_V << RMT_REF_CNT_RST_CH0_S)
2010 #define RMT_REF_CNT_RST_CH0_V  0x00000001U
2011 #define RMT_REF_CNT_RST_CH0_S  0
2012 /** RMT_REF_CNT_RST_CH1 : R/W; bitpos: [1]; default: 0;
2013  *  This bit is used to reset the clock divider of channel 1.
2014  */
2015 #define RMT_REF_CNT_RST_CH1    (BIT(1))
2016 #define RMT_REF_CNT_RST_CH1_M  (RMT_REF_CNT_RST_CH1_V << RMT_REF_CNT_RST_CH1_S)
2017 #define RMT_REF_CNT_RST_CH1_V  0x00000001U
2018 #define RMT_REF_CNT_RST_CH1_S  1
2019 /** RMT_REF_CNT_RST_CH2 : R/W; bitpos: [2]; default: 0;
2020  *  This bit is used to reset the clock divider of channel 2.
2021  */
2022 #define RMT_REF_CNT_RST_CH2    (BIT(2))
2023 #define RMT_REF_CNT_RST_CH2_M  (RMT_REF_CNT_RST_CH2_V << RMT_REF_CNT_RST_CH2_S)
2024 #define RMT_REF_CNT_RST_CH2_V  0x00000001U
2025 #define RMT_REF_CNT_RST_CH2_S  2
2026 /** RMT_REF_CNT_RST_CH3 : R/W; bitpos: [3]; default: 0;
2027  *  This bit is used to reset the clock divider of channel 3.
2028  */
2029 #define RMT_REF_CNT_RST_CH3    (BIT(3))
2030 #define RMT_REF_CNT_RST_CH3_M  (RMT_REF_CNT_RST_CH3_V << RMT_REF_CNT_RST_CH3_S)
2031 #define RMT_REF_CNT_RST_CH3_V  0x00000001U
2032 #define RMT_REF_CNT_RST_CH3_S  3
2033 
2034 /** RMT_CH0_RX_CARRIER_RM_REG register
2035  *  Channel 0 carrier remove register
2036  */
2037 #define RMT_CH0_RX_CARRIER_RM_REG (DR_REG_RMT_BASE + 0x8c)
2038 /** RMT_CARRIER_LOW_THRES_CH0 : R/W; bitpos: [15:0]; default: 0;
2039  *  The low level period in carrier modulation mode is (RMT_CARRIER_LOW_THRES_CH0 + 1)
2040  *  clock cycles for channel 0.
2041  */
2042 #define RMT_CARRIER_LOW_THRES_CH0    0x0000FFFFU
2043 #define RMT_CARRIER_LOW_THRES_CH0_M  (RMT_CARRIER_LOW_THRES_CH0_V << RMT_CARRIER_LOW_THRES_CH0_S)
2044 #define RMT_CARRIER_LOW_THRES_CH0_V  0x0000FFFFU
2045 #define RMT_CARRIER_LOW_THRES_CH0_S  0
2046 /** RMT_CARRIER_HIGH_THRES_CH0 : R/W; bitpos: [31:16]; default: 0;
2047  *  The high level period in carrier modulation mode is (RMT_CARRIER_HIGH_THRES_CH0 +
2048  *  1) clock cycles for channel 0.
2049  */
2050 #define RMT_CARRIER_HIGH_THRES_CH0    0x0000FFFFU
2051 #define RMT_CARRIER_HIGH_THRES_CH0_M  (RMT_CARRIER_HIGH_THRES_CH0_V << RMT_CARRIER_HIGH_THRES_CH0_S)
2052 #define RMT_CARRIER_HIGH_THRES_CH0_V  0x0000FFFFU
2053 #define RMT_CARRIER_HIGH_THRES_CH0_S  16
2054 
2055 /** RMT_CH1_RX_CARRIER_RM_REG register
2056  *  Channel 1 carrier remove register
2057  */
2058 #define RMT_CH1_RX_CARRIER_RM_REG (DR_REG_RMT_BASE + 0x90)
2059 /** RMT_CARRIER_LOW_THRES_CH0 : R/W; bitpos: [15:0]; default: 0;
2060  *  The low level period in carrier modulation mode is (RMT_CARRIER_LOW_THRES_CH1 + 1)
2061  *  clock cycles for channel 1.
2062  */
2063 #define RMT_CARRIER_LOW_THRES_CH0    0x0000FFFFU
2064 #define RMT_CARRIER_LOW_THRES_CH0_M  (RMT_CARRIER_LOW_THRES_CH0_V << RMT_CARRIER_LOW_THRES_CH0_S)
2065 #define RMT_CARRIER_LOW_THRES_CH0_V  0x0000FFFFU
2066 #define RMT_CARRIER_LOW_THRES_CH0_S  0
2067 /** RMT_CARRIER_HIGH_THRES_CH0 : R/W; bitpos: [31:16]; default: 0;
2068  *  The high level period in carrier modulation mode is (RMT_CARRIER_HIGH_THRES_CH1 +
2069  *  1) clock cycles for channel 1.
2070  */
2071 #define RMT_CARRIER_HIGH_THRES_CH0    0x0000FFFFU
2072 #define RMT_CARRIER_HIGH_THRES_CH0_M  (RMT_CARRIER_HIGH_THRES_CH0_V << RMT_CARRIER_HIGH_THRES_CH0_S)
2073 #define RMT_CARRIER_HIGH_THRES_CH0_V  0x0000FFFFU
2074 #define RMT_CARRIER_HIGH_THRES_CH0_S  16
2075 
2076 /** RMT_CH2_RX_CARRIER_RM_REG register
2077  *  Channel 2 carrier remove register
2078  */
2079 #define RMT_CH2_RX_CARRIER_RM_REG (DR_REG_RMT_BASE + 0x94)
2080 /** RMT_CARRIER_LOW_THRES_CH0 : R/W; bitpos: [15:0]; default: 0;
2081  *  The low level period in carrier modulation mode is (RMT_CARRIER_LOW_THRES_CH2 + 1)
2082  *  clock cycles for channel 2.
2083  */
2084 #define RMT_CARRIER_LOW_THRES_CH0    0x0000FFFFU
2085 #define RMT_CARRIER_LOW_THRES_CH0_M  (RMT_CARRIER_LOW_THRES_CH0_V << RMT_CARRIER_LOW_THRES_CH0_S)
2086 #define RMT_CARRIER_LOW_THRES_CH0_V  0x0000FFFFU
2087 #define RMT_CARRIER_LOW_THRES_CH0_S  0
2088 /** RMT_CARRIER_HIGH_THRES_CH0 : R/W; bitpos: [31:16]; default: 0;
2089  *  The high level period in carrier modulation mode is (RMT_CARRIER_HIGH_THRES_CH2 +
2090  *  1) clock cycles for channel 2.
2091  */
2092 #define RMT_CARRIER_HIGH_THRES_CH0    0x0000FFFFU
2093 #define RMT_CARRIER_HIGH_THRES_CH0_M  (RMT_CARRIER_HIGH_THRES_CH0_V << RMT_CARRIER_HIGH_THRES_CH0_S)
2094 #define RMT_CARRIER_HIGH_THRES_CH0_V  0x0000FFFFU
2095 #define RMT_CARRIER_HIGH_THRES_CH0_S  16
2096 
2097 /** RMT_CH3_RX_CARRIER_RM_REG register
2098  *  Channel 3 carrier remove register
2099  */
2100 #define RMT_CH3_RX_CARRIER_RM_REG (DR_REG_RMT_BASE + 0x98)
2101 /** RMT_CARRIER_LOW_THRES_CH0 : R/W; bitpos: [15:0]; default: 0;
2102  *  The low level period in carrier modulation mode is (RMT_CARRIER_LOW_THRES_CH3 + 1)
2103  *  clock cycles for channel 3.
2104  */
2105 #define RMT_CARRIER_LOW_THRES_CH0    0x0000FFFFU
2106 #define RMT_CARRIER_LOW_THRES_CH0_M  (RMT_CARRIER_LOW_THRES_CH0_V << RMT_CARRIER_LOW_THRES_CH0_S)
2107 #define RMT_CARRIER_LOW_THRES_CH0_V  0x0000FFFFU
2108 #define RMT_CARRIER_LOW_THRES_CH0_S  0
2109 /** RMT_CARRIER_HIGH_THRES_CH0 : R/W; bitpos: [31:16]; default: 0;
2110  *  The high level period in carrier modulation mode is (RMT_CARRIER_HIGH_THRES_CH3 +
2111  *  1) clock cycles for channel 3.
2112  */
2113 #define RMT_CARRIER_HIGH_THRES_CH0    0x0000FFFFU
2114 #define RMT_CARRIER_HIGH_THRES_CH0_M  (RMT_CARRIER_HIGH_THRES_CH0_V << RMT_CARRIER_HIGH_THRES_CH0_S)
2115 #define RMT_CARRIER_HIGH_THRES_CH0_V  0x0000FFFFU
2116 #define RMT_CARRIER_HIGH_THRES_CH0_S  16
2117 
2118 /** RMT_DATE_REG register
2119  *  Version control register
2120  */
2121 #define RMT_DATE_REG (DR_REG_RMT_BASE + 0xfc)
2122 /** RMT_DATE : R/W; bitpos: [31:0]; default: 419898881;
2123  *  Version control register
2124  */
2125 #define RMT_DATE    0xFFFFFFFFU
2126 #define RMT_DATE_M  (RMT_DATE_V << RMT_DATE_S)
2127 #define RMT_DATE_V  0xFFFFFFFFU
2128 #define RMT_DATE_S  0
2129 
2130 #ifdef __cplusplus
2131 }
2132 #endif
2133