RTEMS
6.3
Toggle main menu visibility
Loading...
Searching...
No Matches
bsps
arm
atsam
include
libchip
include
samv71
component
component_twihs.h
1
/* ---------------------------------------------------------------------------- */
2
/* Atmel Microcontroller Software Support */
3
/* SAM Software Package License */
4
/* ---------------------------------------------------------------------------- */
5
/* Copyright (c) 2015, Atmel Corporation */
6
/* */
7
/* All rights reserved. */
8
/* */
9
/* Redistribution and use in source and binary forms, with or without */
10
/* modification, are permitted provided that the following condition is met: */
11
/* */
12
/* - Redistributions of source code must retain the above copyright notice, */
13
/* this list of conditions and the disclaimer below. */
14
/* */
15
/* Atmel's name may not be used to endorse or promote products derived from */
16
/* this software without specific prior written permission. */
17
/* */
18
/* DISCLAIMER: THIS SOFTWARE IS PROVIDED BY ATMEL "AS IS" AND ANY EXPRESS OR */
19
/* IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES OF */
20
/* MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NON-INFRINGEMENT ARE */
21
/* DISCLAIMED. IN NO EVENT SHALL ATMEL BE LIABLE FOR ANY DIRECT, INDIRECT, */
22
/* INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT */
23
/* LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, */
24
/* OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF */
25
/* LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING */
26
/* NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, */
27
/* EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE. */
28
/* ---------------------------------------------------------------------------- */
29
30
#ifndef _SAMV71_TWIHS_COMPONENT_
31
#define _SAMV71_TWIHS_COMPONENT_
32
33
/* ============================================================================= */
35
/* ============================================================================= */
38
39
#if !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__))
41
typedef
struct
{
42
__O
uint32_t TWIHS_CR;
43
__IO
uint32_t TWIHS_MMR;
44
__IO
uint32_t TWIHS_SMR;
45
__IO
uint32_t TWIHS_IADR;
46
__IO
uint32_t TWIHS_CWGR;
47
__I
uint32_t Reserved1[3];
48
__I
uint32_t TWIHS_SR;
49
__O
uint32_t TWIHS_IER;
50
__O
uint32_t TWIHS_IDR;
51
__I
uint32_t TWIHS_IMR;
52
__I
uint32_t TWIHS_RHR;
53
__O
uint32_t TWIHS_THR;
54
__IO
uint32_t TWIHS_SMBTR;
55
__I
uint32_t Reserved2[2];
56
__IO
uint32_t TWIHS_FILTR;
57
__I
uint32_t Reserved3[1];
58
__IO
uint32_t TWIHS_SWMR;
59
__I
uint32_t Reserved4[32];
60
__I
uint32_t
TWIHS_DR
;
61
__I
uint32_t Reserved5[4];
62
__IO
uint32_t
TWIHS_WPMR
;
63
__I
uint32_t
TWIHS_WPSR
;
64
__I
uint32_t Reserved6[4];
65
__I
uint32_t
TWIHS_VER
;
66
}
Twihs
;
67
#endif
/* !(defined(__ASSEMBLY__) || defined(__IAR_SYSTEMS_ASM__)) */
68
/* -------- TWIHS_CR : (TWIHS Offset: 0x00) Control Register -------- */
69
#define TWIHS_CR_START (0x1u << 0)
70
#define TWIHS_CR_STOP (0x1u << 1)
71
#define TWIHS_CR_MSEN (0x1u << 2)
72
#define TWIHS_CR_MSDIS (0x1u << 3)
73
#define TWIHS_CR_SVEN (0x1u << 4)
74
#define TWIHS_CR_SVDIS (0x1u << 5)
75
#define TWIHS_CR_QUICK (0x1u << 6)
76
#define TWIHS_CR_SWRST (0x1u << 7)
77
#define TWIHS_CR_HSEN (0x1u << 8)
78
#define TWIHS_CR_HSDIS (0x1u << 9)
79
#define TWIHS_CR_SMBEN (0x1u << 10)
80
#define TWIHS_CR_SMBDIS (0x1u << 11)
81
#define TWIHS_CR_PECEN (0x1u << 12)
82
#define TWIHS_CR_PECDIS (0x1u << 13)
83
#define TWIHS_CR_PECRQ (0x1u << 14)
84
#define TWIHS_CR_CLEAR (0x1u << 15)
85
/* -------- TWIHS_MMR : (TWIHS Offset: 0x04) Master Mode Register -------- */
86
#define TWIHS_MMR_IADRSZ_Pos 8
87
#define TWIHS_MMR_IADRSZ_Msk (0x3u << TWIHS_MMR_IADRSZ_Pos)
88
#define TWIHS_MMR_IADRSZ(value) ((TWIHS_MMR_IADRSZ_Msk & ((value) << TWIHS_MMR_IADRSZ_Pos)))
89
#define TWIHS_MMR_IADRSZ_NONE (0x0u << 8)
90
#define TWIHS_MMR_IADRSZ_1_BYTE (0x1u << 8)
91
#define TWIHS_MMR_IADRSZ_2_BYTE (0x2u << 8)
92
#define TWIHS_MMR_IADRSZ_3_BYTE (0x3u << 8)
93
#define TWIHS_MMR_MREAD (0x1u << 12)
94
#define TWIHS_MMR_DADR_Pos 16
95
#define TWIHS_MMR_DADR_Msk (0x7fu << TWIHS_MMR_DADR_Pos)
96
#define TWIHS_MMR_DADR(value) ((TWIHS_MMR_DADR_Msk & ((value) << TWIHS_MMR_DADR_Pos)))
97
/* -------- TWIHS_SMR : (TWIHS Offset: 0x08) Slave Mode Register -------- */
98
#define TWIHS_SMR_NACKEN (0x1u << 0)
99
#define TWIHS_SMR_SMDA (0x1u << 2)
100
#define TWIHS_SMR_SMHH (0x1u << 3)
101
#define TWIHS_SMR_SCLWSDIS (0x1u << 6)
102
#define TWIHS_SMR_MASK_Pos 8
103
#define TWIHS_SMR_MASK_Msk (0x7fu << TWIHS_SMR_MASK_Pos)
104
#define TWIHS_SMR_MASK(value) ((TWIHS_SMR_MASK_Msk & ((value) << TWIHS_SMR_MASK_Pos)))
105
#define TWIHS_SMR_SADR_Pos 16
106
#define TWIHS_SMR_SADR_Msk (0x7fu << TWIHS_SMR_SADR_Pos)
107
#define TWIHS_SMR_SADR(value) ((TWIHS_SMR_SADR_Msk & ((value) << TWIHS_SMR_SADR_Pos)))
108
#define TWIHS_SMR_SADR1EN (0x1u << 28)
109
#define TWIHS_SMR_SADR2EN (0x1u << 29)
110
#define TWIHS_SMR_SADR3EN (0x1u << 30)
111
#define TWIHS_SMR_DATAMEN (0x1u << 31)
112
/* -------- TWIHS_IADR : (TWIHS Offset: 0x0C) Internal Address Register -------- */
113
#define TWIHS_IADR_IADR_Pos 0
114
#define TWIHS_IADR_IADR_Msk (0xffffffu << TWIHS_IADR_IADR_Pos)
115
#define TWIHS_IADR_IADR(value) ((TWIHS_IADR_IADR_Msk & ((value) << TWIHS_IADR_IADR_Pos)))
116
/* -------- TWIHS_CWGR : (TWIHS Offset: 0x10) Clock Waveform Generator Register -------- */
117
#define TWIHS_CWGR_CLDIV_Pos 0
118
#define TWIHS_CWGR_CLDIV_Msk (0xffu << TWIHS_CWGR_CLDIV_Pos)
119
#define TWIHS_CWGR_CLDIV(value) ((TWIHS_CWGR_CLDIV_Msk & ((value) << TWIHS_CWGR_CLDIV_Pos)))
120
#define TWIHS_CWGR_CHDIV_Pos 8
121
#define TWIHS_CWGR_CHDIV_Msk (0xffu << TWIHS_CWGR_CHDIV_Pos)
122
#define TWIHS_CWGR_CHDIV(value) ((TWIHS_CWGR_CHDIV_Msk & ((value) << TWIHS_CWGR_CHDIV_Pos)))
123
#define TWIHS_CWGR_CKDIV_Pos 16
124
#define TWIHS_CWGR_CKDIV_Msk (0x7u << TWIHS_CWGR_CKDIV_Pos)
125
#define TWIHS_CWGR_CKDIV(value) ((TWIHS_CWGR_CKDIV_Msk & ((value) << TWIHS_CWGR_CKDIV_Pos)))
126
#define TWIHS_CWGR_HOLD_Pos 24
127
#define TWIHS_CWGR_HOLD_Msk (0x1fu << TWIHS_CWGR_HOLD_Pos)
128
#define TWIHS_CWGR_HOLD(value) ((TWIHS_CWGR_HOLD_Msk & ((value) << TWIHS_CWGR_HOLD_Pos)))
129
/* -------- TWIHS_SR : (TWIHS Offset: 0x20) Status Register -------- */
130
#define TWIHS_SR_TXCOMP (0x1u << 0)
131
#define TWIHS_SR_RXRDY (0x1u << 1)
132
#define TWIHS_SR_TXRDY (0x1u << 2)
133
#define TWIHS_SR_SVREAD (0x1u << 3)
134
#define TWIHS_SR_SVACC (0x1u << 4)
135
#define TWIHS_SR_GACC (0x1u << 5)
136
#define TWIHS_SR_OVRE (0x1u << 6)
137
#define TWIHS_SR_UNRE (0x1u << 7)
138
#define TWIHS_SR_NACK (0x1u << 8)
139
#define TWIHS_SR_ARBLST (0x1u << 9)
140
#define TWIHS_SR_SCLWS (0x1u << 10)
141
#define TWIHS_SR_EOSACC (0x1u << 11)
142
#define TWIHS_SR_MCACK (0x1u << 16)
143
#define TWIHS_SR_TOUT (0x1u << 18)
144
#define TWIHS_SR_PECERR (0x1u << 19)
145
#define TWIHS_SR_SMBDAM (0x1u << 20)
146
#define TWIHS_SR_SMBHHM (0x1u << 21)
147
#define TWIHS_SR_SCL (0x1u << 24)
148
#define TWIHS_SR_SDA (0x1u << 25)
149
/* -------- TWIHS_IER : (TWIHS Offset: 0x24) Interrupt Enable Register -------- */
150
#define TWIHS_IER_TXCOMP (0x1u << 0)
151
#define TWIHS_IER_RXRDY (0x1u << 1)
152
#define TWIHS_IER_TXRDY (0x1u << 2)
153
#define TWIHS_IER_SVACC (0x1u << 4)
154
#define TWIHS_IER_GACC (0x1u << 5)
155
#define TWIHS_IER_OVRE (0x1u << 6)
156
#define TWIHS_IER_UNRE (0x1u << 7)
157
#define TWIHS_IER_NACK (0x1u << 8)
158
#define TWIHS_IER_ARBLST (0x1u << 9)
159
#define TWIHS_IER_SCL_WS (0x1u << 10)
160
#define TWIHS_IER_EOSACC (0x1u << 11)
161
#define TWIHS_IER_MCACK (0x1u << 16)
162
#define TWIHS_IER_TOUT (0x1u << 18)
163
#define TWIHS_IER_PECERR (0x1u << 19)
164
#define TWIHS_IER_SMBDAM (0x1u << 20)
165
#define TWIHS_IER_SMBHHM (0x1u << 21)
166
/* -------- TWIHS_IDR : (TWIHS Offset: 0x28) Interrupt Disable Register -------- */
167
#define TWIHS_IDR_TXCOMP (0x1u << 0)
168
#define TWIHS_IDR_RXRDY (0x1u << 1)
169
#define TWIHS_IDR_TXRDY (0x1u << 2)
170
#define TWIHS_IDR_SVACC (0x1u << 4)
171
#define TWIHS_IDR_GACC (0x1u << 5)
172
#define TWIHS_IDR_OVRE (0x1u << 6)
173
#define TWIHS_IDR_UNRE (0x1u << 7)
174
#define TWIHS_IDR_NACK (0x1u << 8)
175
#define TWIHS_IDR_ARBLST (0x1u << 9)
176
#define TWIHS_IDR_SCL_WS (0x1u << 10)
177
#define TWIHS_IDR_EOSACC (0x1u << 11)
178
#define TWIHS_IDR_MCACK (0x1u << 16)
179
#define TWIHS_IDR_TOUT (0x1u << 18)
180
#define TWIHS_IDR_PECERR (0x1u << 19)
181
#define TWIHS_IDR_SMBDAM (0x1u << 20)
182
#define TWIHS_IDR_SMBHHM (0x1u << 21)
183
/* -------- TWIHS_IMR : (TWIHS Offset: 0x2C) Interrupt Mask Register -------- */
184
#define TWIHS_IMR_TXCOMP (0x1u << 0)
185
#define TWIHS_IMR_RXRDY (0x1u << 1)
186
#define TWIHS_IMR_TXRDY (0x1u << 2)
187
#define TWIHS_IMR_SVACC (0x1u << 4)
188
#define TWIHS_IMR_GACC (0x1u << 5)
189
#define TWIHS_IMR_OVRE (0x1u << 6)
190
#define TWIHS_IMR_UNRE (0x1u << 7)
191
#define TWIHS_IMR_NACK (0x1u << 8)
192
#define TWIHS_IMR_ARBLST (0x1u << 9)
193
#define TWIHS_IMR_SCL_WS (0x1u << 10)
194
#define TWIHS_IMR_EOSACC (0x1u << 11)
195
#define TWIHS_IMR_MCACK (0x1u << 16)
196
#define TWIHS_IMR_TOUT (0x1u << 18)
197
#define TWIHS_IMR_PECERR (0x1u << 19)
198
#define TWIHS_IMR_SMBDAM (0x1u << 20)
199
#define TWIHS_IMR_SMBHHM (0x1u << 21)
200
/* -------- TWIHS_RHR : (TWIHS Offset: 0x30) Receive Holding Register -------- */
201
#define TWIHS_RHR_RXDATA_Pos 0
202
#define TWIHS_RHR_RXDATA_Msk (0xffu << TWIHS_RHR_RXDATA_Pos)
203
/* -------- TWIHS_THR : (TWIHS Offset: 0x34) Transmit Holding Register -------- */
204
#define TWIHS_THR_TXDATA_Pos 0
205
#define TWIHS_THR_TXDATA_Msk (0xffu << TWIHS_THR_TXDATA_Pos)
206
#define TWIHS_THR_TXDATA(value) ((TWIHS_THR_TXDATA_Msk & ((value) << TWIHS_THR_TXDATA_Pos)))
207
/* -------- TWIHS_SMBTR : (TWIHS Offset: 0x38) SMBus Timing Register -------- */
208
#define TWIHS_SMBTR_PRESC_Pos 0
209
#define TWIHS_SMBTR_PRESC_Msk (0xfu << TWIHS_SMBTR_PRESC_Pos)
210
#define TWIHS_SMBTR_PRESC(value) ((TWIHS_SMBTR_PRESC_Msk & ((value) << TWIHS_SMBTR_PRESC_Pos)))
211
#define TWIHS_SMBTR_TLOWS_Pos 8
212
#define TWIHS_SMBTR_TLOWS_Msk (0xffu << TWIHS_SMBTR_TLOWS_Pos)
213
#define TWIHS_SMBTR_TLOWS(value) ((TWIHS_SMBTR_TLOWS_Msk & ((value) << TWIHS_SMBTR_TLOWS_Pos)))
214
#define TWIHS_SMBTR_TLOWM_Pos 16
215
#define TWIHS_SMBTR_TLOWM_Msk (0xffu << TWIHS_SMBTR_TLOWM_Pos)
216
#define TWIHS_SMBTR_TLOWM(value) ((TWIHS_SMBTR_TLOWM_Msk & ((value) << TWIHS_SMBTR_TLOWM_Pos)))
217
#define TWIHS_SMBTR_THMAX_Pos 24
218
#define TWIHS_SMBTR_THMAX_Msk (0xffu << TWIHS_SMBTR_THMAX_Pos)
219
#define TWIHS_SMBTR_THMAX(value) ((TWIHS_SMBTR_THMAX_Msk & ((value) << TWIHS_SMBTR_THMAX_Pos)))
220
/* -------- TWIHS_FILTR : (TWIHS Offset: 0x44) Filter Register -------- */
221
#define TWIHS_FILTR_FILT (0x1u << 0)
222
#define TWIHS_FILTR_PADFEN (0x1u << 1)
223
#define TWIHS_FILTR_PADFCFG (0x1u << 2)
224
#define TWIHS_FILTR_THRES_Pos 8
225
#define TWIHS_FILTR_THRES_Msk (0x7u << TWIHS_FILTR_THRES_Pos)
226
#define TWIHS_FILTR_THRES(value) ((TWIHS_FILTR_THRES_Msk & ((value) << TWIHS_FILTR_THRES_Pos)))
227
/* -------- TWIHS_SWMR : (TWIHS Offset: 0x4C) SleepWalking Matching Register -------- */
228
#define TWIHS_SWMR_SADR1_Pos 0
229
#define TWIHS_SWMR_SADR1_Msk (0x7fu << TWIHS_SWMR_SADR1_Pos)
230
#define TWIHS_SWMR_SADR1(value) ((TWIHS_SWMR_SADR1_Msk & ((value) << TWIHS_SWMR_SADR1_Pos)))
231
#define TWIHS_SWMR_SADR2_Pos 8
232
#define TWIHS_SWMR_SADR2_Msk (0x7fu << TWIHS_SWMR_SADR2_Pos)
233
#define TWIHS_SWMR_SADR2(value) ((TWIHS_SWMR_SADR2_Msk & ((value) << TWIHS_SWMR_SADR2_Pos)))
234
#define TWIHS_SWMR_SADR3_Pos 16
235
#define TWIHS_SWMR_SADR3_Msk (0x7fu << TWIHS_SWMR_SADR3_Pos)
236
#define TWIHS_SWMR_SADR3(value) ((TWIHS_SWMR_SADR3_Msk & ((value) << TWIHS_SWMR_SADR3_Pos)))
237
#define TWIHS_SWMR_DATAM_Pos 24
238
#define TWIHS_SWMR_DATAM_Msk (0xffu << TWIHS_SWMR_DATAM_Pos)
239
#define TWIHS_SWMR_DATAM(value) ((TWIHS_SWMR_DATAM_Msk & ((value) << TWIHS_SWMR_DATAM_Pos)))
240
/* -------- TWIHS_DR : (TWIHS Offset: 0xD0) Debug Register -------- */
241
#define TWIHS_DR_SWEN (0x1u << 0)
242
#define TWIHS_DR_CLKRQ (0x1u << 1)
243
#define TWIHS_DR_SWMATCH (0x1u << 2)
244
#define TWIHS_DR_TRP (0x1u << 3)
245
/* -------- TWIHS_WPMR : (TWIHS Offset: 0xE4) Write Protection Mode Register -------- */
246
#define TWIHS_WPMR_WPEN (0x1u << 0)
247
#define TWIHS_WPMR_WPKEY_Pos 8
248
#define TWIHS_WPMR_WPKEY_Msk (0xffffffu << TWIHS_WPMR_WPKEY_Pos)
249
#define TWIHS_WPMR_WPKEY(value) ((TWIHS_WPMR_WPKEY_Msk & ((value) << TWIHS_WPMR_WPKEY_Pos)))
250
#define TWIHS_WPMR_WPKEY_PASSWD (0x545749u << 8)
251
/* -------- TWIHS_WPSR : (TWIHS Offset: 0xE8) Write Protection Status Register -------- */
252
#define TWIHS_WPSR_WPVS (0x1u << 0)
253
#define TWIHS_WPSR_WPVSRC_Pos 8
254
#define TWIHS_WPSR_WPVSRC_Msk (0xffffffu << TWIHS_WPSR_WPVSRC_Pos)
255
/* -------- TWIHS_VER : (TWIHS Offset: 0xFC) Version Register -------- */
256
#define TWIHS_VER_VERSION_Pos 0
257
#define TWIHS_VER_VERSION_Msk (0xfffu << TWIHS_VER_VERSION_Pos)
258
#define TWIHS_VER_MFN_Pos 16
259
#define TWIHS_VER_MFN_Msk (0x7u << TWIHS_VER_MFN_Pos)
260
262
263
264
#endif
/* _SAMV71_TWIHS_COMPONENT_ */
__O
#define __O
Definition
core_cm4.h:238
__IO
#define __IO
Definition
core_cm4.h:239
__I
#define __I
Definition
core_cm4.h:236
Twihs
Twihs hardware registers.
Definition
component_twihs.h:41
Twihs::TWIHS_VER
__I uint32_t TWIHS_VER
(Twihs Offset: 0xFC) Version Register
Definition
component_twihs.h:65
Twihs::TWIHS_WPMR
__IO uint32_t TWIHS_WPMR
(Twihs Offset: 0xE4) Write Protection Mode Register
Definition
component_twihs.h:60
Twihs::TWIHS_WPSR
__I uint32_t TWIHS_WPSR
(Twihs Offset: 0xE8) Write Protection Status Register
Definition
component_twihs.h:61
Twihs::TWIHS_DR
__I uint32_t TWIHS_DR
(Twihs Offset: 0xD0) Debug Register
Definition
component_twihs.h:60
Generated by
1.18.0