blob: 34f2ff62583c6ebc1e93dd1285d6e2b3c83d5e65 [file] [log] [blame]
Quinn Jensen52c543f2007-07-09 22:06:53 +01001/*
Anson Huang5739b912015-05-08 01:35:55 +08002 * Copyright 2004-2007, 2010-2015 Freescale Semiconductor, Inc.
Juergen Beisertd0f349f2008-07-05 10:02:50 +02003 * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de)
4 *
5 * This program is free software; you can redistribute it and/or
6 * modify it under the terms of the GNU General Public License
7 * as published by the Free Software Foundation; either version 2
8 * of the License, or (at your option) any later version.
9 * This program is distributed in the hope that it will be useful,
10 * but WITHOUT ANY WARRANTY; without even the implied warranty of
11 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
12 * GNU General Public License for more details.
13 *
14 * You should have received a copy of the GNU General Public License
15 * along with this program; if not, write to the Free Software
16 * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston,
17 * MA 02110-1301, USA.
Quinn Jensen52c543f2007-07-09 22:06:53 +010018 */
19
20#ifndef __ASM_ARCH_MXC_H__
21#define __ASM_ARCH_MXC_H__
22
Yong Shen64f102b2010-10-21 21:18:59 +080023#include <linux/types.h>
24
Quinn Jensen52c543f2007-07-09 22:06:53 +010025#ifndef __ASM_ARCH_MXC_HARDWARE_H__
26#error "Do not include directly."
27#endif
28
Sascha Hauer198016e2009-02-06 15:38:22 +010029#define MXC_CPU_MX1 1
30#define MXC_CPU_MX21 21
Sascha Hauer8c25c362009-06-04 11:32:12 +020031#define MXC_CPU_MX25 25
Sascha Hauer198016e2009-02-06 15:38:22 +010032#define MXC_CPU_MX27 27
33#define MXC_CPU_MX31 31
34#define MXC_CPU_MX35 35
Amit Kucheria438caa32010-02-04 12:09:40 -080035#define MXC_CPU_MX51 51
Dinh Nguyenc0abefd2010-11-15 11:29:59 -060036#define MXC_CPU_MX53 53
Shawn Guoa2887542013-08-13 16:59:28 +080037#define MXC_CPU_IMX6SL 0x60
Shawn Guo3c03a2f2013-04-01 22:13:32 +080038#define MXC_CPU_IMX6DL 0x61
Shawn Guod9654dc2014-05-13 21:46:16 +080039#define MXC_CPU_IMX6SX 0x62
Shawn Guo3c03a2f2013-04-01 22:13:32 +080040#define MXC_CPU_IMX6Q 0x63
Frank Li022d0712015-07-10 02:09:41 +080041#define MXC_CPU_IMX6UL 0x64
Anson Huang5739b912015-05-08 01:35:55 +080042#define MXC_CPU_IMX7D 0x72
Sascha Hauer198016e2009-02-06 15:38:22 +010043
Anson Huangec336b22014-09-17 11:11:45 +080044#define IMX_DDR_TYPE_LPDDR2 1
45
Sascha Hauer198016e2009-02-06 15:38:22 +010046#ifndef __ASSEMBLY__
47extern unsigned int __mxc_cpu_type;
Robert Schwebeld2db9aa2008-04-02 10:29:30 +010048
Arnd Bergmanna82eb092014-07-03 16:22:54 +020049#ifdef CONFIG_SOC_IMX6SL
Shawn Guo9ba64fe2013-10-17 10:07:09 +080050static inline bool cpu_is_imx6sl(void)
51{
52 return __mxc_cpu_type == MXC_CPU_IMX6SL;
53}
Arnd Bergmanna82eb092014-07-03 16:22:54 +020054#else
55static inline bool cpu_is_imx6sl(void)
56{
57 return false;
58}
59#endif
Shawn Guo9ba64fe2013-10-17 10:07:09 +080060
Shawn Guo3c03a2f2013-04-01 22:13:32 +080061static inline bool cpu_is_imx6dl(void)
62{
63 return __mxc_cpu_type == MXC_CPU_IMX6DL;
64}
65
Shawn Guod9654dc2014-05-13 21:46:16 +080066static inline bool cpu_is_imx6sx(void)
67{
68 return __mxc_cpu_type == MXC_CPU_IMX6SX;
69}
70
Frank Li022d0712015-07-10 02:09:41 +080071static inline bool cpu_is_imx6ul(void)
72{
73 return __mxc_cpu_type == MXC_CPU_IMX6UL;
74}
75
Shawn Guo3c03a2f2013-04-01 22:13:32 +080076static inline bool cpu_is_imx6q(void)
77{
78 return __mxc_cpu_type == MXC_CPU_IMX6Q;
79}
Yong Shen64f102b2010-10-21 21:18:59 +080080
Anson Huang5739b912015-05-08 01:35:55 +080081static inline bool cpu_is_imx7d(void)
82{
83 return __mxc_cpu_type == MXC_CPU_IMX7D;
84}
85
Yong Shen64f102b2010-10-21 21:18:59 +080086struct cpu_op {
87 u32 cpu_rate;
88};
89
Hui Wang010dc8a2011-10-09 17:42:15 +080090int tzic_enable_wake(void);
Dinh Nguyen0adf8822011-03-21 16:30:37 -050091
Yong Shen64f102b2010-10-21 21:18:59 +080092extern struct cpu_op *(*get_cpu_op)(int *op);
93#endif
94
Johannes Bergc5531382016-01-27 17:59:35 +010095#define imx_readl readl_relaxed
96#define imx_readw readw_relaxed
97#define imx_writel writel_relaxed
98#define imx_writew writew_relaxed
99
Robert Schwebelf304fc42008-03-28 10:59:08 +0100100#endif /* __ASM_ARCH_MXC_H__ */