1/* 2 * Copyright 2004-2007 Freescale Semiconductor, Inc. All Rights Reserved. 3 * 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. 18 */ 19 20#ifndef __ASM_ARCH_MXC_H__ 21#define __ASM_ARCH_MXC_H__ 22 23#ifndef __ASM_ARCH_MXC_HARDWARE_H__ 24#error "Do not include directly." 25#endif 26 27#define MXC_CPU_MX1 1 28#define MXC_CPU_MX21 21 29#define MXC_CPU_MX25 25 30#define MXC_CPU_MX27 27 31#define MXC_CPU_MX31 31 32#define MXC_CPU_MX35 35 33#define MXC_CPU_MX51 51 34#define MXC_CPU_MXC91231 91231 35 36#ifndef __ASSEMBLY__ 37extern unsigned int __mxc_cpu_type; 38#endif 39 40#ifdef CONFIG_ARCH_MX1 41# ifdef mxc_cpu_type 42# undef mxc_cpu_type 43# define mxc_cpu_type __mxc_cpu_type 44# else 45# define mxc_cpu_type MXC_CPU_MX1 46# endif 47# define cpu_is_mx1() (mxc_cpu_type == MXC_CPU_MX1) 48#else 49# define cpu_is_mx1() (0) 50#endif 51 52#ifdef CONFIG_MACH_MX21 53# ifdef mxc_cpu_type 54# undef mxc_cpu_type 55# define mxc_cpu_type __mxc_cpu_type 56# else 57# define mxc_cpu_type MXC_CPU_MX21 58# endif 59# define cpu_is_mx21() (mxc_cpu_type == MXC_CPU_MX21) 60#else 61# define cpu_is_mx21() (0) 62#endif 63 64#ifdef CONFIG_ARCH_MX25 65# ifdef mxc_cpu_type 66# undef mxc_cpu_type 67# define mxc_cpu_type __mxc_cpu_type 68# else 69# define mxc_cpu_type MXC_CPU_MX25 70# endif 71# define cpu_is_mx25() (mxc_cpu_type == MXC_CPU_MX25) 72#else 73# define cpu_is_mx25() (0) 74#endif 75 76#ifdef CONFIG_MACH_MX27 77# ifdef mxc_cpu_type 78# undef mxc_cpu_type 79# define mxc_cpu_type __mxc_cpu_type 80# else 81# define mxc_cpu_type MXC_CPU_MX27 82# endif 83# define cpu_is_mx27() (mxc_cpu_type == MXC_CPU_MX27) 84#else 85# define cpu_is_mx27() (0) 86#endif 87 88#ifdef CONFIG_ARCH_MX31 89# ifdef mxc_cpu_type 90# undef mxc_cpu_type 91# define mxc_cpu_type __mxc_cpu_type 92# else 93# define mxc_cpu_type MXC_CPU_MX31 94# endif 95# define cpu_is_mx31() (mxc_cpu_type == MXC_CPU_MX31) 96#else 97# define cpu_is_mx31() (0) 98#endif 99 100#ifdef CONFIG_ARCH_MX35 101# ifdef mxc_cpu_type 102# undef mxc_cpu_type 103# define mxc_cpu_type __mxc_cpu_type 104# else 105# define mxc_cpu_type MXC_CPU_MX35 106# endif 107# define cpu_is_mx35() (mxc_cpu_type == MXC_CPU_MX35) 108#else 109# define cpu_is_mx35() (0) 110#endif 111 112#ifdef CONFIG_ARCH_MX5 113# ifdef mxc_cpu_type 114# undef mxc_cpu_type 115# define mxc_cpu_type __mxc_cpu_type 116# else 117# define mxc_cpu_type MXC_CPU_MX51 118# endif 119# define cpu_is_mx51() (mxc_cpu_type == MXC_CPU_MX51) 120#else 121# define cpu_is_mx51() (0) 122#endif 123 124#ifdef CONFIG_ARCH_MXC91231 125# ifdef mxc_cpu_type 126# undef mxc_cpu_type 127# define mxc_cpu_type __mxc_cpu_type 128# else 129# define mxc_cpu_type MXC_CPU_MXC91231 130# endif 131# define cpu_is_mxc91231() (mxc_cpu_type == MXC_CPU_MXC91231) 132#else 133# define cpu_is_mxc91231() (0) 134#endif 135 136#if defined(CONFIG_ARCH_MX3) || defined(CONFIG_ARCH_MX2) 137/* These are deprecated, use mx[23][157]_setup_weimcs instead. */ 138#define CSCR_U(n) (IO_ADDRESS(WEIM_BASE_ADDR + n * 0x10)) 139#define CSCR_L(n) (IO_ADDRESS(WEIM_BASE_ADDR + n * 0x10 + 0x4)) 140#define CSCR_A(n) (IO_ADDRESS(WEIM_BASE_ADDR + n * 0x10 + 0x8)) 141#endif 142 143#define cpu_is_mx3() (cpu_is_mx31() || cpu_is_mx35() || cpu_is_mxc91231()) 144#define cpu_is_mx2() (cpu_is_mx21() || cpu_is_mx27()) 145 146#endif /* __ASM_ARCH_MXC_H__ */ 147