VSF Documented
Main Page
Related Pages
Topics
Namespaces
Data Structures
Files
Examples
File List
Globals
source
hal
driver
unknown
MT071
device.h
Go to the documentation of this file.
1
/*****************************************************************************
2
* Copyright(C)2009-2022 by VSF Team *
3
* *
4
* Licensed under the Apache License, Version 2.0 (the "License"); *
5
* you may not use this file except in compliance with the License. *
6
* You may obtain a copy of the License at *
7
* *
8
* http://www.apache.org/licenses/LICENSE-2.0 *
9
* *
10
* Unless required by applicable law or agreed to in writing, software *
11
* distributed under the License is distributed on an "AS IS" BASIS, *
12
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. *
13
* See the License for the specific language governing permissions and *
14
* limitations under the License. *
15
* *
16
****************************************************************************/
17
18
/*============================ INCLUDES ======================================*/
19
20
#include "
hal/vsf_hal_cfg.h
"
21
22
/*============================ MACROS ========================================*/
23
24
#if defined(__VSF_HEADER_ONLY_SHOW_ARCH_INFO__)
25
26
/*\note first define basic info for arch. */
28
# define VSF_ARCH_PRI_NUM 16
29
# define VSF_ARCH_PRI_BIT 4
30
31
#else
32
33
#ifndef __HAL_DEVICE_MT071_H__
34
#define __HAL_DEVICE_MT071_H__
35
36
/*============================ INCLUDES ======================================*/
37
38
#include "
./common.h
"
39
#include "
utilities/vsf_utilities.h
"
40
41
/*============================ MACROS ========================================*/
42
43
// TODO: implement pm
44
#define __SYSTEM_FREQ VSF_SYSTIMER_FREQ
45
#define __PLL_FREQ_HZ __SYSTEM_FREQ
46
47
#define GPIO_COUNT 7
48
#define PIO0
49
#define PIO0_PIN_NUM 8
50
#define PIO1
51
#define PIO1_PIN_NUM 8
52
#define PIO2
53
#define PIO2_PIN_NUM 8
54
#define PIO3
55
#define PIO3_PIN_NUM 8
56
#define PIO4
57
#define PIO4_PIN_NUM 8
58
#define PIO5
59
#define PIO5_PIN_NUM 8
60
#define PIO6
61
#define PIO6_PIN_NUM 8
62
63
#define DMA_COUNT 1
64
# define DMA_CHANNEL_COUNT 4
65
# define DMA_CHANNEL_MAX_TRANS_SIZES \
66
1023, 511, 255, 255
67
68
#define USART_MAX_PORT 1
69
# define USART0_TX_DMA 0
70
# define USART0_RX_DMA 1
71
# define USART1_TX_DMA 2
72
# define USART1_RX_DMA 3
73
74
#define USB_OTG_COUNT 1
75
#define USB_OTG0_IRQHandler USB_IRQHandler
76
#define USB_OTG0_EP_NUMBER 8
77
#define USB_OTG0_CONFIG \
78
.reg = (void *)USB_Common_Base, \
79
.sclk = SCLK_USB_IDX, \
80
.pclk = PCLK_USB_IDX, \
81
.irq = USB_IRQn,
82
83
/*============================ MACROFIED FUNCTIONS ===========================*/
84
85
#define __def_idx(__name, __no) VSF_MCONNECT2(__name, _IDX) = (__no)
86
#define __def_msk(__name) VSF_MCONNECT2(__name, _MSK) = BIT(VSF_MCONNECT2(__name, _IDX) & 0x1F)
87
88
// bit0 - bit7 : clksel
89
// bit8 - bit15: clkdiv
90
// bit16 - bit23: clkref
91
#define __def_clk_idx(__name, __clksel, __clkdiv, __clkref) \
92
VSF_MCONNECT2(__name, _IDX) = ((__clksel) << 0) \
93
| ((__clkdiv) << 8) \
94
| ((__clkref) << 16)
95
96
/*============================ TYPES =========================================*/
97
100
enum
vsf_pm_power_cfg_no_t
{
101
__def_idx
(POWER_12MIRC, 0),
102
__def_idx
(POWER_12MOSC, 2),
103
__def_idx
(POWER_10KIRC, 3),
104
};
106
109
enum
vsf_pm_power_cfg_msk_t
{
110
__def_msk
(POWER_12MIRC),
111
__def_msk
(POWER_12MOSC),
112
__def_msk
(POWER_10KIRC),
113
};
115
118
enum
vsf_pm_sleep_mode_t
{
119
VSF_PM_SLEEP
= 1 << 8,
120
VSF_PM_DPD
= 1 << 1,
121
122
VSF_PM_WAIT
=
VSF_PM_SLEEP
,
123
VSF_PM_DEEP_SLEEP
=
VSF_PM_DPD
,
124
VSF_PM_POWER_OFF
=
VSF_PM_DPD
,
125
} ;
127
130
enum
vsf_pm_pclk_no_t
{
131
// NAME CLKSEL, CLKDIV, CLKREF
132
__def_clk_idx
( PCLK_USB, 0x18, 0, 0x0F),
133
__def_clk_idx
( PCLK_USART0, 0x16, 0x24, 0),
134
__def_clk_idx
( PCLK_USART1, 0x16, 0x25, 0),
135
__def_clk_idx
( PCLK_OUTCLK, 0x1E, 0x2B, 0),
136
__def_clk_idx
( PCLK_SYSTICK, 0, 0x28, 0),
137
__def_clk_idx
( PCLK_SPI0, 0, 0x29, 0),
138
__def_clk_idx
( PCLK_ADC, 0, 0x2C, 0),
139
__def_clk_idx
( PCLK_SPI1, 0, 0x34, 0),
140
__def_clk_idx
( PCLK_DAC, 0, 0x36, 0),
141
};
143
146
enum
vsf_pm_sclk_no_t
{
147
__def_idx
( SCLK_FLASH, 0),
148
__def_idx
( SCLK_RAM, 1),
149
__def_idx
( SCLK_GPIO, 2),
150
__def_idx
( SCLK_DMA, 3),
151
__def_idx
( SCLK_USART0, 4),
152
__def_idx
( SCLK_USART1, 5),
153
__def_idx
( SCLK_ROM, 6),
154
__def_idx
( SCLK_I2C0, 7),
155
__def_idx
( SCLK_ADC, 8),
156
__def_idx
( SCLK_IOCFG, 9),
157
__def_idx
( SCLK_WDT, 10),
158
__def_idx
( SCLK_WPWM, 12),
159
__def_idx
( SCLK_SPI0, 13),
160
__def_idx
( SCLK_TIMER0, 14),
161
__def_idx
( SCLK_TIMER1, 15),
162
__def_idx
( SCLK_ACMP, 16),
163
__def_idx
( SCLK_TIMER2, 18),
164
__def_idx
( SCLK_IWDG, 19),
165
__def_idx
( SCLK_SPI1, 22),
166
__def_idx
( SCLK_I2C1, 24),
167
__def_idx
( SCLK_TIMER3, 25),
168
__def_idx
( SCLK_RTC, 30),
169
__def_idx
( SCLK_USB, 31),
170
};
171
172
enum
vsf_pm_sclk_msk_t
{
173
__def_msk
(SCLK_FLASH),
174
__def_msk
(SCLK_RAM),
175
__def_msk
(SCLK_GPIO),
176
__def_msk
(SCLK_DMA),
177
__def_msk
(SCLK_USART0),
178
__def_msk
(SCLK_USART1),
179
__def_msk
(SCLK_ROM),
180
__def_msk
(SCLK_I2C0),
181
__def_msk
(SCLK_ADC),
182
__def_msk
(SCLK_IOCFG),
183
__def_msk
(SCLK_WDT),
184
__def_msk
(SCLK_WPWM),
185
__def_msk
(SCLK_SPI0),
186
__def_msk
(SCLK_TIMER0),
187
__def_msk
(SCLK_TIMER1),
188
__def_msk
(SCLK_ACMP),
189
__def_msk
(SCLK_TIMER2),
190
__def_msk
(SCLK_IWDG),
191
__def_msk
(SCLK_SPI1),
192
__def_msk
(SCLK_I2C1),
193
__def_msk
(SCLK_TIMER3),
194
__def_msk
(SCLK_RTC),
195
__def_msk
(SCLK_USB),
196
};
198
200
enum
vsf_pm_clk_src_sel_t
{
201
CLKSRC_12MIRC
= 0,
202
CLKSRC_PLL
= 1,
203
CLKSRC_12MOSC
= 2,
204
CLKSRC_10KIRC
= 3,
205
206
CLKREF_12MIRC
= 0,
207
CLKREF_12MOSC
= 1,
208
209
MAINCLK_CLKSRC_12MIRC
=
CLKSRC_12MIRC
,
210
MAINCLK_CLKSRC_PLL
=
CLKSRC_PLL
,
211
MAINCLK_CLKSRC_12MOSC
=
CLKSRC_12MOSC
,
212
MAINCLK_CLKSRC_10KIRC
=
CLKSRC_10KIRC
,
213
214
USART_CLKSRC_12MIRC
=
CLKSRC_12MIRC
,
215
USART_CLKSRC_PLL
=
CLKSRC_PLL
,
216
USART_CLKSRC_12MOSC
=
CLKSRC_12MOSC
,
217
USART_CLKSRC_10KIRC
=
CLKSRC_10KIRC
,
218
219
USB_CLKSRC_12MIRC
=
CLKREF_12MIRC
,
220
USB_CLKSRC_12MOSC
=
CLKREF_12MOSC
,
221
222
OUTCLK_CLKSRC_12MIRC
= 0,
223
OUTCLK_CLKSRC_PLL
= 1,
224
OUTCLK_CLKSRC_10KIRC
= 2,
225
OUTCLK_CLKSRC_12MOSC
= 3,
226
OUTCLK_CLKSRC_32KOSC
= 4,
227
OUTCLK_CLKSRC_USB_PLL
= 8,
228
};
230
231
enum
vsf_pm_pll_sel_t
{
232
PLL_IDX
,
233
PLL_USB_IDX
,
234
};
235
236
struct
io_wakeup_cfg_t
{
237
uint32_t
dummy
;
238
};
239
typedef
struct
io_wakeup_cfg_t
io_wakeup_cfg_t
;
240
241
typedef
enum
vsf_io_port_no_t
vsf_io_port_no_t
;
242
typedef
enum
vsf_pm_clk_src_sel_t
vsf_pm_clk_src_sel_t
;
243
244
def_interface
( i_pm_wakeup_t )
245
struct
{
246
vsf_err_t
(*
Enable
)(
io_wakeup_cfg_t
*pcfg,
uint_fast8_t
size
);
247
vsf_err_t
(*
Disable
)(
vsf_io_port_no_t
port,
uint_fast32_t
msk);
248
}
UseIO
;
249
end_def_interface
( i_pm_wakeup_t )
250
251
struct
vsf_pm_pclk_cfg_t
{
252
vsf_pm_clk_src_sel_t
clk_src
;
253
uint16_t
div
;
254
};
255
258
struct
vsf_pm_mclk_cfg_t
{
259
vsf_pm_clk_src_sel_t
clk_src
;
260
uint32_t
freq
;
261
uint16_t
core_div
[1];
262
uint16_t
sclk_div
[1];
263
};
265
266
/*============================ GLOBAL VARIABLES ==============================*/
267
/*============================ LOCAL VARIABLES ===============================*/
268
/*============================ PROTOTYPES ====================================*/
269
270
#endif
// __HAL_DEVICE_MT071_H__
271
#endif
// __VSF_HEADER_ONLY_SHOW_ARCH_INFO__
272
/* EOF */
vsf_err_t
vsf_err_t
Definition
__type.h:42
def_interface
def_interface(i_adc_t) i_peripheral_t
vsf_pm_sclk_msk_t
vsf_pm_sclk_msk_t
Definition
pm.h:323
vsf_pm_pll_sel_t
vsf_pm_pll_sel_t
Definition
pm.h:545
vsf_pm_power_cfg_msk_t
vsf_pm_power_cfg_msk_t
power set mask
Definition
pm.h:71
vsf_pm_power_cfg_no_t
vsf_pm_power_cfg_no_t
power set index
Definition
pm.h:63
vsf_pm_pclk_no_t
vsf_pm_pclk_no_t
peripheral clock index
Definition
pm.h:170
vsf_pm_sclk_no_t
vsf_pm_sclk_no_t
Peripheral AHB Clock Macros.
Definition
pm.h:258
vsf_pm_clk_src_sel_t
vsf_pm_clk_src_sel_t
Definition
pm.h:387
vsf_pm_sleep_mode_t
vsf_pm_sleep_mode_t
the lowpower mode
Definition
pm.h:79
VSF_PM_POWER_OFF
@ VSF_PM_POWER_OFF
Definition
pm.h:90
VSF_PM_DEEP_SLEEP
@ VSF_PM_DEEP_SLEEP
Definition
pm.h:89
VSF_PM_WAIT
@ VSF_PM_WAIT
Definition
pm.h:87
VSF_PM_SLEEP
@ VSF_PM_SLEEP
Definition
pm.h:88
vsf_io_port_no_t
vsf_io_port_no_t
Definition
io.h:90
__def_idx
#define __def_idx(__name, __no)
Definition
device.h:51
__def_msk
#define __def_msk(__name)
Definition
device.h:52
__def_clk_idx
#define __def_clk_idx(__name, __clksel, __clkdiv, __clkref)
Definition
device.h:91
PLL_USB_IDX
@ PLL_USB_IDX
Definition
device.h:233
PLL_IDX
@ PLL_IDX
Definition
device.h:232
VSF_PM_DPD
@ VSF_PM_DPD
Definition
device.h:120
end_def_interface
end_def_interface(i_pm_wakeup_t) struct vsf_pm_pclk_cfg_t
Definition
device.h:249
UseIO
UseIO
Definition
device.h:248
USART_CLKSRC_12MIRC
@ USART_CLKSRC_12MIRC
Definition
device.h:214
USB_CLKSRC_12MOSC
@ USB_CLKSRC_12MOSC
Definition
device.h:220
CLKSRC_12MIRC
@ CLKSRC_12MIRC
Definition
device.h:201
MAINCLK_CLKSRC_12MOSC
@ MAINCLK_CLKSRC_12MOSC
Definition
device.h:211
MAINCLK_CLKSRC_12MIRC
@ MAINCLK_CLKSRC_12MIRC
Definition
device.h:209
OUTCLK_CLKSRC_USB_PLL
@ OUTCLK_CLKSRC_USB_PLL
Definition
device.h:227
USART_CLKSRC_PLL
@ USART_CLKSRC_PLL
Definition
device.h:215
CLKREF_12MOSC
@ CLKREF_12MOSC
Definition
device.h:207
CLKSRC_12MOSC
@ CLKSRC_12MOSC
Definition
device.h:203
OUTCLK_CLKSRC_32KOSC
@ OUTCLK_CLKSRC_32KOSC
Definition
device.h:226
OUTCLK_CLKSRC_12MOSC
@ OUTCLK_CLKSRC_12MOSC
Definition
device.h:225
CLKREF_12MIRC
@ CLKREF_12MIRC
Definition
device.h:206
CLKSRC_10KIRC
@ CLKSRC_10KIRC
Definition
device.h:204
OUTCLK_CLKSRC_PLL
@ OUTCLK_CLKSRC_PLL
Definition
device.h:223
OUTCLK_CLKSRC_10KIRC
@ OUTCLK_CLKSRC_10KIRC
Definition
device.h:224
MAINCLK_CLKSRC_10KIRC
@ MAINCLK_CLKSRC_10KIRC
Definition
device.h:212
CLKSRC_PLL
@ CLKSRC_PLL
Definition
device.h:202
MAINCLK_CLKSRC_PLL
@ MAINCLK_CLKSRC_PLL
Definition
device.h:210
USB_CLKSRC_12MIRC
@ USB_CLKSRC_12MIRC
Definition
device.h:219
USART_CLKSRC_10KIRC
@ USART_CLKSRC_10KIRC
Definition
device.h:217
OUTCLK_CLKSRC_12MIRC
@ OUTCLK_CLKSRC_12MIRC
Definition
device.h:222
USART_CLKSRC_12MOSC
@ USART_CLKSRC_12MOSC
Definition
device.h:216
uint16_t
unsigned short uint16_t
Definition
stdint.h:7
uint_fast8_t
unsigned char uint_fast8_t
Definition
stdint.h:23
uint32_t
unsigned uint32_t
Definition
stdint.h:9
uint_fast32_t
unsigned int uint_fast32_t
Definition
stdint.h:27
io_wakeup_cfg_t
Definition
pm.h:549
io_wakeup_cfg_t::dummy
uint32_t dummy
Definition
pm.h:550
vsf_pm_mclk_cfg_t
main clock config struct
Definition
pm.h:568
vsf_pm_mclk_cfg_t::core_div
uint16_t core_div[1]
system core clock divider
Definition
pm.h:571
vsf_pm_mclk_cfg_t::freq
uint32_t freq
system oscillator frequency
Definition
pm.h:570
vsf_pm_mclk_cfg_t::clk_src
vsf_pm_clk_src_sel_t clk_src
main clock source
Definition
pm.h:569
vsf_pm_mclk_cfg_t::sclk_div
uint16_t sclk_div[1]
system sync clock divider
Definition
device.h:262
vsf_pm_pclk_cfg_t
Definition
pm.h:562
vsf_pm_pclk_cfg_t::div
uint16_t div
Definition
pm.h:564
vsf_pm_pclk_cfg_t::clk_src
vsf_pm_clk_src_sel_t clk_src
Definition
pm.h:563
Enable
void(* Enable)(void)
enable
Definition
systick.h:86
Disable
bool(* Disable)(void)
disable
Definition
systick.h:87
common.h
vsf_hal_cfg.h
size
uint32_t size
Definition
vsf_memfs.h:50
vsf_utilities.h
Generated from commit:
vsfteam/vsf@ceb53fd