5bdbc700a4b368d8e2a216601f5c742ea686ef74
[platform/kernel/u-boot.git] / arch / arm / mach-tegra / Kconfig
1 if TEGRA
2
3 config SPL_GPIO_SUPPORT
4         default y
5
6 config SPL_LIBCOMMON_SUPPORT
7         default y
8
9 config SPL_LIBGENERIC_SUPPORT
10         default y
11
12 config SPL_SERIAL_SUPPORT
13         default y
14
15 config TEGRA_IVC
16         bool "Tegra IVC protocol"
17         help
18           IVC (Inter-VM Communication) protocol is a Tegra-specific IPC
19           (Inter Processor Communication) framework. Within the context of
20           U-Boot, it is typically used for communication between the main CPU
21           and various auxiliary processors.
22
23 config TEGRA_COMMON
24         bool "Tegra common options"
25         select CLK
26         select DM
27         select DM_ETH
28         select DM_GPIO
29         select DM_I2C
30         select DM_KEYBOARD
31         select DM_MMC
32         select DM_PWM
33         select DM_RESET
34         select DM_SERIAL
35         select DM_SPI
36         select DM_SPI_FLASH
37         select MISC
38         select OF_CONTROL
39         select VIDCONSOLE_AS_LCD if DM_VIDEO
40
41 config TEGRA_NO_BPMP
42         bool "Tegra common options for SoCs without BPMP"
43         select TEGRA_CAR
44         select TEGRA_CAR_CLOCK
45         select TEGRA_CAR_RESET
46
47 config TEGRA_ARMV7_COMMON
48         bool "Tegra 32-bit common options"
49         select CPU_V7
50         select SPL
51         select SUPPORT_SPL
52         select TEGRA_COMMON
53         select TEGRA_GPIO
54         select TEGRA_NO_BPMP
55
56 config TEGRA_ARMV8_COMMON
57         bool "Tegra 64-bit common options"
58         select ARM64
59         select TEGRA_COMMON
60
61 choice
62         prompt "Tegra SoC select"
63         optional
64
65 config TEGRA20
66         bool "Tegra20 family"
67         select TEGRA_ARMV7_COMMON
68
69 config TEGRA30
70         bool "Tegra30 family"
71         select TEGRA_ARMV7_COMMON
72
73 config TEGRA114
74         bool "Tegra114 family"
75         select TEGRA_ARMV7_COMMON
76
77 config TEGRA124
78         bool "Tegra124 family"
79         select TEGRA_ARMV7_COMMON
80
81 config TEGRA210
82         bool "Tegra210 family"
83         select TEGRA_GPIO
84         select TEGRA_ARMV8_COMMON
85         select TEGRA_NO_BPMP
86
87 config TEGRA186
88         bool "Tegra186 family"
89         select DM_MAILBOX
90         select TEGRA186_BPMP
91         select TEGRA186_CLOCK
92         select TEGRA186_GPIO
93         select TEGRA186_RESET
94         select TEGRA_ARMV8_COMMON
95         select TEGRA_HSP
96         select TEGRA_IVC
97
98 endchoice
99
100 config TEGRA_DISCONNECT_UDC_ON_BOOT
101         bool "Disconnect USB device mode controller on boot"
102         default y
103         help
104           When loading U-Boot into RAM over USB protocols using tools such as
105           tegrarcm or L4T's exec-uboot.sh/tegraflash.py, Tegra's USB device
106           mode controller is initialized and enumerated by the host PC running
107           the tool. Unfortunately, these tools do not shut down the USB
108           controller before executing the downloaded code, and so the host PC
109           does not "de-enumerate" the USB device. This option shuts down the
110           USB controller when U-Boot boots to avoid leaving a stale USB device
111           present.
112
113 config SYS_MALLOC_F_LEN
114         default 0x1800
115
116 source "arch/arm/mach-tegra/tegra20/Kconfig"
117 source "arch/arm/mach-tegra/tegra30/Kconfig"
118 source "arch/arm/mach-tegra/tegra114/Kconfig"
119 source "arch/arm/mach-tegra/tegra124/Kconfig"
120 source "arch/arm/mach-tegra/tegra210/Kconfig"
121 source "arch/arm/mach-tegra/tegra186/Kconfig"
122
123 endif