xref: /openbmc/linux/arch/arm/include/debug/imx-uart.h (revision 20c305f66077d2e646b23336d4404261dc283cf9)
1f8c95fe6SShawn Guo /*
252d7aec2SAnson Huang  * Copyright (C) 2012-2015 Freescale Semiconductor, Inc.
3f8c95fe6SShawn Guo  *
4f8c95fe6SShawn Guo  * This program is free software; you can redistribute it and/or modify
5f8c95fe6SShawn Guo  * it under the terms of the GNU General Public License version 2 as
6f8c95fe6SShawn Guo  * published by the Free Software Foundation.
7f8c95fe6SShawn Guo  */
8f8c95fe6SShawn Guo 
9f8c95fe6SShawn Guo #ifndef __DEBUG_IMX_UART_H
10f8c95fe6SShawn Guo #define __DEBUG_IMX_UART_H
11f8c95fe6SShawn Guo 
12f8c95fe6SShawn Guo #define IMX1_UART1_BASE_ADDR	0x00206000
13f8c95fe6SShawn Guo #define IMX1_UART2_BASE_ADDR	0x00207000
14f8c95fe6SShawn Guo #define IMX1_UART_BASE_ADDR(n)	IMX1_UART##n##_BASE_ADDR
15f8c95fe6SShawn Guo #define IMX1_UART_BASE(n)	IMX1_UART_BASE_ADDR(n)
16f8c95fe6SShawn Guo 
17f8c95fe6SShawn Guo #define IMX21_UART1_BASE_ADDR	0x1000a000
18f8c95fe6SShawn Guo #define IMX21_UART2_BASE_ADDR	0x1000b000
19f8c95fe6SShawn Guo #define IMX21_UART3_BASE_ADDR	0x1000c000
20f8c95fe6SShawn Guo #define IMX21_UART4_BASE_ADDR	0x1000d000
21f8c95fe6SShawn Guo #define IMX21_UART_BASE_ADDR(n)	IMX21_UART##n##_BASE_ADDR
22f8c95fe6SShawn Guo #define IMX21_UART_BASE(n)	IMX21_UART_BASE_ADDR(n)
23f8c95fe6SShawn Guo 
24f8c95fe6SShawn Guo #define IMX25_UART1_BASE_ADDR	0x43f90000
25f8c95fe6SShawn Guo #define IMX25_UART2_BASE_ADDR	0x43f94000
26f8c95fe6SShawn Guo #define IMX25_UART3_BASE_ADDR	0x5000c000
27f8c95fe6SShawn Guo #define IMX25_UART4_BASE_ADDR	0x50008000
28f8c95fe6SShawn Guo #define IMX25_UART5_BASE_ADDR	0x5002c000
29f8c95fe6SShawn Guo #define IMX25_UART_BASE_ADDR(n)	IMX25_UART##n##_BASE_ADDR
30f8c95fe6SShawn Guo #define IMX25_UART_BASE(n)	IMX25_UART_BASE_ADDR(n)
31f8c95fe6SShawn Guo 
32f8c95fe6SShawn Guo #define IMX31_UART1_BASE_ADDR	0x43f90000
33f8c95fe6SShawn Guo #define IMX31_UART2_BASE_ADDR	0x43f94000
34f8c95fe6SShawn Guo #define IMX31_UART3_BASE_ADDR	0x5000c000
35f8c95fe6SShawn Guo #define IMX31_UART4_BASE_ADDR	0x43fb0000
36f8c95fe6SShawn Guo #define IMX31_UART5_BASE_ADDR	0x43fb4000
37f8c95fe6SShawn Guo #define IMX31_UART_BASE_ADDR(n)	IMX31_UART##n##_BASE_ADDR
38f8c95fe6SShawn Guo #define IMX31_UART_BASE(n)	IMX31_UART_BASE_ADDR(n)
39f8c95fe6SShawn Guo 
40f8c95fe6SShawn Guo #define IMX35_UART1_BASE_ADDR	0x43f90000
41f8c95fe6SShawn Guo #define IMX35_UART2_BASE_ADDR	0x43f94000
42f8c95fe6SShawn Guo #define IMX35_UART3_BASE_ADDR	0x5000c000
43f8c95fe6SShawn Guo #define IMX35_UART_BASE_ADDR(n)	IMX35_UART##n##_BASE_ADDR
44f8c95fe6SShawn Guo #define IMX35_UART_BASE(n)	IMX35_UART_BASE_ADDR(n)
45f8c95fe6SShawn Guo 
46ad364a70SGreg Ungerer #define IMX50_UART1_BASE_ADDR	0x53fbc000
47ad364a70SGreg Ungerer #define IMX50_UART2_BASE_ADDR	0x53fc0000
48ad364a70SGreg Ungerer #define IMX50_UART3_BASE_ADDR	0x5000c000
49ad364a70SGreg Ungerer #define IMX50_UART4_BASE_ADDR	0x53ff0000
50ad364a70SGreg Ungerer #define IMX50_UART5_BASE_ADDR	0x63f90000
51ad364a70SGreg Ungerer #define IMX50_UART_BASE_ADDR(n)	IMX50_UART##n##_BASE_ADDR
52ad364a70SGreg Ungerer #define IMX50_UART_BASE(n)	IMX50_UART_BASE_ADDR(n)
53ad364a70SGreg Ungerer 
54f8c95fe6SShawn Guo #define IMX51_UART1_BASE_ADDR	0x73fbc000
55f8c95fe6SShawn Guo #define IMX51_UART2_BASE_ADDR	0x73fc0000
56f8c95fe6SShawn Guo #define IMX51_UART3_BASE_ADDR	0x7000c000
57f8c95fe6SShawn Guo #define IMX51_UART_BASE_ADDR(n)	IMX51_UART##n##_BASE_ADDR
58f8c95fe6SShawn Guo #define IMX51_UART_BASE(n)	IMX51_UART_BASE_ADDR(n)
59f8c95fe6SShawn Guo 
60f8c95fe6SShawn Guo #define IMX53_UART1_BASE_ADDR	0x53fbc000
61f8c95fe6SShawn Guo #define IMX53_UART2_BASE_ADDR	0x53fc0000
62f8c95fe6SShawn Guo #define IMX53_UART3_BASE_ADDR	0x5000c000
63f8c95fe6SShawn Guo #define IMX53_UART4_BASE_ADDR	0x53ff0000
64f8c95fe6SShawn Guo #define IMX53_UART5_BASE_ADDR	0x63f90000
65f8c95fe6SShawn Guo #define IMX53_UART_BASE_ADDR(n)	IMX53_UART##n##_BASE_ADDR
66f8c95fe6SShawn Guo #define IMX53_UART_BASE(n)	IMX53_UART_BASE_ADDR(n)
67f8c95fe6SShawn Guo 
68f8c95fe6SShawn Guo #define IMX6Q_UART1_BASE_ADDR	0x02020000
69f8c95fe6SShawn Guo #define IMX6Q_UART2_BASE_ADDR	0x021e8000
70f8c95fe6SShawn Guo #define IMX6Q_UART3_BASE_ADDR	0x021ec000
71f8c95fe6SShawn Guo #define IMX6Q_UART4_BASE_ADDR	0x021f0000
72f8c95fe6SShawn Guo #define IMX6Q_UART5_BASE_ADDR	0x021f4000
73f8c95fe6SShawn Guo #define IMX6Q_UART_BASE_ADDR(n)	IMX6Q_UART##n##_BASE_ADDR
74f8c95fe6SShawn Guo #define IMX6Q_UART_BASE(n)	IMX6Q_UART_BASE_ADDR(n)
75f8c95fe6SShawn Guo 
7634e8a16bSShawn Guo #define IMX6SL_UART1_BASE_ADDR	0x02020000
7734e8a16bSShawn Guo #define IMX6SL_UART2_BASE_ADDR	0x02024000
7834e8a16bSShawn Guo #define IMX6SL_UART3_BASE_ADDR	0x02034000
7934e8a16bSShawn Guo #define IMX6SL_UART4_BASE_ADDR	0x02038000
8034e8a16bSShawn Guo #define IMX6SL_UART5_BASE_ADDR	0x02018000
8134e8a16bSShawn Guo #define IMX6SL_UART_BASE_ADDR(n) IMX6SL_UART##n##_BASE_ADDR
8234e8a16bSShawn Guo #define IMX6SL_UART_BASE(n)	IMX6SL_UART_BASE_ADDR(n)
8334e8a16bSShawn Guo 
8474368e81SShawn Guo #define IMX6SX_UART1_BASE_ADDR	0x02020000
8574368e81SShawn Guo #define IMX6SX_UART2_BASE_ADDR	0x021e8000
8674368e81SShawn Guo #define IMX6SX_UART3_BASE_ADDR	0x021ec000
8774368e81SShawn Guo #define IMX6SX_UART4_BASE_ADDR	0x021f0000
8874368e81SShawn Guo #define IMX6SX_UART5_BASE_ADDR	0x021f4000
8974368e81SShawn Guo #define IMX6SX_UART6_BASE_ADDR	0x022a0000
9074368e81SShawn Guo #define IMX6SX_UART_BASE_ADDR(n) IMX6SX_UART##n##_BASE_ADDR
9174368e81SShawn Guo #define IMX6SX_UART_BASE(n)	IMX6SX_UART_BASE_ADDR(n)
9274368e81SShawn Guo 
93*20c305f6SAnson Huang #define IMX6UL_UART1_BASE_ADDR	0x02020000
94*20c305f6SAnson Huang #define IMX6UL_UART2_BASE_ADDR	0x021e8000
95*20c305f6SAnson Huang #define IMX6UL_UART3_BASE_ADDR	0x021ec000
96*20c305f6SAnson Huang #define IMX6UL_UART4_BASE_ADDR	0x021f0000
97*20c305f6SAnson Huang #define IMX6UL_UART5_BASE_ADDR	0x021f4000
98*20c305f6SAnson Huang #define IMX6UL_UART6_BASE_ADDR	0x021fc000
99*20c305f6SAnson Huang #define IMX6UL_UART7_BASE_ADDR	0x02018000
100*20c305f6SAnson Huang #define IMX6UL_UART8_BASE_ADDR	0x02024000
101*20c305f6SAnson Huang #define IMX6UL_UART_BASE_ADDR(n) IMX6UL_UART##n##_BASE_ADDR
102*20c305f6SAnson Huang #define IMX6UL_UART_BASE(n)	IMX6UL_UART_BASE_ADDR(n)
103*20c305f6SAnson Huang 
10452d7aec2SAnson Huang #define IMX7D_UART1_BASE_ADDR	0x30860000
10552d7aec2SAnson Huang #define IMX7D_UART2_BASE_ADDR	0x30890000
10652d7aec2SAnson Huang #define IMX7D_UART3_BASE_ADDR	0x30880000
10752d7aec2SAnson Huang #define IMX7D_UART4_BASE_ADDR	0x30a60000
10852d7aec2SAnson Huang #define IMX7D_UART5_BASE_ADDR	0x30a70000
10952d7aec2SAnson Huang #define IMX7D_UART6_BASE_ADDR	0x30a80000
11052d7aec2SAnson Huang #define IMX7D_UART7_BASE_ADDR	0x30a90000
11152d7aec2SAnson Huang #define IMX7D_UART_BASE_ADDR(n) IMX7D_UART##n##_BASE_ADDR
11252d7aec2SAnson Huang #define IMX7D_UART_BASE(n)	IMX7D_UART_BASE_ADDR(n)
11352d7aec2SAnson Huang 
114f8c95fe6SShawn Guo #define IMX_DEBUG_UART_BASE(soc) soc##_UART_BASE(CONFIG_DEBUG_IMX_UART_PORT)
115f8c95fe6SShawn Guo 
116f8c95fe6SShawn Guo #ifdef CONFIG_DEBUG_IMX1_UART
117f8c95fe6SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX1)
118f8c95fe6SShawn Guo #elif defined(CONFIG_DEBUG_IMX21_IMX27_UART)
119f8c95fe6SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX21)
120f8c95fe6SShawn Guo #elif defined(CONFIG_DEBUG_IMX25_UART)
121f8c95fe6SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX25)
122f8c95fe6SShawn Guo #elif defined(CONFIG_DEBUG_IMX31_UART)
123f8c95fe6SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX31)
124f8c95fe6SShawn Guo #elif defined(CONFIG_DEBUG_IMX35_UART)
125f8c95fe6SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX35)
126ad364a70SGreg Ungerer #elif defined(CONFIG_DEBUG_IMX50_UART)
127ad364a70SGreg Ungerer #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX50)
128f8c95fe6SShawn Guo #elif defined(CONFIG_DEBUG_IMX51_UART)
129f8c95fe6SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX51)
130f8c95fe6SShawn Guo #elif defined(CONFIG_DEBUG_IMX53_UART)
131f8c95fe6SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX53)
132f8c95fe6SShawn Guo #elif defined(CONFIG_DEBUG_IMX6Q_UART)
133f8c95fe6SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX6Q)
13434e8a16bSShawn Guo #elif defined(CONFIG_DEBUG_IMX6SL_UART)
13534e8a16bSShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX6SL)
13674368e81SShawn Guo #elif defined(CONFIG_DEBUG_IMX6SX_UART)
13774368e81SShawn Guo #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX6SX)
138*20c305f6SAnson Huang #elif defined(CONFIG_DEBUG_IMX6UL_UART)
139*20c305f6SAnson Huang #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX6UL)
14052d7aec2SAnson Huang #elif defined(CONFIG_DEBUG_IMX7D_UART)
14152d7aec2SAnson Huang #define UART_PADDR	IMX_DEBUG_UART_BASE(IMX7D)
14252d7aec2SAnson Huang 
143f8c95fe6SShawn Guo #endif
144f8c95fe6SShawn Guo 
145f8c95fe6SShawn Guo #endif /* __DEBUG_IMX_UART_H */
146