1# i.MX RT series
2
3# Copyright (c) 2017-2021, NXP
4# SPDX-License-Identifier: Apache-2.0
5
6choice
7	prompt "i.MX RT Selection"
8	depends on SOC_SERIES_IMX_RT
9
10config SOC_MIMXRT1011
11	bool "SOC_MIMXRT1011"
12	select SOC_SERIES_IMX_RT10XX
13	select HAS_MCUX
14	select HAS_MCUX_CACHE
15	select HAS_MCUX_CCM
16	select HAS_MCUX_FLEXSPI
17	select HAS_MCUX_IGPIO
18	select HAS_MCUX_LPI2C
19	select HAS_MCUX_LPSPI
20	select HAS_MCUX_LPUART
21	select HAS_MCUX_GPT
22	select HAS_MCUX_TRNG
23	select CPU_HAS_ARM_MPU
24	select INIT_SYS_PLL
25	select INIT_USB1_PLL
26	select INIT_ENET_PLL
27	select HAS_MCUX_USB_EHCI
28	select HAS_MCUX_USDHC1
29	select HAS_MCUX_USDHC2
30	select HAS_MCUX_EDMA
31
32config SOC_MIMXRT1015
33	bool "SOC_MIMXRT1015"
34	select SOC_SERIES_IMX_RT10XX
35	select HAS_MCUX
36	select HAS_MCUX_CACHE
37	select HAS_MCUX_CCM
38	select HAS_MCUX_FLEXSPI
39	select HAS_MCUX_IGPIO
40	select HAS_MCUX_LPI2C
41	select HAS_MCUX_LPSPI
42	select HAS_MCUX_LPUART
43	select HAS_MCUX_GPT
44	select HAS_MCUX_TRNG
45	select CPU_HAS_FPU_DOUBLE_PRECISION
46	select CPU_HAS_ARM_MPU
47	select INIT_SYS_PLL
48	select INIT_USB1_PLL
49	select INIT_ENET_PLL
50	select HAS_MCUX_USB_EHCI
51	select HAS_MCUX_USDHC1
52	select HAS_MCUX_USDHC2
53	select HAS_MCUX_EDMA
54
55config SOC_MIMXRT1021
56	bool "SOC_MIMXRT1021"
57	select SOC_SERIES_IMX_RT10XX
58	select HAS_MCUX
59	select HAS_MCUX_CACHE
60	select HAS_MCUX_CCM
61	select HAS_MCUX_ENET
62	select HAS_MCUX_FLEXSPI
63	select HAS_MCUX_IGPIO
64	select HAS_MCUX_LPI2C
65	select HAS_MCUX_LPSPI
66	select HAS_MCUX_LPUART
67	select HAS_MCUX_GPT
68	select HAS_MCUX_SEMC
69	select HAS_MCUX_TRNG
70	select CPU_HAS_FPU_DOUBLE_PRECISION
71	select CPU_HAS_ARM_MPU
72	select INIT_SYS_PLL
73	select INIT_USB1_PLL
74	select INIT_ENET_PLL
75	select HAS_MCUX_USB_EHCI
76	select HAS_MCUX_USDHC1
77	select HAS_MCUX_USDHC2
78	select HAS_MCUX_EDMA
79	select HAS_MCUX_FLEXCAN
80
81config SOC_MIMXRT1024
82	bool "SOC_MIMXRT1024"
83	select SOC_SERIES_IMX_RT10XX
84	select HAS_MCUX
85	select HAS_MCUX_CACHE
86	select HAS_MCUX_CCM
87	select HAS_MCUX_ENET
88	select HAS_MCUX_FLEXSPI
89	select HAS_MCUX_IGPIO
90	select HAS_MCUX_LPI2C
91	select HAS_MCUX_LPSPI
92	select HAS_MCUX_LPUART
93	select HAS_MCUX_GPT
94	select HAS_MCUX_SEMC
95	select HAS_MCUX_TRNG
96	select CPU_HAS_FPU_DOUBLE_PRECISION
97	select CPU_HAS_ARM_MPU
98	select INIT_SYS_PLL
99	select INIT_USB1_PLL
100	select INIT_ENET_PLL
101	select HAS_MCUX_USB_EHCI
102	select HAS_MCUX_USDHC1
103	select HAS_MCUX_USDHC2
104	select HAS_MCUX_EDMA
105	select HAS_MCUX_FLEXCAN
106
107config SOC_MIMXRT1051
108	bool "SOC_MIMXRT1051"
109	select SOC_SERIES_IMX_RT10XX
110	select HAS_MCUX
111	select HAS_MCUX_CACHE
112	select HAS_MCUX_CCM
113	select HAS_MCUX_ENET
114	select HAS_MCUX_FLEXSPI
115	select HAS_MCUX_IGPIO
116	select HAS_MCUX_LPI2C
117	select HAS_MCUX_LPSPI
118	select HAS_MCUX_LPUART
119	select HAS_MCUX_GPT
120	select HAS_MCUX_SEMC
121	select HAS_MCUX_TRNG
122	select CPU_HAS_FPU_DOUBLE_PRECISION
123	select CPU_HAS_ARM_MPU
124	select INIT_ARM_PLL
125	select INIT_SYS_PLL
126	select INIT_USB1_PLL
127	select HAS_MCUX_USB_EHCI
128	select HAS_MCUX_USDHC1
129	select HAS_MCUX_USDHC2
130	select HAS_MCUX_CSI
131	select HAS_MCUX_EDMA
132	select HAS_MCUX_FLEXCAN
133
134config SOC_MIMXRT1052
135	bool "SOC_MIMXRT1052"
136	select SOC_SERIES_IMX_RT10XX
137	select HAS_MCUX
138	select HAS_MCUX_CACHE
139	select HAS_MCUX_CCM
140	select HAS_MCUX_ELCDIF
141	select HAS_MCUX_ENET
142	select HAS_MCUX_FLEXSPI
143	select HAS_MCUX_IGPIO
144	select HAS_MCUX_LPI2C
145	select HAS_MCUX_LPSPI
146	select HAS_MCUX_LPUART
147	select HAS_MCUX_GPT
148	select HAS_MCUX_SEMC
149	select HAS_MCUX_TRNG
150	select CPU_HAS_FPU_DOUBLE_PRECISION
151	select CPU_HAS_ARM_MPU
152	select INIT_ARM_PLL
153	select INIT_SYS_PLL
154	select INIT_USB1_PLL
155	select INIT_VIDEO_PLL if DISPLAY_MCUX_ELCDIF
156	select INIT_ENET_PLL if NET_L2_ETHERNET
157	select HAS_MCUX_USB_EHCI
158	select HAS_MCUX_USDHC1
159	select HAS_MCUX_USDHC2
160	select HAS_MCUX_CSI
161	select HAS_MCUX_EDMA
162	select HAS_MCUX_FLEXCAN
163	select HAS_MCUX_PWM
164
165config SOC_MIMXRT1061
166	bool "SOC_MIMXRT1061"
167	select SOC_SERIES_IMX_RT10XX
168	select HAS_MCUX
169	select HAS_MCUX_CACHE
170	select HAS_MCUX_CCM
171	select HAS_MCUX_ENET
172	select HAS_MCUX_FLEXSPI
173	select HAS_MCUX_IGPIO
174	select HAS_MCUX_LPI2C
175	select HAS_MCUX_LPSPI
176	select HAS_MCUX_LPUART
177	select HAS_MCUX_GPT
178	select HAS_MCUX_SEMC
179	select HAS_MCUX_TRNG
180	select CPU_HAS_FPU_DOUBLE_PRECISION
181	select CPU_HAS_ARM_MPU
182	select INIT_ARM_PLL
183	select INIT_SYS_PLL
184	select INIT_USB1_PLL
185	select HAS_MCUX_USB_EHCI
186	select HAS_MCUX_USDHC1
187	select HAS_MCUX_USDHC2
188	select HAS_MCUX_CSI
189	select HAS_MCUX_EDMA
190	select HAS_MCUX_FLEXCAN
191
192config SOC_MIMXRT1062
193	bool "SOC_MIMXRT1062"
194	select SOC_SERIES_IMX_RT10XX
195	select HAS_MCUX
196	select HAS_MCUX_CACHE
197	select HAS_MCUX_CCM
198	select HAS_MCUX_ELCDIF
199	select HAS_MCUX_ENET
200	select HAS_MCUX_FLEXSPI
201	select HAS_MCUX_PWM
202	select HAS_MCUX_IGPIO
203	select HAS_MCUX_LPI2C
204	select HAS_MCUX_LPSPI
205	select HAS_MCUX_LPUART
206	select HAS_MCUX_GPT
207	select HAS_MCUX_SEMC
208	select HAS_MCUX_TRNG
209	select CPU_HAS_FPU_DOUBLE_PRECISION
210	select CPU_HAS_ARM_MPU
211	select INIT_ARM_PLL
212	select INIT_SYS_PLL
213	select INIT_USB1_PLL
214	select INIT_VIDEO_PLL if DISPLAY_MCUX_ELCDIF
215	select INIT_ENET_PLL if NET_L2_ETHERNET
216	select HAS_MCUX_USB_EHCI
217	select HAS_MCUX_USDHC1
218	select HAS_MCUX_USDHC2
219	select HAS_MCUX_CSI
220	select HAS_MCUX_EDMA
221	select HAS_MCUX_FLEXCAN
222
223config SOC_MIMXRT1064
224	bool "SOC_MIMXRT1064"
225	select SOC_SERIES_IMX_RT10XX
226	select HAS_MCUX
227	select HAS_MCUX_CACHE
228	select HAS_MCUX_CCM
229	select HAS_MCUX_ELCDIF
230	select HAS_MCUX_ENET
231	select HAS_MCUX_FLEXSPI
232	select HAS_MCUX_PWM
233	select HAS_MCUX_IGPIO
234	select HAS_MCUX_LPI2C
235	select HAS_MCUX_LPSPI
236	select HAS_MCUX_LPUART
237	select HAS_MCUX_GPT
238	select HAS_MCUX_SEMC
239	select HAS_MCUX_TRNG
240	select CPU_HAS_FPU_DOUBLE_PRECISION
241	select CPU_HAS_ARM_MPU
242	select INIT_ARM_PLL
243	select INIT_SYS_PLL
244	select INIT_USB1_PLL
245	select INIT_VIDEO_PLL if DISPLAY_MCUX_ELCDIF
246	select INIT_ENET_PLL if NET_L2_ETHERNET
247	select HAS_MCUX_USB_EHCI
248	select HAS_MCUX_USDHC1
249	select HAS_MCUX_USDHC2
250	select HAS_MCUX_CSI
251	select HAS_MCUX_EDMA
252	select HAS_MCUX_FLEXCAN
253
254config SOC_MIMXRT1176_CM7
255	bool "SOC_MIMXRT1176_CM7"
256	select CPU_CORTEX_M7
257	select CPU_CORTEX_M_HAS_DWT
258	select SOC_SERIES_IMX_RT11XX
259	select HAS_MCUX_CACHE
260	select HAS_MCUX
261	select HAS_MCUX_SEMC
262	select HAS_MCUX_CCM_REV2
263	select HAS_MCUX_IGPIO
264	select HAS_MCUX_LPI2C
265	select HAS_MCUX_LPSPI
266	select HAS_MCUX_LPADC
267	select HAS_MCUX_LPUART
268	select HAS_MCUX_GPT
269	select HAS_MCUX_FLEXCAN
270	select CPU_HAS_ARM_MPU
271	select INIT_ARM_PLL
272	select INIT_ENET_PLL if NET_L2_ETHERNET
273	select INIT_VIDEO_PLL
274	select HAS_MCUX_EDMA
275	select CPU_HAS_FPU_DOUBLE_PRECISION
276	select ADJUST_DCDC
277	select BYPASS_LDO_LPSR
278	select ADJUST_LDO
279
280config SOC_MIMXRT1176_CM4
281	bool "SOC_MIMXRT1176_CM4"
282	select CPU_CORTEX_M4
283	select SOC_SERIES_IMX_RT11XX
284	select HAS_MCUX_CACHE
285	select HAS_MCUX
286	select HAS_MCUX_SEMC
287	select HAS_MCUX_CCM_REV2
288	select HAS_MCUX_IGPIO
289	select HAS_MCUX_LPI2C
290	select HAS_MCUX_LPSPI
291	select HAS_MCUX_LPUART
292	select HAS_MCUX_GPT
293	select CPU_HAS_ARM_MPU
294	select INIT_ARM_PLL
295	select INIT_ENET_PLL if NET_L2_ETHERNET
296	select INIT_VIDEO_PLL
297	select HAS_MCUX_EDMA
298
299endchoice
300
301if SOC_SERIES_IMX_RT
302
303config SOC_PART_NUMBER_MIMXRT1011CAE4A
304	bool
305
306config SOC_PART_NUMBER_MIMXRT1011DAE5A
307	bool
308
309config SOC_PART_NUMBER_MIMXRT1015CAF4A
310	bool
311
312config SOC_PART_NUMBER_MIMXRT1015DAF5A
313	bool
314
315config SOC_PART_NUMBER_MIMXRT1021CAF4A
316	bool
317
318config SOC_PART_NUMBER_MIMXRT1021CAG4A
319	bool
320
321config SOC_PART_NUMBER_MIMXRT1021DAF5A
322	bool
323
324config SOC_PART_NUMBER_MIMXRT1021DAG5A
325	bool
326
327config SOC_PART_NUMBER_MIMXRT1024CAG4A
328	bool
329
330config SOC_PART_NUMBER_MIMXRT1024DAG5A
331	bool
332
333config SOC_PART_NUMBER_MIMXRT1051CVL5A
334	bool
335
336config SOC_PART_NUMBER_MIMXRT1051DVL6A
337	bool
338
339config SOC_PART_NUMBER_MIMXRT1052CVJ5B
340	bool
341
342config SOC_PART_NUMBER_MIMXRT1052CVL5A
343	bool
344
345config SOC_PART_NUMBER_MIMXRT1052CVL5B
346	bool
347
348config SOC_PART_NUMBER_MIMXRT1052DVJ6B
349	bool
350
351config SOC_PART_NUMBER_MIMXRT1052DVL6A
352	bool
353
354config SOC_PART_NUMBER_MIMXRT1052DVL6B
355	bool
356
357config SOC_PART_NUMBER_MIMXRT1061CVL5A
358	bool
359
360config SOC_PART_NUMBER_MIMXRT1061DVL6A
361	bool
362
363config SOC_PART_NUMBER_MIMXRT1062CVL5A
364	bool
365
366config SOC_PART_NUMBER_MIMXRT1062DVJ6A
367	bool
368
369config SOC_PART_NUMBER_MIMXRT1062DVL6A
370	bool
371
372config SOC_PART_NUMBER_MIMXRT1064CVL5A
373	bool
374
375config SOC_PART_NUMBER_MIMXRT1064DVL6A
376	bool
377
378config SOC_PART_NUMBER_MIMXRT1176AVM8A
379	bool
380
381config SOC_PART_NUMBER_MIMXRT1176CVM8A
382	bool
383
384config SOC_PART_NUMBER_MIMXRT1176DVMAA
385	bool
386
387config SOC_PART_NUMBER_MIMXRT1175AVM8A
388	bool
389
390config SOC_PART_NUMBER_MIMXRT1175CVM8A
391	bool
392
393config SOC_PART_NUMBER_MIMXRT1175DVMAA
394	bool
395
396config SOC_PART_NUMBER_MIMXRT1173CVM8A
397	bool
398
399config SOC_PART_NUMBER_MIMXRT1172AVM8A
400	bool
401
402config SOC_PART_NUMBER_MIMXRT1172CVM8A
403	bool
404
405config SOC_PART_NUMBER_MIMXRT1172DVMAA
406	bool
407
408config SOC_PART_NUMBER_MIMXRT1171AVM8A
409	bool
410
411config SOC_PART_NUMBER_MIMXRT1171CVM8A
412	bool
413
414config SOC_PART_NUMBER_MIMXRT1171DVMAA
415	bool
416
417config SOC_PART_NUMBER_IMX_RT
418	string
419	default "MIMXRT1011CAE4A" if SOC_PART_NUMBER_MIMXRT1011CAE4A
420	default "MIMXRT1011DAE5A" if SOC_PART_NUMBER_MIMXRT1011DAE5A
421	default "MIMXRT1015CAF4A" if SOC_PART_NUMBER_MIMXRT1015CAF4A
422	default "MIMXRT1015DAF5A" if SOC_PART_NUMBER_MIMXRT1015DAF5A
423	default "MIMXRT1021CAF4A" if SOC_PART_NUMBER_MIMXRT1021CAF4A
424	default "MIMXRT1021CAG4A" if SOC_PART_NUMBER_MIMXRT1021CAG4A
425	default "MIMXRT1021DAF5A" if SOC_PART_NUMBER_MIMXRT1021DAF5A
426	default "MIMXRT1021DAG5A" if SOC_PART_NUMBER_MIMXRT1021DAG5A
427	default "MIMXRT1024CAG4A" if SOC_PART_NUMBER_MIMXRT1024CAG4A
428	default "MIMXRT1024DAG5A" if SOC_PART_NUMBER_MIMXRT1024DAG5A
429	default "MIMXRT1051CVL5A" if SOC_PART_NUMBER_MIMXRT1051CVL5A
430	default "MIMXRT1051DVL6A" if SOC_PART_NUMBER_MIMXRT1051DVL6A
431	default "MIMXRT1052CVJ5B" if SOC_PART_NUMBER_MIMXRT1052CVJ5B
432	default "MIMXRT1052CVL5A" if SOC_PART_NUMBER_MIMXRT1052CVL5A
433	default "MIMXRT1052CVL5B" if SOC_PART_NUMBER_MIMXRT1052CVL5B
434	default "MIMXRT1052DVJ6B" if SOC_PART_NUMBER_MIMXRT1052DVJ6B
435	default "MIMXRT1052DVL6A" if SOC_PART_NUMBER_MIMXRT1052DVL6A
436	default "MIMXRT1052DVL6B" if SOC_PART_NUMBER_MIMXRT1052DVL6B
437	default "MIMXRT1061CVL5A" if SOC_PART_NUMBER_MIMXRT1061CVL5A
438	default "MIMXRT1061DVL6A" if SOC_PART_NUMBER_MIMXRT1061DVL6A
439	default "MIMXRT1062CVL5A" if SOC_PART_NUMBER_MIMXRT1062CVL5A
440	default "MIMXRT1062DVJ6A" if SOC_PART_NUMBER_MIMXRT1062DVJ6A
441	default "MIMXRT1062DVL6A" if SOC_PART_NUMBER_MIMXRT1062DVL6A
442	default "MIMXRT1064CVL5A" if SOC_PART_NUMBER_MIMXRT1064CVL5A
443	default "MIMXRT1064DVL6A" if SOC_PART_NUMBER_MIMXRT1064DVL6A
444	default "MIMXRT1176AVM8A" if SOC_PART_NUMBER_MIMXRT1176AVM8A
445	default "MIMXRT1176CVM8A" if SOC_PART_NUMBER_MIMXRT1176CVM8A
446	default "MIMXRT1176DVMAA" if SOC_PART_NUMBER_MIMXRT1176DVMAA
447	default "MIMXRT1175AVM8A" if SOC_PART_NUMBER_MIMXRT1175AVM8A
448	default "MIMXRT1175CVM8A" if SOC_PART_NUMBER_MIMXRT1175CVM8A
449	default "MIMXRT1175DVMAA" if SOC_PART_NUMBER_MIMXRT1175DVMAA
450	default "MIMXRT1173CVM8A" if SOC_PART_NUMBER_MIMXRT1173CVM8A
451	default "MIMXRT1172AVM8A" if SOC_PART_NUMBER_MIMXRT1172AVM8A
452	default "MIMXRT1172CVM8A" if SOC_PART_NUMBER_MIMXRT1172CVM8A
453	default "MIMXRT1172DVMAA" if SOC_PART_NUMBER_MIMXRT1172DVMAA
454	default "MIMXRT1171AVM8A" if SOC_PART_NUMBER_MIMXRT1171AVM8A
455	default "MIMXRT1171CVM8A" if SOC_PART_NUMBER_MIMXRT1171CVM8A
456	default "MIMXRT1171DVMAA" if SOC_PART_NUMBER_MIMXRT1171DVMAA
457	help
458	  This string holds the full part number of the SoC. It is a hidden option
459	  that you should not set directly. The part number selection choice defines
460	  the default value for this string.
461
462config SOC_SERIES_IMX_RT10XX
463	bool "i.MX RT 10XX Series"
464	select CPU_CORTEX_M7
465	select CPU_CORTEX_M_HAS_DWT
466
467config SOC_SERIES_IMX_RT11XX
468	bool "i.MX RT 11XX Series"
469
470config INIT_ARM_PLL
471	bool "Initialize ARM PLL"
472
473config INIT_SYS_PLL
474	bool "Initialize SYS PLL"
475
476config INIT_USB1_PLL
477	bool "Initialize USB1 PLL"
478
479config INIT_VIDEO_PLL
480	bool "Initialize Video PLL"
481
482config INIT_ENET_PLL
483	bool
484	help
485	  If y, the Ethernet PLL is initialized. Always enabled on e.g.
486	  MIMXRT1021 - see commit 17f4d6bec7 ("soc: nxp_imx: fix ENET_PLL selection
487	  for MIMXRT1021").
488
489config HAS_ARM_DIV
490	bool "Has the divider for ARM"
491	default y
492
493config ARM_DIV
494	int "ARM clock divider"
495	range 0 7
496	default 0
497
498config AHB_DIV
499	int "AHB clock divider"
500	range 0 7
501	default 0
502
503config IPG_DIV
504	int "IPG clock divider"
505	range 0 3
506	default 0
507
508config ADJUST_DCDC
509	bool "Adjust internal DCDC output"
510
511config BYPASS_LDO_LPSR
512	bool "Bypass LDO lpsr"
513
514config ADJUST_LDO
515	bool "Adjust LDO setting"
516
517menuconfig NXP_IMX_RT_BOOT_HEADER
518	bool "Enable the boot header"
519	depends on !BOOTLOADER_MCUBOOT
520	help
521	  Enable data structures required by the boot ROM to boot the
522	  application from an external flash device.
523
524if NXP_IMX_RT_BOOT_HEADER
525
526choice BOOT_DEVICE
527	prompt "Boot device selection"
528	default BOOT_FLEXSPI_NOR
529
530config BOOT_FLEXSPI_NOR
531	bool "FlexSPI serial NOR"
532
533config BOOT_FLEXSPI_NAND
534	bool "FlexSPI serial NAND"
535
536config BOOT_SEMC_NOR
537	bool "SEMC parallel NOR"
538
539config BOOT_SEMC_NAND
540	bool "SEMC parallel NAND"
541
542endchoice
543
544config FLEXSPI_CONFIG_BLOCK_OFFSET
545	hex "FlexSPI config block offset"
546	default 0x0 if BOOT_FLEXSPI_NOR
547	help
548	  FlexSPI configuration block consists of parameters regarding specific
549	  flash devices including read command sequence, quad mode enablement
550	  sequence (optional), etc. The boot ROM expectes FlexSPI configuration
551	  parameter to be presented in serial nor flash.
552
553config IMAGE_VECTOR_TABLE_OFFSET
554	hex "Image vector table offset"
555	default 0x1000 if BOOT_FLEXSPI_NOR || BOOT_SEMC_NOR
556	default 0x400 if BOOT_FLEXSPI_NAND || BOOT_SEMC_NAND
557	help
558	  The Image Vector Table (IVT) provides the boot ROM with pointers to
559	  the application entry point and device configuration data. The boot
560	  ROM requires a fixed IVT offset for each type of boot device.
561
562config DEVICE_CONFIGURATION_DATA
563	bool "Enable device configuration data"
564	default y if HAS_MCUX_SEMC
565	help
566	  Device configuration data (DCD) provides a sequence of commands to
567	  the boot ROM to initialize components such as an SDRAM.
568
569endif # NXP_IMX_RT_BOOT_HEADER
570
571choice CODE_LOCATION
572	prompt "Code location selection"
573	default CODE_ITCM
574
575config CODE_SEMC
576	bool "Link code into external SEMC-controlled memory"
577
578config CODE_ITCM
579	bool "Link code into internal instruction tightly coupled memory (ITCM)"
580
581config CODE_FLEXSPI
582	bool "Link code into external FlexSPI-controlled memory"
583	select NXP_IMX_RT_BOOT_HEADER if !BOOTLOADER_MCUBOOT
584
585config CODE_FLEXSPI2
586	bool "Link code into internal FlexSPI-controlled memory"
587	select NXP_IMX_RT_BOOT_HEADER if !BOOTLOADER_MCUBOOT
588
589config CODE_SRAM0
590	bool "Link code into RAM_L memory (RAM_L)"
591endchoice
592
593endif # SOC_SERIES_IMX_RT
594