]> git.sur5r.net Git - u-boot/blobdiff - board/sunxi/board.c
sunxi: Fix gmac not working due to cpu_eth_init no longer being called
[u-boot] / board / sunxi / board.c
index 386e2e04c219bdf4ffe07b2178f1f708c84744e2..e16718f30871e8aa57adcb4e438fba31bc98801c 100644 (file)
@@ -25,6 +25,7 @@
 #include <asm/io.h>
 #include <nand.h>
 #include <net.h>
+#include <sy8106a.h>
 
 #if defined CONFIG_VIDEO_LCD_PANEL_I2C && !(defined CONFIG_SPL_BUILD)
 /* So that we can use pin names in Kconfig and sunxi_name_to_gpio() */
@@ -89,6 +90,11 @@ int board_init(void)
        if (ret)
                return ret;
 
+#ifdef CONFIG_MACPWR
+       gpio_request(CONFIG_MACPWR, "macpwr");
+       gpio_direction_output(CONFIG_MACPWR, 1);
+#endif
+
        /* Uses dm gpio code so do this here and not in i2c_init_board() */
        return soft_i2c_board_init();
 }
@@ -336,8 +342,8 @@ int board_mmc_init(bd_t *bis)
        if (!sunxi_mmc_has_egon_boot_signature(mmc0) &&
            sunxi_mmc_has_egon_boot_signature(mmc1)) {
                /* Booting from emmc / mmc2, swap */
-               mmc0->block_dev.dev = 1;
-               mmc1->block_dev.dev = 0;
+               mmc0->block_dev.devnum = 1;
+               mmc1->block_dev.devnum = 0;
        }
 #endif
 
@@ -422,6 +428,12 @@ void i2c_init_board(void)
        clock_twi_onoff(4, 1);
 #endif
 #endif
+
+#ifdef CONFIG_R_I2C_ENABLE
+       clock_twi_onoff(5, 1);
+       sunxi_gpio_set_cfgpin(SUNXI_GPL(0), SUN8I_H3_GPL_R_TWI);
+       sunxi_gpio_set_cfgpin(SUNXI_GPL(1), SUN8I_H3_GPL_R_TWI);
+#endif
 }
 
 #ifdef CONFIG_SPL_BUILD
@@ -430,6 +442,10 @@ void sunxi_board_init(void)
        int power_failed = 0;
        unsigned long ramsize;
 
+#ifdef CONFIG_SY8106A_POWER
+       power_failed = sy8106a_set_vout1(CONFIG_SY8106A_VOUT1_VOLT);
+#endif
+
 #if defined CONFIG_AXP152_POWER || defined CONFIG_AXP209_POWER || \
        defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
        power_failed = axp_init();
@@ -446,24 +462,22 @@ void sunxi_board_init(void)
        power_failed |= axp_set_dcdc5(CONFIG_AXP_DCDC5_VOLT);
 #endif
 
-#ifdef CONFIG_AXP221_POWER
+#if defined CONFIG_AXP221_POWER || defined CONFIG_AXP818_POWER
        power_failed |= axp_set_aldo1(CONFIG_AXP_ALDO1_VOLT);
 #endif
-#ifndef CONFIG_AXP818_POWER
        power_failed |= axp_set_aldo2(CONFIG_AXP_ALDO2_VOLT);
-#endif
-#if !defined(CONFIG_AXP152_POWER) && !defined(CONFIG_AXP818_POWER)
+#if !defined(CONFIG_AXP152_POWER)
        power_failed |= axp_set_aldo3(CONFIG_AXP_ALDO3_VOLT);
 #endif
 #ifdef CONFIG_AXP209_POWER
        power_failed |= axp_set_aldo4(CONFIG_AXP_ALDO4_VOLT);
 #endif
 
-#ifdef CONFIG_AXP221_POWER
-       power_failed |= axp_set_dldo1(CONFIG_AXP_DLDO1_VOLT);
-       power_failed |= axp_set_dldo2(CONFIG_AXP_DLDO2_VOLT);
-       power_failed |= axp_set_dldo3(CONFIG_AXP_DLDO3_VOLT);
-       power_failed |= axp_set_dldo4(CONFIG_AXP_DLDO4_VOLT);
+#if defined(CONFIG_AXP221_POWER) || defined(CONFIG_AXP818_POWER)
+       power_failed |= axp_set_dldo(1, CONFIG_AXP_DLDO1_VOLT);
+       power_failed |= axp_set_dldo(2, CONFIG_AXP_DLDO2_VOLT);
+       power_failed |= axp_set_dldo(3, CONFIG_AXP_DLDO3_VOLT);
+       power_failed |= axp_set_dldo(4, CONFIG_AXP_DLDO4_VOLT);
        power_failed |= axp_set_eldo(1, CONFIG_AXP_ELDO1_VOLT);
        power_failed |= axp_set_eldo(2, CONFIG_AXP_ELDO2_VOLT);
        power_failed |= axp_set_eldo(3, CONFIG_AXP_ELDO3_VOLT);