1
- /* *******************************************************************************
2
- * Copyright (c) 2016, STMicroelectronics
1
+ /*
2
+ *******************************************************************************
3
+ * Copyright (c) 2016-2021, STMicroelectronics
3
4
* All rights reserved.
4
5
*
5
- * Redistribution and use in source and binary forms, with or without
6
- * modification, are permitted provided that the following conditions are met:
7
- *
8
- * 1. Redistributions of source code must retain the above copyright notice,
9
- * this list of conditions and the following disclaimer.
10
- * 2. Redistributions in binary form must reproduce the above copyright notice,
11
- * this list of conditions and the following disclaimer in the documentation
12
- * and/or other materials provided with the distribution.
13
- * 3. Neither the name of STMicroelectronics nor the names of its contributors
14
- * may be used to endorse or promote products derived from this software
15
- * without specific prior written permission.
6
+ * This software component is licensed by ST under BSD 3-Clause license,
7
+ * the "License"; You may not use this file except in compliance with the
8
+ * License. You may obtain a copy of the License at:
9
+ * opensource.org/licenses/BSD-3-Clause
16
10
*
17
- * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
18
- * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
19
- * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE
20
- * DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE LIABLE
21
- * FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
22
- * DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
23
- * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION) HOWEVER
24
- * CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY,
25
- * OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE
26
- * OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF SUCH DAMAGE.
27
11
*******************************************************************************
28
12
*/
29
13
#ifndef _PINNAMESTYPES_H
@@ -42,7 +26,8 @@ extern "C" {
42
26
* [19:15] Channel (Analog/Timer specific)
43
27
* [20] Inverted (Analog/Timer specific)
44
28
* [21] Analog ADC control - Only valid for specific families
45
- * [32:22] Reserved
29
+ * [22] Analog channel bank B - Only valid for specific families
30
+ * [32:23] Reserved
46
31
*/
47
32
48
33
#define STM_PIN_FUNCTION_MASK 0x07
@@ -77,16 +62,21 @@ extern "C" {
77
62
#define STM_PIN_AN_CTRL_SHIFT 21
78
63
#define STM_PIN_ANALOG_CONTROL_BIT (STM_PIN_AN_CTRL_MASK << STM_PIN_AN_CTRL_SHIFT)
79
64
80
- #define STM_PIN_FUNCTION (X ) (((X) >> STM_PIN_FUNCTION_SHIFT) & STM_PIN_FUNCTION_MASK)
81
- #define STM_PIN_OD (X ) (((X) >> STM_PIN_OD_SHIFT) & STM_PIN_OD_MASK)
82
- #define STM_PIN_PUPD (X ) (((X) >> STM_PIN_PUPD_SHIFT) & STM_PIN_PUPD_MASK)
83
- #define STM_PIN_SPEED (X ) (((X) >> STM_PIN_SPEED_SHIFT) & STM_PIN_SPEED_MASK)
84
- #define STM_PIN_AFNUM (X ) (((X) >> STM_PIN_AFNUM_SHIFT) & STM_PIN_AFNUM_MASK)
85
- #define STM_PIN_CHANNEL (X ) (((X) >> STM_PIN_CHAN_SHIFT) & STM_PIN_CHAN_MASK)
86
- #define STM_PIN_INVERTED (X ) (((X) >> STM_PIN_INV_SHIFT) & STM_PIN_INV_MASK)
87
- #define STM_PIN_ANALOG_CONTROL (X ) (((X) >> STM_PIN_AN_CTRL_SHIFT) & STM_PIN_AN_CTRL_MASK)
88
- #define STM_PIN_MODE (X ) ((STM_PIN_OD((X)) << 4) | \
89
- (STM_PIN_FUNCTION((X)) & (~STM_PIN_OD_BITS)))
65
+ #define STM_PIN_AN_CHAN_BANK_B_MASK 0x01
66
+ #define STM_PIN_AN_CHAN_BANK_B_SHIFT 22
67
+ #define STM_PIN_ANALOG_CHAN_BANK_B_BIT (STM_PIN_AN_CHAN_BANK_B_MASK << STM_PIN_AN_CHAN_BANK_B_SHIFT)
68
+
69
+ #define STM_PIN_FUNCTION (X ) (((X) >> STM_PIN_FUNCTION_SHIFT) & STM_PIN_FUNCTION_MASK)
70
+ #define STM_PIN_OD (X ) (((X) >> STM_PIN_OD_SHIFT) & STM_PIN_OD_MASK)
71
+ #define STM_PIN_PUPD (X ) (((X) >> STM_PIN_PUPD_SHIFT) & STM_PIN_PUPD_MASK)
72
+ #define STM_PIN_SPEED (X ) (((X) >> STM_PIN_SPEED_SHIFT) & STM_PIN_SPEED_MASK)
73
+ #define STM_PIN_AFNUM (X ) (((X) >> STM_PIN_AFNUM_SHIFT) & STM_PIN_AFNUM_MASK)
74
+ #define STM_PIN_CHANNEL (X ) (((X) >> STM_PIN_CHAN_SHIFT) & STM_PIN_CHAN_MASK)
75
+ #define STM_PIN_INVERTED (X ) (((X) >> STM_PIN_INV_SHIFT) & STM_PIN_INV_MASK)
76
+ #define STM_PIN_ANALOG_CONTROL (X ) (((X) >> STM_PIN_AN_CTRL_SHIFT) & STM_PIN_AN_CTRL_MASK)
77
+ #define STM_PIN_ANALOG_CHANNEL_BANK_B (X ) (((X) >> STM_PIN_AN_CHAN_BANK_B_SHIFT) & STM_PIN_AN_CHAN_BANK_B_MASK)
78
+ #define STM_PIN_MODE (X ) ((STM_PIN_OD((X)) << 4) | \
79
+ (STM_PIN_FUNCTION((X)) & (~STM_PIN_OD_BITS)))
90
80
91
81
#define STM_PIN_DEFINE (FUNC_OD , PUPD , AFNUM ) ((int)(FUNC_OD) |\
92
82
((PUPD & STM_PIN_PUPD_MASK) << STM_PIN_PUPD_SHIFT) |\
@@ -116,13 +106,14 @@ typedef enum {
116
106
STM_PIN_ANALOG = 3 ,
117
107
} StmPinFunction ;
118
108
119
- #define STM_MODE_INPUT (STM_PIN_INPUT)
120
- #define STM_MODE_OUTPUT_PP (STM_PIN_OUTPUT)
121
- #define STM_MODE_OUTPUT_OD (STM_PIN_OUTPUT | STM_PIN_OD_BITS)
122
- #define STM_MODE_AF_PP (STM_PIN_ALTERNATE)
123
- #define STM_MODE_AF_OD (STM_PIN_ALTERNATE | STM_PIN_OD_BITS)
124
- #define STM_MODE_ANALOG (STM_PIN_ANALOG)
125
- #define STM_MODE_ANALOG_ADC_CONTROL (STM_PIN_ANALOG | STM_PIN_ANALOG_CONTROL_BIT)
109
+ #define STM_MODE_INPUT (STM_PIN_INPUT)
110
+ #define STM_MODE_OUTPUT_PP (STM_PIN_OUTPUT)
111
+ #define STM_MODE_OUTPUT_OD (STM_PIN_OUTPUT | STM_PIN_OD_BITS)
112
+ #define STM_MODE_AF_PP (STM_PIN_ALTERNATE)
113
+ #define STM_MODE_AF_OD (STM_PIN_ALTERNATE | STM_PIN_OD_BITS)
114
+ #define STM_MODE_ANALOG (STM_PIN_ANALOG)
115
+ #define STM_MODE_ANALOG_ADC_CONTROL (STM_PIN_ANALOG | STM_PIN_ANALOG_CONTROL_BIT)
116
+ #define STM_MODE_ANALOG_ADC_CHANNEL_BANK_B (STM_PIN_ANALOG | STM_PIN_ANALOG_CHAN_BANK_B_BIT)
126
117
127
118
// High nibble = port number (FirstPort <= PortName <= LastPort)
128
119
// Low nibble = pin number
0 commit comments