rockchip: rk3568: Select DM_REGULATOR_FIXED
[platform/kernel/u-boot.git] / arch / arm / mach-rockchip / Kconfig
1 if ARCH_ROCKCHIP
2
3 config ROCKCHIP_PX30
4         bool "Support Rockchip PX30"
5         select ARM64
6         select SUPPORT_SPL
7         select SUPPORT_TPL
8         select SPL
9         select TPL
10         select TPL_TINY_FRAMEWORK if TPL
11         select TPL_NEEDS_SEPARATE_STACK if TPL
12         imply SPL_SEPARATE_BSS
13         select SPL_SERIAL
14         select TPL_SERIAL
15         select DEBUG_UART_BOARD_INIT
16         imply ROCKCHIP_COMMON_BOARD
17         imply SPL_ROCKCHIP_COMMON_BOARD
18         help
19           The Rockchip PX30 is a ARM-based SoC with a quad-core Cortex-A35
20           including NEON and GPU, Mali-400 graphics, several DDR3 options
21           and video codec support. Peripherals include Gigabit Ethernet,
22           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
23
24 config ROCKCHIP_RK3036
25         bool "Support Rockchip RK3036"
26         select CPU_V7A
27         select SUPPORT_SPL
28         select SPL
29         imply USB_FUNCTION_ROCKUSB
30         imply CMD_ROCKUSB
31         imply ROCKCHIP_COMMON_BOARD
32         help
33           The Rockchip RK3036 is a ARM-based SoC with a dual-core Cortex-A7
34           including NEON and GPU, Mali-400 graphics, several DDR3 options
35           and video codec support. Peripherals include Gigabit Ethernet,
36           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
37
38 config ROCKCHIP_RK3066
39         bool "Support Rockchip RK3066"
40         select CPU_V7A
41         select SPL_BOARD_INIT if SPL
42         select SUPPORT_SPL
43         select SUPPORT_TPL
44         select SPL
45         select TPL
46         select TPL_ROCKCHIP_BACK_TO_BROM
47         select TPL_ROCKCHIP_EARLYRETURN_TO_BROM
48         imply ROCKCHIP_COMMON_BOARD
49         imply SPL_ROCKCHIP_COMMON_BOARD
50         imply SPL_SERIAL
51         imply TPL_ROCKCHIP_COMMON_BOARD
52         imply TPL_SERIAL
53         help
54           The Rockchip RK3066 is a ARM-based SoC with a dual-core Cortex-A9
55           including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
56           video interfaces, several memory options and video codec support.
57           Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S,
58           UART, SPI, I2C and PWMs.
59
60 config ROCKCHIP_RK3128
61         bool "Support Rockchip RK3128"
62         select CPU_V7A
63         imply ROCKCHIP_COMMON_BOARD
64         help
65           The Rockchip RK3128 is a ARM-based SoC with a quad-core Cortex-A7
66           including NEON and GPU, Mali-400 graphics, several DDR3 options
67           and video codec support. Peripherals include Gigabit Ethernet,
68           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
69
70 config ROCKCHIP_RK3188
71         bool "Support Rockchip RK3188"
72         select CPU_V7A
73         select SPL_BOARD_INIT if SPL
74         select SUPPORT_SPL
75         select SPL
76         select SPL_CLK
77         select SPL_REGMAP
78         select SPL_SYSCON
79         select SPL_RAM
80         select SPL_DRIVERS_MISC
81         select SPL_ROCKCHIP_EARLYRETURN_TO_BROM
82         select SPL_ROCKCHIP_BACK_TO_BROM
83         select BOARD_LATE_INIT
84         imply ROCKCHIP_COMMON_BOARD
85         imply SPL_ROCKCHIP_COMMON_BOARD
86         help
87           The Rockchip RK3188 is a ARM-based SoC with a quad-core Cortex-A9
88           including NEON and GPU, 512KB L2 cache, Mali-400 graphics, two
89           video interfaces, several memory options and video codec support.
90           Peripherals include Fast Ethernet, USB2 host and OTG, SDIO, I2S,
91           UART, SPI, I2C and PWMs.
92
93 config ROCKCHIP_RK322X
94         bool "Support Rockchip RK3228/RK3229"
95         select CPU_V7A
96         select SUPPORT_SPL
97         select SUPPORT_TPL
98         select SPL
99         select SPL_DM
100         select SPL_OF_LIBFDT
101         select TPL
102         select TPL_DM
103         select TPL_OF_LIBFDT
104         select TPL_NEEDS_SEPARATE_STACK if TPL
105         select SPL_DRIVERS_MISC
106         imply ROCKCHIP_COMMON_BOARD
107         imply SPL_SERIAL
108         imply SPL_ROCKCHIP_COMMON_BOARD
109         imply TPL_SERIAL
110         imply TPL_ROCKCHIP_COMMON_BOARD
111         select TPL_LIBCOMMON_SUPPORT
112         select TPL_LIBGENERIC_SUPPORT
113         help
114           The Rockchip RK3229 is a ARM-based SoC with a dual-core Cortex-A7
115           including NEON and GPU, Mali-400 graphics, several DDR3 options
116           and video codec support. Peripherals include Gigabit Ethernet,
117           USB2 host and OTG, SDIO, I2S, UART, SPI, I2C and PWMs.
118
119 config ROCKCHIP_RK3288
120         bool "Support Rockchip RK3288"
121         select CPU_V7A
122         select OF_BOARD_SETUP
123         select SKIP_LOWLEVEL_INIT_ONLY
124         select SUPPORT_SPL
125         select SPL
126         select SUPPORT_TPL
127         imply PRE_CONSOLE_BUFFER
128         imply ROCKCHIP_COMMON_BOARD
129         imply SPL_ROCKCHIP_COMMON_BOARD
130         imply TPL_CLK
131         imply TPL_DM
132         imply TPL_DRIVERS_MISC
133         imply TPL_LIBCOMMON_SUPPORT
134         imply TPL_LIBGENERIC_SUPPORT
135         imply TPL_NEEDS_SEPARATE_STACK
136         imply TPL_OF_CONTROL
137         imply TPL_OF_PLATDATA
138         imply TPL_RAM
139         imply TPL_REGMAP
140         imply TPL_ROCKCHIP_COMMON_BOARD
141         imply TPL_SERIAL
142         imply TPL_SYSCON
143         imply USB_FUNCTION_ROCKUSB
144         imply CMD_ROCKUSB
145         help
146           The Rockchip RK3288 is a ARM-based SoC with a quad-core Cortex-A17
147           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
148           video interfaces supporting HDMI and eDP, several DDR3 options
149           and video codec support. Peripherals include Gigabit Ethernet,
150           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
151
152 config ROCKCHIP_RK3308
153         bool "Support Rockchip RK3308"
154         select ARM64
155         select DEBUG_UART_BOARD_INIT
156         select SUPPORT_SPL
157         select SUPPORT_TPL
158         select SPL
159         select SPL_ATF
160         select SPL_ATF_NO_PLATFORM_PARAM
161         select SPL_LOAD_FIT
162         imply ROCKCHIP_COMMON_BOARD
163         imply SPL_ROCKCHIP_COMMON_BOARD
164         imply SPL_CLK
165         imply SPL_REGMAP
166         imply SPL_SYSCON
167         imply SPL_RAM
168         imply SPL_SERIAL
169         imply TPL_SERIAL
170         imply SPL_SEPARATE_BSS
171         help
172           The Rockchip RK3308 is a ARM-based Soc which embedded with quad
173           Cortex-A35 and highly integrated audio interfaces.
174
175 config ROCKCHIP_RK3328
176         bool "Support Rockchip RK3328"
177         select ARM64
178         select SUPPORT_SPL
179         select SPL
180         select SUPPORT_TPL
181         select TPL
182         select TPL_NEEDS_SEPARATE_STACK if TPL
183         imply ROCKCHIP_COMMON_BOARD
184         imply ROCKCHIP_SDRAM_COMMON
185         imply SPL_ROCKCHIP_COMMON_BOARD
186         imply SPL_SERIAL
187         imply TPL_SERIAL
188         imply SPL_SEPARATE_BSS
189         select ENABLE_ARM_SOC_BOOT0_HOOK
190         select DEBUG_UART_BOARD_INIT
191         select SYS_NS16550
192         help
193           The Rockchip RK3328 is a ARM-based SoC with a quad-core Cortex-A53.
194           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
195           video interfaces supporting HDMI and eDP, several DDR3 options
196           and video codec support. Peripherals include Gigabit Ethernet,
197           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
198
199 config ROCKCHIP_RK3368
200         bool "Support Rockchip RK3368"
201         select ARM64
202         select SUPPORT_SPL
203         select SUPPORT_TPL
204         select TPL_NEEDS_SEPARATE_STACK if TPL
205         imply ROCKCHIP_COMMON_BOARD
206         imply SPL_ROCKCHIP_COMMON_BOARD
207         imply SPL_SEPARATE_BSS
208         imply SPL_SERIAL
209         imply TPL_SERIAL
210         imply TPL_ROCKCHIP_COMMON_BOARD
211         help
212           The Rockchip RK3368 is a ARM-based SoC with a octa-core (organised
213           into a big and little cluster with 4 cores each) Cortex-A53 including
214           AdvSIMD, 512KB L2 cache (for the big cluster) and 256 KB L2 cache
215           (for the little cluster), PowerVR G6110 based graphics, one video
216           output processor supporting LVDS/HDMI/eDP, several DDR3 options and
217           video codec support.
218
219           On-chip peripherals include Gigabit Ethernet, USB2 host and OTG, SDIO,
220           I2S, UARTs, SPI, I2C and PWMs.
221
222 config ROCKCHIP_RK3399
223         bool "Support Rockchip RK3399"
224         select ARM64
225         select SUPPORT_SPL
226         select SUPPORT_TPL
227         select SPL
228         select SPL_ATF
229         select SPL_BOARD_INIT if SPL
230         select SPL_LOAD_FIT
231         select SPL_CLK if SPL
232         select SPL_PINCTRL if SPL
233         select SPL_RAM if SPL
234         select SPL_REGMAP if SPL
235         select SPL_SYSCON if SPL
236         select TPL_NEEDS_SEPARATE_STACK if TPL
237         select SPL_SEPARATE_BSS
238         select SPL_SERIAL
239         select SPL_DRIVERS_MISC
240         select CLK
241         select FIT
242         select PINCTRL
243         select RAM
244         select REGMAP
245         select SYSCON
246         select DM_PMIC
247         select DM_REGULATOR_FIXED
248         select BOARD_LATE_INIT
249         imply PARTITION_TYPE_GUID
250         imply PRE_CONSOLE_BUFFER
251         imply ROCKCHIP_COMMON_BOARD
252         imply ROCKCHIP_SDRAM_COMMON
253         imply SPL_ATF_NO_PLATFORM_PARAM if SPL_ATF
254         imply SPL_ROCKCHIP_COMMON_BOARD
255         imply TPL_SERIAL
256         imply TPL_LIBCOMMON_SUPPORT
257         imply TPL_LIBGENERIC_SUPPORT
258         imply TPL_SYS_MALLOC_SIMPLE
259         imply TPL_DRIVERS_MISC
260         imply TPL_OF_CONTROL
261         imply TPL_DM
262         imply TPL_REGMAP
263         imply TPL_SYSCON
264         imply TPL_RAM
265         imply TPL_CLK
266         imply TPL_TINY_MEMSET
267         imply TPL_ROCKCHIP_COMMON_BOARD
268         imply SYS_BOOTCOUNT_SINGLEWORD if BOOTCOUNT_LIMIT
269         imply CMD_BOOTCOUNT if BOOTCOUNT_LIMIT
270         help
271           The Rockchip RK3399 is a ARM-based SoC with a dual-core Cortex-A72
272           and quad-core Cortex-A53.
273           including NEON and GPU, 1MB L2 cache, Mali-T7 graphics, two
274           video interfaces supporting HDMI and eDP, several DDR3 options
275           and video codec support. Peripherals include Gigabit Ethernet,
276           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
277
278 config ROCKCHIP_RK3568
279         bool "Support Rockchip RK3568"
280         select ARM64
281         select SUPPORT_SPL
282         select SPL
283         select CLK
284         select PINCTRL
285         select RAM
286         select REGMAP
287         select SYSCON
288         select BOARD_LATE_INIT
289         select DM_REGULATOR_FIXED
290         select DM_RESET
291         imply ROCKCHIP_COMMON_BOARD
292         help
293           The Rockchip RK3568 is a ARM-based SoC with quad-core Cortex-A55,
294           including NEON and GPU, 512K L3 cache, Mali-G52 based graphics,
295           two video interfaces supporting HDMI and eDP, several DDR3 options
296           and video codec support. Peripherals include Gigabit Ethernet,
297           USB2 host and OTG, SDIO, I2S, UARTs, SPI, I2C and PWMs.
298
299 config ROCKCHIP_RV1108
300         bool "Support Rockchip RV1108"
301         select CPU_V7A
302         imply ROCKCHIP_COMMON_BOARD
303         help
304           The Rockchip RV1108 is a ARM-based SoC with a single-core Cortex-A7
305           and a DSP.
306
307 config ROCKCHIP_RV1126
308         bool "Support Rockchip RV1126"
309         select CPU_V7A
310         select SKIP_LOWLEVEL_INIT_ONLY
311         select TPL
312         select SUPPORT_TPL
313         select TPL_NEEDS_SEPARATE_STACK
314         select TPL_ROCKCHIP_BACK_TO_BROM
315         select SPL
316         select SUPPORT_SPL
317         select SPL_STACK_R
318         select CLK
319         select FIT
320         select PINCTRL
321         select RAM
322         select ROCKCHIP_SDRAM_COMMON
323         select REGMAP
324         select SYSCON
325         select DM_PMIC
326         select DM_REGULATOR_FIXED
327         select DM_RESET
328         select REGULATOR_RK8XX
329         select PMIC_RK8XX
330         select BOARD_LATE_INIT
331         imply ROCKCHIP_COMMON_BOARD
332         imply TPL_DM
333         imply TPL_LIBCOMMON_SUPPORT
334         imply TPL_LIBGENERIC_SUPPORT
335         imply TPL_OF_CONTROL
336         imply TPL_OF_PLATDATA
337         imply TPL_RAM
338         imply TPL_ROCKCHIP_COMMON_BOARD
339         imply TPL_SERIAL
340         imply SPL_CLK
341         imply SPL_DM
342         imply SPL_DRIVERS_MISC
343         imply SPL_LIBCOMMON_SUPPORT
344         imply SPL_LIBGENERIC_SUPPORT
345         imply SPL_OF_CONTROL
346         imply SPL_RAM
347         imply SPL_REGMAP
348         imply SPL_ROCKCHIP_COMMON_BOARD
349         imply SPL_SERIAL
350         imply SPL_SYSCON
351
352 config ROCKCHIP_USB_UART
353         bool "Route uart output to usb pins"
354         help
355           Rockchip SoCs have the ability to route the signals of the debug
356           uart through the d+ and d- pins of a specific usb phy to enable
357           some form of closed-case debugging. With this option supported
358           SoCs will enable this routing as a debug measure.
359
360 config SPL_ROCKCHIP_BACK_TO_BROM
361         bool "SPL returns to bootrom"
362         default y if ROCKCHIP_RK3036
363         select ROCKCHIP_BROM_HELPER
364         select SPL_BOOTROM_SUPPORT
365         depends on SPL
366         help
367           Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
368           SPL will return to the boot rom, which will then load the U-Boot
369           binary to keep going on.
370
371 config TPL_ROCKCHIP_BACK_TO_BROM
372         bool "TPL returns to bootrom"
373         default y
374         select ROCKCHIP_BROM_HELPER
375         select TPL_BOOTROM_SUPPORT
376         depends on TPL
377         help
378           Rockchip SoCs have ability to load SPL & U-Boot binary. If enabled,
379           SPL will return to the boot rom, which will then load the U-Boot
380           binary to keep going on.
381
382 config ROCKCHIP_COMMON_BOARD
383         bool "Rockchip common board file"
384         help
385           Rockchip SoCs have similar boot process, Common board file is mainly
386           in charge of common process of board_init() and board_late_init() for
387           U-Boot proper.
388
389 config SPL_ROCKCHIP_COMMON_BOARD
390         bool "Rockchip SPL common board file"
391         depends on SPL
392         help
393           Rockchip SoCs have similar boot process, SPL is mainly in charge of
394           load and boot Trust ATF/U-Boot firmware, and DRAM init if there is
395           no TPL for the board.
396
397 config TPL_ROCKCHIP_COMMON_BOARD
398         bool "Rockchip TPL common board file"
399         depends on TPL
400         help
401           Rockchip SoCs have similar boot process, prefer to use TPL for DRAM
402           init and back to bootrom, and SPL as Trust ATF/U-Boot loader. TPL
403           common board is a basic TPL board init which can be shared for most
404           of SoCs to avoid copy-paste for different SoCs.
405
406 config ROCKCHIP_EXTERNAL_TPL
407         bool "Use external TPL binary"
408         default y if ROCKCHIP_RK3568
409         help
410           Some Rockchip SoCs require an external TPL to initialize DRAM.
411           Enable this option and build with ROCKCHIP_TPL=/path/to/ddr.bin to
412           include the external TPL in the image built by binman.
413
414 config ROCKCHIP_BOOT_MODE_REG
415         hex "Rockchip boot mode flag register address"
416         help
417           The Soc will enter to different boot mode(defined in asm/arch-rockchip/boot_mode.h)
418           according to the value from this register.
419
420 config ROCKCHIP_RK8XX_DISABLE_BOOT_ON_POWERON
421         bool "Disable device boot on power plug-in"
422         depends on PMIC_RK8XX
423         default n
424         ---help---
425           Say Y here to prevent the device from booting up because of a plug-in
426           event. When set, the device will boot briefly to determine why it was
427           powered on, and if it was determined because of a plug-in event
428           instead of a button press event it will shut back off.
429
430 config ROCKCHIP_STIMER
431         bool "Rockchip STIMER support"
432         default y
433         help
434           Enable Rockchip STIMER support.
435
436 config ROCKCHIP_STIMER_BASE
437         hex
438         depends on ROCKCHIP_STIMER
439
440 config ROCKCHIP_SPL_RESERVE_IRAM
441         hex "Size of IRAM reserved in SPL"
442         default 0
443         help
444           SPL may need reserve memory for firmware loaded by SPL, whose load
445           address is in IRAM and may overlay with SPL text area if not
446           reserved.
447
448 config ROCKCHIP_BROM_HELPER
449         bool
450
451 config SPL_ROCKCHIP_EARLYRETURN_TO_BROM
452         bool "SPL requires early-return (for RK3188-style BROM) to BROM"
453         depends on SPL && ENABLE_ARM_SOC_BOOT0_HOOK
454         help
455           Some Rockchip BROM variants (e.g. on the RK3188) load the
456           first stage in segments and enter multiple times. E.g. on
457           the RK3188, the first 1KB of the first stage are loaded
458           first and entered; after returning to the BROM, the
459           remainder of the first stage is loaded, but the BROM
460           re-enters at the same address/to the same code as previously.
461
462           This enables support code in the BOOT0 hook for the SPL stage
463           to allow multiple entries.
464
465 config TPL_ROCKCHIP_EARLYRETURN_TO_BROM
466         bool "TPL requires early-return (for RK3188-style BROM) to BROM"
467         depends on TPL && ENABLE_ARM_SOC_BOOT0_HOOK
468         help
469           Some Rockchip BROM variants (e.g. on the RK3188) load the
470           first stage in segments and enter multiple times. E.g. on
471           the RK3188, the first 1KB of the first stage are loaded
472           first and entered; after returning to the BROM, the
473           remainder of the first stage is loaded, but the BROM
474           re-enters at the same address/to the same code as previously.
475
476           This enables support code in the BOOT0 hook for the TPL stage
477           to allow multiple entries.
478
479 config SPL_MMC
480         default y if !SPL_ROCKCHIP_BACK_TO_BROM
481
482 config ROCKCHIP_SPI_IMAGE
483         bool "Build a SPI image for rockchip"
484         help
485           Some Rockchip SoCs support booting from SPI flash. Enable this
486           option to produce a SPI-flash image containing U-Boot. The image
487           is built by binman. U-Boot sits near the start of the image.
488
489 config LNX_KRNL_IMG_TEXT_OFFSET_BASE
490         default TEXT_BASE
491
492 source "arch/arm/mach-rockchip/px30/Kconfig"
493 source "arch/arm/mach-rockchip/rk3036/Kconfig"
494 source "arch/arm/mach-rockchip/rk3066/Kconfig"
495 source "arch/arm/mach-rockchip/rk3128/Kconfig"
496 source "arch/arm/mach-rockchip/rk3188/Kconfig"
497 source "arch/arm/mach-rockchip/rk322x/Kconfig"
498 source "arch/arm/mach-rockchip/rk3288/Kconfig"
499 source "arch/arm/mach-rockchip/rk3308/Kconfig"
500 source "arch/arm/mach-rockchip/rk3328/Kconfig"
501 source "arch/arm/mach-rockchip/rk3368/Kconfig"
502 source "arch/arm/mach-rockchip/rk3399/Kconfig"
503 source "arch/arm/mach-rockchip/rk3568/Kconfig"
504 source "arch/arm/mach-rockchip/rv1108/Kconfig"
505 source "arch/arm/mach-rockchip/rv1126/Kconfig"
506 endif