blob: 8d9900e00b5a6e91de033e2d3f915b3b407add39 [file] [log] [blame]
Ian Campbell2c7e3b92014-10-24 21:20:44 +01001if ARCH_SUNXI
2
Siva Durga Prasad Paladugua4d88922016-07-29 15:31:47 +05303config IDENT_STRING
4 default " Allwinner Technology"
5
Andre Przywarabc613d82017-02-16 01:20:23 +00006config SUNXI_HIGH_SRAM
7 bool
8 default n
9 ---help---
10 Older Allwinner SoCs have their mask boot ROM mapped just below 4GB,
11 with the first SRAM region being located at address 0.
12 Some newer SoCs map the boot ROM at address 0 instead and move the
13 SRAM to 64KB, just behind the mask ROM.
14 Chips using the latter setup are supposed to select this option to
15 adjust the addresses accordingly.
16
Hans de Goede44d8ae52015-04-06 20:33:34 +020017# Note only one of these may be selected at a time! But hidden choices are
18# not supported by Kconfig
19config SUNXI_GEN_SUN4I
20 bool
21 ---help---
22 Select this for sunxi SoCs which have resets and clocks set up
23 as the original A10 (mach-sun4i).
24
25config SUNXI_GEN_SUN6I
26 bool
27 ---help---
28 Select this for sunxi SoCs which have sun6i like periphery, like
29 separate ahb reset control registers, custom pmic bus, new style
30 watchdog, etc.
31
32
Andre Przywara7b82a222017-02-16 01:20:27 +000033config MACH_SUNXI_H3_H5
34 bool
Jernej Skrabeca05a4542017-04-27 00:03:37 +020035 select DM_I2C
Jernej Skrabec1ae5def2017-03-27 19:22:31 +020036 select SUNXI_DE2
Andre Przywara7b82a222017-02-16 01:20:27 +000037 select SUNXI_GEN_SUN6I
38 select SUPPORT_SPL
39
Ian Campbell2c7e3b92014-10-24 21:20:44 +010040choice
41 prompt "Sunxi SoC Variant"
Hans de Goede3da95362016-06-12 11:57:07 +020042 optional
Ian Campbell2c7e3b92014-10-24 21:20:44 +010043
Ian Campbellc3be2792014-10-24 21:20:45 +010044config MACH_SUN4I
Ian Campbell2c7e3b92014-10-24 21:20:44 +010045 bool "sun4i (Allwinner A10)"
46 select CPU_V7
Andre Przywara85db5832017-02-16 01:20:21 +000047 select ARM_CORTEX_CPU_IS_UP
Hans de Goede44d8ae52015-04-06 20:33:34 +020048 select SUNXI_GEN_SUN4I
Ian Campbell2c7e3b92014-10-24 21:20:44 +010049 select SUPPORT_SPL
50
Ian Campbellc3be2792014-10-24 21:20:45 +010051config MACH_SUN5I
Ian Campbell2c7e3b92014-10-24 21:20:44 +010052 bool "sun5i (Allwinner A13)"
53 select CPU_V7
Andre Przywara85db5832017-02-16 01:20:21 +000054 select ARM_CORTEX_CPU_IS_UP
Hans de Goede44d8ae52015-04-06 20:33:34 +020055 select SUNXI_GEN_SUN4I
Ian Campbell2c7e3b92014-10-24 21:20:44 +010056 select SUPPORT_SPL
57
Ian Campbellc3be2792014-10-24 21:20:45 +010058config MACH_SUN6I
Ian Campbell2c7e3b92014-10-24 21:20:44 +010059 bool "sun6i (Allwinner A31)"
60 select CPU_V7
Chen-Yu Tsaicc08ea42015-05-28 21:25:32 +080061 select CPU_V7_HAS_NONSEC
62 select CPU_V7_HAS_VIRT
Masahiro Yamada217f92b2016-08-30 16:22:22 +090063 select ARCH_SUPPORT_PSCI
Hans de Goede44d8ae52015-04-06 20:33:34 +020064 select SUNXI_GEN_SUN6I
Hans de Goede8c2c9cf2014-10-25 20:18:10 +020065 select SUPPORT_SPL
Chen-Yu Tsaicc08ea42015-05-28 21:25:32 +080066 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
Ian Campbell2c7e3b92014-10-24 21:20:44 +010067
Ian Campbellc3be2792014-10-24 21:20:45 +010068config MACH_SUN7I
Ian Campbell2c7e3b92014-10-24 21:20:44 +010069 bool "sun7i (Allwinner A20)"
70 select CPU_V7
Hans de Goedeea624e12014-11-14 09:34:30 +010071 select CPU_V7_HAS_NONSEC
72 select CPU_V7_HAS_VIRT
Masahiro Yamada217f92b2016-08-30 16:22:22 +090073 select ARCH_SUPPORT_PSCI
Hans de Goede44d8ae52015-04-06 20:33:34 +020074 select SUNXI_GEN_SUN4I
Ian Campbell2c7e3b92014-10-24 21:20:44 +010075 select SUPPORT_SPL
Hans de Goedeb366fb92014-10-24 20:12:04 +020076 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
Ian Campbell2c7e3b92014-10-24 21:20:44 +010077
Hans de Goede5e6bacd2015-04-06 20:55:39 +020078config MACH_SUN8I_A23
Ian Campbell2c7e3b92014-10-24 21:20:44 +010079 bool "sun8i (Allwinner A23)"
80 select CPU_V7
Chen-Yu Tsai014414f2015-05-28 21:25:34 +080081 select CPU_V7_HAS_NONSEC
82 select CPU_V7_HAS_VIRT
Masahiro Yamada217f92b2016-08-30 16:22:22 +090083 select ARCH_SUPPORT_PSCI
Hans de Goede44d8ae52015-04-06 20:33:34 +020084 select SUNXI_GEN_SUN6I
Hans de Goede08fd1472014-12-07 14:34:27 +010085 select SUPPORT_SPL
Chen-Yu Tsai014414f2015-05-28 21:25:34 +080086 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
Ian Campbell2c7e3b92014-10-24 21:20:44 +010087
Vishnu Patekar8c3dacf2015-03-01 23:47:48 +053088config MACH_SUN8I_A33
89 bool "sun8i (Allwinner A33)"
90 select CPU_V7
Chen-Yu Tsai014414f2015-05-28 21:25:34 +080091 select CPU_V7_HAS_NONSEC
92 select CPU_V7_HAS_VIRT
Masahiro Yamada217f92b2016-08-30 16:22:22 +090093 select ARCH_SUPPORT_PSCI
Vishnu Patekar8c3dacf2015-03-01 23:47:48 +053094 select SUNXI_GEN_SUN6I
95 select SUPPORT_SPL
Chen-Yu Tsai014414f2015-05-28 21:25:34 +080096 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
Vishnu Patekar8c3dacf2015-03-01 23:47:48 +053097
Chen-Yu Tsaia81b7992016-05-02 10:28:07 +080098config MACH_SUN8I_A83T
99 bool "sun8i (Allwinner A83T)"
100 select CPU_V7
101 select SUNXI_GEN_SUN6I
102 select SUPPORT_SPL
103
Jens Kuske1c27b7d2015-11-17 15:12:58 +0100104config MACH_SUN8I_H3
105 bool "sun8i (Allwinner H3)"
106 select CPU_V7
Chen-Yu Tsai853f6d12016-01-06 15:13:09 +0800107 select CPU_V7_HAS_NONSEC
108 select CPU_V7_HAS_VIRT
Masahiro Yamada217f92b2016-08-30 16:22:22 +0900109 select ARCH_SUPPORT_PSCI
Andre Przywara7b82a222017-02-16 01:20:27 +0000110 select MACH_SUNXI_H3_H5
Chen-Yu Tsai853f6d12016-01-06 15:13:09 +0800111 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
Jens Kuske1c27b7d2015-11-17 15:12:58 +0100112
Chen-Yu Tsai379feba2016-11-30 14:57:32 +0800113config MACH_SUN8I_R40
114 bool "sun8i (Allwinner R40)"
115 select CPU_V7
Chen-Yu Tsai09186482017-03-01 11:03:15 +0800116 select CPU_V7_HAS_NONSEC
117 select CPU_V7_HAS_VIRT
118 select ARCH_SUPPORT_PSCI
Chen-Yu Tsai379feba2016-11-30 14:57:32 +0800119 select SUNXI_GEN_SUN6I
Chen-Yu Tsai50ae7ae2016-12-02 16:09:49 +0800120 select SUPPORT_SPL
Chen-Yu Tsai379feba2016-11-30 14:57:32 +0800121
Icenowy Zhengc1994892017-04-08 15:30:12 +0800122config MACH_SUN8I_V3S
123 bool "sun8i (Allwinner V3s)"
124 select CPU_V7
125 select CPU_V7_HAS_NONSEC
126 select CPU_V7_HAS_VIRT
127 select ARCH_SUPPORT_PSCI
128 select SUNXI_GEN_SUN6I
129 select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
130
Hans de Goede1871a8c2015-01-13 19:25:06 +0100131config MACH_SUN9I
132 bool "sun9i (Allwinner A80)"
133 select CPU_V7
Andre Przywarabc613d82017-02-16 01:20:23 +0000134 select SUNXI_HIGH_SRAM
Hans de Goede1871a8c2015-01-13 19:25:06 +0100135 select SUNXI_GEN_SUN6I
Philipp Tomsicha98c2962016-10-28 18:21:32 +0800136 select SUPPORT_SPL
Hans de Goede1871a8c2015-01-13 19:25:06 +0100137
Chen-Yu Tsaia81b7992016-05-02 10:28:07 +0800138config MACH_SUN50I
139 bool "sun50i (Allwinner A64)"
140 select ARM64
Jernej Skrabeca05a4542017-04-27 00:03:37 +0200141 select DM_I2C
Jernej Skrabec1ae5def2017-03-27 19:22:31 +0200142 select SUNXI_DE2
Chen-Yu Tsaia81b7992016-05-02 10:28:07 +0800143 select SUNXI_GEN_SUN6I
Andre Przywarabc613d82017-02-16 01:20:23 +0000144 select SUNXI_HIGH_SRAM
Andre Przywaraeb77f5c2017-01-02 11:48:45 +0000145 select SUPPORT_SPL
Chen-Yu Tsaia81b7992016-05-02 10:28:07 +0800146
Andre Przywara997bde62017-02-16 01:20:28 +0000147config MACH_SUN50I_H5
148 bool "sun50i (Allwinner H5)"
149 select ARM64
150 select MACH_SUNXI_H3_H5
151 select SUNXI_HIGH_SRAM
152
Ian Campbell2c7e3b92014-10-24 21:20:44 +0100153endchoice
Maxime Ripard8a6564d2014-10-03 20:16:29 +0800154
Hans de Goede5e6bacd2015-04-06 20:55:39 +0200155# The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
156config MACH_SUN8I
157 bool
Chen-Yu Tsai301791c2017-03-02 16:03:06 +0800158 default y if MACH_SUN8I_A23
159 default y if MACH_SUN8I_A33
160 default y if MACH_SUN8I_A83T
161 default y if MACH_SUNXI_H3_H5
Chen-Yu Tsai379feba2016-11-30 14:57:32 +0800162 default y if MACH_SUN8I_R40
Icenowy Zhengc1994892017-04-08 15:30:12 +0800163 default y if MACH_SUN8I_V3S
Hans de Goede5e6bacd2015-04-06 20:55:39 +0200164
Andre Przywarab5402d12017-01-02 11:48:35 +0000165config RESERVE_ALLWINNER_BOOT0_HEADER
166 bool "reserve space for Allwinner boot0 header"
167 select ENABLE_ARM_SOC_BOOT0_HOOK
168 ---help---
169 Prepend a 1536 byte (empty) header to the U-Boot image file, to be
170 filled with magic values post build. The Allwinner provided boot0
171 blob relies on this information to load and execute U-Boot.
172 Only needed on 64-bit Allwinner boards so far when using boot0.
173
Andre Przywara83843c92017-01-02 11:48:36 +0000174config ARM_BOOT_HOOK_RMR
175 bool
176 depends on ARM64
177 default y
178 select ENABLE_ARM_SOC_BOOT0_HOOK
179 ---help---
180 Insert some ARM32 code at the very beginning of the U-Boot binary
181 which uses an RMR register write to bring the core into AArch64 mode.
182 The very first instruction acts as a switch, since it's carefully
183 chosen to be a NOP in one mode and a branch in the other, so the
184 code would only be executed if not already in AArch64.
185 This allows both the SPL and the U-Boot proper to be entered in
186 either mode and switch to AArch64 if needed.
187
Vishnu Patekarf5fd8ca2016-01-12 01:20:58 +0800188config DRAM_TYPE
189 int "sunxi dram type"
190 depends on MACH_SUN8I_A83T
191 default 3
192 ---help---
193 Set the dram type, 3: DDR3, 7: LPDDR3
Hans de Goede5e6bacd2015-04-06 20:55:39 +0200194
Hans de Goede37781a12014-11-15 19:46:39 +0100195config DRAM_CLK
Hans de Goede8ffc4872015-01-17 14:24:55 +0100196 int "sunxi dram clock speed"
Philipp Tomsich297bb9e2016-10-28 18:21:28 +0800197 default 792 if MACH_SUN9I
Chen-Yu Tsaifab03e32016-11-30 16:58:35 +0800198 default 648 if MACH_SUN8I_R40
Hans de Goede8ffc4872015-01-17 14:24:55 +0100199 default 312 if MACH_SUN6I || MACH_SUN8I
200 default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
Andre Przywara52e31822017-01-02 11:48:37 +0000201 default 672 if MACH_SUN50I
Hans de Goede37781a12014-11-15 19:46:39 +0100202 ---help---
Philipp Tomsich297bb9e2016-10-28 18:21:28 +0800203 Set the dram clock speed, valid range 240 - 480 (prior to sun9i),
204 must be a multiple of 24. For the sun9i (A80), the tested values
205 (for DDR3-1600) are 312 to 792.
Hans de Goede37781a12014-11-15 19:46:39 +0100206
Siarhei Siamashka47e35012015-02-01 00:27:06 +0200207if MACH_SUN5I || MACH_SUN7I
208config DRAM_MBUS_CLK
209 int "sunxi mbus clock speed"
210 default 300
211 ---help---
212 Set the mbus clock speed. The maximum on sun5i hardware is 300MHz.
213
214endif
215
Hans de Goede37781a12014-11-15 19:46:39 +0100216config DRAM_ZQ
Hans de Goede8ffc4872015-01-17 14:24:55 +0100217 int "sunxi dram zq value"
218 default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
219 default 127 if MACH_SUN7I
Chen-Yu Tsaifab03e32016-11-30 16:58:35 +0800220 default 3881979 if MACH_SUN8I_R40
Chen-Yu Tsai58b628e2016-10-28 18:21:36 +0800221 default 4145117 if MACH_SUN9I
Andre Przywara52e31822017-01-02 11:48:37 +0000222 default 3881915 if MACH_SUN50I
Hans de Goede37781a12014-11-15 19:46:39 +0100223 ---help---
Hans de Goedee1a08882015-01-25 11:29:27 +0100224 Set the dram zq value.
Hans de Goede37781a12014-11-15 19:46:39 +0100225
Hans de Goede8975cdf2015-05-13 15:00:46 +0200226config DRAM_ODT_EN
227 bool "sunxi dram odt enable"
228 default n if !MACH_SUN8I_A23
229 default y if MACH_SUN8I_A23
Chen-Yu Tsaifab03e32016-11-30 16:58:35 +0800230 default y if MACH_SUN8I_R40
Andre Przywaraeb77f5c2017-01-02 11:48:45 +0000231 default y if MACH_SUN50I
Hans de Goede8975cdf2015-05-13 15:00:46 +0200232 ---help---
233 Select this to enable dram odt (on die termination).
234
Hans de Goede8ffc4872015-01-17 14:24:55 +0100235if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
236config DRAM_EMR1
237 int "sunxi dram emr1 value"
238 default 0 if MACH_SUN4I
239 default 4 if MACH_SUN5I || MACH_SUN7I
240 ---help---
Hans de Goedee1a08882015-01-25 11:29:27 +0100241 Set the dram controller emr1 value.
Siarhei Siamashkad1336472015-02-01 00:27:05 +0200242
Siarhei Siamashka47e35012015-02-01 00:27:06 +0200243config DRAM_TPR3
244 hex "sunxi dram tpr3 value"
245 default 0
246 ---help---
247 Set the dram controller tpr3 parameter. This parameter configures
248 the delay on the command lane and also phase shifts, which are
249 applied for sampling incoming read data. The default value 0
250 means that no phase/delay adjustments are necessary. Properly
251 configuring this parameter increases reliability at high DRAM
252 clock speeds.
253
254config DRAM_DQS_GATING_DELAY
255 hex "sunxi dram dqs_gating_delay value"
256 default 0
257 ---help---
258 Set the dram controller dqs_gating_delay parmeter. Each byte
259 encodes the DQS gating delay for each byte lane. The delay
260 granularity is 1/4 cycle. For example, the value 0x05060606
261 means that the delay is 5 quarter-cycles for one lane (1.25
262 cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes.
263 The default value 0 means autodetection. The results of hardware
264 autodetection are not very reliable and depend on the chip
265 temperature (sometimes producing different results on cold start
266 and warm reboot). But the accuracy of hardware autodetection
267 is usually good enough, unless running at really high DRAM
268 clocks speeds (up to 600MHz). If unsure, keep as 0.
269
Siarhei Siamashkad1336472015-02-01 00:27:05 +0200270choice
271 prompt "sunxi dram timings"
272 default DRAM_TIMINGS_VENDOR_MAGIC
273 ---help---
274 Select the timings of the DDR3 chips.
275
276config DRAM_TIMINGS_VENDOR_MAGIC
277 bool "Magic vendor timings from Android"
278 ---help---
279 The same DRAM timings as in the Allwinner boot0 bootloader.
280
281config DRAM_TIMINGS_DDR3_1066F_1333H
282 bool "JEDEC DDR3-1333H with down binning to DDR3-1066F"
283 ---help---
284 Use the timings of the standard JEDEC DDR3-1066F speed bin for
285 DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin
286 for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips
287 used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333
288 or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm
289 that down binning to DDR3-1066F is supported (because DDR3-1066F
290 uses a bit faster timings than DDR3-1333H).
291
292config DRAM_TIMINGS_DDR3_800E_1066G_1333J
293 bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J"
294 ---help---
295 Use the timings of the slowest possible JEDEC speed bin for the
296 selected DRAM_CLK. Depending on the DRAM_CLK value, it may be
297 DDR3-800E, DDR3-1066G or DDR3-1333J.
298
299endchoice
300
Hans de Goede37781a12014-11-15 19:46:39 +0100301endif
302
Hans de Goede8975cdf2015-05-13 15:00:46 +0200303if MACH_SUN8I_A23
304config DRAM_ODT_CORRECTION
305 int "sunxi dram odt correction value"
306 default 0
307 ---help---
308 Set the dram odt correction value (range -255 - 255). In allwinner
309 fex files, this option is found in bits 8-15 of the u32 odt_en variable
310 in the [dram] section. When bit 31 of the odt_en variable is set
311 then the correction is negative. Usually the value for this is 0.
312endif
313
Iain Patone71b4222015-03-28 10:26:38 +0000314config SYS_CLK_FREQ
Chen-Yu Tsai301791c2017-03-02 16:03:06 +0800315 default 1008000000 if MACH_SUN4I
316 default 1008000000 if MACH_SUN5I
317 default 1008000000 if MACH_SUN6I
Iain Patone71b4222015-03-28 10:26:38 +0000318 default 912000000 if MACH_SUN7I
Chen-Yu Tsai301791c2017-03-02 16:03:06 +0800319 default 1008000000 if MACH_SUN8I
320 default 1008000000 if MACH_SUN9I
321 default 816000000 if MACH_SUN50I
Iain Patone71b4222015-03-28 10:26:38 +0000322
Maxime Ripard8a6564d2014-10-03 20:16:29 +0800323config SYS_CONFIG_NAME
Ian Campbellc3be2792014-10-24 21:20:45 +0100324 default "sun4i" if MACH_SUN4I
325 default "sun5i" if MACH_SUN5I
326 default "sun6i" if MACH_SUN6I
327 default "sun7i" if MACH_SUN7I
328 default "sun8i" if MACH_SUN8I
Hans de Goede1871a8c2015-01-13 19:25:06 +0100329 default "sun9i" if MACH_SUN9I
Siarhei Siamashkad96ebc42016-03-29 17:29:10 +0200330 default "sun50i" if MACH_SUN50I
Hans de Goede6ae66f22014-08-01 09:28:24 +0200331
Masahiro Yamadadd840582014-07-30 14:08:14 +0900332config SYS_BOARD
Masahiro Yamadadd840582014-07-30 14:08:14 +0900333 default "sunxi"
334
335config SYS_SOC
Masahiro Yamadadd840582014-07-30 14:08:14 +0900336 default "sunxi"
337
Siarhei Siamashkaf0ce28e2014-12-25 02:34:47 +0200338config UART0_PORT_F
339 bool "UART0 on MicroSD breakout board"
Siarhei Siamashkaf0ce28e2014-12-25 02:34:47 +0200340 default n
341 ---help---
342 Repurpose the SD card slot for getting access to the UART0 serial
343 console. Primarily useful only for low level u-boot debugging on
344 tablets, where normal UART0 is difficult to access and requires
345 device disassembly and/or soldering. As the SD card can't be used
346 at the same time, the system can be only booted in the FEL mode.
347 Only enable this if you really know what you are doing.
348
Hans de Goedeaccc9e42014-10-22 14:56:36 +0200349config OLD_SUNXI_KERNEL_COMPAT
Masahiro Yamadaab650062016-08-12 10:26:50 +0900350 bool "Enable workarounds for booting old kernels"
Hans de Goedeaccc9e42014-10-22 14:56:36 +0200351 default n
352 ---help---
353 Set this to enable various workarounds for old kernels, this results in
354 sub-optimal settings for newer kernels, only enable if needed.
355
Mylène Josserandf5fd7882017-04-02 12:59:10 +0200356config MACPWR
357 string "MAC power pin"
358 default ""
359 help
360 Set the pin used to power the MAC. This takes a string in the format
361 understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
362
Hans de Goedecd821132014-10-02 20:29:26 +0200363config MMC0_CD_PIN
364 string "Card detect pin for mmc0"
Andre Przywara7b82a222017-02-16 01:20:27 +0000365 default "PF6" if MACH_SUN8I_A83T || MACH_SUNXI_H3_H5 || MACH_SUN50I
Hans de Goedecd821132014-10-02 20:29:26 +0200366 default ""
367 ---help---
368 Set the card detect pin for mmc0, leave empty to not use cd. This
369 takes a string in the format understood by sunxi_name_to_gpio, e.g.
370 PH1 for pin 1 of port H.
371
372config MMC1_CD_PIN
373 string "Card detect pin for mmc1"
374 default ""
375 ---help---
376 See MMC0_CD_PIN help text.
377
378config MMC2_CD_PIN
379 string "Card detect pin for mmc2"
380 default ""
381 ---help---
382 See MMC0_CD_PIN help text.
383
384config MMC3_CD_PIN
385 string "Card detect pin for mmc3"
386 default ""
387 ---help---
388 See MMC0_CD_PIN help text.
389
Paul Kocialkowski8deacca2015-03-22 18:12:23 +0100390config MMC1_PINS
391 string "Pins for mmc1"
392 default ""
393 ---help---
394 Set the pins used for mmc1, when applicable. This takes a string in the
395 format understood by sunxi_name_to_gpio_bank, e.g. PH for port H.
396
397config MMC2_PINS
398 string "Pins for mmc2"
399 default ""
400 ---help---
401 See MMC1_PINS help text.
402
403config MMC3_PINS
404 string "Pins for mmc3"
405 default ""
406 ---help---
407 See MMC1_PINS help text.
408
Hans de Goede2ccfac02014-10-02 20:43:50 +0200409config MMC_SUNXI_SLOT_EXTRA
410 int "mmc extra slot number"
411 default -1
412 ---help---
413 sunxi builds always enable mmc0, some boards also have a second sdcard
414 slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
415 support for this.
416
Hans de Goede2c3c3ec2016-04-01 22:39:26 +0200417config INITIAL_USB_SCAN_DELAY
418 int "delay initial usb scan by x ms to allow builtin devices to init"
419 default 0
420 ---help---
421 Some boards have on board usb devices which need longer than the
422 USB spec's 1 second to connect from board powerup. Set this config
423 option to a non 0 value to add an extra delay before the first usb
424 bus scan.
425
Hans de Goede4458b7a2015-01-07 15:26:06 +0100426config USB0_VBUS_PIN
427 string "Vbus enable pin for usb0 (otg)"
428 default ""
429 ---help---
430 Set the Vbus enable pin for usb0 (otg). This takes a string in the
431 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
432
Hans de Goede52defe82015-02-16 22:13:43 +0100433config USB0_VBUS_DET
434 string "Vbus detect pin for usb0 (otg)"
Hans de Goede52defe82015-02-16 22:13:43 +0100435 default ""
436 ---help---
437 Set the Vbus detect pin for usb0 (otg). This takes a string in the
438 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
439
Hans de Goede48c06c92015-06-14 17:29:53 +0200440config USB0_ID_DET
441 string "ID detect pin for usb0 (otg)"
442 default ""
443 ---help---
444 Set the ID detect pin for usb0 (otg). This takes a string in the
445 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
446
Hans de Goede115200c2014-11-07 16:09:00 +0100447config USB1_VBUS_PIN
448 string "Vbus enable pin for usb1 (ehci0)"
449 default "PH6" if MACH_SUN4I || MACH_SUN7I
Hans de Goede76946df2014-11-07 14:51:12 +0100450 default "PH27" if MACH_SUN6I
Hans de Goede115200c2014-11-07 16:09:00 +0100451 ---help---
452 Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes
453 a string in the format understood by sunxi_name_to_gpio, e.g.
454 PH1 for pin 1 of port H.
455
456config USB2_VBUS_PIN
457 string "Vbus enable pin for usb2 (ehci1)"
458 default "PH3" if MACH_SUN4I || MACH_SUN7I
Hans de Goede76946df2014-11-07 14:51:12 +0100459 default "PH24" if MACH_SUN6I
Hans de Goede115200c2014-11-07 16:09:00 +0100460 ---help---
461 See USB1_VBUS_PIN help text.
462
Hans de Goede60fa6302016-03-18 08:42:01 +0100463config USB3_VBUS_PIN
464 string "Vbus enable pin for usb3 (ehci2)"
465 default ""
466 ---help---
467 See USB1_VBUS_PIN help text.
468
Paul Kocialkowski6c739c52015-04-10 23:09:52 +0200469config I2C0_ENABLE
470 bool "Enable I2C/TWI controller 0"
Chen-Yu Tsai409677e2016-11-30 15:30:30 +0800471 default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I_R40
Paul Kocialkowski6c739c52015-04-10 23:09:52 +0200472 default n if MACH_SUN6I || MACH_SUN8I
Hans de Goede0878a8a2016-05-15 13:51:58 +0200473 select CMD_I2C
Paul Kocialkowski6c739c52015-04-10 23:09:52 +0200474 ---help---
475 This allows enabling I2C/TWI controller 0 by muxing its pins, enabling
476 its clock and setting up the bus. This is especially useful on devices
477 with slaves connected to the bus or with pins exposed through e.g. an
478 expansion port/header.
479
480config I2C1_ENABLE
481 bool "Enable I2C/TWI controller 1"
482 default n
Hans de Goede0878a8a2016-05-15 13:51:58 +0200483 select CMD_I2C
Paul Kocialkowski6c739c52015-04-10 23:09:52 +0200484 ---help---
485 See I2C0_ENABLE help text.
486
487config I2C2_ENABLE
488 bool "Enable I2C/TWI controller 2"
489 default n
Hans de Goede0878a8a2016-05-15 13:51:58 +0200490 select CMD_I2C
Paul Kocialkowski6c739c52015-04-10 23:09:52 +0200491 ---help---
492 See I2C0_ENABLE help text.
493
494if MACH_SUN6I || MACH_SUN7I
495config I2C3_ENABLE
496 bool "Enable I2C/TWI controller 3"
497 default n
Hans de Goede0878a8a2016-05-15 13:51:58 +0200498 select CMD_I2C
Paul Kocialkowski6c739c52015-04-10 23:09:52 +0200499 ---help---
500 See I2C0_ENABLE help text.
501endif
502
Jelle van der Waa0d8382a2016-02-23 18:47:19 +0100503if SUNXI_GEN_SUN6I
Jelle van der Waa9d082682016-01-14 14:06:26 +0100504config R_I2C_ENABLE
505 bool "Enable the PRCM I2C/TWI controller"
Jelle van der Waa0d8382a2016-02-23 18:47:19 +0100506 # This is used for the pmic on H3
507 default y if SY8106A_POWER
Hans de Goede0878a8a2016-05-15 13:51:58 +0200508 select CMD_I2C
Jelle van der Waa9d082682016-01-14 14:06:26 +0100509 ---help---
510 Set this to y to enable the I2C controller which is part of the PRCM.
Jelle van der Waa0d8382a2016-02-23 18:47:19 +0100511endif
Jelle van der Waa9d082682016-01-14 14:06:26 +0100512
Paul Kocialkowski6c739c52015-04-10 23:09:52 +0200513if MACH_SUN7I
514config I2C4_ENABLE
515 bool "Enable I2C/TWI controller 4"
516 default n
Hans de Goede0878a8a2016-05-15 13:51:58 +0200517 select CMD_I2C
Paul Kocialkowski6c739c52015-04-10 23:09:52 +0200518 ---help---
519 See I2C0_ENABLE help text.
520endif
521
Hans de Goede2fcf0332015-04-25 17:25:14 +0200522config AXP_GPIO
Masahiro Yamadaab650062016-08-12 10:26:50 +0900523 bool "Enable support for gpio-s on axp PMICs"
Hans de Goede2fcf0332015-04-25 17:25:14 +0200524 default n
525 ---help---
526 Say Y here to enable support for the gpio pins of the axp PMIC ICs.
527
Luc Verhaegen7f2c5212014-08-13 07:55:06 +0200528config VIDEO
Masahiro Yamadaab650062016-08-12 10:26:50 +0900529 bool "Enable graphical uboot console on HDMI, LCD or VGA"
Chen-Yu Tsai301791c2017-03-02 16:03:06 +0800530 depends on !MACH_SUN8I_A83T
531 depends on !MACH_SUNXI_H3_H5
Chen-Yu Tsai379feba2016-11-30 14:57:32 +0800532 depends on !MACH_SUN8I_R40
Icenowy Zhengc1994892017-04-08 15:30:12 +0800533 depends on !MACH_SUN8I_V3S
Chen-Yu Tsai301791c2017-03-02 16:03:06 +0800534 depends on !MACH_SUN9I
535 depends on !MACH_SUN50I
Luc Verhaegen7f2c5212014-08-13 07:55:06 +0200536 default y
537 ---help---
Hans de Goede2dae8002014-12-21 16:28:32 +0100538 Say Y here to add support for using a cfb console on the HDMI, LCD
539 or VGA output found on most sunxi devices. See doc/README.video for
540 info on how to select the video output and mode.
541
Hans de Goede2fbf0912014-12-23 23:04:35 +0100542config VIDEO_HDMI
Masahiro Yamadaab650062016-08-12 10:26:50 +0900543 bool "HDMI output support"
Hans de Goede2fbf0912014-12-23 23:04:35 +0100544 depends on VIDEO && !MACH_SUN8I
545 default y
546 ---help---
547 Say Y here to add support for outputting video over HDMI.
548
Hans de Goeded9786d22014-12-25 13:58:06 +0100549config VIDEO_VGA
Masahiro Yamadaab650062016-08-12 10:26:50 +0900550 bool "VGA output support"
Hans de Goeded9786d22014-12-25 13:58:06 +0100551 depends on VIDEO && (MACH_SUN4I || MACH_SUN7I)
552 default n
553 ---help---
554 Say Y here to add support for outputting video over VGA.
555
Hans de Goedee2bbdfb2014-12-24 12:17:07 +0100556config VIDEO_VGA_VIA_LCD
Masahiro Yamadaab650062016-08-12 10:26:50 +0900557 bool "VGA via LCD controller support"
Chen-Yu Tsai2583d5b2015-01-12 18:02:10 +0800558 depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
Hans de Goedee2bbdfb2014-12-24 12:17:07 +0100559 default n
560 ---help---
561 Say Y here to add support for external DACs connected to the parallel
562 LCD interface driving a VGA connector, such as found on the
563 Olimex A13 boards.
564
Hans de Goedefb75d972015-01-25 15:33:07 +0100565config VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
Masahiro Yamadaab650062016-08-12 10:26:50 +0900566 bool "Force sync active high for VGA via LCD controller support"
Hans de Goedefb75d972015-01-25 15:33:07 +0100567 depends on VIDEO_VGA_VIA_LCD
568 default n
569 ---help---
570 Say Y here if you've a board which uses opendrain drivers for the vga
571 hsync and vsync signals. Opendrain drivers cannot generate steep enough
572 positive edges for a stable video output, so on boards with opendrain
573 drivers the sync signals must always be active high.
574
Chen-Yu Tsai507e27d2015-01-12 18:02:11 +0800575config VIDEO_VGA_EXTERNAL_DAC_EN
576 string "LCD panel power enable pin"
577 depends on VIDEO_VGA_VIA_LCD
578 default ""
579 ---help---
580 Set the enable pin for the external VGA DAC. This takes a string in the
581 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
582
Hans de Goede39920c82015-08-03 19:20:26 +0200583config VIDEO_COMPOSITE
Masahiro Yamadaab650062016-08-12 10:26:50 +0900584 bool "Composite video output support"
Hans de Goede39920c82015-08-03 19:20:26 +0200585 depends on VIDEO && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
586 default n
587 ---help---
588 Say Y here to add support for outputting composite video.
589
Hans de Goede2dae8002014-12-21 16:28:32 +0100590config VIDEO_LCD_MODE
591 string "LCD panel timing details"
592 depends on VIDEO
593 default ""
594 ---help---
595 LCD panel timing details string, leave empty if there is no LCD panel.
596 This is in drivers/video/videomodes.c: video_get_params() format, e.g.
597 x:800,y:480,depth:18,pclk_khz:33000,le:16,ri:209,up:22,lo:22,hs:30,vs:1,sync:0,vmode:0
Hans de Goede8addd3e2015-08-16 11:23:42 +0200598 Also see: http://linux-sunxi.org/LCD
Hans de Goede2dae8002014-12-21 16:28:32 +0100599
Hans de Goede65150322015-01-13 13:21:46 +0100600config VIDEO_LCD_DCLK_PHASE
601 int "LCD panel display clock phase"
602 depends on VIDEO
603 default 1
604 ---help---
605 Select LCD panel display clock phase shift, range 0-3.
606
Hans de Goede2dae8002014-12-21 16:28:32 +0100607config VIDEO_LCD_POWER
608 string "LCD panel power enable pin"
609 depends on VIDEO
610 default ""
611 ---help---
612 Set the power enable pin for the LCD panel. This takes a string in the
613 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
614
Hans de Goede242e3d82015-02-16 17:26:41 +0100615config VIDEO_LCD_RESET
616 string "LCD panel reset pin"
617 depends on VIDEO
618 default ""
619 ---help---
620 Set the reset pin for the LCD panel. This takes a string in the format
621 understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
622
Hans de Goede2dae8002014-12-21 16:28:32 +0100623config VIDEO_LCD_BL_EN
624 string "LCD panel backlight enable pin"
625 depends on VIDEO
626 default ""
627 ---help---
628 Set the backlight enable pin for the LCD panel. This takes a string in the
629 the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
630 port H.
631
632config VIDEO_LCD_BL_PWM
633 string "LCD panel backlight pwm pin"
634 depends on VIDEO
635 default ""
636 ---help---
637 Set the backlight pwm pin for the LCD panel. This takes a string in the
638 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
Luc Verhaegen7f2c5212014-08-13 07:55:06 +0200639
Hans de Goedea7403ae2015-01-22 21:02:42 +0100640config VIDEO_LCD_BL_PWM_ACTIVE_LOW
641 bool "LCD panel backlight pwm is inverted"
642 depends on VIDEO
643 default y
644 ---help---
645 Set this if the backlight pwm output is active low.
646
Hans de Goede55410082015-02-16 17:23:25 +0100647config VIDEO_LCD_PANEL_I2C
648 bool "LCD panel needs to be configured via i2c"
649 depends on VIDEO
Hans de Goede1fc42012015-03-07 12:00:02 +0100650 default n
Hans de Goede0878a8a2016-05-15 13:51:58 +0200651 select CMD_I2C
Hans de Goede55410082015-02-16 17:23:25 +0100652 ---help---
653 Say y here if the LCD panel needs to be configured via i2c. This
654 will add a bitbang i2c controller using gpios to talk to the LCD.
655
656config VIDEO_LCD_PANEL_I2C_SDA
657 string "LCD panel i2c interface SDA pin"
658 depends on VIDEO_LCD_PANEL_I2C
659 default "PG12"
660 ---help---
661 Set the SDA pin for the LCD i2c interface. This takes a string in the
662 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
663
664config VIDEO_LCD_PANEL_I2C_SCL
665 string "LCD panel i2c interface SCL pin"
666 depends on VIDEO_LCD_PANEL_I2C
667 default "PG10"
668 ---help---
669 Set the SCL pin for the LCD i2c interface. This takes a string in the
670 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
671
Hans de Goede213480e2015-01-01 22:04:34 +0100672
673# Note only one of these may be selected at a time! But hidden choices are
674# not supported by Kconfig
675config VIDEO_LCD_IF_PARALLEL
676 bool
677
678config VIDEO_LCD_IF_LVDS
679 bool
680
Jernej Skrabec1ae5def2017-03-27 19:22:31 +0200681config SUNXI_DE2
682 bool
683 default n
684
Jernej Skrabec56009452017-03-27 19:22:32 +0200685config VIDEO_DE2
686 bool "Display Engine 2 video driver"
687 depends on SUNXI_DE2
688 select DM_VIDEO
689 select DISPLAY
690 default y
691 ---help---
692 Say y here if you want to build DE2 video driver which is present on
693 newer SoCs. Currently only HDMI output is supported.
694
Hans de Goede213480e2015-01-01 22:04:34 +0100695
696choice
697 prompt "LCD panel support"
698 depends on VIDEO
699 ---help---
700 Select which type of LCD panel to support.
701
702config VIDEO_LCD_PANEL_PARALLEL
703 bool "Generic parallel interface LCD panel"
704 select VIDEO_LCD_IF_PARALLEL
705
706config VIDEO_LCD_PANEL_LVDS
707 bool "Generic lvds interface LCD panel"
708 select VIDEO_LCD_IF_LVDS
709
Siarhei Siamashka97ece832015-01-19 05:23:33 +0200710config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
711 bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip"
712 select VIDEO_LCD_SSD2828
713 select VIDEO_LCD_IF_PARALLEL
714 ---help---
Hans de Goedec1cfd512015-08-08 16:13:53 +0200715 7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
716
717config VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804
718 bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip"
719 select VIDEO_LCD_ANX9804
720 select VIDEO_LCD_IF_PARALLEL
721 select VIDEO_LCD_PANEL_I2C
722 ---help---
723 Select this for eDP LCD panels with 4 lanes running at 1.62G,
724 connected via an ANX9804 bridge chip.
Siarhei Siamashka97ece832015-01-19 05:23:33 +0200725
Hans de Goede27515b22015-01-20 09:23:36 +0100726config VIDEO_LCD_PANEL_HITACHI_TX18D42VM
727 bool "Hitachi tx18d42vm LCD panel"
728 select VIDEO_LCD_HITACHI_TX18D42VM
729 select VIDEO_LCD_IF_LVDS
730 ---help---
731 7.85" 1024x768 Hitachi tx18d42vm LCD panel support
732
Hans de Goedeaad2ac22015-02-16 17:49:47 +0100733config VIDEO_LCD_TL059WV5C0
734 bool "tl059wv5c0 LCD panel"
735 select VIDEO_LCD_PANEL_I2C
736 select VIDEO_LCD_IF_PARALLEL
737 ---help---
738 6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and
739 Aigo M60/M608/M606 tablets.
740
Hans de Goede213480e2015-01-01 22:04:34 +0100741endchoice
742
Mylène Josserandd7b560e2017-04-02 12:59:09 +0200743config SATAPWR
744 string "SATA power pin"
745 default ""
746 help
747 Set the pins used to power the SATA. This takes a string in the
748 format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
749 port H.
Hans de Goede213480e2015-01-01 22:04:34 +0100750
Hans de Goedec13f60d2015-01-25 12:10:48 +0100751config GMAC_TX_DELAY
752 int "GMAC Transmit Clock Delay Chain"
753 default 0
754 ---help---
755 Set the GMAC Transmit Clock Delay Chain value.
756
Hans de Goedeff42d102015-09-13 13:02:48 +0200757config SPL_STACK_R_ADDR
Chen-Yu Tsai301791c2017-03-02 16:03:06 +0800758 default 0x4fe00000 if MACH_SUN4I
759 default 0x4fe00000 if MACH_SUN5I
760 default 0x4fe00000 if MACH_SUN6I
761 default 0x4fe00000 if MACH_SUN7I
762 default 0x4fe00000 if MACH_SUN8I
Hans de Goedeff42d102015-09-13 13:02:48 +0200763 default 0x2fe00000 if MACH_SUN9I
Chen-Yu Tsai301791c2017-03-02 16:03:06 +0800764 default 0x4fe00000 if MACH_SUN50I
Hans de Goedeff42d102015-09-13 13:02:48 +0200765
Masahiro Yamadadd840582014-07-30 14:08:14 +0900766endif