1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 2 /* 3 * Copyright 2004-2007, 2010-2015 Freescale Semiconductor, Inc. 4 * Copyright (C) 2008 Juergen Beisert (kernel@pengutronix.de) 5 */ 6 7 #ifndef __ASM_ARCH_MXC_H__ 8 #define __ASM_ARCH_MXC_H__ 9 10 #include <linux/types.h> 11 #include <soc/imx/cpu.h> 12 13 #ifndef __ASM_ARCH_MXC_HARDWARE_H__ 14 #error "Do not include directly." 15 #endif 16 17 #define IMX_DDR_TYPE_LPDDR2 1 18 19 #ifndef __ASSEMBLY__ 20 21 #ifdef CONFIG_SOC_IMX6SL 22 static inline bool cpu_is_imx6sl(void) 23 { 24 return __mxc_cpu_type == MXC_CPU_IMX6SL; 25 } 26 #else 27 static inline bool cpu_is_imx6sl(void) 28 { 29 return false; 30 } 31 #endif 32 33 static inline bool cpu_is_imx6dl(void) 34 { 35 return __mxc_cpu_type == MXC_CPU_IMX6DL; 36 } 37 38 static inline bool cpu_is_imx6sx(void) 39 { 40 return __mxc_cpu_type == MXC_CPU_IMX6SX; 41 } 42 43 static inline bool cpu_is_imx6ul(void) 44 { 45 return __mxc_cpu_type == MXC_CPU_IMX6UL; 46 } 47 48 static inline bool cpu_is_imx6ull(void) 49 { 50 return __mxc_cpu_type == MXC_CPU_IMX6ULL; 51 } 52 53 static inline bool cpu_is_imx6ulz(void) 54 { 55 return __mxc_cpu_type == MXC_CPU_IMX6ULZ; 56 } 57 58 static inline bool cpu_is_imx6sll(void) 59 { 60 return __mxc_cpu_type == MXC_CPU_IMX6SLL; 61 } 62 63 static inline bool cpu_is_imx6q(void) 64 { 65 return __mxc_cpu_type == MXC_CPU_IMX6Q; 66 } 67 68 static inline bool cpu_is_imx7d(void) 69 { 70 return __mxc_cpu_type == MXC_CPU_IMX7D; 71 } 72 73 struct cpu_op { 74 u32 cpu_rate; 75 }; 76 77 int tzic_enable_wake(void); 78 79 extern struct cpu_op *(*get_cpu_op)(int *op); 80 #endif 81 82 #define imx_readl readl_relaxed 83 #define imx_readw readw_relaxed 84 #define imx_writel writel_relaxed 85 #define imx_writew writew_relaxed 86 87 #endif /* __ASM_ARCH_MXC_H__ */ 88