xref: /openbmc/u-boot/arch/arm/mach-sunxi/Kconfig (revision 0e21a2ffb3404152c90cdcd9fc9ba34b404beab8)
13abfd887SMasahiro Yamadaif ARCH_SUNXI
23abfd887SMasahiro Yamada
3b529993eSPhilipp Tomsichconfig SPL_LDSCRIPT
4b529993eSPhilipp Tomsich	default "arch/arm/cpu/armv7/sunxi/u-boot-spl.lds" if !ARM64
5b529993eSPhilipp Tomsich
63abfd887SMasahiro Yamadaconfig IDENT_STRING
73abfd887SMasahiro Yamada	default " Allwinner Technology"
83abfd887SMasahiro Yamada
9dd928bfbSJagan Tekiconfig DRAM_SUN4I
10dd928bfbSJagan Teki	bool
11dd928bfbSJagan Teki	help
12dd928bfbSJagan Teki	  Select this dram controller driver for Sun4/5/7i platforms,
13dd928bfbSJagan Teki	  like A10/A13/A20.
14dd928bfbSJagan Teki
15fdfa934eSJagan Tekiconfig DRAM_SUN6I
16fdfa934eSJagan Teki	bool
17fdfa934eSJagan Teki	help
18fdfa934eSJagan Teki	  Select this dram controller driver for Sun6i platforms,
19fdfa934eSJagan Teki	  like A31/A31s.
20fdfa934eSJagan Teki
21af30393cSJagan Tekiconfig DRAM_SUN8I_A23
22af30393cSJagan Teki	bool
23af30393cSJagan Teki	help
24af30393cSJagan Teki	  Select this dram controller driver for Sun8i platforms,
25af30393cSJagan Teki	  for A23 SOC.
26af30393cSJagan Teki
27c335e990SJagan Tekiconfig DRAM_SUN8I_A33
28c335e990SJagan Teki	bool
29c335e990SJagan Teki	help
30c335e990SJagan Teki	  Select this dram controller driver for Sun8i platforms,
31c335e990SJagan Teki	  for A33 SOC.
32c335e990SJagan Teki
330354f4beSJagan Tekiconfig DRAM_SUN8I_A83T
340354f4beSJagan Teki	bool
350354f4beSJagan Teki	help
360354f4beSJagan Teki	  Select this dram controller driver for Sun8i platforms,
370354f4beSJagan Teki	  for A83T SOC.
380354f4beSJagan Teki
397d0b165dSJagan Tekiconfig DRAM_SUN9I
407d0b165dSJagan Teki	bool
417d0b165dSJagan Teki	help
427d0b165dSJagan Teki	  Select this dram controller driver for Sun9i platforms,
437d0b165dSJagan Teki	  like A80.
447d0b165dSJagan Teki
45da261654SIcenowy Zhengconfig DRAM_SUN50I_H6
46da261654SIcenowy Zheng	bool
47da261654SIcenowy Zheng	help
48da261654SIcenowy Zheng	  Select this dram controller driver for some sun50i platforms,
49da261654SIcenowy Zheng	  like H6.
50da261654SIcenowy Zheng
5171d9edf4SJagan Tekiconfig SUN6I_P2WI
5271d9edf4SJagan Teki	bool "Allwinner sun6i internal P2WI controller"
5371d9edf4SJagan Teki	help
5471d9edf4SJagan Teki	  If you say yes to this option, support will be included for the
5571d9edf4SJagan Teki	  P2WI (Push/Pull 2 Wire Interface) controller embedded in some sunxi
5671d9edf4SJagan Teki	  SOCs.
5771d9edf4SJagan Teki	  The P2WI looks like an SMBus controller (which supports only byte
5871d9edf4SJagan Teki	  accesses), except that it only supports one slave device.
5971d9edf4SJagan Teki	  This interface is used to connect to specific PMIC devices (like the
6071d9edf4SJagan Teki	  AXP221).
6171d9edf4SJagan Teki
622aa697a4SJagan Tekiconfig SUN6I_PRCM
632aa697a4SJagan Teki	bool
642aa697a4SJagan Teki	help
652aa697a4SJagan Teki	  Support for the PRCM (Power/Reset/Clock Management) unit available
662aa697a4SJagan Teki	  in A31 SoC.
672aa697a4SJagan Teki
68735fb252SJagan Tekiconfig AXP_PMIC_BUS
69735fb252SJagan Teki	bool "Sunxi AXP PMIC bus access helpers"
70735fb252SJagan Teki	help
71735fb252SJagan Teki	  Select this PMIC bus access helpers for Sunxi platform PRCM or other
72735fb252SJagan Teki	  AXP family PMIC devices.
73735fb252SJagan Teki
746f6f8839SJagan Tekiconfig SUN8I_RSB
756f6f8839SJagan Teki	bool "Allwinner sunXi Reduced Serial Bus Driver"
766f6f8839SJagan Teki	help
776f6f8839SJagan Teki	  Say y here to enable support for Allwinner's Reduced Serial Bus
786f6f8839SJagan Teki	  (RSB) support. This controller is responsible for communicating
796f6f8839SJagan Teki	  with various RSB based devices, such as AXP223, AXP8XX PMICs,
806f6f8839SJagan Teki	  and AC100/AC200 ICs.
816f6f8839SJagan Teki
82cadc7c20SIcenowy Zhengconfig SUNXI_SRAM_ADDRESS
83cadc7c20SIcenowy Zheng	hex
84cadc7c20SIcenowy Zheng	default 0x10000 if MACH_SUN9I || MACH_SUN50I || MACH_SUN50I_H5
856f796a9bSIcenowy Zheng	default 0x20000 if MACH_SUN50I_H6
86cadc7c20SIcenowy Zheng	default 0x0
873abfd887SMasahiro Yamada	---help---
883abfd887SMasahiro Yamada	Older Allwinner SoCs have their mask boot ROM mapped just below 4GB,
893abfd887SMasahiro Yamada	with the first SRAM region being located at address 0.
903abfd887SMasahiro Yamada	Some newer SoCs map the boot ROM at address 0 instead and move the
91cadc7c20SIcenowy Zheng	SRAM to a different address.
923abfd887SMasahiro Yamada
93be0d2179SAndre Przywaraconfig SUNXI_A64_TIMER_ERRATUM
94be0d2179SAndre Przywara	bool
95be0d2179SAndre Przywara
963abfd887SMasahiro Yamada# Note only one of these may be selected at a time! But hidden choices are
973abfd887SMasahiro Yamada# not supported by Kconfig
983abfd887SMasahiro Yamadaconfig SUNXI_GEN_SUN4I
993abfd887SMasahiro Yamada	bool
1003abfd887SMasahiro Yamada	---help---
1013abfd887SMasahiro Yamada	Select this for sunxi SoCs which have resets and clocks set up
1023abfd887SMasahiro Yamada	as the original A10 (mach-sun4i).
1033abfd887SMasahiro Yamada
1043abfd887SMasahiro Yamadaconfig SUNXI_GEN_SUN6I
1053abfd887SMasahiro Yamada	bool
1063abfd887SMasahiro Yamada	---help---
1073abfd887SMasahiro Yamada	Select this for sunxi SoCs which have sun6i like periphery, like
1083abfd887SMasahiro Yamada	separate ahb reset control registers, custom pmic bus, new style
1093abfd887SMasahiro Yamada	watchdog, etc.
1103abfd887SMasahiro Yamada
1119934aba4SIcenowy Zhengconfig SUNXI_DRAM_DW
1129934aba4SIcenowy Zheng	bool
1139934aba4SIcenowy Zheng	---help---
1149934aba4SIcenowy Zheng	Select this for sunxi SoCs which uses a DRAM controller like the
1159934aba4SIcenowy Zheng	DesignWare controller used in H3, mainly SoCs after H3, which do
1169934aba4SIcenowy Zheng	not have official open-source DRAM initialization code, but can
1179934aba4SIcenowy Zheng	use modified H3 DRAM initialization code.
1183abfd887SMasahiro Yamada
11987098d70SIcenowy Zhengif SUNXI_DRAM_DW
12087098d70SIcenowy Zhengconfig SUNXI_DRAM_DW_16BIT
12187098d70SIcenowy Zheng	bool
12287098d70SIcenowy Zheng	---help---
12387098d70SIcenowy Zheng	Select this for sunxi SoCs with DesignWare DRAM controller and
12487098d70SIcenowy Zheng	have only 16-bit memory buswidth.
12587098d70SIcenowy Zheng
12687098d70SIcenowy Zhengconfig SUNXI_DRAM_DW_32BIT
12787098d70SIcenowy Zheng	bool
12887098d70SIcenowy Zheng	---help---
12987098d70SIcenowy Zheng	Select this for sunxi SoCs with DesignWare DRAM controller with
13087098d70SIcenowy Zheng	32-bit memory buswidth.
13187098d70SIcenowy Zhengendif
13287098d70SIcenowy Zheng
1333abfd887SMasahiro Yamadaconfig MACH_SUNXI_H3_H5
1343abfd887SMasahiro Yamada	bool
1353abfd887SMasahiro Yamada	select DM_I2C
136dd322817SJagan Teki	select PHY_SUN4I_USB
1373abfd887SMasahiro Yamada	select SUNXI_DE2
1389934aba4SIcenowy Zheng	select SUNXI_DRAM_DW
13987098d70SIcenowy Zheng	select SUNXI_DRAM_DW_32BIT
1403abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
1413abfd887SMasahiro Yamada	select SUPPORT_SPL
1423abfd887SMasahiro Yamada
143f8aa3f8dSIcenowy Zheng# TODO: try out A80's 8GiB DRAM space
144f8aa3f8dSIcenowy Zhengconfig SUNXI_DRAM_MAX_SIZE
145f8aa3f8dSIcenowy Zheng	hex
146f8aa3f8dSIcenowy Zheng	default 0xC0000000 if MACH_SUN50I || MACH_SUN50I_H5 || MACH_SUN50I_H6
147f8aa3f8dSIcenowy Zheng	default 0x80000000
148f8aa3f8dSIcenowy Zheng
1493abfd887SMasahiro Yamadachoice
1503abfd887SMasahiro Yamada	prompt "Sunxi SoC Variant"
1513abfd887SMasahiro Yamada	optional
1523abfd887SMasahiro Yamada
1533abfd887SMasahiro Yamadaconfig MACH_SUN4I
1543abfd887SMasahiro Yamada	bool "sun4i (Allwinner A10)"
155acf15001SLokesh Vutla	select CPU_V7A
1563abfd887SMasahiro Yamada	select ARM_CORTEX_CPU_IS_UP
157df63fcc0SAdam Sampson	select DM_MMC if MMC
158df63fcc0SAdam Sampson	select DM_SCSI if SCSI
159dd322817SJagan Teki	select PHY_SUN4I_USB
160dd928bfbSJagan Teki	select DRAM_SUN4I
1613abfd887SMasahiro Yamada	select SUNXI_GEN_SUN4I
1623abfd887SMasahiro Yamada	select SUPPORT_SPL
1633abfd887SMasahiro Yamada
1643abfd887SMasahiro Yamadaconfig MACH_SUN5I
1653abfd887SMasahiro Yamada	bool "sun5i (Allwinner A13)"
166acf15001SLokesh Vutla	select CPU_V7A
1673abfd887SMasahiro Yamada	select ARM_CORTEX_CPU_IS_UP
168dd928bfbSJagan Teki	select DRAM_SUN4I
169dd322817SJagan Teki	select PHY_SUN4I_USB
1703abfd887SMasahiro Yamada	select SUNXI_GEN_SUN4I
1713abfd887SMasahiro Yamada	select SUPPORT_SPL
1726f6b7cfaSTom Rini	imply CONS_INDEX_2 if !DM_SERIAL
1733abfd887SMasahiro Yamada
1743abfd887SMasahiro Yamadaconfig MACH_SUN6I
1753abfd887SMasahiro Yamada	bool "sun6i (Allwinner A31)"
176acf15001SLokesh Vutla	select CPU_V7A
1773abfd887SMasahiro Yamada	select CPU_V7_HAS_NONSEC
1783abfd887SMasahiro Yamada	select CPU_V7_HAS_VIRT
1793abfd887SMasahiro Yamada	select ARCH_SUPPORT_PSCI
180fdfa934eSJagan Teki	select DRAM_SUN6I
181dd322817SJagan Teki	select PHY_SUN4I_USB
18271d9edf4SJagan Teki	select SUN6I_P2WI
1832aa697a4SJagan Teki	select SUN6I_PRCM
1843abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
1853abfd887SMasahiro Yamada	select SUPPORT_SPL
1863abfd887SMasahiro Yamada	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
1873abfd887SMasahiro Yamada
1883abfd887SMasahiro Yamadaconfig MACH_SUN7I
1893abfd887SMasahiro Yamada	bool "sun7i (Allwinner A20)"
190acf15001SLokesh Vutla	select CPU_V7A
1913abfd887SMasahiro Yamada	select CPU_V7_HAS_NONSEC
1923abfd887SMasahiro Yamada	select CPU_V7_HAS_VIRT
1933abfd887SMasahiro Yamada	select ARCH_SUPPORT_PSCI
194dd928bfbSJagan Teki	select DRAM_SUN4I
195dd322817SJagan Teki	select PHY_SUN4I_USB
1963abfd887SMasahiro Yamada	select SUNXI_GEN_SUN4I
1973abfd887SMasahiro Yamada	select SUPPORT_SPL
1983abfd887SMasahiro Yamada	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
1993abfd887SMasahiro Yamada
2003abfd887SMasahiro Yamadaconfig MACH_SUN8I_A23
2013abfd887SMasahiro Yamada	bool "sun8i (Allwinner A23)"
202acf15001SLokesh Vutla	select CPU_V7A
2033abfd887SMasahiro Yamada	select CPU_V7_HAS_NONSEC
2043abfd887SMasahiro Yamada	select CPU_V7_HAS_VIRT
2053abfd887SMasahiro Yamada	select ARCH_SUPPORT_PSCI
206af30393cSJagan Teki	select DRAM_SUN8I_A23
207dd322817SJagan Teki	select PHY_SUN4I_USB
2083abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
2093abfd887SMasahiro Yamada	select SUPPORT_SPL
2103abfd887SMasahiro Yamada	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
2116f6b7cfaSTom Rini	imply CONS_INDEX_5 if !DM_SERIAL
2123abfd887SMasahiro Yamada
2133abfd887SMasahiro Yamadaconfig MACH_SUN8I_A33
2143abfd887SMasahiro Yamada	bool "sun8i (Allwinner A33)"
215acf15001SLokesh Vutla	select CPU_V7A
2163abfd887SMasahiro Yamada	select CPU_V7_HAS_NONSEC
2173abfd887SMasahiro Yamada	select CPU_V7_HAS_VIRT
2183abfd887SMasahiro Yamada	select ARCH_SUPPORT_PSCI
219c335e990SJagan Teki	select DRAM_SUN8I_A33
220dd322817SJagan Teki	select PHY_SUN4I_USB
2213abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
2223abfd887SMasahiro Yamada	select SUPPORT_SPL
2233abfd887SMasahiro Yamada	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
2246f6b7cfaSTom Rini	imply CONS_INDEX_5 if !DM_SERIAL
2253abfd887SMasahiro Yamada
2263abfd887SMasahiro Yamadaconfig MACH_SUN8I_A83T
2273abfd887SMasahiro Yamada	bool "sun8i (Allwinner A83T)"
228acf15001SLokesh Vutla	select CPU_V7A
2290354f4beSJagan Teki	select DRAM_SUN8I_A83T
230dd322817SJagan Teki	select PHY_SUN4I_USB
2313abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
232343ff161SMaxime Ripard	select MMC_SUNXI_HAS_NEW_MODE
2332a8882ecSVasily Khoruzhick	select MMC_SUNXI_HAS_MODE_SWITCH
2343abfd887SMasahiro Yamada	select SUPPORT_SPL
2353abfd887SMasahiro Yamada
2363abfd887SMasahiro Yamadaconfig MACH_SUN8I_H3
2373abfd887SMasahiro Yamada	bool "sun8i (Allwinner H3)"
238acf15001SLokesh Vutla	select CPU_V7A
2393abfd887SMasahiro Yamada	select CPU_V7_HAS_NONSEC
2403abfd887SMasahiro Yamada	select CPU_V7_HAS_VIRT
2413abfd887SMasahiro Yamada	select ARCH_SUPPORT_PSCI
2423abfd887SMasahiro Yamada	select MACH_SUNXI_H3_H5
2433abfd887SMasahiro Yamada	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
2443abfd887SMasahiro Yamada
2453abfd887SMasahiro Yamadaconfig MACH_SUN8I_R40
2463abfd887SMasahiro Yamada	bool "sun8i (Allwinner R40)"
247acf15001SLokesh Vutla	select CPU_V7A
2483abfd887SMasahiro Yamada	select CPU_V7_HAS_NONSEC
2493abfd887SMasahiro Yamada	select CPU_V7_HAS_VIRT
2503abfd887SMasahiro Yamada	select ARCH_SUPPORT_PSCI
2513abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
2523abfd887SMasahiro Yamada	select SUPPORT_SPL
2539934aba4SIcenowy Zheng	select SUNXI_DRAM_DW
25487098d70SIcenowy Zheng	select SUNXI_DRAM_DW_32BIT
2553abfd887SMasahiro Yamada
2563abfd887SMasahiro Yamadaconfig MACH_SUN8I_V3S
2573abfd887SMasahiro Yamada	bool "sun8i (Allwinner V3s)"
258acf15001SLokesh Vutla	select CPU_V7A
2593abfd887SMasahiro Yamada	select CPU_V7_HAS_NONSEC
2603abfd887SMasahiro Yamada	select CPU_V7_HAS_VIRT
2613abfd887SMasahiro Yamada	select ARCH_SUPPORT_PSCI
2623abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
2637d06e59fSIcenowy Zheng	select SUNXI_DRAM_DW
2647d06e59fSIcenowy Zheng	select SUNXI_DRAM_DW_16BIT
2657d06e59fSIcenowy Zheng	select SUPPORT_SPL
2663abfd887SMasahiro Yamada	select ARMV7_BOOT_SEC_DEFAULT if OLD_SUNXI_KERNEL_COMPAT
2673abfd887SMasahiro Yamada
2683abfd887SMasahiro Yamadaconfig MACH_SUN9I
2693abfd887SMasahiro Yamada	bool "sun9i (Allwinner A80)"
270acf15001SLokesh Vutla	select CPU_V7A
2717d0b165dSJagan Teki	select DRAM_SUN9I
27263928fa6SJagan Teki	select SUN6I_PRCM
2733abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
2746f6f8839SJagan Teki	select SUN8I_RSB
2753abfd887SMasahiro Yamada	select SUPPORT_SPL
2763abfd887SMasahiro Yamada
2773abfd887SMasahiro Yamadaconfig MACH_SUN50I
2783abfd887SMasahiro Yamada	bool "sun50i (Allwinner A64)"
2793abfd887SMasahiro Yamada	select ARM64
2803abfd887SMasahiro Yamada	select DM_I2C
281dd322817SJagan Teki	select PHY_SUN4I_USB
28231a4ac4dSVasily Khoruzhick	select SUN6I_PRCM
2833abfd887SMasahiro Yamada	select SUNXI_DE2
2843abfd887SMasahiro Yamada	select SUNXI_GEN_SUN6I
285*0e21a2ffSVasily Khoruzhick	select MMC_SUNXI_HAS_NEW_MODE
2863abfd887SMasahiro Yamada	select SUPPORT_SPL
2879934aba4SIcenowy Zheng	select SUNXI_DRAM_DW
28887098d70SIcenowy Zheng	select SUNXI_DRAM_DW_32BIT
289d29adf8eSAndre Przywara	select FIT
290d29adf8eSAndre Przywara	select SPL_LOAD_FIT
291be0d2179SAndre Przywara	select SUNXI_A64_TIMER_ERRATUM
2923abfd887SMasahiro Yamada
2933abfd887SMasahiro Yamadaconfig MACH_SUN50I_H5
2943abfd887SMasahiro Yamada	bool "sun50i (Allwinner H5)"
2953abfd887SMasahiro Yamada	select ARM64
2963abfd887SMasahiro Yamada	select MACH_SUNXI_H3_H5
297d29adf8eSAndre Przywara	select FIT
298d29adf8eSAndre Przywara	select SPL_LOAD_FIT
2993abfd887SMasahiro Yamada
3006f796a9bSIcenowy Zhengconfig MACH_SUN50I_H6
3016f796a9bSIcenowy Zheng	bool "sun50i (Allwinner H6)"
3026f796a9bSIcenowy Zheng	select ARM64
3036f796a9bSIcenowy Zheng	select SUPPORT_SPL
3046f796a9bSIcenowy Zheng	select FIT
3056f796a9bSIcenowy Zheng	select SPL_LOAD_FIT
3066f796a9bSIcenowy Zheng	select DRAM_SUN50I_H6
3076f796a9bSIcenowy Zheng
3083abfd887SMasahiro Yamadaendchoice
3093abfd887SMasahiro Yamada
3103abfd887SMasahiro Yamada# The sun8i SoCs share a lot, this helps to avoid a lot of "if A23 || A33"
3113abfd887SMasahiro Yamadaconfig MACH_SUN8I
3123abfd887SMasahiro Yamada	bool
3136f6f8839SJagan Teki	select SUN8I_RSB
31463928fa6SJagan Teki	select SUN6I_PRCM
3153abfd887SMasahiro Yamada	default y if MACH_SUN8I_A23
3163abfd887SMasahiro Yamada	default y if MACH_SUN8I_A33
3173abfd887SMasahiro Yamada	default y if MACH_SUN8I_A83T
3183abfd887SMasahiro Yamada	default y if MACH_SUNXI_H3_H5
3193abfd887SMasahiro Yamada	default y if MACH_SUN8I_R40
3203abfd887SMasahiro Yamada	default y if MACH_SUN8I_V3S
3213abfd887SMasahiro Yamada
3223abfd887SMasahiro Yamadaconfig RESERVE_ALLWINNER_BOOT0_HEADER
3233abfd887SMasahiro Yamada	bool "reserve space for Allwinner boot0 header"
3243abfd887SMasahiro Yamada	select ENABLE_ARM_SOC_BOOT0_HOOK
3253abfd887SMasahiro Yamada	---help---
3263abfd887SMasahiro Yamada	Prepend a 1536 byte (empty) header to the U-Boot image file, to be
3273abfd887SMasahiro Yamada	filled with magic values post build. The Allwinner provided boot0
3283abfd887SMasahiro Yamada	blob relies on this information to load and execute U-Boot.
3293abfd887SMasahiro Yamada	Only needed on 64-bit Allwinner boards so far when using boot0.
3303abfd887SMasahiro Yamada
3313abfd887SMasahiro Yamadaconfig ARM_BOOT_HOOK_RMR
3323abfd887SMasahiro Yamada	bool
3333abfd887SMasahiro Yamada	depends on ARM64
3343abfd887SMasahiro Yamada	default y
3353abfd887SMasahiro Yamada	select ENABLE_ARM_SOC_BOOT0_HOOK
3363abfd887SMasahiro Yamada	---help---
3373abfd887SMasahiro Yamada	Insert some ARM32 code at the very beginning of the U-Boot binary
3383abfd887SMasahiro Yamada	which uses an RMR register write to bring the core into AArch64 mode.
3393abfd887SMasahiro Yamada	The very first instruction acts as a switch, since it's carefully
3403abfd887SMasahiro Yamada	chosen to be a NOP in one mode and a branch in the other, so the
3413abfd887SMasahiro Yamada	code would only be executed if not already in AArch64.
3423abfd887SMasahiro Yamada	This allows both the SPL and the U-Boot proper to be entered in
3433abfd887SMasahiro Yamada	either mode and switch to AArch64 if needed.
3443abfd887SMasahiro Yamada
345f6457ce5SIcenowy Zhengif SUNXI_DRAM_DW
346f6457ce5SIcenowy Zhengconfig SUNXI_DRAM_DDR3
347f6457ce5SIcenowy Zheng	bool
348f6457ce5SIcenowy Zheng
34967337e68SIcenowy Zhengconfig SUNXI_DRAM_DDR2
35067337e68SIcenowy Zheng	bool
35167337e68SIcenowy Zheng
35272cc9870SIcenowy Zhengconfig SUNXI_DRAM_LPDDR3
35372cc9870SIcenowy Zheng	bool
35472cc9870SIcenowy Zheng
355f6457ce5SIcenowy Zhengchoice
356f6457ce5SIcenowy Zheng	prompt "DRAM Type and Timing"
3573ec0698bSIcenowy Zheng	default SUNXI_DRAM_DDR3_1333 if !MACH_SUN8I_V3S
3583ec0698bSIcenowy Zheng	default SUNXI_DRAM_DDR2_V3S if MACH_SUN8I_V3S
359f6457ce5SIcenowy Zheng
360f6457ce5SIcenowy Zhengconfig SUNXI_DRAM_DDR3_1333
361f6457ce5SIcenowy Zheng	bool "DDR3 1333"
362f6457ce5SIcenowy Zheng	select SUNXI_DRAM_DDR3
3633ec0698bSIcenowy Zheng	depends on !MACH_SUN8I_V3S
364f6457ce5SIcenowy Zheng	---help---
365f6457ce5SIcenowy Zheng	This option is the original only supported memory type, which suits
366f6457ce5SIcenowy Zheng	many H3/H5/A64 boards available now.
367f6457ce5SIcenowy Zheng
368ec4670a1SIcenowy Zhengconfig SUNXI_DRAM_LPDDR3_STOCK
369ec4670a1SIcenowy Zheng	bool "LPDDR3 with Allwinner stock configuration"
370ec4670a1SIcenowy Zheng	select SUNXI_DRAM_LPDDR3
371ec4670a1SIcenowy Zheng	---help---
372ec4670a1SIcenowy Zheng	This option is the LPDDR3 timing used by the stock boot0 by
373ec4670a1SIcenowy Zheng	Allwinner.
374ec4670a1SIcenowy Zheng
37567337e68SIcenowy Zhengconfig SUNXI_DRAM_DDR2_V3S
37667337e68SIcenowy Zheng	bool "DDR2 found in V3s chip"
37767337e68SIcenowy Zheng	select SUNXI_DRAM_DDR2
3783ec0698bSIcenowy Zheng	depends on MACH_SUN8I_V3S
37967337e68SIcenowy Zheng	---help---
38067337e68SIcenowy Zheng	This option is only for the DDR2 memory chip which is co-packaged in
38167337e68SIcenowy Zheng	Allwinner V3s SoC.
38267337e68SIcenowy Zheng
383f6457ce5SIcenowy Zhengendchoice
384f6457ce5SIcenowy Zhengendif
385f6457ce5SIcenowy Zheng
3863abfd887SMasahiro Yamadaconfig DRAM_TYPE
3873abfd887SMasahiro Yamada	int "sunxi dram type"
3883abfd887SMasahiro Yamada	depends on MACH_SUN8I_A83T
3893abfd887SMasahiro Yamada	default 3
3903abfd887SMasahiro Yamada	---help---
3913abfd887SMasahiro Yamada	Set the dram type, 3: DDR3, 7: LPDDR3
3923abfd887SMasahiro Yamada
3933abfd887SMasahiro Yamadaconfig DRAM_CLK
3943abfd887SMasahiro Yamada	int "sunxi dram clock speed"
3953abfd887SMasahiro Yamada	default 792 if MACH_SUN9I
3963abfd887SMasahiro Yamada	default 648 if MACH_SUN8I_R40
3973abfd887SMasahiro Yamada	default 312 if MACH_SUN6I || MACH_SUN8I
3987d06e59fSIcenowy Zheng	default 360 if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || \
3997d06e59fSIcenowy Zheng		       MACH_SUN8I_V3S
4003abfd887SMasahiro Yamada	default 672 if MACH_SUN50I
4016f796a9bSIcenowy Zheng	default 744 if MACH_SUN50I_H6
4023abfd887SMasahiro Yamada	---help---
4033abfd887SMasahiro Yamada	Set the dram clock speed, valid range 240 - 480 (prior to sun9i),
4043abfd887SMasahiro Yamada	must be a multiple of 24. For the sun9i (A80), the tested values
4053abfd887SMasahiro Yamada	(for DDR3-1600) are 312 to 792.
4063abfd887SMasahiro Yamada
4073abfd887SMasahiro Yamadaif MACH_SUN5I || MACH_SUN7I
4083abfd887SMasahiro Yamadaconfig DRAM_MBUS_CLK
4093abfd887SMasahiro Yamada	int "sunxi mbus clock speed"
4103abfd887SMasahiro Yamada	default 300
4113abfd887SMasahiro Yamada	---help---
4123abfd887SMasahiro Yamada	Set the mbus clock speed. The maximum on sun5i hardware is 300MHz.
4133abfd887SMasahiro Yamada
4143abfd887SMasahiro Yamadaendif
4153abfd887SMasahiro Yamada
4163abfd887SMasahiro Yamadaconfig DRAM_ZQ
4173abfd887SMasahiro Yamada	int "sunxi dram zq value"
4183abfd887SMasahiro Yamada	default 123 if MACH_SUN4I || MACH_SUN5I || MACH_SUN6I || MACH_SUN8I
4193abfd887SMasahiro Yamada	default 127 if MACH_SUN7I
4207d06e59fSIcenowy Zheng	default 14779 if MACH_SUN8I_V3S
4216f796a9bSIcenowy Zheng	default 3881979 if MACH_SUN8I_R40 || MACH_SUN50I_H6
4223abfd887SMasahiro Yamada	default 4145117 if MACH_SUN9I
4233abfd887SMasahiro Yamada	default 3881915 if MACH_SUN50I
4243abfd887SMasahiro Yamada	---help---
4253abfd887SMasahiro Yamada	Set the dram zq value.
4263abfd887SMasahiro Yamada
4273abfd887SMasahiro Yamadaconfig DRAM_ODT_EN
4283abfd887SMasahiro Yamada	bool "sunxi dram odt enable"
4293abfd887SMasahiro Yamada	default y if MACH_SUN8I_A23
4303abfd887SMasahiro Yamada	default y if MACH_SUN8I_R40
4313abfd887SMasahiro Yamada	default y if MACH_SUN50I
4326f796a9bSIcenowy Zheng	default y if MACH_SUN50I_H6
4333abfd887SMasahiro Yamada	---help---
4343abfd887SMasahiro Yamada	Select this to enable dram odt (on die termination).
4353abfd887SMasahiro Yamada
4363abfd887SMasahiro Yamadaif MACH_SUN4I || MACH_SUN5I || MACH_SUN7I
4373abfd887SMasahiro Yamadaconfig DRAM_EMR1
4383abfd887SMasahiro Yamada	int "sunxi dram emr1 value"
4393abfd887SMasahiro Yamada	default 0 if MACH_SUN4I
4403abfd887SMasahiro Yamada	default 4 if MACH_SUN5I || MACH_SUN7I
4413abfd887SMasahiro Yamada	---help---
4423abfd887SMasahiro Yamada	Set the dram controller emr1 value.
4433abfd887SMasahiro Yamada
4443abfd887SMasahiro Yamadaconfig DRAM_TPR3
4453abfd887SMasahiro Yamada	hex "sunxi dram tpr3 value"
4463abfd887SMasahiro Yamada	default 0
4473abfd887SMasahiro Yamada	---help---
4483abfd887SMasahiro Yamada	Set the dram controller tpr3 parameter. This parameter configures
4493abfd887SMasahiro Yamada	the delay on the command lane and also phase shifts, which are
4503abfd887SMasahiro Yamada	applied for sampling incoming read data. The default value 0
4513abfd887SMasahiro Yamada	means that no phase/delay adjustments are necessary. Properly
4523abfd887SMasahiro Yamada	configuring this parameter increases reliability at high DRAM
4533abfd887SMasahiro Yamada	clock speeds.
4543abfd887SMasahiro Yamada
4553abfd887SMasahiro Yamadaconfig DRAM_DQS_GATING_DELAY
4563abfd887SMasahiro Yamada	hex "sunxi dram dqs_gating_delay value"
4573abfd887SMasahiro Yamada	default 0
4583abfd887SMasahiro Yamada	---help---
4593abfd887SMasahiro Yamada	Set the dram controller dqs_gating_delay parmeter. Each byte
4603abfd887SMasahiro Yamada	encodes the DQS gating delay for each byte lane. The delay
4613abfd887SMasahiro Yamada	granularity is 1/4 cycle. For example, the value 0x05060606
4623abfd887SMasahiro Yamada	means that the delay is 5 quarter-cycles for one lane (1.25
4633abfd887SMasahiro Yamada	cycles) and 6 quarter-cycles (1.5 cycles) for 3 other lanes.
4643abfd887SMasahiro Yamada	The default value 0 means autodetection. The results of hardware
4653abfd887SMasahiro Yamada	autodetection are not very reliable and depend on the chip
4663abfd887SMasahiro Yamada	temperature (sometimes producing different results on cold start
4673abfd887SMasahiro Yamada	and warm reboot). But the accuracy of hardware autodetection
4683abfd887SMasahiro Yamada	is usually good enough, unless running at really high DRAM
4693abfd887SMasahiro Yamada	clocks speeds (up to 600MHz). If unsure, keep as 0.
4703abfd887SMasahiro Yamada
4713abfd887SMasahiro Yamadachoice
4723abfd887SMasahiro Yamada	prompt "sunxi dram timings"
4733abfd887SMasahiro Yamada	default DRAM_TIMINGS_VENDOR_MAGIC
4743abfd887SMasahiro Yamada	---help---
4753abfd887SMasahiro Yamada	Select the timings of the DDR3 chips.
4763abfd887SMasahiro Yamada
4773abfd887SMasahiro Yamadaconfig DRAM_TIMINGS_VENDOR_MAGIC
4783abfd887SMasahiro Yamada	bool "Magic vendor timings from Android"
4793abfd887SMasahiro Yamada	---help---
4803abfd887SMasahiro Yamada	The same DRAM timings as in the Allwinner boot0 bootloader.
4813abfd887SMasahiro Yamada
4823abfd887SMasahiro Yamadaconfig DRAM_TIMINGS_DDR3_1066F_1333H
4833abfd887SMasahiro Yamada	bool "JEDEC DDR3-1333H with down binning to DDR3-1066F"
4843abfd887SMasahiro Yamada	---help---
4853abfd887SMasahiro Yamada	Use the timings of the standard JEDEC DDR3-1066F speed bin for
4863abfd887SMasahiro Yamada	DRAM_CLK <= 533MHz and the timings of the DDR3-1333H speed bin
4873abfd887SMasahiro Yamada	for DRAM_CLK > 533MHz. This covers the majority of DDR3 chips
4883abfd887SMasahiro Yamada	used in Allwinner A10/A13/A20 devices. In the case of DDR3-1333
4893abfd887SMasahiro Yamada	or DDR3-1600 chips, be sure to check the DRAM datasheet to confirm
4903abfd887SMasahiro Yamada	that down binning to DDR3-1066F is supported (because DDR3-1066F
4913abfd887SMasahiro Yamada	uses a bit faster timings than DDR3-1333H).
4923abfd887SMasahiro Yamada
4933abfd887SMasahiro Yamadaconfig DRAM_TIMINGS_DDR3_800E_1066G_1333J
4943abfd887SMasahiro Yamada	bool "JEDEC DDR3-800E / DDR3-1066G / DDR3-1333J"
4953abfd887SMasahiro Yamada	---help---
4963abfd887SMasahiro Yamada	Use the timings of the slowest possible JEDEC speed bin for the
4973abfd887SMasahiro Yamada	selected DRAM_CLK. Depending on the DRAM_CLK value, it may be
4983abfd887SMasahiro Yamada	DDR3-800E, DDR3-1066G or DDR3-1333J.
4993abfd887SMasahiro Yamada
5003abfd887SMasahiro Yamadaendchoice
5013abfd887SMasahiro Yamada
5023abfd887SMasahiro Yamadaendif
5033abfd887SMasahiro Yamada
5043abfd887SMasahiro Yamadaif MACH_SUN8I_A23
5053abfd887SMasahiro Yamadaconfig DRAM_ODT_CORRECTION
5063abfd887SMasahiro Yamada	int "sunxi dram odt correction value"
5073abfd887SMasahiro Yamada	default 0
5083abfd887SMasahiro Yamada	---help---
5093abfd887SMasahiro Yamada	Set the dram odt correction value (range -255 - 255). In allwinner
5103abfd887SMasahiro Yamada	fex files, this option is found in bits 8-15 of the u32 odt_en variable
5113abfd887SMasahiro Yamada	in the [dram] section. When bit 31 of the odt_en variable is set
5123abfd887SMasahiro Yamada	then the correction is negative. Usually the value for this is 0.
5133abfd887SMasahiro Yamadaendif
5143abfd887SMasahiro Yamada
5153abfd887SMasahiro Yamadaconfig SYS_CLK_FREQ
5163abfd887SMasahiro Yamada	default 1008000000 if MACH_SUN4I
5173abfd887SMasahiro Yamada	default 1008000000 if MACH_SUN5I
5183abfd887SMasahiro Yamada	default 1008000000 if MACH_SUN6I
5193abfd887SMasahiro Yamada	default 912000000 if MACH_SUN7I
5203cfecee4SIcenowy Zheng	default 816000000 if MACH_SUN50I || MACH_SUN50I_H5
5213abfd887SMasahiro Yamada	default 1008000000 if MACH_SUN8I
5223abfd887SMasahiro Yamada	default 1008000000 if MACH_SUN9I
5236f796a9bSIcenowy Zheng	default 888000000 if MACH_SUN50I_H6
5243abfd887SMasahiro Yamada
5253abfd887SMasahiro Yamadaconfig SYS_CONFIG_NAME
5263abfd887SMasahiro Yamada	default "sun4i" if MACH_SUN4I
5273abfd887SMasahiro Yamada	default "sun5i" if MACH_SUN5I
5283abfd887SMasahiro Yamada	default "sun6i" if MACH_SUN6I
5293abfd887SMasahiro Yamada	default "sun7i" if MACH_SUN7I
5303abfd887SMasahiro Yamada	default "sun8i" if MACH_SUN8I
5313abfd887SMasahiro Yamada	default "sun9i" if MACH_SUN9I
5323abfd887SMasahiro Yamada	default "sun50i" if MACH_SUN50I
5336f796a9bSIcenowy Zheng	default "sun50i" if MACH_SUN50I_H6
5343abfd887SMasahiro Yamada
5353abfd887SMasahiro Yamadaconfig SYS_BOARD
5363abfd887SMasahiro Yamada	default "sunxi"
5373abfd887SMasahiro Yamada
5383abfd887SMasahiro Yamadaconfig SYS_SOC
5393abfd887SMasahiro Yamada	default "sunxi"
5403abfd887SMasahiro Yamada
5413abfd887SMasahiro Yamadaconfig UART0_PORT_F
5423abfd887SMasahiro Yamada	bool "UART0 on MicroSD breakout board"
5433abfd887SMasahiro Yamada	default n
5443abfd887SMasahiro Yamada	---help---
5453abfd887SMasahiro Yamada	Repurpose the SD card slot for getting access to the UART0 serial
5463abfd887SMasahiro Yamada	console. Primarily useful only for low level u-boot debugging on
5473abfd887SMasahiro Yamada	tablets, where normal UART0 is difficult to access and requires
5483abfd887SMasahiro Yamada	device disassembly and/or soldering. As the SD card can't be used
5493abfd887SMasahiro Yamada	at the same time, the system can be only booted in the FEL mode.
5503abfd887SMasahiro Yamada	Only enable this if you really know what you are doing.
5513abfd887SMasahiro Yamada
5523abfd887SMasahiro Yamadaconfig OLD_SUNXI_KERNEL_COMPAT
5533abfd887SMasahiro Yamada	bool "Enable workarounds for booting old kernels"
5543abfd887SMasahiro Yamada	default n
5553abfd887SMasahiro Yamada	---help---
5563abfd887SMasahiro Yamada	Set this to enable various workarounds for old kernels, this results in
5573abfd887SMasahiro Yamada	sub-optimal settings for newer kernels, only enable if needed.
5583abfd887SMasahiro Yamada
5593abfd887SMasahiro Yamadaconfig MACPWR
5603abfd887SMasahiro Yamada	string "MAC power pin"
5613abfd887SMasahiro Yamada	default ""
5623abfd887SMasahiro Yamada	help
5633abfd887SMasahiro Yamada	  Set the pin used to power the MAC. This takes a string in the format
5643abfd887SMasahiro Yamada	  understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
5653abfd887SMasahiro Yamada
5663abfd887SMasahiro Yamadaconfig MMC0_CD_PIN
5673abfd887SMasahiro Yamada	string "Card detect pin for mmc0"
5683abfd887SMasahiro Yamada	default "PF6" if MACH_SUN8I_A83T || MACH_SUNXI_H3_H5 || MACH_SUN50I
5693abfd887SMasahiro Yamada	default ""
5703abfd887SMasahiro Yamada	---help---
5713abfd887SMasahiro Yamada	Set the card detect pin for mmc0, leave empty to not use cd. This
5723abfd887SMasahiro Yamada	takes a string in the format understood by sunxi_name_to_gpio, e.g.
5733abfd887SMasahiro Yamada	PH1 for pin 1 of port H.
5743abfd887SMasahiro Yamada
5753abfd887SMasahiro Yamadaconfig MMC1_CD_PIN
5763abfd887SMasahiro Yamada	string "Card detect pin for mmc1"
5773abfd887SMasahiro Yamada	default ""
5783abfd887SMasahiro Yamada	---help---
5793abfd887SMasahiro Yamada	See MMC0_CD_PIN help text.
5803abfd887SMasahiro Yamada
5813abfd887SMasahiro Yamadaconfig MMC2_CD_PIN
5823abfd887SMasahiro Yamada	string "Card detect pin for mmc2"
5833abfd887SMasahiro Yamada	default ""
5843abfd887SMasahiro Yamada	---help---
5853abfd887SMasahiro Yamada	See MMC0_CD_PIN help text.
5863abfd887SMasahiro Yamada
5873abfd887SMasahiro Yamadaconfig MMC3_CD_PIN
5883abfd887SMasahiro Yamada	string "Card detect pin for mmc3"
5893abfd887SMasahiro Yamada	default ""
5903abfd887SMasahiro Yamada	---help---
5913abfd887SMasahiro Yamada	See MMC0_CD_PIN help text.
5923abfd887SMasahiro Yamada
5933abfd887SMasahiro Yamadaconfig MMC1_PINS
5943abfd887SMasahiro Yamada	string "Pins for mmc1"
5953abfd887SMasahiro Yamada	default ""
5963abfd887SMasahiro Yamada	---help---
5973abfd887SMasahiro Yamada	Set the pins used for mmc1, when applicable. This takes a string in the
5983abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio_bank, e.g. PH for port H.
5993abfd887SMasahiro Yamada
6003abfd887SMasahiro Yamadaconfig MMC2_PINS
6013abfd887SMasahiro Yamada	string "Pins for mmc2"
6023abfd887SMasahiro Yamada	default ""
6033abfd887SMasahiro Yamada	---help---
6043abfd887SMasahiro Yamada	See MMC1_PINS help text.
6053abfd887SMasahiro Yamada
6063abfd887SMasahiro Yamadaconfig MMC3_PINS
6073abfd887SMasahiro Yamada	string "Pins for mmc3"
6083abfd887SMasahiro Yamada	default ""
6093abfd887SMasahiro Yamada	---help---
6103abfd887SMasahiro Yamada	See MMC1_PINS help text.
6113abfd887SMasahiro Yamada
6123abfd887SMasahiro Yamadaconfig MMC_SUNXI_SLOT_EXTRA
6133abfd887SMasahiro Yamada	int "mmc extra slot number"
6143abfd887SMasahiro Yamada	default -1
6153abfd887SMasahiro Yamada	---help---
6163abfd887SMasahiro Yamada	sunxi builds always enable mmc0, some boards also have a second sdcard
6173abfd887SMasahiro Yamada	slot or emmc on mmc1 - mmc3. Setting this to 1, 2 or 3 will enable
6183abfd887SMasahiro Yamada	support for this.
6193abfd887SMasahiro Yamada
6203abfd887SMasahiro Yamadaconfig INITIAL_USB_SCAN_DELAY
6213abfd887SMasahiro Yamada	int "delay initial usb scan by x ms to allow builtin devices to init"
6223abfd887SMasahiro Yamada	default 0
6233abfd887SMasahiro Yamada	---help---
6243abfd887SMasahiro Yamada	Some boards have on board usb devices which need longer than the
6253abfd887SMasahiro Yamada	USB spec's 1 second to connect from board powerup. Set this config
6263abfd887SMasahiro Yamada	option to a non 0 value to add an extra delay before the first usb
6273abfd887SMasahiro Yamada	bus scan.
6283abfd887SMasahiro Yamada
6293abfd887SMasahiro Yamadaconfig USB0_VBUS_PIN
6303abfd887SMasahiro Yamada	string "Vbus enable pin for usb0 (otg)"
6313abfd887SMasahiro Yamada	default ""
6323abfd887SMasahiro Yamada	---help---
6333abfd887SMasahiro Yamada	Set the Vbus enable pin for usb0 (otg). This takes a string in the
6343abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
6353abfd887SMasahiro Yamada
6363abfd887SMasahiro Yamadaconfig USB0_VBUS_DET
6373abfd887SMasahiro Yamada	string "Vbus detect pin for usb0 (otg)"
6383abfd887SMasahiro Yamada	default ""
6393abfd887SMasahiro Yamada	---help---
6403abfd887SMasahiro Yamada	Set the Vbus detect pin for usb0 (otg). This takes a string in the
6413abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
6423abfd887SMasahiro Yamada
6433abfd887SMasahiro Yamadaconfig USB0_ID_DET
6443abfd887SMasahiro Yamada	string "ID detect pin for usb0 (otg)"
6453abfd887SMasahiro Yamada	default ""
6463abfd887SMasahiro Yamada	---help---
6473abfd887SMasahiro Yamada	Set the ID detect pin for usb0 (otg). This takes a string in the
6483abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
6493abfd887SMasahiro Yamada
6503abfd887SMasahiro Yamadaconfig USB1_VBUS_PIN
6513abfd887SMasahiro Yamada	string "Vbus enable pin for usb1 (ehci0)"
6523abfd887SMasahiro Yamada	default "PH6" if MACH_SUN4I || MACH_SUN7I
6533abfd887SMasahiro Yamada	default "PH27" if MACH_SUN6I
6543abfd887SMasahiro Yamada	---help---
6553abfd887SMasahiro Yamada	Set the Vbus enable pin for usb1 (ehci0, usb0 is the otg). This takes
6563abfd887SMasahiro Yamada	a string in the format understood by sunxi_name_to_gpio, e.g.
6573abfd887SMasahiro Yamada	PH1 for pin 1 of port H.
6583abfd887SMasahiro Yamada
6593abfd887SMasahiro Yamadaconfig USB2_VBUS_PIN
6603abfd887SMasahiro Yamada	string "Vbus enable pin for usb2 (ehci1)"
6613abfd887SMasahiro Yamada	default "PH3" if MACH_SUN4I || MACH_SUN7I
6623abfd887SMasahiro Yamada	default "PH24" if MACH_SUN6I
6633abfd887SMasahiro Yamada	---help---
6643abfd887SMasahiro Yamada	See USB1_VBUS_PIN help text.
6653abfd887SMasahiro Yamada
6663abfd887SMasahiro Yamadaconfig USB3_VBUS_PIN
6673abfd887SMasahiro Yamada	string "Vbus enable pin for usb3 (ehci2)"
6683abfd887SMasahiro Yamada	default ""
6693abfd887SMasahiro Yamada	---help---
6703abfd887SMasahiro Yamada	See USB1_VBUS_PIN help text.
6713abfd887SMasahiro Yamada
6723abfd887SMasahiro Yamadaconfig I2C0_ENABLE
6733abfd887SMasahiro Yamada	bool "Enable I2C/TWI controller 0"
6743abfd887SMasahiro Yamada	default y if MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUN8I_R40
6753abfd887SMasahiro Yamada	default n if MACH_SUN6I || MACH_SUN8I
6763abfd887SMasahiro Yamada	select CMD_I2C
6773abfd887SMasahiro Yamada	---help---
6783abfd887SMasahiro Yamada	This allows enabling I2C/TWI controller 0 by muxing its pins, enabling
6793abfd887SMasahiro Yamada	its clock and setting up the bus. This is especially useful on devices
6803abfd887SMasahiro Yamada	with slaves connected to the bus or with pins exposed through e.g. an
6813abfd887SMasahiro Yamada	expansion port/header.
6823abfd887SMasahiro Yamada
6833abfd887SMasahiro Yamadaconfig I2C1_ENABLE
6843abfd887SMasahiro Yamada	bool "Enable I2C/TWI controller 1"
6853abfd887SMasahiro Yamada	default n
6863abfd887SMasahiro Yamada	select CMD_I2C
6873abfd887SMasahiro Yamada	---help---
6883abfd887SMasahiro Yamada	See I2C0_ENABLE help text.
6893abfd887SMasahiro Yamada
6903abfd887SMasahiro Yamadaconfig I2C2_ENABLE
6913abfd887SMasahiro Yamada	bool "Enable I2C/TWI controller 2"
6923abfd887SMasahiro Yamada	default n
6933abfd887SMasahiro Yamada	select CMD_I2C
6943abfd887SMasahiro Yamada	---help---
6953abfd887SMasahiro Yamada	See I2C0_ENABLE help text.
6963abfd887SMasahiro Yamada
6973abfd887SMasahiro Yamadaif MACH_SUN6I || MACH_SUN7I
6983abfd887SMasahiro Yamadaconfig I2C3_ENABLE
6993abfd887SMasahiro Yamada	bool "Enable I2C/TWI controller 3"
7003abfd887SMasahiro Yamada	default n
7013abfd887SMasahiro Yamada	select CMD_I2C
7023abfd887SMasahiro Yamada	---help---
7033abfd887SMasahiro Yamada	See I2C0_ENABLE help text.
7043abfd887SMasahiro Yamadaendif
7053abfd887SMasahiro Yamada
7063abfd887SMasahiro Yamadaif SUNXI_GEN_SUN6I
7073abfd887SMasahiro Yamadaconfig R_I2C_ENABLE
7083abfd887SMasahiro Yamada	bool "Enable the PRCM I2C/TWI controller"
7093abfd887SMasahiro Yamada	# This is used for the pmic on H3
7103abfd887SMasahiro Yamada	default y if SY8106A_POWER
7113abfd887SMasahiro Yamada	select CMD_I2C
7123abfd887SMasahiro Yamada	---help---
7133abfd887SMasahiro Yamada	Set this to y to enable the I2C controller which is part of the PRCM.
7143abfd887SMasahiro Yamadaendif
7153abfd887SMasahiro Yamada
7163abfd887SMasahiro Yamadaif MACH_SUN7I
7173abfd887SMasahiro Yamadaconfig I2C4_ENABLE
7183abfd887SMasahiro Yamada	bool "Enable I2C/TWI controller 4"
7193abfd887SMasahiro Yamada	default n
7203abfd887SMasahiro Yamada	select CMD_I2C
7213abfd887SMasahiro Yamada	---help---
7223abfd887SMasahiro Yamada	See I2C0_ENABLE help text.
7233abfd887SMasahiro Yamadaendif
7243abfd887SMasahiro Yamada
7253abfd887SMasahiro Yamadaconfig AXP_GPIO
7263abfd887SMasahiro Yamada	bool "Enable support for gpio-s on axp PMICs"
7273abfd887SMasahiro Yamada	default n
7283abfd887SMasahiro Yamada	---help---
7293abfd887SMasahiro Yamada	Say Y here to enable support for the gpio pins of the axp PMIC ICs.
7303abfd887SMasahiro Yamada
731401a3ca0SIcenowy Zhengconfig VIDEO_SUNXI
7323abfd887SMasahiro Yamada	bool "Enable graphical uboot console on HDMI, LCD or VGA"
7333abfd887SMasahiro Yamada	depends on !MACH_SUN8I_A83T
7343abfd887SMasahiro Yamada	depends on !MACH_SUNXI_H3_H5
7353abfd887SMasahiro Yamada	depends on !MACH_SUN8I_R40
7363abfd887SMasahiro Yamada	depends on !MACH_SUN8I_V3S
7373abfd887SMasahiro Yamada	depends on !MACH_SUN9I
7383abfd887SMasahiro Yamada	depends on !MACH_SUN50I
7396f796a9bSIcenowy Zheng	depends on !MACH_SUN50I_H6
740401a3ca0SIcenowy Zheng	select VIDEO
741f6bdddc9SIcenowy Zheng	imply VIDEO_DT_SIMPLEFB
7423abfd887SMasahiro Yamada	default y
7433abfd887SMasahiro Yamada	---help---
7443abfd887SMasahiro Yamada	Say Y here to add support for using a cfb console on the HDMI, LCD
7453abfd887SMasahiro Yamada	or VGA output found on most sunxi devices. See doc/README.video for
7463abfd887SMasahiro Yamada	info on how to select the video output and mode.
7473abfd887SMasahiro Yamada
7483abfd887SMasahiro Yamadaconfig VIDEO_HDMI
7493abfd887SMasahiro Yamada	bool "HDMI output support"
750401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI && !MACH_SUN8I
7513abfd887SMasahiro Yamada	default y
7523abfd887SMasahiro Yamada	---help---
7533abfd887SMasahiro Yamada	Say Y here to add support for outputting video over HDMI.
7543abfd887SMasahiro Yamada
7553abfd887SMasahiro Yamadaconfig VIDEO_VGA
7563abfd887SMasahiro Yamada	bool "VGA output support"
757401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI && (MACH_SUN4I || MACH_SUN7I)
7583abfd887SMasahiro Yamada	default n
7593abfd887SMasahiro Yamada	---help---
7603abfd887SMasahiro Yamada	Say Y here to add support for outputting video over VGA.
7613abfd887SMasahiro Yamada
7623abfd887SMasahiro Yamadaconfig VIDEO_VGA_VIA_LCD
7633abfd887SMasahiro Yamada	bool "VGA via LCD controller support"
764401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI && (MACH_SUN5I || MACH_SUN6I || MACH_SUN8I)
7653abfd887SMasahiro Yamada	default n
7663abfd887SMasahiro Yamada	---help---
7673abfd887SMasahiro Yamada	Say Y here to add support for external DACs connected to the parallel
7683abfd887SMasahiro Yamada	LCD interface driving a VGA connector, such as found on the
7693abfd887SMasahiro Yamada	Olimex A13 boards.
7703abfd887SMasahiro Yamada
7713abfd887SMasahiro Yamadaconfig VIDEO_VGA_VIA_LCD_FORCE_SYNC_ACTIVE_HIGH
7723abfd887SMasahiro Yamada	bool "Force sync active high for VGA via LCD controller support"
7733abfd887SMasahiro Yamada	depends on VIDEO_VGA_VIA_LCD
7743abfd887SMasahiro Yamada	default n
7753abfd887SMasahiro Yamada	---help---
7763abfd887SMasahiro Yamada	Say Y here if you've a board which uses opendrain drivers for the vga
7773abfd887SMasahiro Yamada	hsync and vsync signals. Opendrain drivers cannot generate steep enough
7783abfd887SMasahiro Yamada	positive edges for a stable video output, so on boards with opendrain
7793abfd887SMasahiro Yamada	drivers the sync signals must always be active high.
7803abfd887SMasahiro Yamada
7813abfd887SMasahiro Yamadaconfig VIDEO_VGA_EXTERNAL_DAC_EN
7823abfd887SMasahiro Yamada	string "LCD panel power enable pin"
7833abfd887SMasahiro Yamada	depends on VIDEO_VGA_VIA_LCD
7843abfd887SMasahiro Yamada	default ""
7853abfd887SMasahiro Yamada	---help---
7863abfd887SMasahiro Yamada	Set the enable pin for the external VGA DAC. This takes a string in the
7873abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
7883abfd887SMasahiro Yamada
7893abfd887SMasahiro Yamadaconfig VIDEO_COMPOSITE
7903abfd887SMasahiro Yamada	bool "Composite video output support"
791401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI && (MACH_SUN4I || MACH_SUN5I || MACH_SUN7I)
7923abfd887SMasahiro Yamada	default n
7933abfd887SMasahiro Yamada	---help---
7943abfd887SMasahiro Yamada	Say Y here to add support for outputting composite video.
7953abfd887SMasahiro Yamada
7963abfd887SMasahiro Yamadaconfig VIDEO_LCD_MODE
7973abfd887SMasahiro Yamada	string "LCD panel timing details"
798401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI
7993abfd887SMasahiro Yamada	default ""
8003abfd887SMasahiro Yamada	---help---
8013abfd887SMasahiro Yamada	LCD panel timing details string, leave empty if there is no LCD panel.
8023abfd887SMasahiro Yamada	This is in drivers/video/videomodes.c: video_get_params() format, e.g.
8033abfd887SMasahiro Yamada	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
8043abfd887SMasahiro Yamada	Also see: http://linux-sunxi.org/LCD
8053abfd887SMasahiro Yamada
8063abfd887SMasahiro Yamadaconfig VIDEO_LCD_DCLK_PHASE
8073abfd887SMasahiro Yamada	int "LCD panel display clock phase"
8081d7eef3fSVasily Khoruzhick	depends on VIDEO_SUNXI || DM_VIDEO
8093abfd887SMasahiro Yamada	default 1
8103abfd887SMasahiro Yamada	---help---
8113abfd887SMasahiro Yamada	Select LCD panel display clock phase shift, range 0-3.
8123abfd887SMasahiro Yamada
8133abfd887SMasahiro Yamadaconfig VIDEO_LCD_POWER
8143abfd887SMasahiro Yamada	string "LCD panel power enable pin"
815401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI
8163abfd887SMasahiro Yamada	default ""
8173abfd887SMasahiro Yamada	---help---
8183abfd887SMasahiro Yamada	Set the power enable pin for the LCD panel. This takes a string in the
8193abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
8203abfd887SMasahiro Yamada
8213abfd887SMasahiro Yamadaconfig VIDEO_LCD_RESET
8223abfd887SMasahiro Yamada	string "LCD panel reset pin"
823401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI
8243abfd887SMasahiro Yamada	default ""
8253abfd887SMasahiro Yamada	---help---
8263abfd887SMasahiro Yamada	Set the reset pin for the LCD panel. This takes a string in the format
8273abfd887SMasahiro Yamada	understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
8283abfd887SMasahiro Yamada
8293abfd887SMasahiro Yamadaconfig VIDEO_LCD_BL_EN
8303abfd887SMasahiro Yamada	string "LCD panel backlight enable pin"
831401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI
8323abfd887SMasahiro Yamada	default ""
8333abfd887SMasahiro Yamada	---help---
8343abfd887SMasahiro Yamada	Set the backlight enable pin for the LCD panel. This takes a string in the
8353abfd887SMasahiro Yamada	the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
8363abfd887SMasahiro Yamada	port H.
8373abfd887SMasahiro Yamada
8383abfd887SMasahiro Yamadaconfig VIDEO_LCD_BL_PWM
8393abfd887SMasahiro Yamada	string "LCD panel backlight pwm pin"
840401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI
8413abfd887SMasahiro Yamada	default ""
8423abfd887SMasahiro Yamada	---help---
8433abfd887SMasahiro Yamada	Set the backlight pwm pin for the LCD panel. This takes a string in the
8443abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
8453abfd887SMasahiro Yamada
8463abfd887SMasahiro Yamadaconfig VIDEO_LCD_BL_PWM_ACTIVE_LOW
8473abfd887SMasahiro Yamada	bool "LCD panel backlight pwm is inverted"
848401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI
8493abfd887SMasahiro Yamada	default y
8503abfd887SMasahiro Yamada	---help---
8513abfd887SMasahiro Yamada	Set this if the backlight pwm output is active low.
8523abfd887SMasahiro Yamada
8533abfd887SMasahiro Yamadaconfig VIDEO_LCD_PANEL_I2C
8543abfd887SMasahiro Yamada	bool "LCD panel needs to be configured via i2c"
855401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI
8563abfd887SMasahiro Yamada	default n
8573abfd887SMasahiro Yamada	select CMD_I2C
8583abfd887SMasahiro Yamada	---help---
8593abfd887SMasahiro Yamada	Say y here if the LCD panel needs to be configured via i2c. This
8603abfd887SMasahiro Yamada	will add a bitbang i2c controller using gpios to talk to the LCD.
8613abfd887SMasahiro Yamada
8623abfd887SMasahiro Yamadaconfig VIDEO_LCD_PANEL_I2C_SDA
8633abfd887SMasahiro Yamada	string "LCD panel i2c interface SDA pin"
8643abfd887SMasahiro Yamada	depends on VIDEO_LCD_PANEL_I2C
8653abfd887SMasahiro Yamada	default "PG12"
8663abfd887SMasahiro Yamada	---help---
8673abfd887SMasahiro Yamada	Set the SDA pin for the LCD i2c interface. This takes a string in the
8683abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
8693abfd887SMasahiro Yamada
8703abfd887SMasahiro Yamadaconfig VIDEO_LCD_PANEL_I2C_SCL
8713abfd887SMasahiro Yamada	string "LCD panel i2c interface SCL pin"
8723abfd887SMasahiro Yamada	depends on VIDEO_LCD_PANEL_I2C
8733abfd887SMasahiro Yamada	default "PG10"
8743abfd887SMasahiro Yamada	---help---
8753abfd887SMasahiro Yamada	Set the SCL pin for the LCD i2c interface. This takes a string in the
8763abfd887SMasahiro Yamada	format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H.
8773abfd887SMasahiro Yamada
8783abfd887SMasahiro Yamada
8793abfd887SMasahiro Yamada# Note only one of these may be selected at a time! But hidden choices are
8803abfd887SMasahiro Yamada# not supported by Kconfig
8813abfd887SMasahiro Yamadaconfig VIDEO_LCD_IF_PARALLEL
8823abfd887SMasahiro Yamada	bool
8833abfd887SMasahiro Yamada
8843abfd887SMasahiro Yamadaconfig VIDEO_LCD_IF_LVDS
8853abfd887SMasahiro Yamada	bool
8863abfd887SMasahiro Yamada
8873abfd887SMasahiro Yamadaconfig SUNXI_DE2
8883abfd887SMasahiro Yamada	bool
8893abfd887SMasahiro Yamada	default n
8903abfd887SMasahiro Yamada
8913abfd887SMasahiro Yamadaconfig VIDEO_DE2
8923abfd887SMasahiro Yamada	bool "Display Engine 2 video driver"
8933abfd887SMasahiro Yamada	depends on SUNXI_DE2
8943abfd887SMasahiro Yamada	select DM_VIDEO
8953abfd887SMasahiro Yamada	select DISPLAY
896be5b96f0SIcenowy Zheng	imply VIDEO_DT_SIMPLEFB
8973abfd887SMasahiro Yamada	default y
8983abfd887SMasahiro Yamada	---help---
8993abfd887SMasahiro Yamada	Say y here if you want to build DE2 video driver which is present on
9003abfd887SMasahiro Yamada	newer SoCs. Currently only HDMI output is supported.
9013abfd887SMasahiro Yamada
9023abfd887SMasahiro Yamada
9033abfd887SMasahiro Yamadachoice
9043abfd887SMasahiro Yamada	prompt "LCD panel support"
905401a3ca0SIcenowy Zheng	depends on VIDEO_SUNXI
9063abfd887SMasahiro Yamada	---help---
9073abfd887SMasahiro Yamada	Select which type of LCD panel to support.
9083abfd887SMasahiro Yamada
9093abfd887SMasahiro Yamadaconfig VIDEO_LCD_PANEL_PARALLEL
9103abfd887SMasahiro Yamada	bool "Generic parallel interface LCD panel"
9113abfd887SMasahiro Yamada	select VIDEO_LCD_IF_PARALLEL
9123abfd887SMasahiro Yamada
9133abfd887SMasahiro Yamadaconfig VIDEO_LCD_PANEL_LVDS
9143abfd887SMasahiro Yamada	bool "Generic lvds interface LCD panel"
9153abfd887SMasahiro Yamada	select VIDEO_LCD_IF_LVDS
9163abfd887SMasahiro Yamada
9173abfd887SMasahiro Yamadaconfig VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
9183abfd887SMasahiro Yamada	bool "MIPI 4-lane, 513Mbps LCD panel via SSD2828 bridge chip"
9193abfd887SMasahiro Yamada	select VIDEO_LCD_SSD2828
9203abfd887SMasahiro Yamada	select VIDEO_LCD_IF_PARALLEL
9213abfd887SMasahiro Yamada	---help---
9223abfd887SMasahiro Yamada	7.85" 768x1024 LCD panels, such as LG LP079X01 or AUO B079XAN01.0
9233abfd887SMasahiro Yamada
9243abfd887SMasahiro Yamadaconfig VIDEO_LCD_PANEL_EDP_4_LANE_1620M_VIA_ANX9804
9253abfd887SMasahiro Yamada	bool "eDP 4-lane, 1.62G LCD panel via ANX9804 bridge chip"
9263abfd887SMasahiro Yamada	select VIDEO_LCD_ANX9804
9273abfd887SMasahiro Yamada	select VIDEO_LCD_IF_PARALLEL
9283abfd887SMasahiro Yamada	select VIDEO_LCD_PANEL_I2C
9293abfd887SMasahiro Yamada	---help---
9303abfd887SMasahiro Yamada	Select this for eDP LCD panels with 4 lanes running at 1.62G,
9313abfd887SMasahiro Yamada	connected via an ANX9804 bridge chip.
9323abfd887SMasahiro Yamada
9333abfd887SMasahiro Yamadaconfig VIDEO_LCD_PANEL_HITACHI_TX18D42VM
9343abfd887SMasahiro Yamada	bool "Hitachi tx18d42vm LCD panel"
9353abfd887SMasahiro Yamada	select VIDEO_LCD_HITACHI_TX18D42VM
9363abfd887SMasahiro Yamada	select VIDEO_LCD_IF_LVDS
9373abfd887SMasahiro Yamada	---help---
9383abfd887SMasahiro Yamada	7.85" 1024x768 Hitachi tx18d42vm LCD panel support
9393abfd887SMasahiro Yamada
9403abfd887SMasahiro Yamadaconfig VIDEO_LCD_TL059WV5C0
9413abfd887SMasahiro Yamada	bool "tl059wv5c0 LCD panel"
9423abfd887SMasahiro Yamada	select VIDEO_LCD_PANEL_I2C
9433abfd887SMasahiro Yamada	select VIDEO_LCD_IF_PARALLEL
9443abfd887SMasahiro Yamada	---help---
9453abfd887SMasahiro Yamada	6" 480x800 tl059wv5c0 panel support, as used on the Utoo P66 and
9463abfd887SMasahiro Yamada	Aigo M60/M608/M606 tablets.
9473abfd887SMasahiro Yamada
9483abfd887SMasahiro Yamadaendchoice
9493abfd887SMasahiro Yamada
9503abfd887SMasahiro Yamadaconfig SATAPWR
9513abfd887SMasahiro Yamada	string "SATA power pin"
9523abfd887SMasahiro Yamada	default ""
9533abfd887SMasahiro Yamada	help
9543abfd887SMasahiro Yamada	  Set the pins used to power the SATA. This takes a string in the
9553abfd887SMasahiro Yamada	  format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of
9563abfd887SMasahiro Yamada	  port H.
9573abfd887SMasahiro Yamada
9583abfd887SMasahiro Yamadaconfig GMAC_TX_DELAY
9593abfd887SMasahiro Yamada	int "GMAC Transmit Clock Delay Chain"
9603abfd887SMasahiro Yamada	default 0
9613abfd887SMasahiro Yamada	---help---
9623abfd887SMasahiro Yamada	Set the GMAC Transmit Clock Delay Chain value.
9633abfd887SMasahiro Yamada
9643abfd887SMasahiro Yamadaconfig SPL_STACK_R_ADDR
9653abfd887SMasahiro Yamada	default 0x4fe00000 if MACH_SUN4I
9663abfd887SMasahiro Yamada	default 0x4fe00000 if MACH_SUN5I
9673abfd887SMasahiro Yamada	default 0x4fe00000 if MACH_SUN6I
9683abfd887SMasahiro Yamada	default 0x4fe00000 if MACH_SUN7I
9693abfd887SMasahiro Yamada	default 0x4fe00000 if MACH_SUN8I
9703abfd887SMasahiro Yamada	default 0x2fe00000 if MACH_SUN9I
9713abfd887SMasahiro Yamada	default 0x4fe00000 if MACH_SUN50I
9726f796a9bSIcenowy Zheng	default 0x4fe00000 if MACH_SUN50I_H6
9733abfd887SMasahiro Yamada
974c2a7a7efSJagan Tekiconfig SPL_SPI_SUNXI
975c2a7a7efSJagan Teki	bool "Support for SPI Flash on Allwinner SoCs in SPL"
976c2a7a7efSJagan Teki	depends on MACH_SUN4I || MACH_SUN5I || MACH_SUN7I || MACH_SUNXI_H3_H5 || MACH_SUN50I
977c2a7a7efSJagan Teki	help
978c2a7a7efSJagan Teki	  Enable support for SPI Flash. This option allows SPL to read from
979c2a7a7efSJagan Teki	  sunxi SPI Flash. It uses the same method as the boot ROM, so does
980c2a7a7efSJagan Teki	  not need any extra configuration.
981c2a7a7efSJagan Teki
982c6c2c85eSIcenowy Zhengconfig PINE64_DT_SELECTION
983c6c2c85eSIcenowy Zheng	bool "Enable Pine64 device tree selection code"
984c6c2c85eSIcenowy Zheng	depends on MACH_SUN50I
985c6c2c85eSIcenowy Zheng	help
986c6c2c85eSIcenowy Zheng	  The original Pine A64 and Pine A64+ are similar but different
987c6c2c85eSIcenowy Zheng	  boards and can be differed by the DRAM size. Pine A64 has
988c6c2c85eSIcenowy Zheng	  512MiB DRAM, and Pine A64+ has 1GiB or 2GiB. By selecting this
989c6c2c85eSIcenowy Zheng	  option, the device tree selection code specific to Pine64 which
990c6c2c85eSIcenowy Zheng	  utilizes the DRAM size will be enabled.
991c6c2c85eSIcenowy Zheng
9923abfd887SMasahiro Yamadaendif
993