阅读:6858回复:3

S905X2 12V供电导致板子USB,HDMI无电压

楼主#
更多 发布于:2019-10-25 14:57
默认的公版参考设计有两种供电方式,5V和12V供电。BootLoader中代码默认是5v供电的配置。
在5V供电配置下,GPIOH_8拉高关闭VCC 5v(给USB和HDMI的电源),拉低打开5V。
在12V供电设计下,GPIOH_8拉低关闭VCC 5v(给USB和HDMI的电源),拉高打开5V。

所以我们的板子烧录公版默认的软件,USB,HDMI 没电。需要将GPIOH_8倒换过来。
改动如下:
bootloader\uboot-repo\bl33\board\amlogic\g12a_u212_v1\firmware\scp_task\pwr_ctrl.c
static void power_off_at_24M(unsigned int suspend_from)
{
 /*set gpioH_8 high to power off vcc 5v*/
 writel(readl(PREG_PAD_GPIO3_EN_N) | (1 << 8), PREG_PAD_GPIO3_EN_N);
 writel(readl(PERIPHS_PIN_MUX_C) & (~(0xf)), PERIPHS_PIN_MUX_C);


 /*set test_n low to power off vcck*/
 writel(readl(AO_GPIO_O) & (~(1 << 31)), AO_GPIO_O);
 writel(readl(AO_GPIO_O_EN_N) & (~(1 << 31)), AO_GPIO_O_EN_N);
 writel(readl(AO_RTI_PIN_MUX_REG1) & (~(0xf << 28)), AO_RTI_PIN_MUX_REG1);

 /*step down ee voltage*/
 set_vddee_voltage(CONFIG_VDDEE_SLEEP_VOLTAGE);
}

static void power_on_at_24M(unsigned int suspend_from)
{
 /*step up ee voltage*/
 set_vddee_voltage(CONFIG_VDDEE_INIT_VOLTAGE);

 /*set test_n low to power on vcck*/
 writel(readl(AO_GPIO_O) | (1 << 31), AO_GPIO_O);
 writel(readl(AO_GPIO_O_EN_N) & (~(1 << 31)), AO_GPIO_O_EN_N);
 writel(readl(AO_RTI_PIN_MUX_REG1) & (~(0xf << 28)), AO_RTI_PIN_MUX_REG1);
 _udelay(100);

 /*set gpioH_8 low to power on vcc 5v*/
 writel(readl(PREG_PAD_GPIO3_EN_N) & (~(1 << 8)), PREG_PAD_GPIO3_EN_N);
 writel(readl(PERIPHS_PIN_MUX_C) & (~(0xf)), PERIPHS_PIN_MUX_C);
 _udelay(10000);
}

\bl33\board\amlogic\g12a_u212_v1\g12a_u212_v1.c
int board_init(void)
{
    //Please keep CONFIG_AML_V2_FACTORY_BURN at first place of board_init
    //As NOT NEED other board init If USB BOOT MODE
#ifdef CONFIG_AML_V2_FACTORY_BURN
 if ((0x1b8ec003 != readl(P_PREG_STICKY_REG2)) && (0x1b8ec004 != readl(P_PREG_STICKY_REG2))) {
 aml_try_factory_usb_burning(0, gd->bd);
 }
#endif// #ifdef CONFIG_AML_V2_FACTORY_BURN

 //set GPIOH_8 high to enable vcc 5v
writel(readl(PREG_PAD_GPIO3_EN_N) | (1 << 8), PREG_PAD_GPIO3_EN_N);
writel(readl(PERIPHS_PIN_MUX_C) & (~(0xf)), PERIPHS_PIN_MUX_C);

#ifdef CONFIG_USB_XHCI_AMLOGIC_V2
 board_usb_pll_disable(&g_usb_config_GXL_skt);
 board_usb_init(&g_usb_config_GXL_skt,BOARD_USB_MODE_HOST);
#endif /*CONFIG_USB_XHCI_AMLOGIC*/

#if 0
 aml_pwm_cal_init(0);
#endif//
#ifdef CONFIG_AML_NAND
 extern int amlnf_init(unsigned char flag);
 amlnf_init(0);

然后命令行下,使用TF卡烧录Uboot(不能使用USB升级,因为这种情况下,USB,HDMI都没有电无法工作):
sdc_update bootloader u-boot.bin

最新喜欢:

阿赞88阿赞88 zhaoyf13zhaoyf...
If you have nothing to lose, then you can do anything.
沙发#
发布于:2019-10-28 09:20
[url]http://190.lsal.cn/195/1329.gif?0728100424873[/url]
板凳#
发布于:2019-11-04 14:16
USB应该是可以用的吧,不然flash里面的固件怎么来的?
地板#
发布于:2019-11-04 14:41
之前搞这个找了半天才改好,我怎么没早发现这个网站。。。。。
游客

返回顶部