Zephyr API Documentation
3.0.0
A Scalable Open Source RTOS
3.0.0
Toggle main menu visibility
Main Page
Related Pages
Modules
Data Structures
Data Structures
Data Structure Index
Data Fields
All
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
Variables
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Enumerator
Files
File List
Globals
All
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Functions
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
y
z
Variables
$
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Typedefs
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Enumerations
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
r
s
t
u
v
w
x
Enumerator
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
Macros
a
b
c
d
e
f
g
h
i
j
k
l
m
n
o
p
q
r
s
t
u
v
w
x
z
•
All
Data Structures
Files
Functions
Variables
Typedefs
Enumerations
Enumerator
Macros
Modules
Pages
stm32f1-pinctrl.h
Go to the documentation of this file.
1
/*
2
* Copyright (c) 2017 Linaro Limited
3
*
4
* SPDX-License-Identifier: Apache-2.0
5
*/
6
7
#ifndef ZEPHYR_STM32_PINCTRLF1_H_
8
#define ZEPHYR_STM32_PINCTRLF1_H_
9
10
#include <
dt-bindings/pinctrl/stm32-pinctrl-common.h
>
11
#include <
dt-bindings/pinctrl/stm32f1-afio.h
>
12
13
/* Adapted from Linux: include/dt-bindings/pinctrl/stm32-pinfunc.h */
14
36
#define STM32_MODE_SHIFT 0U
37
#define STM32_MODE_MASK 0x3U
38
#define STM32_LINE_SHIFT 2U
39
#define STM32_LINE_MASK 0xFU
40
#define STM32_PORT_SHIFT 6U
41
#define STM32_PORT_MASK 0xFU
42
#define STM32_REMAP_SHIFT 10U
43
#define STM32_REMAP_MASK 0x3FFU
44
45
#define STM32F1_PINMUX(port, line, mode, remap) \
46
(((((port) - 'A') & STM32_PORT_MASK) << STM32_PORT_SHIFT) | \
47
(((line) & STM32_LINE_MASK) << STM32_LINE_SHIFT) | \
48
(((mode) & STM32_MODE_MASK) << STM32_MODE_SHIFT) | \
49
(((remap) & STM32_REMAP_MASK) << STM32_REMAP_SHIFT))
50
55
#define ALTERNATE 0x0
/* Alternate function output */
56
#define GPIO_IN 0x1
/* Input */
57
#define ANALOG 0x2
/* Analog */
58
74
/* Port Mode */
75
#define STM32_MODE_INPUT (0x0<<STM32_MODE_INOUT_SHIFT)
76
#define STM32_MODE_OUTPUT (0x1<<STM32_MODE_INOUT_SHIFT)
77
#define STM32_MODE_INOUT_MASK 0x1
78
#define STM32_MODE_INOUT_SHIFT 0
79
80
/* Input Port configuration */
81
#define STM32_CNF_IN_ANALOG (0x0<<STM32_CNF_IN_SHIFT)
82
#define STM32_CNF_IN_FLOAT (0x1<<STM32_CNF_IN_SHIFT)
83
#define STM32_CNF_IN_PUPD (0x2<<STM32_CNF_IN_SHIFT)
84
#define STM32_CNF_IN_MASK 0x3
85
#define STM32_CNF_IN_SHIFT 1
86
87
/* Output Port configuration */
88
#define STM32_MODE_OUTPUT_MAX_10 (0x0<<STM32_MODE_OSPEED_SHIFT)
89
#define STM32_MODE_OUTPUT_MAX_2 (0x1<<STM32_MODE_OSPEED_SHIFT)
90
#define STM32_MODE_OUTPUT_MAX_50 (0x2<<STM32_MODE_OSPEED_SHIFT)
91
#define STM32_MODE_OSPEED_MASK 0x3
92
#define STM32_MODE_OSPEED_SHIFT 3
93
94
#define STM32_CNF_PUSH_PULL (0x0<<STM32_CNF_OUT_0_SHIFT)
95
#define STM32_CNF_OPEN_DRAIN (0x1<<STM32_CNF_OUT_0_SHIFT)
96
#define STM32_CNF_OUT_0_MASK 0x1
97
#define STM32_CNF_OUT_0_SHIFT 5
98
99
#define STM32_CNF_GP_OUTPUT (0x0<<STM32_CNF_OUT_1_SHIFT)
100
#define STM32_CNF_ALT_FUNC (0x1<<STM32_CNF_OUT_1_SHIFT)
101
#define STM32_CNF_OUT_1_MASK 0x1
102
#define STM32_CNF_OUT_1_SHIFT 6
103
104
/* GPIO High impedance/Pull-up/Pull-down */
105
#define STM32_PUPD_NO_PULL (0x0<<STM32_PUPD_SHIFT)
106
#define STM32_PUPD_PULL_UP (0x1<<STM32_PUPD_SHIFT)
107
#define STM32_PUPD_PULL_DOWN (0x2<<STM32_PUPD_SHIFT)
108
#define STM32_PUPD_MASK 0x3
109
#define STM32_PUPD_SHIFT 7
110
111
#endif
/* ZEPHYR_STM32_PINCTRLF1_H_ */
stm32-pinctrl-common.h
stm32f1-afio.h
include
dt-bindings
pinctrl
stm32f1-pinctrl.h
Generated on Mon Feb 21 2022 22:43:01 for Zephyr API Documentation by
1.9.2