xref: /OK3568_Linux_fs/u-boot/arch/arm/mach-sunxi/Kconfig (revision 4882a59341e53eb6f0b4789bf948001014eff981)
1*4882a593Smuzhiyunif ARCH_SUNXI
2*4882a593Smuzhiyun
3*4882a593Smuzhiyunconfig SPL_LDSCRIPT
4*4882a593Smuzhiyun	default "arch/arm/cpu/armv7/sunxi/u-boot-spl.lds" if !ARM64
5*4882a593Smuzhiyun
6*4882a593Smuzhiyunconfig IDENT_STRING
7*4882a593Smuzhiyun	default " Allwinner Technology"
8*4882a593Smuzhiyun
9*4882a593Smuzhiyunconfig SUNXI_HIGH_SRAM
10*4882a593Smuzhiyun	bool
11*4882a593Smuzhiyun	default n
12*4882a593Smuzhiyun	---help---
13*4882a593Smuzhiyun	Older Allwinner SoCs have their mask boot ROM mapped just below 4GB,
14*4882a593Smuzhiyun	with the first SRAM region being located at address 0.
15*4882a593Smuzhiyun	Some newer SoCs map the boot ROM at address 0 instead and move the
16*4882a593Smuzhiyun	SRAM to 64KB, just behind the mask ROM.
17*4882a593Smuzhiyun	Chips using the latter setup are supposed to select this option to
18*4882a593Smuzhiyun	adjust the addresses accordingly.
19*4882a593Smuzhiyun
20*4882a593Smuzhiyun# Note only one of these may be selected at a time! But hidden choices are
21*4882a593Smuzhiyun# not supported by Kconfig
22*4882a593Smuzhiyunconfig SUNXI_GEN_SUN4I
23*4882a593Smuzhiyun	bool
24*4882a593Smuzhiyun	---help---
25*4882a593Smuzhiyun	Select this for sunxi SoCs which have resets and clocks set up
26*4882a593Smuzhiyun	as the original A10 (mach-sun4i).
27*4882a593Smuzhiyun
28*4882a593Smuzhiyunconfig SUNXI_GEN_SUN6I
29*4882a593Smuzhiyun	bool
30*4882a593Smuzhiyun	---help---
31*4882a593Smuzhiyun	Select this for sunxi SoCs which have sun6i like periphery, like
32*4882a593Smuzhiyun	separate ahb reset control registers, custom pmic bus, new style
33*4882a593Smuzhiyun	watchdog, etc.
34*4882a593Smuzhiyun
35*4882a593Smuzhiyunconfig SUNXI_DRAM_DW
36*4882a593Smuzhiyun	bool
37*4882a593Smuzhiyun	---help---
38*4882a593Smuzhiyun	Select this for sunxi SoCs which uses a DRAM controller like the
39*4882a593Smuzhiyun	DesignWare controller used in H3, mainly SoCs after H3, which do
40*4882a593Smuzhiyun	not have official open-source DRAM initialization code, but can
41*4882a593Smuzhiyun	use modified H3 DRAM initialization code.
42*4882a593Smuzhiyun
43*4882a593Smuzhiyunif SUNXI_DRAM_DW
44*4882a593Smuzhiyunconfig SUNXI_DRAM_DW_16BIT
45*4882a593Smuzhiyun	bool
46*4882a593Smuzhiyun	---help---
47*4882a593Smuzhiyun	Select this for sunxi SoCs with DesignWare DRAM controller and
48*4882a593Smuzhiyun	have only 16-bit memory buswidth.
49*4882a593Smuzhiyun
50*4882a593Smuzhiyunconfig SUNXI_DRAM_DW_32BIT
51*4882a593Smuzhiyun	bool
52*4882a593Smuzhiyun	---help---
53*4882a593Smuzhiyun	Select this for sunxi SoCs with DesignWare DRAM controller with
54*4882a593Smuzhiyun	32-bit memory buswidth.
55*4882a593Smuzhiyunendif
56*4882a593Smuzhiyun
57*4882a593Smuzhiyunconfig MACH_SUNXI_H3_H5
58*4882a593Smuzhiyun	bool
59*4882a593Smuzhiyun	select DM_I2C
60*4882a593Smuzhiyun	select SUNXI_DE2
61*4882a593Smuzhiyun	select SUNXI_DRAM_DW
62*4882a593Smuzhiyun	select SUNXI_DRAM_DW_32BIT
63*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
64*4882a593Smuzhiyun	select SUPPORT_SPL
65*4882a593Smuzhiyun
66*4882a593Smuzhiyunchoice
67*4882a593Smuzhiyun	prompt "Sunxi SoC Variant"
68*4882a593Smuzhiyun	optional
69*4882a593Smuzhiyun
70*4882a593Smuzhiyunconfig MACH_SUN4I
71*4882a593Smuzhiyun	bool "sun4i (Allwinner A10)"
72*4882a593Smuzhiyun	select CPU_V7
73*4882a593Smuzhiyun	select ARM_CORTEX_CPU_IS_UP
74*4882a593Smuzhiyun	select SUNXI_GEN_SUN4I
75*4882a593Smuzhiyun	select SUPPORT_SPL
76*4882a593Smuzhiyun
77*4882a593Smuzhiyunconfig MACH_SUN5I
78*4882a593Smuzhiyun	bool "sun5i (Allwinner A13)"
79*4882a593Smuzhiyun	select CPU_V7
80*4882a593Smuzhiyun	select ARM_CORTEX_CPU_IS_UP
81*4882a593Smuzhiyun	select SUNXI_GEN_SUN4I
82*4882a593Smuzhiyun	select SUPPORT_SPL
83*4882a593Smuzhiyun
84*4882a593Smuzhiyunconfig MACH_SUN6I
85*4882a593Smuzhiyun	bool "sun6i (Allwinner A31)"
86*4882a593Smuzhiyun	select CPU_V7
87*4882a593Smuzhiyun	select CPU_V7_HAS_NONSEC
88*4882a593Smuzhiyun	select CPU_V7_HAS_VIRT
89*4882a593Smuzhiyun	select ARCH_SUPPORT_PSCI
90*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
91*4882a593Smuzhiyun	select SUPPORT_SPL
92*4882a593Smuzhiyun	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
93*4882a593Smuzhiyun
94*4882a593Smuzhiyunconfig MACH_SUN7I
95*4882a593Smuzhiyun	bool "sun7i (Allwinner A20)"
96*4882a593Smuzhiyun	select CPU_V7
97*4882a593Smuzhiyun	select CPU_V7_HAS_NONSEC
98*4882a593Smuzhiyun	select CPU_V7_HAS_VIRT
99*4882a593Smuzhiyun	select ARCH_SUPPORT_PSCI
100*4882a593Smuzhiyun	select SUNXI_GEN_SUN4I
101*4882a593Smuzhiyun	select SUPPORT_SPL
102*4882a593Smuzhiyun	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
103*4882a593Smuzhiyun
104*4882a593Smuzhiyunconfig MACH_SUN8I_A23
105*4882a593Smuzhiyun	bool "sun8i (Allwinner A23)"
106*4882a593Smuzhiyun	select CPU_V7
107*4882a593Smuzhiyun	select CPU_V7_HAS_NONSEC
108*4882a593Smuzhiyun	select CPU_V7_HAS_VIRT
109*4882a593Smuzhiyun	select ARCH_SUPPORT_PSCI
110*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
111*4882a593Smuzhiyun	select SUPPORT_SPL
112*4882a593Smuzhiyun	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
113*4882a593Smuzhiyun
114*4882a593Smuzhiyunconfig MACH_SUN8I_A33
115*4882a593Smuzhiyun	bool "sun8i (Allwinner A33)"
116*4882a593Smuzhiyun	select CPU_V7
117*4882a593Smuzhiyun	select CPU_V7_HAS_NONSEC
118*4882a593Smuzhiyun	select CPU_V7_HAS_VIRT
119*4882a593Smuzhiyun	select ARCH_SUPPORT_PSCI
120*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
121*4882a593Smuzhiyun	select SUPPORT_SPL
122*4882a593Smuzhiyun	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
123*4882a593Smuzhiyun
124*4882a593Smuzhiyunconfig MACH_SUN8I_A83T
125*4882a593Smuzhiyun	bool "sun8i (Allwinner A83T)"
126*4882a593Smuzhiyun	select CPU_V7
127*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
128*4882a593Smuzhiyun	select MMC_SUNXI_HAS_NEW_MODE
129*4882a593Smuzhiyun	select SUPPORT_SPL
130*4882a593Smuzhiyun
131*4882a593Smuzhiyunconfig MACH_SUN8I_H3
132*4882a593Smuzhiyun	bool "sun8i (Allwinner H3)"
133*4882a593Smuzhiyun	select CPU_V7
134*4882a593Smuzhiyun	select CPU_V7_HAS_NONSEC
135*4882a593Smuzhiyun	select CPU_V7_HAS_VIRT
136*4882a593Smuzhiyun	select ARCH_SUPPORT_PSCI
137*4882a593Smuzhiyun	select MACH_SUNXI_H3_H5
138*4882a593Smuzhiyun	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
139*4882a593Smuzhiyun
140*4882a593Smuzhiyunconfig MACH_SUN8I_R40
141*4882a593Smuzhiyun	bool "sun8i (Allwinner R40)"
142*4882a593Smuzhiyun	select CPU_V7
143*4882a593Smuzhiyun	select CPU_V7_HAS_NONSEC
144*4882a593Smuzhiyun	select CPU_V7_HAS_VIRT
145*4882a593Smuzhiyun	select ARCH_SUPPORT_PSCI
146*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
147*4882a593Smuzhiyun	select SUPPORT_SPL
148*4882a593Smuzhiyun	select SUNXI_DRAM_DW
149*4882a593Smuzhiyun	select SUNXI_DRAM_DW_32BIT
150*4882a593Smuzhiyun
151*4882a593Smuzhiyunconfig MACH_SUN8I_V3S
152*4882a593Smuzhiyun	bool "sun8i (Allwinner V3s)"
153*4882a593Smuzhiyun	select CPU_V7
154*4882a593Smuzhiyun	select CPU_V7_HAS_NONSEC
155*4882a593Smuzhiyun	select CPU_V7_HAS_VIRT
156*4882a593Smuzhiyun	select ARCH_SUPPORT_PSCI
157*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
158*4882a593Smuzhiyun	select SUNXI_DRAM_DW
159*4882a593Smuzhiyun	select SUNXI_DRAM_DW_16BIT
160*4882a593Smuzhiyun	select SUPPORT_SPL
161*4882a593Smuzhiyun	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
162*4882a593Smuzhiyun
163*4882a593Smuzhiyunconfig MACH_SUN9I
164*4882a593Smuzhiyun	bool "sun9i (Allwinner A80)"
165*4882a593Smuzhiyun	select CPU_V7
166*4882a593Smuzhiyun	select SUNXI_HIGH_SRAM
167*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
168*4882a593Smuzhiyun	select SUPPORT_SPL
169*4882a593Smuzhiyun
170*4882a593Smuzhiyunconfig MACH_SUN50I
171*4882a593Smuzhiyun	bool "sun50i (Allwinner A64)"
172*4882a593Smuzhiyun	select ARM64
173*4882a593Smuzhiyun	select DM_I2C
174*4882a593Smuzhiyun	select SUNXI_DE2
175*4882a593Smuzhiyun	select SUNXI_GEN_SUN6I
176*4882a593Smuzhiyun	select SUNXI_HIGH_SRAM
177*4882a593Smuzhiyun	select SUPPORT_SPL
178*4882a593Smuzhiyun	select SUNXI_DRAM_DW
179*4882a593Smuzhiyun	select SUNXI_DRAM_DW_32BIT
180*4882a593Smuzhiyun	select FIT
181*4882a593Smuzhiyun	select SPL_LOAD_FIT
182*4882a593Smuzhiyun
183*4882a593Smuzhiyunconfig MACH_SUN50I_H5
184*4882a593Smuzhiyun	bool "sun50i (Allwinner H5)"
185*4882a593Smuzhiyun	select ARM64
186*4882a593Smuzhiyun	select MACH_SUNXI_H3_H5
187*4882a593Smuzhiyun	select SUNXI_HIGH_SRAM
188*4882a593Smuzhiyun	select FIT
189*4882a593Smuzhiyun	select SPL_LOAD_FIT
190*4882a593Smuzhiyun
191*4882a593Smuzhiyunendchoice
192*4882a593Smuzhiyun
193*4882a593Smuzhiyun# The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
194*4882a593Smuzhiyunconfig MACH_SUN8I
195*4882a593Smuzhiyun	bool
196*4882a593Smuzhiyun	default y if MACH_SUN8I_A23
197*4882a593Smuzhiyun	default y if MACH_SUN8I_A33
198*4882a593Smuzhiyun	default y if MACH_SUN8I_A83T
199*4882a593Smuzhiyun	default y if MACH_SUNXI_H3_H5
200*4882a593Smuzhiyun	default y if MACH_SUN8I_R40
201*4882a593Smuzhiyun	default y if MACH_SUN8I_V3S
202*4882a593Smuzhiyun
203*4882a593Smuzhiyunconfig RESERVE_ALLWINNER_BOOT0_HEADER
204*4882a593Smuzhiyun	bool "reserve space for Allwinner boot0 header"
205*4882a593Smuzhiyun	select ENABLE_ARM_SOC_BOOT0_HOOK
206*4882a593Smuzhiyun	---help---
207*4882a593Smuzhiyun	Prepend a 1536 byte (empty) header to the U-Boot image file, to be
208*4882a593Smuzhiyun	filled with magic values post build. The Allwinner provided boot0
209*4882a593Smuzhiyun	blob relies on this information to load and execute U-Boot.
210*4882a593Smuzhiyun	Only needed on 64-bit Allwinner boards so far when using boot0.
211*4882a593Smuzhiyun
212*4882a593Smuzhiyunconfig ARM_BOOT_HOOK_RMR
213*4882a593Smuzhiyun	bool
214*4882a593Smuzhiyun	depends on ARM64
215*4882a593Smuzhiyun	default y
216*4882a593Smuzhiyun	select ENABLE_ARM_SOC_BOOT0_HOOK
217*4882a593Smuzhiyun	---help---
218*4882a593Smuzhiyun	Insert some ARM32 code at the very beginning of the U-Boot binary
219*4882a593Smuzhiyun	which uses an RMR register write to bring the core into AArch64 mode.
220*4882a593Smuzhiyun	The very first instruction acts as a switch, since it's carefully
221*4882a593Smuzhiyun	chosen to be a NOP in one mode and a branch in the other, so the
222*4882a593Smuzhiyun	code would only be executed if not already in AArch64.
223*4882a593Smuzhiyun	This allows both the SPL and the U-Boot proper to be entered in
224*4882a593Smuzhiyun	either mode and switch to AArch64 if needed.
225*4882a593Smuzhiyun
226*4882a593Smuzhiyunif SUNXI_DRAM_DW
227*4882a593Smuzhiyunconfig SUNXI_DRAM_DDR3
228*4882a593Smuzhiyun	bool
229*4882a593Smuzhiyun
230*4882a593Smuzhiyunconfig SUNXI_DRAM_DDR2
231*4882a593Smuzhiyun	bool
232*4882a593Smuzhiyun
233*4882a593Smuzhiyunconfig SUNXI_DRAM_LPDDR3
234*4882a593Smuzhiyun	bool
235*4882a593Smuzhiyun
236*4882a593Smuzhiyunchoice
237*4882a593Smuzhiyun	prompt "DRAM Type and Timing"
238*4882a593Smuzhiyun	default SUNXI_DRAM_DDR3_1333 if !MACH_SUN8I_V3S
239*4882a593Smuzhiyun	default SUNXI_DRAM_DDR2_V3S if MACH_SUN8I_V3S
240*4882a593Smuzhiyun
241*4882a593Smuzhiyunconfig SUNXI_DRAM_DDR3_1333
242*4882a593Smuzhiyun	bool "DDR3 1333"
243*4882a593Smuzhiyun	select SUNXI_DRAM_DDR3
244*4882a593Smuzhiyun	depends on !MACH_SUN8I_V3S
245*4882a593Smuzhiyun	---help---
246*4882a593Smuzhiyun	This option is the original only supported memory type, which suits
247*4882a593Smuzhiyun	many H3/H5/A64 boards available now.
248*4882a593Smuzhiyun
249*4882a593Smuzhiyunconfig SUNXI_DRAM_LPDDR3_STOCK
250*4882a593Smuzhiyun	bool "LPDDR3 with Allwinner stock configuration"
251*4882a593Smuzhiyun	select SUNXI_DRAM_LPDDR3
252*4882a593Smuzhiyun	---help---
253*4882a593Smuzhiyun	This option is the LPDDR3 timing used by the stock boot0 by
254*4882a593Smuzhiyun	Allwinner.
255*4882a593Smuzhiyun
256*4882a593Smuzhiyunconfig SUNXI_DRAM_DDR2_V3S
257*4882a593Smuzhiyun	bool "DDR2 found in V3s chip"
258*4882a593Smuzhiyun	select SUNXI_DRAM_DDR2
259*4882a593Smuzhiyun	depends on MACH_SUN8I_V3S
260*4882a593Smuzhiyun	---help---
261*4882a593Smuzhiyun	This option is only for the DDR2 memory chip which is co-packaged in
262*4882a593Smuzhiyun	Allwinner V3s SoC.
263*4882a593Smuzhiyun
264*4882a593Smuzhiyunendchoice
265*4882a593Smuzhiyunendif
266*4882a593Smuzhiyun
267*4882a593Smuzhiyunconfig DRAM_TYPE
268*4882a593Smuzhiyun	int "sunxi dram type"
269*4882a593Smuzhiyun	depends on MACH_SUN8I_A83T
270*4882a593Smuzhiyun	default 3
271*4882a593Smuzhiyun	---help---
272*4882a593Smuzhiyun	Set the dram type, 3: DDR3, 7: LPDDR3
273*4882a593Smuzhiyun
274*4882a593Smuzhiyunconfig DRAM_CLK
275*4882a593Smuzhiyun	int "sunxi dram clock speed"
276*4882a593Smuzhiyun	default 792 if MACH_SUN9I
277*4882a593Smuzhiyun	default 648 if MACH_SUN8I_R40
278*4882a593Smuzhiyun	default 312 if MACH_SUN6I || MACH_SUN8I
279*4882a593Smuzhiyun	default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || \
280*4882a593Smuzhiyun		       MACH_SUN8I_V3S
281*4882a593Smuzhiyun	default 672 if MACH_SUN50I
282*4882a593Smuzhiyun	---help---
283*4882a593Smuzhiyun	Set the dram clock speed, valid range 240 - 480 (prior to sun9i),
284*4882a593Smuzhiyun	must be a multiple of 24. For the sun9i (A80), the tested values
285*4882a593Smuzhiyun	(for DDR3-1600) are 312 to 792.
286*4882a593Smuzhiyun
287*4882a593Smuzhiyunif MACH_SUN5I || MACH_SUN7I
288*4882a593Smuzhiyunconfig DRAM_MBUS_CLK
289*4882a593Smuzhiyun	int "sunxi mbus clock speed"
290*4882a593Smuzhiyun	default 300
291*4882a593Smuzhiyun	---help---
292*4882a593Smuzhiyun	Set the mbus clock speed. The maximum on sun5i hardware is 300MHz.
293*4882a593Smuzhiyun
294*4882a593Smuzhiyunendif
295*4882a593Smuzhiyun
296*4882a593Smuzhiyunconfig DRAM_ZQ
297*4882a593Smuzhiyun	int "sunxi dram zq value"
298*4882a593Smuzhiyun	default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
299*4882a593Smuzhiyun	default 127 if MACH_SUN7I
300*4882a593Smuzhiyun	default 14779 if MACH_SUN8I_V3S
301*4882a593Smuzhiyun	default 3881979 if MACH_SUN8I_R40
302*4882a593Smuzhiyun	default 4145117 if MACH_SUN9I
303*4882a593Smuzhiyun	default 3881915 if MACH_SUN50I
304*4882a593Smuzhiyun	---help---
305*4882a593Smuzhiyun	Set the dram zq value.
306*4882a593Smuzhiyun
307*4882a593Smuzhiyunconfig DRAM_ODT_EN
308*4882a593Smuzhiyun	bool "sunxi dram odt enable"
309*4882a593Smuzhiyun	default n if !MACH_SUN8I_A23
310*4882a593Smuzhiyun	default y if MACH_SUN8I_A23
311*4882a593Smuzhiyun	default y if MACH_SUN8I_R40
312*4882a593Smuzhiyun	default y if MACH_SUN50I
313*4882a593Smuzhiyun	---help---
314*4882a593Smuzhiyun	Select this to enable dram odt (on die termination).
315*4882a593Smuzhiyun
316*4882a593Smuzhiyunif MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
317*4882a593Smuzhiyunconfig DRAM_EMR1
318*4882a593Smuzhiyun	int "sunxi dram emr1 value"
319*4882a593Smuzhiyun	default 0 if MACH_SUN4I
320*4882a593Smuzhiyun	default 4 if MACH_SUN5I || MACH_SUN7I
321*4882a593Smuzhiyun	---help---
322*4882a593Smuzhiyun	Set the dram controller emr1 value.
323*4882a593Smuzhiyun
324*4882a593Smuzhiyunconfig DRAM_TPR3
325*4882a593Smuzhiyun	hex "sunxi dram tpr3 value"
326*4882a593Smuzhiyun	default 0
327*4882a593Smuzhiyun	---help---
328*4882a593Smuzhiyun	Set the dram controller tpr3 parameter. This parameter configures
329*4882a593Smuzhiyun	the delay on the command lane and also phase shifts, which are
330*4882a593Smuzhiyun	applied for sampling incoming read data. The default value 0
331*4882a593Smuzhiyun	means that no phase/delay adjustments are necessary. Properly
332*4882a593Smuzhiyun	configuring this parameter increases reliability at high DRAM
333*4882a593Smuzhiyun	clock speeds.
334*4882a593Smuzhiyun
335*4882a593Smuzhiyunconfig DRAM_DQS_GATING_DELAY
336*4882a593Smuzhiyun	hex "sunxi dram dqs_gating_delay value"
337*4882a593Smuzhiyun	default 0
338*4882a593Smuzhiyun	---help---
339*4882a593Smuzhiyun	Set the dram controller dqs_gating_delay parmeter. Each byte
340*4882a593Smuzhiyun	encodes the DQS gating delay for each byte lane. The delay
341*4882a593Smuzhiyun	granularity is 1/4 cycle. For example, the value 0x05060606
342*4882a593Smuzhiyun	means that the delay is 5 quarter-cycles for one lane (1.25
343*4882a593Smuzhiyun	cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes.
344*4882a593Smuzhiyun	The default value 0 means autodetection. The results of hardware
345*4882a593Smuzhiyun	autodetection are not very reliable and depend on the chip
346*4882a593Smuzhiyun	temperature (sometimes producing different results on cold start
347*4882a593Smuzhiyun	and warm reboot). But the accuracy of hardware autodetection
348*4882a593Smuzhiyun	is usually good enough, unless running at really high DRAM
349*4882a593Smuzhiyun	clocks speeds (up to 600MHz). If unsure, keep as 0.
350*4882a593Smuzhiyun
351*4882a593Smuzhiyunchoice
352*4882a593Smuzhiyun	prompt "sunxi dram timings"
353*4882a593Smuzhiyun	default DRAM_TIMINGS_VENDOR_MAGIC
354*4882a593Smuzhiyun	---help---
355*4882a593Smuzhiyun	Select the timings of the DDR3 chips.
356*4882a593Smuzhiyun
357*4882a593Smuzhiyunconfig DRAM_TIMINGS_VENDOR_MAGIC
358*4882a593Smuzhiyun	bool "Magic vendor timings from Android"
359*4882a593Smuzhiyun	---help---
360*4882a593Smuzhiyun	The same DRAM timings as in the Allwinner boot0 bootloader.
361*4882a593Smuzhiyun
362*4882a593Smuzhiyunconfig DRAM_TIMINGS_DDR3_1066F_1333H
363*4882a593Smuzhiyun	bool "JEDEC DDR3-1333H with down binning to DDR3-1066F"
364*4882a593Smuzhiyun	---help---
365*4882a593Smuzhiyun	Use the timings of the standard JEDEC DDR3-1066F speed bin for
366*4882a593Smuzhiyun	DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin
367*4882a593Smuzhiyun	for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips
368*4882a593Smuzhiyun	used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333
369*4882a593Smuzhiyun	or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm
370*4882a593Smuzhiyun	that down binning to DDR3-1066F is supported (because DDR3-1066F
371*4882a593Smuzhiyun	uses a bit faster timings than DDR3-1333H).
372*4882a593Smuzhiyun
373*4882a593Smuzhiyunconfig DRAM_TIMINGS_DDR3_800E_1066G_1333J
374*4882a593Smuzhiyun	bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J"
375*4882a593Smuzhiyun	---help---
376*4882a593Smuzhiyun	Use the timings of the slowest possible JEDEC speed bin for the
377*4882a593Smuzhiyun	selected DRAM_CLK. Depending on the DRAM_CLK value, it may be
378*4882a593Smuzhiyun	DDR3-800E, DDR3-1066G or DDR3-1333J.
379*4882a593Smuzhiyun
380*4882a593Smuzhiyunendchoice
381*4882a593Smuzhiyun
382*4882a593Smuzhiyunendif
383*4882a593Smuzhiyun
384*4882a593Smuzhiyunif MACH_SUN8I_A23
385*4882a593Smuzhiyunconfig DRAM_ODT_CORRECTION
386*4882a593Smuzhiyun	int "sunxi dram odt correction value"
387*4882a593Smuzhiyun	default 0
388*4882a593Smuzhiyun	---help---
389*4882a593Smuzhiyun	Set the dram odt correction value (range -255 - 255). In allwinner
390*4882a593Smuzhiyun	fex files, this option is found in bits 8-15 of the u32 odt_en variable
391*4882a593Smuzhiyun	in the [dram] section. When bit 31 of the odt_en variable is set
392*4882a593Smuzhiyun	then the correction is negative. Usually the value for this is 0.
393*4882a593Smuzhiyunendif
394*4882a593Smuzhiyun
395*4882a593Smuzhiyunconfig SYS_CLK_FREQ
396*4882a593Smuzhiyun	default 1008000000 if MACH_SUN4I
397*4882a593Smuzhiyun	default 1008000000 if MACH_SUN5I
398*4882a593Smuzhiyun	default 1008000000 if MACH_SUN6I
399*4882a593Smuzhiyun	default 912000000 if MACH_SUN7I
400*4882a593Smuzhiyun	default 1008000000 if MACH_SUN8I
401*4882a593Smuzhiyun	default 1008000000 if MACH_SUN9I
402*4882a593Smuzhiyun	default 816000000 if MACH_SUN50I
403*4882a593Smuzhiyun
404*4882a593Smuzhiyunconfig SYS_CONFIG_NAME
405*4882a593Smuzhiyun	default "sun4i" if MACH_SUN4I
406*4882a593Smuzhiyun	default "sun5i" if MACH_SUN5I
407*4882a593Smuzhiyun	default "sun6i" if MACH_SUN6I
408*4882a593Smuzhiyun	default "sun7i" if MACH_SUN7I
409*4882a593Smuzhiyun	default "sun8i" if MACH_SUN8I
410*4882a593Smuzhiyun	default "sun9i" if MACH_SUN9I
411*4882a593Smuzhiyun	default "sun50i" if MACH_SUN50I
412*4882a593Smuzhiyun
413*4882a593Smuzhiyunconfig SYS_BOARD
414*4882a593Smuzhiyun	default "sunxi"
415*4882a593Smuzhiyun
416*4882a593Smuzhiyunconfig SYS_SOC
417*4882a593Smuzhiyun	default "sunxi"
418*4882a593Smuzhiyun
419*4882a593Smuzhiyunconfig UART0_PORT_F
420*4882a593Smuzhiyun	bool "UART0 on MicroSD breakout board"
421*4882a593Smuzhiyun	default n
422*4882a593Smuzhiyun	---help---
423*4882a593Smuzhiyun	Repurpose the SD card slot for getting access to the UART0 serial
424*4882a593Smuzhiyun	console. Primarily useful only for low level u-boot debugging on
425*4882a593Smuzhiyun	tablets, where normal UART0 is difficult to access and requires
426*4882a593Smuzhiyun	device disassembly and/or soldering. As the SD card can't be used
427*4882a593Smuzhiyun	at the same time, the system can be only booted in the FEL mode.
428*4882a593Smuzhiyun	Only enable this if you really know what you are doing.
429*4882a593Smuzhiyun
430*4882a593Smuzhiyunconfig OLD_SUNXI_KERNEL_COMPAT
431*4882a593Smuzhiyun	bool "Enable workarounds for booting old kernels"
432*4882a593Smuzhiyun	default n
433*4882a593Smuzhiyun	---help---
434*4882a593Smuzhiyun	Set this to enable various workarounds for old kernels, this results in
435*4882a593Smuzhiyun	sub-optimal settings for newer kernels, only enable if needed.
436*4882a593Smuzhiyun
437*4882a593Smuzhiyunconfig MACPWR
438*4882a593Smuzhiyun	string "MAC power pin"
439*4882a593Smuzhiyun	default ""
440*4882a593Smuzhiyun	help
441*4882a593Smuzhiyun	  Set the pin used to power the MAC. This takes a string in the format
442*4882a593Smuzhiyun	  understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
443*4882a593Smuzhiyun
444*4882a593Smuzhiyunconfig MMC0_CD_PIN
445*4882a593Smuzhiyun	string "Card detect pin for mmc0"
446*4882a593Smuzhiyun	default "PF6" if MACH_SUN8I_A83T || MACH_SUNXI_H3_H5 || MACH_SUN50I
447*4882a593Smuzhiyun	default ""
448*4882a593Smuzhiyun	---help---
449*4882a593Smuzhiyun	Set the card detect pin for mmc0, leave empty to not use cd. This
450*4882a593Smuzhiyun	takes a string in the format understood by sunxi_name_to_gpio, e.g.
451*4882a593Smuzhiyun	PH1 for pin 1 of port H.
452*4882a593Smuzhiyun
453*4882a593Smuzhiyunconfig MMC1_CD_PIN
454*4882a593Smuzhiyun	string "Card detect pin for mmc1"
455*4882a593Smuzhiyun	default ""
456*4882a593Smuzhiyun	---help---
457*4882a593Smuzhiyun	See MMC0_CD_PIN help text.
458*4882a593Smuzhiyun
459*4882a593Smuzhiyunconfig MMC2_CD_PIN
460*4882a593Smuzhiyun	string "Card detect pin for mmc2"
461*4882a593Smuzhiyun	default ""
462*4882a593Smuzhiyun	---help---
463*4882a593Smuzhiyun	See MMC0_CD_PIN help text.
464*4882a593Smuzhiyun
465*4882a593Smuzhiyunconfig MMC3_CD_PIN
466*4882a593Smuzhiyun	string "Card detect pin for mmc3"
467*4882a593Smuzhiyun	default ""
468*4882a593Smuzhiyun	---help---
469*4882a593Smuzhiyun	See MMC0_CD_PIN help text.
470*4882a593Smuzhiyun
471*4882a593Smuzhiyunconfig MMC1_PINS
472*4882a593Smuzhiyun	string "Pins for mmc1"
473*4882a593Smuzhiyun	default ""
474*4882a593Smuzhiyun	---help---
475*4882a593Smuzhiyun	Set the pins used for mmc1, when applicable. This takes a string in the
476*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio_bank, e.g. PH for port H.
477*4882a593Smuzhiyun
478*4882a593Smuzhiyunconfig MMC2_PINS
479*4882a593Smuzhiyun	string "Pins for mmc2"
480*4882a593Smuzhiyun	default ""
481*4882a593Smuzhiyun	---help---
482*4882a593Smuzhiyun	See MMC1_PINS help text.
483*4882a593Smuzhiyun
484*4882a593Smuzhiyunconfig MMC3_PINS
485*4882a593Smuzhiyun	string "Pins for mmc3"
486*4882a593Smuzhiyun	default ""
487*4882a593Smuzhiyun	---help---
488*4882a593Smuzhiyun	See MMC1_PINS help text.
489*4882a593Smuzhiyun
490*4882a593Smuzhiyunconfig MMC_SUNXI_SLOT_EXTRA
491*4882a593Smuzhiyun	int "mmc extra slot number"
492*4882a593Smuzhiyun	default -1
493*4882a593Smuzhiyun	---help---
494*4882a593Smuzhiyun	sunxi builds always enable mmc0, some boards also have a second sdcard
495*4882a593Smuzhiyun	slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
496*4882a593Smuzhiyun	support for this.
497*4882a593Smuzhiyun
498*4882a593Smuzhiyunconfig INITIAL_USB_SCAN_DELAY
499*4882a593Smuzhiyun	int "delay initial usb scan by x ms to allow builtin devices to init"
500*4882a593Smuzhiyun	default 0
501*4882a593Smuzhiyun	---help---
502*4882a593Smuzhiyun	Some boards have on board usb devices which need longer than the
503*4882a593Smuzhiyun	USB spec's 1 second to connect from board powerup. Set this config
504*4882a593Smuzhiyun	option to a non 0 value to add an extra delay before the first usb
505*4882a593Smuzhiyun	bus scan.
506*4882a593Smuzhiyun
507*4882a593Smuzhiyunconfig USB0_VBUS_PIN
508*4882a593Smuzhiyun	string "Vbus enable pin for usb0 (otg)"
509*4882a593Smuzhiyun	default ""
510*4882a593Smuzhiyun	---help---
511*4882a593Smuzhiyun	Set the Vbus enable pin for usb0 (otg). This takes a string in the
512*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
513*4882a593Smuzhiyun
514*4882a593Smuzhiyunconfig USB0_VBUS_DET
515*4882a593Smuzhiyun	string "Vbus detect pin for usb0 (otg)"
516*4882a593Smuzhiyun	default ""
517*4882a593Smuzhiyun	---help---
518*4882a593Smuzhiyun	Set the Vbus detect pin for usb0 (otg). This takes a string in the
519*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
520*4882a593Smuzhiyun
521*4882a593Smuzhiyunconfig USB0_ID_DET
522*4882a593Smuzhiyun	string "ID detect pin for usb0 (otg)"
523*4882a593Smuzhiyun	default ""
524*4882a593Smuzhiyun	---help---
525*4882a593Smuzhiyun	Set the ID detect pin for usb0 (otg). This takes a string in the
526*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
527*4882a593Smuzhiyun
528*4882a593Smuzhiyunconfig USB1_VBUS_PIN
529*4882a593Smuzhiyun	string "Vbus enable pin for usb1 (ehci0)"
530*4882a593Smuzhiyun	default "PH6" if MACH_SUN4I || MACH_SUN7I
531*4882a593Smuzhiyun	default "PH27" if MACH_SUN6I
532*4882a593Smuzhiyun	---help---
533*4882a593Smuzhiyun	Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes
534*4882a593Smuzhiyun	a string in the format understood by sunxi_name_to_gpio, e.g.
535*4882a593Smuzhiyun	PH1 for pin 1 of port H.
536*4882a593Smuzhiyun
537*4882a593Smuzhiyunconfig USB2_VBUS_PIN
538*4882a593Smuzhiyun	string "Vbus enable pin for usb2 (ehci1)"
539*4882a593Smuzhiyun	default "PH3" if MACH_SUN4I || MACH_SUN7I
540*4882a593Smuzhiyun	default "PH24" if MACH_SUN6I
541*4882a593Smuzhiyun	---help---
542*4882a593Smuzhiyun	See USB1_VBUS_PIN help text.
543*4882a593Smuzhiyun
544*4882a593Smuzhiyunconfig USB3_VBUS_PIN
545*4882a593Smuzhiyun	string "Vbus enable pin for usb3 (ehci2)"
546*4882a593Smuzhiyun	default ""
547*4882a593Smuzhiyun	---help---
548*4882a593Smuzhiyun	See USB1_VBUS_PIN help text.
549*4882a593Smuzhiyun
550*4882a593Smuzhiyunconfig I2C0_ENABLE
551*4882a593Smuzhiyun	bool "Enable I2C/TWI controller 0"
552*4882a593Smuzhiyun	default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I_R40
553*4882a593Smuzhiyun	default n if MACH_SUN6I || MACH_SUN8I
554*4882a593Smuzhiyun	select CMD_I2C
555*4882a593Smuzhiyun	---help---
556*4882a593Smuzhiyun	This allows enabling I2C/TWI controller 0 by muxing its pins, enabling
557*4882a593Smuzhiyun	its clock and setting up the bus. This is especially useful on devices
558*4882a593Smuzhiyun	with slaves connected to the bus or with pins exposed through e.g. an
559*4882a593Smuzhiyun	expansion port/header.
560*4882a593Smuzhiyun
561*4882a593Smuzhiyunconfig I2C1_ENABLE
562*4882a593Smuzhiyun	bool "Enable I2C/TWI controller 1"
563*4882a593Smuzhiyun	default n
564*4882a593Smuzhiyun	select CMD_I2C
565*4882a593Smuzhiyun	---help---
566*4882a593Smuzhiyun	See I2C0_ENABLE help text.
567*4882a593Smuzhiyun
568*4882a593Smuzhiyunconfig I2C2_ENABLE
569*4882a593Smuzhiyun	bool "Enable I2C/TWI controller 2"
570*4882a593Smuzhiyun	default n
571*4882a593Smuzhiyun	select CMD_I2C
572*4882a593Smuzhiyun	---help---
573*4882a593Smuzhiyun	See I2C0_ENABLE help text.
574*4882a593Smuzhiyun
575*4882a593Smuzhiyunif MACH_SUN6I || MACH_SUN7I
576*4882a593Smuzhiyunconfig I2C3_ENABLE
577*4882a593Smuzhiyun	bool "Enable I2C/TWI controller 3"
578*4882a593Smuzhiyun	default n
579*4882a593Smuzhiyun	select CMD_I2C
580*4882a593Smuzhiyun	---help---
581*4882a593Smuzhiyun	See I2C0_ENABLE help text.
582*4882a593Smuzhiyunendif
583*4882a593Smuzhiyun
584*4882a593Smuzhiyunif SUNXI_GEN_SUN6I
585*4882a593Smuzhiyunconfig R_I2C_ENABLE
586*4882a593Smuzhiyun	bool "Enable the PRCM I2C/TWI controller"
587*4882a593Smuzhiyun	# This is used for the pmic on H3
588*4882a593Smuzhiyun	default y if SY8106A_POWER
589*4882a593Smuzhiyun	select CMD_I2C
590*4882a593Smuzhiyun	---help---
591*4882a593Smuzhiyun	Set this to y to enable the I2C controller which is part of the PRCM.
592*4882a593Smuzhiyunendif
593*4882a593Smuzhiyun
594*4882a593Smuzhiyunif MACH_SUN7I
595*4882a593Smuzhiyunconfig I2C4_ENABLE
596*4882a593Smuzhiyun	bool "Enable I2C/TWI controller 4"
597*4882a593Smuzhiyun	default n
598*4882a593Smuzhiyun	select CMD_I2C
599*4882a593Smuzhiyun	---help---
600*4882a593Smuzhiyun	See I2C0_ENABLE help text.
601*4882a593Smuzhiyunendif
602*4882a593Smuzhiyun
603*4882a593Smuzhiyunconfig AXP_GPIO
604*4882a593Smuzhiyun	bool "Enable support for gpio-s on axp PMICs"
605*4882a593Smuzhiyun	default n
606*4882a593Smuzhiyun	---help---
607*4882a593Smuzhiyun	Say Y here to enable support for the gpio pins of the axp PMIC ICs.
608*4882a593Smuzhiyun
609*4882a593Smuzhiyunconfig VIDEO
610*4882a593Smuzhiyun	bool "Enable graphical uboot console on HDMI, LCD or VGA"
611*4882a593Smuzhiyun	depends on !MACH_SUN8I_A83T
612*4882a593Smuzhiyun	depends on !MACH_SUNXI_H3_H5
613*4882a593Smuzhiyun	depends on !MACH_SUN8I_R40
614*4882a593Smuzhiyun	depends on !MACH_SUN8I_V3S
615*4882a593Smuzhiyun	depends on !MACH_SUN9I
616*4882a593Smuzhiyun	depends on !MACH_SUN50I
617*4882a593Smuzhiyun	default y
618*4882a593Smuzhiyun	---help---
619*4882a593Smuzhiyun	Say Y here to add support for using a cfb console on the HDMI, LCD
620*4882a593Smuzhiyun	or VGA output found on most sunxi devices. See doc/README.video for
621*4882a593Smuzhiyun	info on how to select the video output and mode.
622*4882a593Smuzhiyun
623*4882a593Smuzhiyunconfig VIDEO_HDMI
624*4882a593Smuzhiyun	bool "HDMI output support"
625*4882a593Smuzhiyun	depends on VIDEO && !MACH_SUN8I
626*4882a593Smuzhiyun	default y
627*4882a593Smuzhiyun	---help---
628*4882a593Smuzhiyun	Say Y here to add support for outputting video over HDMI.
629*4882a593Smuzhiyun
630*4882a593Smuzhiyunconfig VIDEO_VGA
631*4882a593Smuzhiyun	bool "VGA output support"
632*4882a593Smuzhiyun	depends on VIDEO && (MACH_SUN4I || MACH_SUN7I)
633*4882a593Smuzhiyun	default n
634*4882a593Smuzhiyun	---help---
635*4882a593Smuzhiyun	Say Y here to add support for outputting video over VGA.
636*4882a593Smuzhiyun
637*4882a593Smuzhiyunconfig VIDEO_VGA_VIA_LCD
638*4882a593Smuzhiyun	bool "VGA via LCD controller support"
639*4882a593Smuzhiyun	depends on VIDEO && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
640*4882a593Smuzhiyun	default n
641*4882a593Smuzhiyun	---help---
642*4882a593Smuzhiyun	Say Y here to add support for external DACs connected to the parallel
643*4882a593Smuzhiyun	LCD interface driving a VGA connector, such as found on the
644*4882a593Smuzhiyun	Olimex A13 boards.
645*4882a593Smuzhiyun
646*4882a593Smuzhiyunconfig VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
647*4882a593Smuzhiyun	bool "Force sync active high for VGA via LCD controller support"
648*4882a593Smuzhiyun	depends on VIDEO_VGA_VIA_LCD
649*4882a593Smuzhiyun	default n
650*4882a593Smuzhiyun	---help---
651*4882a593Smuzhiyun	Say Y here if you've a board which uses opendrain drivers for the vga
652*4882a593Smuzhiyun	hsync and vsync signals. Opendrain drivers cannot generate steep enough
653*4882a593Smuzhiyun	positive edges for a stable video output, so on boards with opendrain
654*4882a593Smuzhiyun	drivers the sync signals must always be active high.
655*4882a593Smuzhiyun
656*4882a593Smuzhiyunconfig VIDEO_VGA_EXTERNAL_DAC_EN
657*4882a593Smuzhiyun	string "LCD panel power enable pin"
658*4882a593Smuzhiyun	depends on VIDEO_VGA_VIA_LCD
659*4882a593Smuzhiyun	default ""
660*4882a593Smuzhiyun	---help---
661*4882a593Smuzhiyun	Set the enable pin for the external VGA DAC. This takes a string in the
662*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
663*4882a593Smuzhiyun
664*4882a593Smuzhiyunconfig VIDEO_COMPOSITE
665*4882a593Smuzhiyun	bool "Composite video output support"
666*4882a593Smuzhiyun	depends on VIDEO && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
667*4882a593Smuzhiyun	default n
668*4882a593Smuzhiyun	---help---
669*4882a593Smuzhiyun	Say Y here to add support for outputting composite video.
670*4882a593Smuzhiyun
671*4882a593Smuzhiyunconfig VIDEO_LCD_MODE
672*4882a593Smuzhiyun	string "LCD panel timing details"
673*4882a593Smuzhiyun	depends on VIDEO
674*4882a593Smuzhiyun	default ""
675*4882a593Smuzhiyun	---help---
676*4882a593Smuzhiyun	LCD panel timing details string, leave empty if there is no LCD panel.
677*4882a593Smuzhiyun	This is in drivers/video/videomodes.c: video_get_params() format, e.g.
678*4882a593Smuzhiyun	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
679*4882a593Smuzhiyun	Also see: http://linux-sunxi.org/LCD
680*4882a593Smuzhiyun
681*4882a593Smuzhiyunconfig VIDEO_LCD_DCLK_PHASE
682*4882a593Smuzhiyun	int "LCD panel display clock phase"
683*4882a593Smuzhiyun	depends on VIDEO
684*4882a593Smuzhiyun	default 1
685*4882a593Smuzhiyun	---help---
686*4882a593Smuzhiyun	Select LCD panel display clock phase shift, range 0-3.
687*4882a593Smuzhiyun
688*4882a593Smuzhiyunconfig VIDEO_LCD_POWER
689*4882a593Smuzhiyun	string "LCD panel power enable pin"
690*4882a593Smuzhiyun	depends on VIDEO
691*4882a593Smuzhiyun	default ""
692*4882a593Smuzhiyun	---help---
693*4882a593Smuzhiyun	Set the power enable pin for the LCD panel. This takes a string in the
694*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
695*4882a593Smuzhiyun
696*4882a593Smuzhiyunconfig VIDEO_LCD_RESET
697*4882a593Smuzhiyun	string "LCD panel reset pin"
698*4882a593Smuzhiyun	depends on VIDEO
699*4882a593Smuzhiyun	default ""
700*4882a593Smuzhiyun	---help---
701*4882a593Smuzhiyun	Set the reset pin for the LCD panel. This takes a string in the format
702*4882a593Smuzhiyun	understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
703*4882a593Smuzhiyun
704*4882a593Smuzhiyunconfig VIDEO_LCD_BL_EN
705*4882a593Smuzhiyun	string "LCD panel backlight enable pin"
706*4882a593Smuzhiyun	depends on VIDEO
707*4882a593Smuzhiyun	default ""
708*4882a593Smuzhiyun	---help---
709*4882a593Smuzhiyun	Set the backlight enable pin for the LCD panel. This takes a string in the
710*4882a593Smuzhiyun	the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
711*4882a593Smuzhiyun	port H.
712*4882a593Smuzhiyun
713*4882a593Smuzhiyunconfig VIDEO_LCD_BL_PWM
714*4882a593Smuzhiyun	string "LCD panel backlight pwm pin"
715*4882a593Smuzhiyun	depends on VIDEO
716*4882a593Smuzhiyun	default ""
717*4882a593Smuzhiyun	---help---
718*4882a593Smuzhiyun	Set the backlight pwm pin for the LCD panel. This takes a string in the
719*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
720*4882a593Smuzhiyun
721*4882a593Smuzhiyunconfig VIDEO_LCD_BL_PWM_ACTIVE_LOW
722*4882a593Smuzhiyun	bool "LCD panel backlight pwm is inverted"
723*4882a593Smuzhiyun	depends on VIDEO
724*4882a593Smuzhiyun	default y
725*4882a593Smuzhiyun	---help---
726*4882a593Smuzhiyun	Set this if the backlight pwm output is active low.
727*4882a593Smuzhiyun
728*4882a593Smuzhiyunconfig VIDEO_LCD_PANEL_I2C
729*4882a593Smuzhiyun	bool "LCD panel needs to be configured via i2c"
730*4882a593Smuzhiyun	depends on VIDEO
731*4882a593Smuzhiyun	default n
732*4882a593Smuzhiyun	select CMD_I2C
733*4882a593Smuzhiyun	---help---
734*4882a593Smuzhiyun	Say y here if the LCD panel needs to be configured via i2c. This
735*4882a593Smuzhiyun	will add a bitbang i2c controller using gpios to talk to the LCD.
736*4882a593Smuzhiyun
737*4882a593Smuzhiyunconfig VIDEO_LCD_PANEL_I2C_SDA
738*4882a593Smuzhiyun	string "LCD panel i2c interface SDA pin"
739*4882a593Smuzhiyun	depends on VIDEO_LCD_PANEL_I2C
740*4882a593Smuzhiyun	default "PG12"
741*4882a593Smuzhiyun	---help---
742*4882a593Smuzhiyun	Set the SDA pin for the LCD i2c interface. This takes a string in the
743*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
744*4882a593Smuzhiyun
745*4882a593Smuzhiyunconfig VIDEO_LCD_PANEL_I2C_SCL
746*4882a593Smuzhiyun	string "LCD panel i2c interface SCL pin"
747*4882a593Smuzhiyun	depends on VIDEO_LCD_PANEL_I2C
748*4882a593Smuzhiyun	default "PG10"
749*4882a593Smuzhiyun	---help---
750*4882a593Smuzhiyun	Set the SCL pin for the LCD i2c interface. This takes a string in the
751*4882a593Smuzhiyun	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
752*4882a593Smuzhiyun
753*4882a593Smuzhiyun
754*4882a593Smuzhiyun# Note only one of these may be selected at a time! But hidden choices are
755*4882a593Smuzhiyun# not supported by Kconfig
756*4882a593Smuzhiyunconfig VIDEO_LCD_IF_PARALLEL
757*4882a593Smuzhiyun	bool
758*4882a593Smuzhiyun
759*4882a593Smuzhiyunconfig VIDEO_LCD_IF_LVDS
760*4882a593Smuzhiyun	bool
761*4882a593Smuzhiyun
762*4882a593Smuzhiyunconfig SUNXI_DE2
763*4882a593Smuzhiyun	bool
764*4882a593Smuzhiyun	default n
765*4882a593Smuzhiyun
766*4882a593Smuzhiyunconfig VIDEO_DE2
767*4882a593Smuzhiyun	bool "Display Engine 2 video driver"
768*4882a593Smuzhiyun	depends on SUNXI_DE2
769*4882a593Smuzhiyun	select DM_VIDEO
770*4882a593Smuzhiyun	select DISPLAY
771*4882a593Smuzhiyun	default y
772*4882a593Smuzhiyun	---help---
773*4882a593Smuzhiyun	Say y here if you want to build DE2 video driver which is present on
774*4882a593Smuzhiyun	newer SoCs. Currently only HDMI output is supported.
775*4882a593Smuzhiyun
776*4882a593Smuzhiyun
777*4882a593Smuzhiyunchoice
778*4882a593Smuzhiyun	prompt "LCD panel support"
779*4882a593Smuzhiyun	depends on VIDEO
780*4882a593Smuzhiyun	---help---
781*4882a593Smuzhiyun	Select which type of LCD panel to support.
782*4882a593Smuzhiyun
783*4882a593Smuzhiyunconfig VIDEO_LCD_PANEL_PARALLEL
784*4882a593Smuzhiyun	bool "Generic parallel interface LCD panel"
785*4882a593Smuzhiyun	select VIDEO_LCD_IF_PARALLEL
786*4882a593Smuzhiyun
787*4882a593Smuzhiyunconfig VIDEO_LCD_PANEL_LVDS
788*4882a593Smuzhiyun	bool "Generic lvds interface LCD panel"
789*4882a593Smuzhiyun	select VIDEO_LCD_IF_LVDS
790*4882a593Smuzhiyun
791*4882a593Smuzhiyunconfig VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
792*4882a593Smuzhiyun	bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip"
793*4882a593Smuzhiyun	select VIDEO_LCD_SSD2828
794*4882a593Smuzhiyun	select VIDEO_LCD_IF_PARALLEL
795*4882a593Smuzhiyun	---help---
796*4882a593Smuzhiyun	7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
797*4882a593Smuzhiyun
798*4882a593Smuzhiyunconfig VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804
799*4882a593Smuzhiyun	bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip"
800*4882a593Smuzhiyun	select VIDEO_LCD_ANX9804
801*4882a593Smuzhiyun	select VIDEO_LCD_IF_PARALLEL
802*4882a593Smuzhiyun	select VIDEO_LCD_PANEL_I2C
803*4882a593Smuzhiyun	---help---
804*4882a593Smuzhiyun	Select this for eDP LCD panels with 4 lanes running at 1.62G,
805*4882a593Smuzhiyun	connected via an ANX9804 bridge chip.
806*4882a593Smuzhiyun
807*4882a593Smuzhiyunconfig VIDEO_LCD_PANEL_HITACHI_TX18D42VM
808*4882a593Smuzhiyun	bool "Hitachi tx18d42vm LCD panel"
809*4882a593Smuzhiyun	select VIDEO_LCD_HITACHI_TX18D42VM
810*4882a593Smuzhiyun	select VIDEO_LCD_IF_LVDS
811*4882a593Smuzhiyun	---help---
812*4882a593Smuzhiyun	7.85" 1024x768 Hitachi tx18d42vm LCD panel support
813*4882a593Smuzhiyun
814*4882a593Smuzhiyunconfig VIDEO_LCD_TL059WV5C0
815*4882a593Smuzhiyun	bool "tl059wv5c0 LCD panel"
816*4882a593Smuzhiyun	select VIDEO_LCD_PANEL_I2C
817*4882a593Smuzhiyun	select VIDEO_LCD_IF_PARALLEL
818*4882a593Smuzhiyun	---help---
819*4882a593Smuzhiyun	6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and
820*4882a593Smuzhiyun	Aigo M60/M608/M606 tablets.
821*4882a593Smuzhiyun
822*4882a593Smuzhiyunendchoice
823*4882a593Smuzhiyun
824*4882a593Smuzhiyunconfig SATAPWR
825*4882a593Smuzhiyun	string "SATA power pin"
826*4882a593Smuzhiyun	default ""
827*4882a593Smuzhiyun	help
828*4882a593Smuzhiyun	  Set the pins used to power the SATA. This takes a string in the
829*4882a593Smuzhiyun	  format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
830*4882a593Smuzhiyun	  port H.
831*4882a593Smuzhiyun
832*4882a593Smuzhiyunconfig GMAC_TX_DELAY
833*4882a593Smuzhiyun	int "GMAC Transmit Clock Delay Chain"
834*4882a593Smuzhiyun	default 0
835*4882a593Smuzhiyun	---help---
836*4882a593Smuzhiyun	Set the GMAC Transmit Clock Delay Chain value.
837*4882a593Smuzhiyun
838*4882a593Smuzhiyunconfig SPL_STACK_R_ADDR
839*4882a593Smuzhiyun	default 0x4fe00000 if MACH_SUN4I
840*4882a593Smuzhiyun	default 0x4fe00000 if MACH_SUN5I
841*4882a593Smuzhiyun	default 0x4fe00000 if MACH_SUN6I
842*4882a593Smuzhiyun	default 0x4fe00000 if MACH_SUN7I
843*4882a593Smuzhiyun	default 0x4fe00000 if MACH_SUN8I
844*4882a593Smuzhiyun	default 0x2fe00000 if MACH_SUN9I
845*4882a593Smuzhiyun	default 0x4fe00000 if MACH_SUN50I
846*4882a593Smuzhiyun
847*4882a593Smuzhiyunconfig SPL_SPI_SUNXI
848*4882a593Smuzhiyun	bool "Support for SPI Flash on Allwinner SoCs in SPL"
849*4882a593Smuzhiyun	depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUNXI_H3_H5 || MACH_SUN50I
850*4882a593Smuzhiyun	help
851*4882a593Smuzhiyun	  Enable support for SPI Flash. This option allows SPL to read from
852*4882a593Smuzhiyun	  sunxi SPI Flash. It uses the same method as the boot ROM, so does
853*4882a593Smuzhiyun	  not need any extra configuration.
854*4882a593Smuzhiyun
855*4882a593Smuzhiyunendif
856