S32 SDK
uart_pal_mapping.h
Go to the documentation of this file.
1 /*
2  * Copyright 2017 NXP
3  * All rights reserved.
4  *
5  * THIS SOFTWARE IS PROVIDED BY NXP "AS IS" AND ANY EXPRESSED OR
6  * IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED WARRANTIES
7  * OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE ARE DISCLAIMED.
8  * IN NO EVENT SHALL NXP OR ITS CONTRIBUTORS BE LIABLE FOR ANY DIRECT,
9  * INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES
10  * (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS OR
11  * SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
12  * HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT,
13  * STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING
14  * IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF
15  * THE POSSIBILITY OF SUCH DAMAGE.
16  */
17 
18 #ifndef UART_PAL_MAPPING_H
19 #define UART_PAL_MAPPING_H
20 #include "device_registers.h"
21 
22 #if (defined(CPU_S32K144HFT0VLLT) || defined(CPU_S32K144LFT0MLLT) || defined(CPU_S32K148))
23 
24 /*
25  * @brief Define instances for S32K144 and S32K148 (LPUART and FlexIO)
26  */
27 
28 typedef enum
29 {
36 
37 /* On S32K144 and S32K148 are 5 available instances which support UART */
38 #define NUMBER_OF_UART_PAL_INSTANCES 5U
39 
40 /* Defines the index limits for all UARTs */
41 #define LPUART_HIGH_INDEX 2U
42 #define FLEXIO_UART_LOW_INDEX 3U
43 #define FLEXIO_UART_HIGH_INDEX 4U
44 
45 #elif (defined(CPU_S32K142))
46 
47 /*
48  * @brief Define instances for S32K142 (LPUART and FlexIO)
49  */
50 
51 typedef enum
52 {
58 
59 /* On S32K142 are 4 available instances which support UART */
60 #define NUMBER_OF_UART_PAL_INSTANCES 4U
61 
62 /* Defines the index limits for all UARTs */
63 #define LPUART_HIGH_INDEX 2U
64 #define FLEXIO_UART_LOW_INDEX 2U
65 #define FLEXIO_UART_HIGH_INDEX 3U
66 
67 #elif (defined(CPU_S32V234))
68 
69 /*
70  * @brief Define instances for S32V234 (LinFlexD)
71  */
72 
73 typedef enum
74 {
75  UART_OVER_LINFLEXD00_INSTANCE = 0U,
76  UART_OVER_LINFLEXD01_INSTANCE = 1U,
78 
79 /* On S32V234 are 2 available instances which support UART */
80 #define NUMBER_OF_UART_PAL_INSTANCES 2U
81 
82 /* Defines the index limits for all UARTs */
83 #define LINFLEXD_UART_LOW_INDEX 0U
84 #define LINFLEXD_UART_HIGH_INDEX 1U
85 
86 #elif (defined(CPU_MPC5748G))
87 
88 /*
89  * @brief Define instances for MPC5748G (LinFlexD)
90  */
91 
92 typedef enum
93 {
94  UART_OVER_LINFLEXD00_INSTANCE = 0U,
95  UART_OVER_LINFLEXD01_INSTANCE = 1U,
96  UART_OVER_LINFLEXD02_INSTANCE = 2U,
97  UART_OVER_LINFLEXD03_INSTANCE = 3U,
98  UART_OVER_LINFLEXD04_INSTANCE = 4U,
99  UART_OVER_LINFLEXD05_INSTANCE = 5U,
100  UART_OVER_LINFLEXD06_INSTANCE = 6U,
101  UART_OVER_LINFLEXD07_INSTANCE = 7U,
102  UART_OVER_LINFLEXD08_INSTANCE = 8U,
103  UART_OVER_LINFLEXD09_INSTANCE = 9U,
104  UART_OVER_LINFLEXD10_INSTANCE = 10U,
105  UART_OVER_LINFLEXD11_INSTANCE = 11U,
106  UART_OVER_LINFLEXD12_INSTANCE = 12U,
107  UART_OVER_LINFLEXD13_INSTANCE = 13U,
108  UART_OVER_LINFLEXD14_INSTANCE = 14U,
109  UART_OVER_LINFLEXD15_INSTANCE = 15U,
110  UART_OVER_LINFLEXD16_INSTANCE = 16U,
111  UART_OVER_LINFLEXD17_INSTANCE = 17U,
113 
114 /* On MPC5748G are 18 available instances which support UART */
115 #define NUMBER_OF_UART_PAL_INSTANCES 18U
116 
117 /* Defines the index limits for all UARTs */
118 #define LINFLEXD_UART_LOW_INDEX 0U
119 #define LINFLEXD_UART_HIGH_INDEX 17U
120 
121 #elif (defined(CPU_MPC5746C))
122 
123 /*
124  * @brief Define instances for MPC5746C (LinFlexD)
125  */
126 
127 typedef enum
128 {
129  UART_OVER_LINFLEXD00_INSTANCE = 0U,
130  UART_OVER_LINFLEXD01_INSTANCE = 1U,
131  UART_OVER_LINFLEXD02_INSTANCE = 2U,
132  UART_OVER_LINFLEXD03_INSTANCE = 3U,
133  UART_OVER_LINFLEXD04_INSTANCE = 4U,
134  UART_OVER_LINFLEXD05_INSTANCE = 5U,
135  UART_OVER_LINFLEXD06_INSTANCE = 6U,
136  UART_OVER_LINFLEXD07_INSTANCE = 7U,
137  UART_OVER_LINFLEXD08_INSTANCE = 8U,
138  UART_OVER_LINFLEXD09_INSTANCE = 9U,
139  UART_OVER_LINFLEXD10_INSTANCE = 10U,
140  UART_OVER_LINFLEXD11_INSTANCE = 11U,
141  UART_OVER_LINFLEXD12_INSTANCE = 12U,
142  UART_OVER_LINFLEXD13_INSTANCE = 13U,
143  UART_OVER_LINFLEXD14_INSTANCE = 14U,
144  UART_OVER_LINFLEXD15_INSTANCE = 15U,
146 
147 /* On MPC5746C are 16 available instances which support UART */
148 #define NUMBER_OF_UART_PAL_INSTANCES 16U
149 
150 /* Defines the index limits for all UARTs */
151 #define LINFLEXD_UART_LOW_INDEX 0U
152 #define LINFLEXD_UART_HIGH_INDEX 15U
153 
154 #endif
155 
156 #endif /* UART_PAL_MAPPING_H */
uart_instance_t