# The Astar MID756 is a 7" tablet using the A33 SoC with a 800x480 LCD screen,
# 512M RAM, 8G ROM and integrated sdio wifi.
#
# Also see: http://linux-sunxi.org/Softwinner_astar-rda
CONFIG_SPL=y
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
CONFIG_FDTFILE="sun8i-a33-astar-mid756.dtb"
CONFIG_USB_MUSB_SUNXI=y
CONFIG_USB0_VBUS_PIN="AXP0-VBUS-ENABLE"
CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT"
CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:87,ri:168,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0"
CONFIG_VIDEO_LCD_DCLK_PHASE=0
CONFIG_VIDEO_LCD_POWER="PH7"
CONFIG_VIDEO_LCD_BL_EN="PH6"
CONFIG_VIDEO_LCD_BL_PWM="PH0"
CONFIG_ARM=y
CONFIG_ARCH_SUNXI=y
CONFIG_MACH_SUN8I_A33=y
CONFIG_DRAM_CLK=480
# zq = 0x3bbb
CONFIG_DRAM_ZQ=15291
# Wifi power
CONFIG_AXP221_DLDO1_VOLT=3300
# aldo1 is connected to VCC-IO, VCC-PD, VCC-USB and VCC-HP
CONFIG_AXP221_ALDO1_VOLT=3000
