| 
									
										
										
										
											2007-07-09 22:06:53 +01:00
										 |  |  | /*
 | 
					
						
							| 
									
										
										
										
											2010-10-21 21:18:59 +08:00
										 |  |  |  * Copyright 2004-2007, 2010 Freescale Semiconductor, Inc. All Rights Reserved. | 
					
						
							| 
									
										
										
										
											2008-07-05 10:02:50 +02:00
										 |  |  |  * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * This program is free software; you can redistribute it and/or | 
					
						
							|  |  |  |  * modify it under the terms of the GNU General Public License | 
					
						
							|  |  |  |  * as published by the Free Software Foundation; either version 2 | 
					
						
							|  |  |  |  * of the License, or (at your option) any later version. | 
					
						
							|  |  |  |  * This program is distributed in the hope that it will be useful, | 
					
						
							|  |  |  |  * but WITHOUT ANY WARRANTY; without even the implied warranty of | 
					
						
							|  |  |  |  * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the | 
					
						
							|  |  |  |  * GNU General Public License for more details. | 
					
						
							|  |  |  |  * | 
					
						
							|  |  |  |  * You should have received a copy of the GNU General Public License | 
					
						
							|  |  |  |  * along with this program; if not, write to the Free Software | 
					
						
							|  |  |  |  * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, | 
					
						
							|  |  |  |  * MA 02110-1301, USA. | 
					
						
							| 
									
										
										
										
											2007-07-09 22:06:53 +01:00
										 |  |  |  */ | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | #ifndef __ASM_ARCH_MXC_H__
 | 
					
						
							|  |  |  | #define __ASM_ARCH_MXC_H__
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-21 21:18:59 +08:00
										 |  |  | #include <linux/types.h>
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2007-07-09 22:06:53 +01:00
										 |  |  | #ifndef __ASM_ARCH_MXC_HARDWARE_H__
 | 
					
						
							|  |  |  | #error "Do not include directly."
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | #define MXC_CPU_MX1		1
 | 
					
						
							|  |  |  | #define MXC_CPU_MX21		21
 | 
					
						
							| 
									
										
										
										
											2009-06-04 11:32:12 +02:00
										 |  |  | #define MXC_CPU_MX25		25
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | #define MXC_CPU_MX27		27
 | 
					
						
							|  |  |  | #define MXC_CPU_MX31		31
 | 
					
						
							|  |  |  | #define MXC_CPU_MX35		35
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:09:40 -08:00
										 |  |  | #define MXC_CPU_MX51		51
 | 
					
						
							| 
									
										
										
										
											2010-11-15 11:29:59 -06:00
										 |  |  | #define MXC_CPU_MX53		53
 | 
					
						
							| 
									
										
										
										
											2013-08-13 16:59:28 +08:00
										 |  |  | #define MXC_CPU_IMX6SL		0x60
 | 
					
						
							| 
									
										
										
										
											2013-04-01 22:13:32 +08:00
										 |  |  | #define MXC_CPU_IMX6DL		0x61
 | 
					
						
							|  |  |  | #define MXC_CPU_IMX6Q		0x63
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-11-15 11:30:01 -06:00
										 |  |  | #define IMX_CHIP_REVISION_1_0		0x10
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_1_1		0x11
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_1_2		0x12
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_1_3		0x13
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_2_0		0x20
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_2_1		0x21
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_2_2		0x22
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_2_3		0x23
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_3_0		0x30
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_3_1		0x31
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_3_2		0x32
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_3_3		0x33
 | 
					
						
							|  |  |  | #define IMX_CHIP_REVISION_UNKNOWN	0xff
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | #ifndef __ASSEMBLY__
 | 
					
						
							|  |  |  | extern unsigned int __mxc_cpu_type; | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-19 17:23:44 +02:00
										 |  |  | #ifdef CONFIG_SOC_IMX1
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | # ifdef mxc_cpu_type
 | 
					
						
							|  |  |  | #  undef mxc_cpu_type
 | 
					
						
							|  |  |  | #  define mxc_cpu_type __mxc_cpu_type
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define mxc_cpu_type MXC_CPU_MX1
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | # define cpu_is_mx1()		(mxc_cpu_type == MXC_CPU_MX1)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define cpu_is_mx1()		(0)
 | 
					
						
							| 
									
										
										
										
											2008-04-02 10:29:30 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-19 17:23:44 +02:00
										 |  |  | #ifdef CONFIG_SOC_IMX21
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | # ifdef mxc_cpu_type
 | 
					
						
							|  |  |  | #  undef mxc_cpu_type
 | 
					
						
							|  |  |  | #  define mxc_cpu_type __mxc_cpu_type
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define mxc_cpu_type MXC_CPU_MX21
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | # define cpu_is_mx21()		(mxc_cpu_type == MXC_CPU_MX21)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define cpu_is_mx21()		(0)
 | 
					
						
							| 
									
										
										
										
											2009-01-26 16:34:52 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-19 17:23:44 +02:00
										 |  |  | #ifdef CONFIG_SOC_IMX25
 | 
					
						
							| 
									
										
										
										
											2009-06-04 11:32:12 +02:00
										 |  |  | # ifdef mxc_cpu_type
 | 
					
						
							|  |  |  | #  undef mxc_cpu_type
 | 
					
						
							|  |  |  | #  define mxc_cpu_type __mxc_cpu_type
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define mxc_cpu_type MXC_CPU_MX25
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | # define cpu_is_mx25()		(mxc_cpu_type == MXC_CPU_MX25)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define cpu_is_mx25()		(0)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-05-19 17:23:44 +02:00
										 |  |  | #ifdef CONFIG_SOC_IMX27
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | # ifdef mxc_cpu_type
 | 
					
						
							|  |  |  | #  undef mxc_cpu_type
 | 
					
						
							|  |  |  | #  define mxc_cpu_type __mxc_cpu_type
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define mxc_cpu_type MXC_CPU_MX27
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | # define cpu_is_mx27()		(mxc_cpu_type == MXC_CPU_MX27)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define cpu_is_mx27()		(0)
 | 
					
						
							| 
									
										
										
										
											2008-07-05 10:02:59 +02:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-03 16:40:03 +08:00
										 |  |  | #ifdef CONFIG_SOC_IMX31
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | # ifdef mxc_cpu_type
 | 
					
						
							|  |  |  | #  undef mxc_cpu_type
 | 
					
						
							|  |  |  | #  define mxc_cpu_type __mxc_cpu_type
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define mxc_cpu_type MXC_CPU_MX31
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | # define cpu_is_mx31()		(mxc_cpu_type == MXC_CPU_MX31)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define cpu_is_mx31()		(0)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-03 16:40:03 +08:00
										 |  |  | #ifdef CONFIG_SOC_IMX35
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | # ifdef mxc_cpu_type
 | 
					
						
							|  |  |  | #  undef mxc_cpu_type
 | 
					
						
							|  |  |  | #  define mxc_cpu_type __mxc_cpu_type
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define mxc_cpu_type MXC_CPU_MX35
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | # define cpu_is_mx35()		(mxc_cpu_type == MXC_CPU_MX35)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define cpu_is_mx35()		(0)
 | 
					
						
							| 
									
										
										
										
											2009-01-26 16:34:53 +01:00
										 |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-03 16:40:02 +08:00
										 |  |  | #ifdef CONFIG_SOC_IMX51
 | 
					
						
							| 
									
										
										
										
											2010-02-04 12:09:40 -08:00
										 |  |  | # ifdef mxc_cpu_type
 | 
					
						
							|  |  |  | #  undef mxc_cpu_type
 | 
					
						
							|  |  |  | #  define mxc_cpu_type __mxc_cpu_type
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define mxc_cpu_type MXC_CPU_MX51
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | # define cpu_is_mx51()		(mxc_cpu_type == MXC_CPU_MX51)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define cpu_is_mx51()		(0)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-03-03 16:40:02 +08:00
										 |  |  | #ifdef CONFIG_SOC_IMX53
 | 
					
						
							| 
									
										
										
										
											2010-12-30 19:25:03 +08:00
										 |  |  | # ifdef mxc_cpu_type
 | 
					
						
							|  |  |  | #  undef mxc_cpu_type
 | 
					
						
							|  |  |  | #  define mxc_cpu_type __mxc_cpu_type
 | 
					
						
							|  |  |  | # else
 | 
					
						
							|  |  |  | #  define mxc_cpu_type MXC_CPU_MX53
 | 
					
						
							|  |  |  | # endif
 | 
					
						
							|  |  |  | # define cpu_is_mx53()		(mxc_cpu_type == MXC_CPU_MX53)
 | 
					
						
							|  |  |  | #else
 | 
					
						
							|  |  |  | # define cpu_is_mx53()		(0)
 | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-21 21:18:59 +08:00
										 |  |  | #ifndef __ASSEMBLY__
 | 
					
						
							| 
									
										
										
										
											2013-10-17 10:07:09 +08:00
										 |  |  | static inline bool cpu_is_imx6sl(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return __mxc_cpu_type == MXC_CPU_IMX6SL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2013-04-01 22:13:32 +08:00
										 |  |  | static inline bool cpu_is_imx6dl(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return __mxc_cpu_type == MXC_CPU_IMX6DL; | 
					
						
							|  |  |  | } | 
					
						
							|  |  |  | 
 | 
					
						
							|  |  |  | static inline bool cpu_is_imx6q(void) | 
					
						
							|  |  |  | { | 
					
						
							|  |  |  | 	return __mxc_cpu_type == MXC_CPU_IMX6Q; | 
					
						
							|  |  |  | } | 
					
						
							| 
									
										
										
										
											2010-10-21 21:18:59 +08:00
										 |  |  | 
 | 
					
						
							|  |  |  | struct cpu_op { | 
					
						
							|  |  |  | 	u32 cpu_rate; | 
					
						
							|  |  |  | }; | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-10-09 17:42:15 +08:00
										 |  |  | int tzic_enable_wake(void); | 
					
						
							| 
									
										
										
										
											2011-03-21 16:30:37 -05:00
										 |  |  | 
 | 
					
						
							| 
									
										
										
										
											2010-10-21 21:18:59 +08:00
										 |  |  | extern struct cpu_op *(*get_cpu_op)(int *op); | 
					
						
							|  |  |  | #endif
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2011-04-07 11:13:25 +02:00
										 |  |  | #define cpu_is_mx3()	(cpu_is_mx31() || cpu_is_mx35())
 | 
					
						
							| 
									
										
										
										
											2009-02-06 15:38:22 +01:00
										 |  |  | #define cpu_is_mx2()	(cpu_is_mx21() || cpu_is_mx27())
 | 
					
						
							|  |  |  | 
 | 
					
						
							| 
									
										
										
										
											2008-03-28 10:59:08 +01:00
										 |  |  | #endif /*  __ASM_ARCH_MXC_H__ */
 |