0001 # SPDX-License-Identifier: GPL-2.0-only
0002 menuconfig ARCH_MXC
0003 bool "Freescale i.MX family"
0004 depends on (ARCH_MULTI_V4_V5 && CPU_LITTLE_ENDIAN) || \
0005 ARCH_MULTI_V6_V7 || ARM_SINGLE_ARMV7M
0006 select CLKSRC_IMX_GPT
0007 select GENERIC_IRQ_CHIP
0008 select GPIOLIB
0009 select PINCTRL
0010 select PM_OPP if PM
0011 select SOC_BUS
0012 select SRAM
0013 help
0014 Support for Freescale MXC/iMX-based family of processors
0015
0016 if ARCH_MXC
0017
0018 config MXC_TZIC
0019 bool
0020
0021 config MXC_AVIC
0022 bool
0023
0024 config HAVE_IMX_ANATOP
0025 bool
0026
0027 config HAVE_IMX_GPC
0028 bool
0029 select PM_GENERIC_DOMAINS if PM
0030
0031 config HAVE_IMX_MMDC
0032 bool
0033
0034 config HAVE_IMX_SRC
0035 def_bool y if SMP
0036 select ARCH_HAS_RESET_CONTROLLER
0037
0038 if ARCH_MULTI_V6
0039
0040 comment "ARM1136 platforms"
0041
0042 config SOC_IMX31
0043 bool "i.MX31 support"
0044 select CPU_V6
0045 select MXC_AVIC
0046 help
0047 This enables support for Freescale i.MX31 processor
0048
0049 config SOC_IMX35
0050 bool "i.MX35 support"
0051 select MXC_AVIC
0052 select PINCTRL_IMX35
0053 help
0054 This enables support for Freescale i.MX35 processor
0055
0056 endif
0057
0058 if ARCH_MULTI_V4T
0059
0060 config SOC_IMX1
0061 bool "i.MX1 support"
0062 select CPU_ARM920T
0063 select MXC_AVIC
0064 select PINCTRL_IMX1
0065 help
0066 This enables support for Freescale i.MX1 processor
0067
0068 endif
0069
0070 if ARCH_MULTI_V5
0071
0072 config SOC_IMX25
0073 bool "i.MX25 support"
0074 select CPU_ARM926T
0075 select MXC_AVIC
0076 select PINCTRL_IMX25
0077 help
0078 This enables support for Freescale i.MX25 processor
0079
0080 config SOC_IMX27
0081 bool "i.MX27 support"
0082 select CPU_ARM926T
0083 select MXC_AVIC
0084 select PINCTRL_IMX27
0085 help
0086 This enables support for Freescale i.MX27 processor
0087
0088 endif
0089
0090 if ARCH_MULTI_V7
0091
0092 comment "Cortex-A platforms"
0093
0094 config SOC_IMX5
0095 bool
0096 select HAVE_IMX_SRC
0097 select MXC_TZIC
0098
0099 config SOC_IMX50
0100 bool "i.MX50 support"
0101 select PINCTRL_IMX50
0102 select SOC_IMX5
0103
0104 help
0105 This enables support for Freescale i.MX50 processor.
0106
0107 config SOC_IMX51
0108 bool "i.MX51 support"
0109 select PINCTRL_IMX51
0110 select SOC_IMX5
0111 help
0112 This enables support for Freescale i.MX51 processor
0113
0114 config SOC_IMX53
0115 bool "i.MX53 support"
0116 select PINCTRL_IMX53
0117 select SOC_IMX5
0118
0119 help
0120 This enables support for Freescale i.MX53 processor.
0121
0122 config SOC_IMX6
0123 bool
0124 select ARM_CPU_SUSPEND if (PM || CPU_IDLE)
0125 select ARM_GIC
0126 select HAVE_IMX_ANATOP
0127 select HAVE_IMX_GPC
0128 select HAVE_IMX_MMDC
0129 select HAVE_IMX_SRC
0130 select MFD_SYSCON
0131 select PL310_ERRATA_769419 if CACHE_L2X0
0132
0133 config SOC_IMX6Q
0134 bool "i.MX6 Quad/DualLite support"
0135 select ARM_ERRATA_764369 if SMP
0136 select ARM_ERRATA_754322
0137 select ARM_ERRATA_775420
0138 select HAVE_ARM_SCU if SMP
0139 select HAVE_ARM_TWD
0140 select PINCTRL_IMX6Q
0141 select SOC_IMX6
0142
0143 help
0144 This enables support for Freescale i.MX6 Quad processor.
0145
0146 config SOC_IMX6SL
0147 bool "i.MX6 SoloLite support"
0148 select ARM_ERRATA_754322
0149 select ARM_ERRATA_775420
0150 select PINCTRL_IMX6SL
0151 select SOC_IMX6
0152
0153 help
0154 This enables support for Freescale i.MX6 SoloLite processor.
0155
0156 config SOC_IMX6SLL
0157 bool "i.MX6 SoloLiteLite support"
0158 select ARM_ERRATA_754322
0159 select ARM_ERRATA_775420
0160 select PINCTRL_IMX6SLL
0161 select SOC_IMX6
0162
0163 help
0164 This enables support for Freescale i.MX6 SoloLiteLite processor.
0165
0166 config SOC_IMX6SX
0167 bool "i.MX6 SoloX support"
0168 select ARM_ERRATA_754322
0169 select ARM_ERRATA_775420
0170 select PINCTRL_IMX6SX
0171 select SOC_IMX6
0172
0173 help
0174 This enables support for Freescale i.MX6 SoloX processor.
0175
0176 config SOC_IMX6UL
0177 bool "i.MX6 UltraLite support"
0178 select PINCTRL_IMX6UL
0179 select SOC_IMX6
0180 select ARM_ERRATA_814220
0181
0182 help
0183 This enables support for Freescale i.MX6 UltraLite processor.
0184
0185 config SOC_LS1021A
0186 bool "Freescale LS1021A support"
0187 select ARM_GIC
0188 select HAVE_ARM_ARCH_TIMER
0189 select ZONE_DMA if ARM_LPAE
0190 help
0191 This enables support for Freescale LS1021A processor.
0192
0193 endif
0194
0195 if ARCH_MULTI_V7 || ARM_SINGLE_ARMV7M
0196
0197 comment "Cortex-A/Cortex-M asymmetric multiprocessing platforms"
0198
0199 config SOC_IMX7D_CA7
0200 bool
0201 select ARM_GIC
0202 select HAVE_ARM_ARCH_TIMER
0203 select HAVE_IMX_ANATOP
0204 select HAVE_IMX_MMDC
0205 select HAVE_IMX_SRC
0206 select IMX_GPCV2
0207
0208 config SOC_IMX7D_CM4
0209 bool
0210 select ARMV7M_SYSTICK
0211
0212 config SOC_IMX7D
0213 bool "i.MX7 Dual support"
0214 select PINCTRL_IMX7D
0215 select SOC_IMX7D_CA7 if ARCH_MULTI_V7
0216 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
0217 select ARM_ERRATA_814220 if ARCH_MULTI_V7
0218 help
0219 This enables support for Freescale i.MX7 Dual processor.
0220
0221 config SOC_IMX7ULP
0222 bool "i.MX7ULP support"
0223 select CLKSRC_IMX_TPM
0224 select PINCTRL_IMX7ULP
0225 select SOC_IMX7D_CA7 if ARCH_MULTI_V7
0226 select SOC_IMX7D_CM4 if ARM_SINGLE_ARMV7M
0227 help
0228 This enables support for Freescale i.MX7 Ultra Low Power processor.
0229
0230 config SOC_IMXRT
0231 bool "i.MXRT support"
0232 depends on ARM_SINGLE_ARMV7M
0233 select ARMV7M_SYSTICK if ARM_SINGLE_ARMV7M
0234 help
0235 This enables support for Freescale i.MXRT Crossover processor.
0236
0237 config SOC_VF610
0238 bool "Vybrid Family VF610 support"
0239 select ARM_GIC if ARCH_MULTI_V7
0240 select PINCTRL_VF610
0241
0242 help
0243 This enables support for Freescale Vybrid VF610 processor.
0244
0245 choice
0246 prompt "Clocksource for scheduler clock"
0247 depends on SOC_VF610
0248 default VF_USE_ARM_GLOBAL_TIMER
0249
0250 config VF_USE_ARM_GLOBAL_TIMER
0251 bool "Use ARM Global Timer"
0252 depends on ARCH_MULTI_V7
0253 select ARM_GLOBAL_TIMER
0254 select CLKSRC_ARM_GLOBAL_TIMER_SCHED_CLOCK
0255 help
0256 Use the ARM Global Timer as clocksource
0257
0258 config VF_USE_PIT_TIMER
0259 bool "Use PIT timer"
0260 select VF_PIT_TIMER
0261 help
0262 Use SoC Periodic Interrupt Timer (PIT) as clocksource
0263
0264 endchoice
0265
0266 endif
0267
0268 endif