From 1b26bab12e85e8b0d382d6775e40d14445249574 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Fri, 29 May 2015 16:55:43 +0200 Subject: [PATCH 01/16] mmc: Protect `mmc_initialize` from initialising mmc multiple times MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit `mmc_initialize` might be called multiple times leading to the mmc-controllers being initialised twice, and initialising the `mmc_devices` list head twice which may lead to memory leaks. Signed-off-by: Daniel Kochmański CC: Roy Spliet Cc: Ian Campbell CC: Pantelis Antoniou Acked-by: Hans de Goede Signed-off-by: Hans de Goede --- drivers/mmc/mmc.c | 5 +++++ 1 file changed, 5 insertions(+) diff --git a/drivers/mmc/mmc.c b/drivers/mmc/mmc.c index da47037a30..f12546ac51 100644 --- a/drivers/mmc/mmc.c +++ b/drivers/mmc/mmc.c @@ -1762,6 +1762,11 @@ static void do_preinit(void) int mmc_initialize(bd_t *bis) { + static int initialized = 0; + if (initialized) /* Avoid initializing mmc multiple times */ + return 0; + initialized = 1; + INIT_LIST_HEAD (&mmc_devices); cur_dev_num = 0; From 645c48f50eab307a9879a82c4d066e74114ec78a Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Fri, 29 May 2015 16:55:41 +0200 Subject: [PATCH 02/16] sunxi: Create helper function veryfing valid boot signature on MMC MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit This patch extracts checking for valid SD card "eGON.BT0" signature from `board_mmc_init` into function `sunxi_mmc_has_egon_boot_signature`. Buffer for mmc sector is allocated and freed at runtime. `panic` is triggered on malloc failure. Signed-off-by: Daniel Kochmański CC: Roy Spliet Cc: Ian Campbell [hdegoede@redhat.com: Small bugfix to make it work for devs other then mmc0] Acked-by: Hans de Goede Signed-off-by: Hans de Goede --- arch/arm/include/asm/arch-sunxi/mmc.h | 1 + board/sunxi/board.c | 8 ++------ drivers/mmc/sunxi_mmc.c | 17 +++++++++++++++++ 3 files changed, 20 insertions(+), 6 deletions(-) diff --git a/arch/arm/include/asm/arch-sunxi/mmc.h b/arch/arm/include/asm/arch-sunxi/mmc.h index cb52e64873..3da360b177 100644 --- a/arch/arm/include/asm/arch-sunxi/mmc.h +++ b/arch/arm/include/asm/arch-sunxi/mmc.h @@ -127,4 +127,5 @@ struct sunxi_mmc { #define SUNXI_MMC_COMMON_RESET (1 << 18) struct mmc *sunxi_mmc_init(int sdc_no); +int sunxi_mmc_has_egon_boot_signature(struct mmc *mmc); #endif /* _SUNXI_MMC_H */ diff --git a/board/sunxi/board.c b/board/sunxi/board.c index ed60e74808..76e4b9bcc1 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -299,12 +299,8 @@ int board_mmc_init(bd_t *bis) * Both mmc0 and mmc2 are bootable, figure out where we're booting * from. Try mmc0 first, just like the brom does. */ - if (mmc_getcd(mmc0) && mmc_init(mmc0) == 0 && - mmc0->block_dev.block_read(0, 16, 1, buf) == 1) { - buf[12] = 0; - if (strcmp(&buf[4], "eGON.BT0") == 0) - return 0; - } + if (sunxi_mmc_has_egon_boot_signature(mmc0)) + return 0; /* no bootable card in mmc0, so we must be booting from mmc2, swap */ mmc0->block_dev.dev = 1; diff --git a/drivers/mmc/sunxi_mmc.c b/drivers/mmc/sunxi_mmc.c index e7ab828a8f..f9b9493c89 100644 --- a/drivers/mmc/sunxi_mmc.c +++ b/drivers/mmc/sunxi_mmc.c @@ -433,6 +433,23 @@ static int sunxi_mmc_getcd(struct mmc *mmc) return !gpio_get_value(cd_pin); } +int sunxi_mmc_has_egon_boot_signature(struct mmc *mmc) +{ + char *buf = malloc(512); + int valid_signature = 0; + + if (buf == NULL) + panic("Failed to allocate memory\n"); + + if (mmc_getcd(mmc) && mmc_init(mmc) == 0 && + mmc->block_dev.block_read(mmc->block_dev.dev, 16, 1, buf) == 1 && + strncmp(&buf[4], "eGON.BT0", 8) == 0) + valid_signature = 1; + + free(buf); + return valid_signature; +} + static const struct mmc_ops sunxi_mmc_ops = { .send_cmd = sunxi_mmc_send_cmd, .set_ios = sunxi_mmc_set_ios, From a151403fd2da05a6f05d1f0e16ff7b8986a73823 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Fri, 29 May 2015 16:55:42 +0200 Subject: [PATCH 03/16] sunxi: spl: Detect at runtime where SPL was read from MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Make possible using a single `u-boot-sunxi-with-spl.bin` binary for both NAND memory and SD card. Detection where SPL was read from is implemented in `spl_boot_device`. Signed-off-by: Daniel Kochmański CC: Roy Spliet Cc: Ian Campbell [hdegoede@redhat.com: Some small coding style fixes] Acked-by: Hans De Goede Signed-off-by: Hans de Goede --- arch/arm/cpu/armv7/sunxi/board.c | 52 ++++++++++++++++++++++++-------- 1 file changed, 40 insertions(+), 12 deletions(-) diff --git a/arch/arm/cpu/armv7/sunxi/board.c b/arch/arm/cpu/armv7/sunxi/board.c index 5f39aa07cf..f01846ef9a 100644 --- a/arch/arm/cpu/armv7/sunxi/board.c +++ b/arch/arm/cpu/armv7/sunxi/board.c @@ -11,6 +11,7 @@ */ #include +#include #include #include #ifdef CONFIG_SPL_BUILD @@ -22,6 +23,7 @@ #include #include #include +#include #include @@ -121,17 +123,18 @@ void s_init(void) } #ifdef CONFIG_SPL_BUILD +DECLARE_GLOBAL_DATA_PTR; + /* The sunxi internal brom will try to loader external bootloader * from mmc0, nand flash, mmc2. - * Unfortunately we can't check how SPL was loaded so assume - * it's always the first SD/MMC controller */ u32 spl_boot_device(void) { + struct mmc *mmc0, *mmc1; /* - * When booting from the SD card, the "eGON.BT0" signature is expected - * to be found in memory at the address 0x0004 (see the "mksunxiboot" - * tool, which generates this header). + * When booting from the SD card or NAND memory, the "eGON.BT0" + * signature is expected to be found in memory at the address 0x0004 + * (see the "mksunxiboot" tool, which generates this header). * * When booting in the FEL mode over USB, this signature is patched in * memory and replaced with something else by the 'fel' tool. This other @@ -139,15 +142,40 @@ u32 spl_boot_device(void) * valid bootable SD card image (because the BROM would refuse to * execute the SPL in this case). * - * This branch is just making a decision at runtime whether to load - * the main u-boot binary from the SD card (if the "eGON.BT0" signature - * is found) or return to the FEL code in the BROM to wait and receive - * the main u-boot binary over USB. + * This checks for the signature and if it is not found returns to + * the FEL code in the BROM to wait and receive the main u-boot + * binary over USB. If it is found, it determines where SPL was + * read from. */ - if (readl(4) == 0x4E4F4765 && readl(8) == 0x3054422E) /* eGON.BT0 */ - return BOOT_DEVICE_MMC1; - else + if (readl(4) != 0x4E4F4765 || readl(8) != 0x3054422E) /* eGON.BT0 */ return BOOT_DEVICE_BOARD; + + /* The BROM will try to boot from mmc0 first, so try that first. */ + mmc_initialize(gd->bd); + mmc0 = find_mmc_device(0); + if (sunxi_mmc_has_egon_boot_signature(mmc0)) + return BOOT_DEVICE_MMC1; + + /* Fallback to booting NAND if enabled. */ + if (IS_ENABLED(CONFIG_SPL_NAND_SUPPORT)) + return BOOT_DEVICE_NAND; + + if (CONFIG_MMC_SUNXI_SLOT_EXTRA == 2) { + mmc1 = find_mmc_device(1); + if (sunxi_mmc_has_egon_boot_signature(mmc1)) { + /* + * spl_mmc.c: spl_mmc_load_image() is hard-coded to + * use find_mmc_device(0), no matter what we + * return. Swap mmc0 and mmc2 to make this work. + */ + mmc0->block_dev.dev = 1; + mmc1->block_dev.dev = 0; + return BOOT_DEVICE_MMC2; + } + } + + panic("Could not determine boot source\n"); + return -1; /* Never reached */ } /* No confirmation data available in SPL yet. Hardcode bootmode */ From bf5b9b103c9ad9fa041b9913fb3a031c14566f5d Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Daniel=20Kochma=C5=84ski?= Date: Fri, 29 May 2015 17:21:00 +0200 Subject: [PATCH 04/16] sunxi: spl: Remove redundant check from `board_mmc_init` for signature MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Remove the boot signature check from board_mmc_init() in spl mode, as it is already done in spl_boot_device() in this case, and update the comments to reflect this. Signed-off-by: Daniel Kochmański CC: Roy Spliet Cc: Ian Campbell [hdegoede@redhat.com: Disable the check only for SPL instead of always] Acked-by: Hans De Goede Signed-off-by: Hans de Goede --- board/sunxi/board.c | 20 +++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/board/sunxi/board.c b/board/sunxi/board.c index 76e4b9bcc1..7220af3454 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -294,17 +294,19 @@ int board_mmc_init(bd_t *bis) return -1; #endif -#if CONFIG_MMC_SUNXI_SLOT == 0 && CONFIG_MMC_SUNXI_SLOT_EXTRA == 2 +#if !defined(CONFIG_SPL_BUILD) && CONFIG_MMC_SUNXI_SLOT_EXTRA == 2 /* - * Both mmc0 and mmc2 are bootable, figure out where we're booting - * from. Try mmc0 first, just like the brom does. + * On systems with an emmc (mmc2), figure out if we are booting from + * the emmc and if we are make it "mmc dev 0" so that boot.scr, etc. + * are searched there first. Note we only do this for u-boot proper, + * not for the SPL, see spl_boot_device(). */ - if (sunxi_mmc_has_egon_boot_signature(mmc0)) - return 0; - - /* no bootable card in mmc0, so we must be booting from mmc2, swap */ - mmc0->block_dev.dev = 1; - mmc1->block_dev.dev = 0; + 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; + } #endif return 0; From d08980de0291951a60d62c6cf3483f7081b1700c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sat, 25 Jul 2015 11:20:38 +0200 Subject: [PATCH 05/16] sunxi: Remove bogus uart entry from utoo-p66 dts file At one point in time the utoo-p66 dts file in the kernel had a bogus uart entry, and it seems like we synced with the kernel at just the wrong moment. This commit removes the bogus uart entry, which breaks booting the utoo-p66 when DM_SERIAL=y. Signed-off-by: Hans de Goede --- arch/arm/dts/sun5i-a13-utoo-p66.dts | 14 -------------- 1 file changed, 14 deletions(-) diff --git a/arch/arm/dts/sun5i-a13-utoo-p66.dts b/arch/arm/dts/sun5i-a13-utoo-p66.dts index 8c1bca7039..514f159a14 100644 --- a/arch/arm/dts/sun5i-a13-utoo-p66.dts +++ b/arch/arm/dts/sun5i-a13-utoo-p66.dts @@ -52,14 +52,6 @@ model = "Utoo P66"; compatible = "utoo,p66", "allwinner,sun5i-a13"; - aliases { - serial0 = &uart1; - }; - - chosen { - stdout-path = "serial0:115200n8"; - }; - i2c_lcd: i2c@0 { /* The lcd panel i2c interface is hooked up via gpios */ compatible = "i2c-gpio"; @@ -227,12 +219,6 @@ status = "okay"; }; -&uart1 { - pinctrl-names = "default"; - pinctrl-0 = <&uart1_pins_b>; - status = "okay"; -}; - &usbphy { usb0_vbus-supply = <®_usb0_vbus>; usb1_vbus-supply = <®_ldo3>; From 4536882710b598556b943f58e7713c92ada7ec5f Mon Sep 17 00:00:00 2001 From: Tom Rini Date: Tue, 30 Jun 2015 16:51:15 -0400 Subject: [PATCH 06/16] sunxi: Update selects in arch/arm/Kconfig for DM conversions With certain features being convert to DM now we want sunxi to default to having DM enabled for ETH/SERIAL and USB in some cases. Cc: Hans de Goede Cc: Ian Campbell Signed-off-by: Tom Rini [hdegoede@redhat.com: Also select CONFIG_USB for all sunxi builds] Signed-off-by: Hans de Goede Acked-by: Ian Campbell Reviewed-by: Simon Glass --- arch/arm/Kconfig | 4 ++++ configs/A10-OLinuXino-Lime_defconfig | 7 ++----- configs/A10s-OLinuXino-M_defconfig | 7 ++----- configs/A13-OLinuXinoM_defconfig | 7 ++----- configs/A13-OLinuXino_defconfig | 7 ++----- configs/A20-OLinuXino-Lime2_defconfig | 7 ++----- configs/A20-OLinuXino-Lime_defconfig | 7 ++----- configs/A20-OLinuXino_MICRO_defconfig | 7 ++----- configs/Ainol_AW1_defconfig | 2 -- configs/Ampe_A76_defconfig | 2 -- configs/Auxtek-T004_defconfig | 7 ++----- configs/Bananapi_defconfig | 7 ++----- configs/Bananapro_defconfig | 7 ++----- configs/CSQ_CS908_defconfig | 7 ++----- configs/Chuwi_V7_CW0825_defconfig | 2 -- configs/Colombus_defconfig | 7 ++----- configs/Cubieboard2_defconfig | 7 ++----- configs/Cubieboard_defconfig | 7 ++----- configs/Cubietruck_defconfig | 7 ++----- configs/Et_q8_v1_6_defconfig | 2 -- configs/Hummingbird_A31_defconfig | 7 ++----- configs/Hyundai_A7HD_defconfig | 2 -- configs/Ippo_q8h_v1_2_a33_1024x600_defconfig | 2 -- configs/Ippo_q8h_v1_2_defconfig | 2 -- configs/Ippo_q8h_v5_defconfig | 2 -- configs/Linksprite_pcDuino3_Nano_defconfig | 7 ++----- configs/Linksprite_pcDuino3_defconfig | 7 ++----- configs/Linksprite_pcDuino_defconfig | 7 ++----- configs/MK808C_defconfig | 7 ++----- configs/MSI_Primo73_defconfig | 4 ---- configs/MSI_Primo81_defconfig | 3 --- configs/Marsboard_A10_defconfig | 7 ++----- configs/Mele_A1000G_quad_defconfig | 7 ++----- configs/Mele_A1000_defconfig | 7 ++----- configs/Mele_I7_defconfig | 7 ++----- configs/Mele_M3_defconfig | 7 ++----- configs/Mele_M5_defconfig | 7 ++----- configs/Mele_M9_defconfig | 7 ++----- configs/Merrii_A80_Optimus_defconfig | 4 ---- configs/Mini-X_defconfig | 7 ++----- configs/Orangepi_defconfig | 7 ++----- configs/Orangepi_mini_defconfig | 7 ++----- configs/Sinlinx_SinA33_defconfig | 4 ---- configs/TZX-Q8-713B7_defconfig | 2 -- configs/UTOO_P66_defconfig | 2 +- configs/Wexler_TAB7200_defconfig | 7 ++----- configs/Wits_Pro_A20_DKT_defconfig | 7 ++----- configs/Yones_Toptech_BD1078_defconfig | 2 -- configs/ba10_tv_box_defconfig | 7 ++----- configs/forfun_q88db_defconfig | 2 -- configs/ga10h_v1_1_defconfig | 2 -- configs/i12-tvbox_defconfig | 7 ++----- configs/iNet_3F_defconfig | 2 -- configs/iNet_3W_defconfig | 2 -- configs/iNet_86VS_defconfig | 2 -- configs/jesurun_q5_defconfig | 7 ++----- configs/mixtile_loftq_defconfig | 7 ++----- configs/mk802_a10s_defconfig | 7 ++----- configs/mk802_defconfig | 5 +---- configs/mk802ii_defconfig | 7 ++----- configs/r7-tv-dongle_defconfig | 7 ++----- configs/sunxi_Gemei_G9_defconfig | 7 ++----- 62 files changed, 86 insertions(+), 250 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 506463c12c..56abaf6c40 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -645,9 +645,13 @@ config ARCH_SUNXI bool "Support sunxi (Allwinner) SoCs" select DM select DM_GPIO + select DM_ETH + select DM_SERIAL + select DM_USB if !USB_MUSB_SUNXI select OF_CONTROL select OF_SEPARATE select SPL_DISABLE_OF_CONTROL + select USB config TARGET_SNOWBALL bool "Support snowball" diff --git a/configs/A10-OLinuXino-Lime_defconfig b/configs/A10-OLinuXino-Lime_defconfig index 87ade906ce..0245bfc763 100644 --- a/configs/A10-OLinuXino-Lime_defconfig +++ b/configs/A10-OLinuXino-Lime_defconfig @@ -7,11 +7,8 @@ CONFIG_SYS_CLK_FREQ=912000000 CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-olinuxino-lime" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPC(3),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPC(3)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/A10s-OLinuXino-M_defconfig b/configs/A10s-OLinuXino-M_defconfig index 5a450af7bd..7783c7daf4 100644 --- a/configs/A10s-OLinuXino-M_defconfig +++ b/configs/A10s-OLinuXino-M_defconfig @@ -9,11 +9,8 @@ CONFIG_USB1_VBUS_PIN="PB10" CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-olinuxino-micro" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER,SUNXI_EMAC,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER,SUNXI_EMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/A13-OLinuXinoM_defconfig b/configs/A13-OLinuXinoM_defconfig index 213ece6c4c..dcaaff9220 100644 --- a/configs/A13-OLinuXinoM_defconfig +++ b/configs/A13-OLinuXinoM_defconfig @@ -13,11 +13,8 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2" CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino-micro" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/A13-OLinuXino_defconfig b/configs/A13-OLinuXino_defconfig index d71c11cbbd..4b4337223c 100644 --- a/configs/A13-OLinuXino_defconfig +++ b/configs/A13-OLinuXino_defconfig @@ -14,11 +14,8 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2" CONFIG_DEFAULT_DEVICE_TREE="sun5i-a13-olinuxino" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/A20-OLinuXino-Lime2_defconfig b/configs/A20-OLinuXino-Lime2_defconfig index 6445b25eb1..c9d0f47123 100644 --- a/configs/A20-OLinuXino-Lime2_defconfig +++ b/configs/A20-OLinuXino-Lime2_defconfig @@ -8,12 +8,9 @@ CONFIG_USB0_VBUS_DET="PH5" CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-lime2" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPC(3),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPC(3)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/A20-OLinuXino-Lime_defconfig b/configs/A20-OLinuXino-Lime_defconfig index 650670fb1e..fb1f24002c 100644 --- a/configs/A20-OLinuXino-Lime_defconfig +++ b/configs/A20-OLinuXino-Lime_defconfig @@ -5,12 +5,9 @@ CONFIG_DRAM_CLK=480 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-lime" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPC(3),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPC(3)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/A20-OLinuXino_MICRO_defconfig b/configs/A20-OLinuXino_MICRO_defconfig index 3f925049c4..a7f1395887 100644 --- a/configs/A20-OLinuXino_MICRO_defconfig +++ b/configs/A20-OLinuXino_MICRO_defconfig @@ -9,12 +9,9 @@ CONFIG_VIDEO_VGA=y CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-olinuxino-micro" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPB(8),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPB(8)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Ainol_AW1_defconfig b/configs/Ainol_AW1_defconfig index f94cd5a2ce..e1262e67ea 100644 --- a/configs/Ainol_AW1_defconfig +++ b/configs/Ainol_AW1_defconfig @@ -19,5 +19,3 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/Ampe_A76_defconfig b/configs/Ampe_A76_defconfig index 99aa141e52..2ee0307c0c 100644 --- a/configs/Ampe_A76_defconfig +++ b/configs/Ampe_A76_defconfig @@ -18,5 +18,3 @@ CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/Auxtek-T004_defconfig b/configs/Auxtek-T004_defconfig index 016ccd9e99..c0191760b2 100644 --- a/configs/Auxtek-T004_defconfig +++ b/configs/Auxtek-T004_defconfig @@ -6,11 +6,8 @@ CONFIG_USB1_VBUS_PIN="PG13" CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-auxtek-t004" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Bananapi_defconfig b/configs/Bananapi_defconfig index 3e186f6d0e..4b9ef35f58 100644 --- a/configs/Bananapi_defconfig +++ b/configs/Bananapi_defconfig @@ -6,12 +6,9 @@ CONFIG_GMAC_TX_DELAY=3 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-bananapi" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Bananapro_defconfig b/configs/Bananapro_defconfig index 5bd2fd6a59..5506ab3231 100644 --- a/configs/Bananapro_defconfig +++ b/configs/Bananapro_defconfig @@ -8,12 +8,9 @@ CONFIG_GMAC_TX_DELAY=3 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-bananapro" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/CSQ_CS908_defconfig b/configs/CSQ_CS908_defconfig index 54f4846e4a..b92b6a3df0 100644 --- a/configs/CSQ_CS908_defconfig +++ b/configs/CSQ_CS908_defconfig @@ -7,14 +7,11 @@ CONFIG_USB2_VBUS_PIN="" CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31s-cs908" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI,SUNXI_GMAC" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3300 -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Chuwi_V7_CW0825_defconfig b/configs/Chuwi_V7_CW0825_defconfig index 3a2a219f48..cb659c902c 100644 --- a/configs/Chuwi_V7_CW0825_defconfig +++ b/configs/Chuwi_V7_CW0825_defconfig @@ -18,8 +18,6 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y CONFIG_VIDEO_LCD_SPI_CS="PA0" CONFIG_VIDEO_LCD_SPI_SCLK="PA1" CONFIG_VIDEO_LCD_SPI_MOSI="PA2" diff --git a/configs/Colombus_defconfig b/configs/Colombus_defconfig index 9d84901d00..1ae8c168e8 100644 --- a/configs/Colombus_defconfig +++ b/configs/Colombus_defconfig @@ -7,13 +7,10 @@ CONFIG_USB1_VBUS_PIN="" CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-colombus" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI,SUNXI_GMAC" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_ALDO1_VOLT=3300 -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Cubieboard2_defconfig b/configs/Cubieboard2_defconfig index 0fbaa23371..9bcaed1cfc 100644 --- a/configs/Cubieboard2_defconfig +++ b/configs/Cubieboard2_defconfig @@ -6,12 +6,9 @@ CONFIG_MMC0_CD_PIN="PH1" CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-cubieboard2" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPB(8),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPB(8)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Cubieboard_defconfig b/configs/Cubieboard_defconfig index 0d0051e0d5..fa60ddf415 100644 --- a/configs/Cubieboard_defconfig +++ b/configs/Cubieboard_defconfig @@ -5,11 +5,8 @@ CONFIG_DRAM_CLK=480 CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-cubieboard" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPB(8),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,AHCI,SATAPWR=SUNXI_GPB(8)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Cubietruck_defconfig b/configs/Cubietruck_defconfig index 57a38477e6..b8809c806b 100644 --- a/configs/Cubietruck_defconfig +++ b/configs/Cubietruck_defconfig @@ -7,12 +7,9 @@ CONFIG_GMAC_TX_DELAY=1 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-cubietruck" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPH(12),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPH(12)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Et_q8_v1_6_defconfig b/configs/Et_q8_v1_6_defconfig index e36895c2d5..278334710f 100644 --- a/configs/Et_q8_v1_6_defconfig +++ b/configs/Et_q8_v1_6_defconfig @@ -19,7 +19,5 @@ CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3000 diff --git a/configs/Hummingbird_A31_defconfig b/configs/Hummingbird_A31_defconfig index 02c657a877..35c746c968 100644 --- a/configs/Hummingbird_A31_defconfig +++ b/configs/Hummingbird_A31_defconfig @@ -9,13 +9,10 @@ CONFIG_VIDEO_VGA_EXTERNAL_DAC_EN="PH25" CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-hummingbird" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPA(21)" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPA(21)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_ALDO1_VOLT=3300 -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Hyundai_A7HD_defconfig b/configs/Hyundai_A7HD_defconfig index 7800fa2a16..06fdd2a62a 100644 --- a/configs/Hyundai_A7HD_defconfig +++ b/configs/Hyundai_A7HD_defconfig @@ -20,5 +20,3 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig b/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig index 8e26f37598..012a25bc67 100644 --- a/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig +++ b/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig @@ -19,7 +19,5 @@ CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3000 diff --git a/configs/Ippo_q8h_v1_2_defconfig b/configs/Ippo_q8h_v1_2_defconfig index ab622106d5..783467b898 100644 --- a/configs/Ippo_q8h_v1_2_defconfig +++ b/configs/Ippo_q8h_v1_2_defconfig @@ -19,7 +19,5 @@ CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3000 diff --git a/configs/Ippo_q8h_v5_defconfig b/configs/Ippo_q8h_v5_defconfig index 312a38ca18..29e3c89510 100644 --- a/configs/Ippo_q8h_v5_defconfig +++ b/configs/Ippo_q8h_v5_defconfig @@ -19,7 +19,5 @@ CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3000 diff --git a/configs/Linksprite_pcDuino3_Nano_defconfig b/configs/Linksprite_pcDuino3_Nano_defconfig index 04ec7ab070..0b64b60c3c 100644 --- a/configs/Linksprite_pcDuino3_Nano_defconfig +++ b/configs/Linksprite_pcDuino3_Nano_defconfig @@ -8,12 +8,9 @@ CONFIG_GMAC_TX_DELAY=3 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3-nano" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,SATAPWR=SUNXI_GPH(2)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Linksprite_pcDuino3_defconfig b/configs/Linksprite_pcDuino3_defconfig index 6d7690d650..cced032305 100644 --- a/configs/Linksprite_pcDuino3_defconfig +++ b/configs/Linksprite_pcDuino3_defconfig @@ -6,12 +6,9 @@ CONFIG_DRAM_ZQ=122 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-pcduino3" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,AHCI,SATAPWR=SUNXI_GPH(2)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Linksprite_pcDuino_defconfig b/configs/Linksprite_pcDuino_defconfig index ddd162fe15..de448908ec 100644 --- a/configs/Linksprite_pcDuino_defconfig +++ b/configs/Linksprite_pcDuino_defconfig @@ -5,11 +5,8 @@ CONFIG_DRAM_CLK=408 CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-pcduino" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/MK808C_defconfig b/configs/MK808C_defconfig index a6db139f8b..5e374852ed 100644 --- a/configs/MK808C_defconfig +++ b/configs/MK808C_defconfig @@ -5,11 +5,8 @@ CONFIG_DRAM_CLK=384 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-mk808c" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/MSI_Primo73_defconfig b/configs/MSI_Primo73_defconfig index 6e0d24658c..7e835367d6 100644 --- a/configs/MSI_Primo73_defconfig +++ b/configs/MSI_Primo73_defconfig @@ -15,7 +15,3 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y diff --git a/configs/MSI_Primo81_defconfig b/configs/MSI_Primo81_defconfig index 9787e34ba2..b3b21cbd46 100644 --- a/configs/MSI_Primo81_defconfig +++ b/configs/MSI_Primo81_defconfig @@ -18,8 +18,6 @@ CONFIG_SPL=y # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_VIDEO_LCD_SSD2828_TX_CLK=27 CONFIG_VIDEO_LCD_SSD2828_RESET="PA26" @@ -27,4 +25,3 @@ CONFIG_VIDEO_LCD_SPI_CS="PH9" CONFIG_VIDEO_LCD_SPI_SCLK="PH10" CONFIG_VIDEO_LCD_SPI_MOSI="PH11" CONFIG_VIDEO_LCD_SPI_MISO="PH12" -CONFIG_USB=y diff --git a/configs/Marsboard_A10_defconfig b/configs/Marsboard_A10_defconfig index ed41af6b81..493365916d 100644 --- a/configs/Marsboard_A10_defconfig +++ b/configs/Marsboard_A10_defconfig @@ -4,11 +4,8 @@ CONFIG_MACH_SUN4I=y CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-marsboard" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="SUNXI_EMAC,AHCI,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_EMAC,AHCI" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Mele_A1000G_quad_defconfig b/configs/Mele_A1000G_quad_defconfig index 6e0a4935fe..f32a9675d4 100644 --- a/configs/Mele_A1000G_quad_defconfig +++ b/configs/Mele_A1000G_quad_defconfig @@ -7,16 +7,13 @@ CONFIG_USB2_VBUS_PIN="" CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-mele-a1000g-quad" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI,SUNXI_GMAC" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DCDC1_VOLT=3300 CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_DLDO4_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3300 -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Mele_A1000_defconfig b/configs/Mele_A1000_defconfig index 983ffdc725..5e66d438ab 100644 --- a/configs/Mele_A1000_defconfig +++ b/configs/Mele_A1000_defconfig @@ -5,11 +5,8 @@ CONFIG_VIDEO_VGA=y CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-a1000" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,MACPWR=SUNXI_GPH(15),AHCI,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,MACPWR=SUNXI_GPH(15),AHCI" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Mele_I7_defconfig b/configs/Mele_I7_defconfig index 7f083a7504..774a92f381 100644 --- a/configs/Mele_I7_defconfig +++ b/configs/Mele_I7_defconfig @@ -7,16 +7,13 @@ CONFIG_USB2_VBUS_PIN="" CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-i7" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI,SUNXI_GMAC" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DCDC1_VOLT=3300 CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_DLDO4_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3300 -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Mele_M3_defconfig b/configs/Mele_M3_defconfig index 73d87c3787..d49826982f 100644 --- a/configs/Mele_M3_defconfig +++ b/configs/Mele_M3_defconfig @@ -8,12 +8,9 @@ CONFIG_VIDEO_VGA=y CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-m3" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Mele_M5_defconfig b/configs/Mele_M5_defconfig index 79c5901801..40f5daaaed 100644 --- a/configs/Mele_M5_defconfig +++ b/configs/Mele_M5_defconfig @@ -7,12 +7,9 @@ CONFIG_MMC0_CD_PIN="PH1" CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-m5" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC,AHCI,USB_EHCI,STATUSLED=234" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC,AHCI,STATUSLED=234" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Mele_M9_defconfig b/configs/Mele_M9_defconfig index e017ad78d5..b52e3c20ab 100644 --- a/configs/Mele_M9_defconfig +++ b/configs/Mele_M9_defconfig @@ -7,16 +7,13 @@ CONFIG_USB2_VBUS_PIN="" CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-m9" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI,SUNXI_GMAC" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DCDC1_VOLT=3300 CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_DLDO4_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3300 -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Merrii_A80_Optimus_defconfig b/configs/Merrii_A80_Optimus_defconfig index b02b1a34c8..8587bc8e7c 100644 --- a/configs/Merrii_A80_Optimus_defconfig +++ b/configs/Merrii_A80_Optimus_defconfig @@ -12,7 +12,3 @@ CONFIG_DEFAULT_DEVICE_TREE="sun9i-a80-optimus" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y diff --git a/configs/Mini-X_defconfig b/configs/Mini-X_defconfig index da57711134..d7d74a9f08 100644 --- a/configs/Mini-X_defconfig +++ b/configs/Mini-X_defconfig @@ -4,11 +4,8 @@ CONFIG_MACH_SUN4I=y CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-mini-xplus" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Orangepi_defconfig b/configs/Orangepi_defconfig index ba89a25a2a..f9408b1fdf 100644 --- a/configs/Orangepi_defconfig +++ b/configs/Orangepi_defconfig @@ -9,12 +9,9 @@ CONFIG_GMAC_TX_DELAY=3 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-orangepi" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Orangepi_mini_defconfig b/configs/Orangepi_mini_defconfig index 8f03815d91..1dc0e76788 100644 --- a/configs/Orangepi_mini_defconfig +++ b/configs/Orangepi_mini_defconfig @@ -11,12 +11,9 @@ CONFIG_GMAC_TX_DELAY=3 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-orangepi-mini" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPH(23),AHCI" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Sinlinx_SinA33_defconfig b/configs/Sinlinx_SinA33_defconfig index e9e62da101..720f3dc2d5 100644 --- a/configs/Sinlinx_SinA33_defconfig +++ b/configs/Sinlinx_SinA33_defconfig @@ -9,8 +9,4 @@ CONFIG_SPL=y # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_ALDO1_VOLT=3000 -CONFIG_USB=y -CONFIG_DM_USB=y diff --git a/configs/TZX-Q8-713B7_defconfig b/configs/TZX-Q8-713B7_defconfig index 68961fc54e..6a716bd1a8 100644 --- a/configs/TZX-Q8-713B7_defconfig +++ b/configs/TZX-Q8-713B7_defconfig @@ -18,5 +18,3 @@ CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=2,AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/UTOO_P66_defconfig b/configs/UTOO_P66_defconfig index c3b13b7bee..d59a0448eb 100644 --- a/configs/UTOO_P66_defconfig +++ b/configs/UTOO_P66_defconfig @@ -23,4 +23,4 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y +# CONFIG_REQUIRE_SERIAL_CONSOLE is not set diff --git a/configs/Wexler_TAB7200_defconfig b/configs/Wexler_TAB7200_defconfig index d9180c7fe5..eadceb2757 100644 --- a/configs/Wexler_TAB7200_defconfig +++ b/configs/Wexler_TAB7200_defconfig @@ -9,11 +9,8 @@ CONFIG_VIDEO_LCD_BL_PWM="PB2" CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-wexler-tab7200" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Wits_Pro_A20_DKT_defconfig b/configs/Wits_Pro_A20_DKT_defconfig index bb8dd29937..66b51bca7c 100644 --- a/configs/Wits_Pro_A20_DKT_defconfig +++ b/configs/Wits_Pro_A20_DKT_defconfig @@ -11,12 +11,9 @@ CONFIG_VIDEO_LCD_PANEL_LVDS=y CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-wits-pro-a20-dkt" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,RGMII,AHCI" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/Yones_Toptech_BD1078_defconfig b/configs/Yones_Toptech_BD1078_defconfig index aab580e05e..22b51a2595 100644 --- a/configs/Yones_Toptech_BD1078_defconfig +++ b/configs/Yones_Toptech_BD1078_defconfig @@ -24,5 +24,3 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/ba10_tv_box_defconfig b/configs/ba10_tv_box_defconfig index c84e82eae9..d944ae993e 100644 --- a/configs/ba10_tv_box_defconfig +++ b/configs/ba10_tv_box_defconfig @@ -7,11 +7,8 @@ CONFIG_USB2_VBUS_PIN="PH12" CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-ba10-tvbox" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/forfun_q88db_defconfig b/configs/forfun_q88db_defconfig index 85c807a9fa..8f10c25b16 100644 --- a/configs/forfun_q88db_defconfig +++ b/configs/forfun_q88db_defconfig @@ -17,5 +17,3 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/ga10h_v1_1_defconfig b/configs/ga10h_v1_1_defconfig index 315627d090..3d75ecd1d3 100644 --- a/configs/ga10h_v1_1_defconfig +++ b/configs/ga10h_v1_1_defconfig @@ -21,7 +21,5 @@ CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3000 diff --git a/configs/i12-tvbox_defconfig b/configs/i12-tvbox_defconfig index 3a69422480..99e78ba090 100644 --- a/configs/i12-tvbox_defconfig +++ b/configs/i12-tvbox_defconfig @@ -5,12 +5,9 @@ CONFIG_DRAM_CLK=384 CONFIG_DEFAULT_DEVICE_TREE="sun7i-a20-i12-tvbox" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,MACPWR=SUNXI_GPH(21),USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_GMAC,MACPWR=SUNXI_GPH(21)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/iNet_3F_defconfig b/configs/iNet_3F_defconfig index 54de300aa8..c4611cff4c 100644 --- a/configs/iNet_3F_defconfig +++ b/configs/iNet_3F_defconfig @@ -19,5 +19,3 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/iNet_3W_defconfig b/configs/iNet_3W_defconfig index e1beac88c1..d75eb21860 100644 --- a/configs/iNet_3W_defconfig +++ b/configs/iNet_3W_defconfig @@ -19,5 +19,3 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/iNet_86VS_defconfig b/configs/iNet_86VS_defconfig index 627e2110af..b9f2066d1e 100644 --- a/configs/iNet_86VS_defconfig +++ b/configs/iNet_86VS_defconfig @@ -17,5 +17,3 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y diff --git a/configs/jesurun_q5_defconfig b/configs/jesurun_q5_defconfig index 4b09a33502..a2115b6d39 100644 --- a/configs/jesurun_q5_defconfig +++ b/configs/jesurun_q5_defconfig @@ -5,11 +5,8 @@ CONFIG_DRAM_CLK=312 CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-jesurun-q5" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,USB_EHCI,MACPWR=SUNXI_GPH(19)" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC,MACPWR=SUNXI_GPH(19)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/mixtile_loftq_defconfig b/configs/mixtile_loftq_defconfig index a8c497cf5e..26fc4ce610 100644 --- a/configs/mixtile_loftq_defconfig +++ b/configs/mixtile_loftq_defconfig @@ -8,13 +8,10 @@ CONFIG_USB2_VBUS_PIN="" CONFIG_DEFAULT_DEVICE_TREE="sun6i-a31-mixtile-loftq" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI,SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPA(21)" +CONFIG_SYS_EXTRA_OPTIONS="SUNXI_GMAC,RGMII,MACPWR=SUNXI_GPA(21)" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y CONFIG_ETH_DESIGNWARE=y -CONFIG_DM_SERIAL=y CONFIG_AXP221_ALDO1_VOLT=3300 -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/mk802_a10s_defconfig b/configs/mk802_a10s_defconfig index dc78fa43d1..db437f08da 100644 --- a/configs/mk802_a10s_defconfig +++ b/configs/mk802_a10s_defconfig @@ -7,11 +7,8 @@ CONFIG_USB1_VBUS_PIN="PB10" CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-mk802" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/mk802_defconfig b/configs/mk802_defconfig index 31bde005a0..68b2c5e37c 100644 --- a/configs/mk802_defconfig +++ b/configs/mk802_defconfig @@ -9,7 +9,4 @@ CONFIG_SYS_EXTRA_OPTIONS="USB_EHCI" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/mk802ii_defconfig b/configs/mk802ii_defconfig index ffa78910fc..d3cb664f8a 100644 --- a/configs/mk802ii_defconfig +++ b/configs/mk802ii_defconfig @@ -4,11 +4,8 @@ CONFIG_MACH_SUN4I=y CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-mk802ii" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/r7-tv-dongle_defconfig b/configs/r7-tv-dongle_defconfig index ac7928dbf1..62c58fc333 100644 --- a/configs/r7-tv-dongle_defconfig +++ b/configs/r7-tv-dongle_defconfig @@ -6,11 +6,8 @@ CONFIG_USB1_VBUS_PIN="PG13" CONFIG_DEFAULT_DEVICE_TREE="sun5i-a10s-r7-tv-dongle" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP152_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y diff --git a/configs/sunxi_Gemei_G9_defconfig b/configs/sunxi_Gemei_G9_defconfig index e95cbe4f76..d0f987c72e 100644 --- a/configs/sunxi_Gemei_G9_defconfig +++ b/configs/sunxi_Gemei_G9_defconfig @@ -11,11 +11,8 @@ CONFIG_VIDEO_LCD_PANEL_LVDS=y CONFIG_DEFAULT_DEVICE_TREE="sun4i-a10-gemei-g9" # CONFIG_SYS_MALLOC_CLEAR_ON_INIT is not set CONFIG_SPL=y -CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,USB_EHCI" +CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_IMLS is not set # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set -CONFIG_DM_ETH=y -CONFIG_DM_SERIAL=y -CONFIG_USB=y -CONFIG_DM_USB=y +CONFIG_USB_EHCI_HCD=y From de1502c937c75527a08b40380ceb4824ae9ac86c Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 17 Jun 2015 20:54:07 +0200 Subject: [PATCH 07/16] sunxi: Enable CMD_USB and USB_STORAGE by default on sunxi Start using the new Kconfig options which are available for these now, and simply always enable them by selecting them as sunxi builds always include USB support. Signed-off-by: Hans de Goede Acked-by: Ian Campbell Reviewed-by: Simon Glass --- arch/arm/Kconfig | 2 ++ include/configs/sunxi-common.h | 5 ----- 2 files changed, 2 insertions(+), 5 deletions(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 56abaf6c40..0e899cd0d9 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -643,6 +643,7 @@ config ARCH_SOCFPGA config ARCH_SUNXI bool "Support sunxi (Allwinner) SoCs" + select CMD_USB select DM select DM_GPIO select DM_ETH @@ -652,6 +653,7 @@ config ARCH_SUNXI select OF_SEPARATE select SPL_DISABLE_OF_CONTROL select USB + select USB_STORAGE config TARGET_SNOWBALL bool "Support snowball" diff --git a/include/configs/sunxi-common.h b/include/configs/sunxi-common.h index 9576bc1a20..5adcc39e02 100644 --- a/include/configs/sunxi-common.h +++ b/include/configs/sunxi-common.h @@ -330,11 +330,6 @@ extern int soft_i2c_gpio_scl; #define CONFIG_MUSB_PIO_ONLY #endif -#if defined CONFIG_USB_EHCI || defined CONFIG_USB_MUSB_SUNXI -#define CONFIG_CMD_USB -#define CONFIG_USB_STORAGE -#endif - #ifdef CONFIG_USB_KEYBOARD #define CONFIG_CONSOLE_MUX #define CONFIG_PREBOOT From 48c06c98ecd99b2a4752461b6cc5c4a05d2f616a Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 14 Jun 2015 17:29:53 +0200 Subject: [PATCH 08/16] sunxi: usb-phy: Add support for reading otg id pin value Add support for reading the id pin value of the otg connector to the usb phy code. Signed-off-by: Hans de Goede Acked-by: Ian Campbell --- arch/arm/cpu/armv7/sunxi/usb_phy.c | 34 +++++++++++++++++++++++ arch/arm/include/asm/arch-sunxi/usb_phy.h | 1 + board/sunxi/Kconfig | 7 +++++ 3 files changed, 42 insertions(+) diff --git a/arch/arm/cpu/armv7/sunxi/usb_phy.c b/arch/arm/cpu/armv7/sunxi/usb_phy.c index b07d67ff3f..5e82ddc505 100644 --- a/arch/arm/cpu/armv7/sunxi/usb_phy.c +++ b/arch/arm/cpu/armv7/sunxi/usb_phy.c @@ -44,6 +44,7 @@ static struct sunxi_usb_phy { int usb_rst_mask; int gpio_vbus; int gpio_vbus_det; + int gpio_id_det; int id; int init_count; int power_on_count; @@ -82,6 +83,14 @@ static int get_vbus_detect_gpio(int index) return -EINVAL; } +static int get_id_detect_gpio(int index) +{ + switch (index) { + case 0: return sunxi_name_to_gpio(CONFIG_USB0_ID_DET); + } + return -EINVAL; +} + static void usb_phy_write(struct sunxi_usb_phy *phy, int addr, int data, int len) { @@ -247,6 +256,16 @@ int sunxi_usb_phy_vbus_detect(int index) return err; } +int sunxi_usb_phy_id_detect(int index) +{ + struct sunxi_usb_phy *phy = &sunxi_usb_phy[index]; + + if (phy->gpio_id_det < 0) + return phy->gpio_id_det; + + return gpio_get_value(phy->gpio_id_det); +} + int sunxi_usb_phy_probe(void) { struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; @@ -275,6 +294,18 @@ int sunxi_usb_phy_probe(void) if (ret) return ret; } + + phy->gpio_id_det = get_id_detect_gpio(i); + if (phy->gpio_id_det >= 0) { + ret = gpio_request(phy->gpio_id_det, "usb_id_det"); + if (ret) + return ret; + ret = gpio_direction_input(phy->gpio_id_det); + if (ret) + return ret; + sunxi_gpio_set_pull(phy->gpio_id_det, + SUNXI_GPIO_PULL_UP); + } } setbits_le32(&ccm->usb_clk_cfg, CCM_USB_CTRL_PHYGATE); @@ -298,6 +329,9 @@ int sunxi_usb_phy_remove(void) if (phy->gpio_vbus_det >= 0) gpio_free(phy->gpio_vbus_det); + + if (phy->gpio_id_det >= 0) + gpio_free(phy->gpio_id_det); } return 0; diff --git a/arch/arm/include/asm/arch-sunxi/usb_phy.h b/arch/arm/include/asm/arch-sunxi/usb_phy.h index b7b831e24a..5a9cacb6f4 100644 --- a/arch/arm/include/asm/arch-sunxi/usb_phy.h +++ b/arch/arm/include/asm/arch-sunxi/usb_phy.h @@ -17,4 +17,5 @@ void sunxi_usb_phy_exit(int index); void sunxi_usb_phy_power_on(int index); void sunxi_usb_phy_power_off(int index); int sunxi_usb_phy_vbus_detect(int index); +int sunxi_usb_phy_id_detect(int index); void sunxi_usb_phy_enable_squelch_detect(int index, int enable); diff --git a/board/sunxi/Kconfig b/board/sunxi/Kconfig index 2a1cd3cf3b..441c880813 100644 --- a/board/sunxi/Kconfig +++ b/board/sunxi/Kconfig @@ -294,6 +294,13 @@ config USB0_VBUS_DET Set the Vbus detect pin for usb0 (otg). This takes a string in the format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H. +config USB0_ID_DET + string "ID detect pin for usb0 (otg)" + default "" + ---help--- + Set the ID detect pin for usb0 (otg). This takes a string in the + format understood by sunxi_name_to_gpio, e.g. PH1 for pin 1 of port H. + config USB1_VBUS_PIN string "Vbus enable pin for usb1 (ehci0)" default "PH6" if MACH_SUN4I || MACH_SUN7I From b41972e7d17fb920cc50db5b363209685b1251e5 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 14 Jun 2015 16:48:56 +0200 Subject: [PATCH 09/16] sunxi: musb: Move vbus check to sunxi_musb_enable This way it can be re-checked on "usb reset". Signed-off-by: Hans de Goede Acked-by: Ian Campbell --- drivers/usb/musb-new/sunxi.c | 19 +++++++++---------- 1 file changed, 9 insertions(+), 10 deletions(-) diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index c123d61af2..ee018c7e6e 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -201,6 +201,8 @@ static bool enabled = false; static int sunxi_musb_enable(struct musb *musb) { + int ret; + pr_debug("%s():\n", __func__); if (enabled) @@ -209,8 +211,14 @@ static int sunxi_musb_enable(struct musb *musb) /* select PIO mode */ musb_writeb(musb->mregs, USBC_REG_o_VEND0, 0); - if (is_host_enabled(musb)) + if (is_host_enabled(musb)) { + ret = sunxi_usb_phy_vbus_detect(0); + if (ret) { + printf("A charger is plugged into the OTG: "); + return -ENODEV; + } sunxi_usb_phy_power_on(0); /* port power on */ + } USBC_ForceVbusValidToHigh(musb->mregs); @@ -237,18 +245,9 @@ static void sunxi_musb_disable(struct musb *musb) static int sunxi_musb_init(struct musb *musb) { struct sunxi_ccm_reg *ccm = (struct sunxi_ccm_reg *)SUNXI_CCM_BASE; - int err; pr_debug("%s():\n", __func__); - if (is_host_enabled(musb)) { - err = sunxi_usb_phy_vbus_detect(0); - if (err) { - eprintf("Error: A charger is plugged into the OTG\n"); - return -EIO; - } - } - musb->isr = sunxi_musb_interrupt; setbits_le32(&ccm->ahb_gate0, 1 << AHB_GATE_OFFSET_USB0); From 71cbe0d681d4288d090a404273ce6b0c1c14b617 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Sun, 14 Jun 2015 17:40:37 +0200 Subject: [PATCH 10/16] sunxi: musb: Add id pin support When in host mode check if there is a host cable inserted into the otg port by checking the id pin. If there is no host cable return an error to make usb_lowlevel_init() exit early, rather then waiting for 1 second for a device which will never show up. Signed-off-by: Hans de Goede Acked-by: Ian Campbell --- configs/Ippo_q8h_v1_2_a33_1024x600_defconfig | 1 + configs/Ippo_q8h_v1_2_defconfig | 1 + configs/Ippo_q8h_v5_defconfig | 1 + drivers/usb/musb-new/sunxi.c | 5 +++++ 4 files changed, 8 insertions(+) diff --git a/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig b/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig index 012a25bc67..fda7683a7b 100644 --- a/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig +++ b/configs/Ippo_q8h_v1_2_a33_1024x600_defconfig @@ -5,6 +5,7 @@ CONFIG_DRAM_CLK=480 CONFIG_DRAM_ZQ=15291 CONFIG_USB0_VBUS_PIN="AXP0-VBUS-ENABLE" CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT" +CONFIG_USB0_ID_DET="PH8" CONFIG_AXP_GPIO=y CONFIG_VIDEO_LCD_MODE="x:1024,y:600,depth:18,pclk_khz:51000,le:159,ri:160,up:22,lo:12,hs:1,vs:1,sync:3,vmode:0" CONFIG_VIDEO_LCD_DCLK_PHASE=0 diff --git a/configs/Ippo_q8h_v1_2_defconfig b/configs/Ippo_q8h_v1_2_defconfig index 783467b898..490cbe2be8 100644 --- a/configs/Ippo_q8h_v1_2_defconfig +++ b/configs/Ippo_q8h_v1_2_defconfig @@ -5,6 +5,7 @@ CONFIG_DRAM_CLK=432 CONFIG_DRAM_ZQ=63306 CONFIG_USB0_VBUS_PIN="AXP0-VBUS-ENABLE" CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT" +CONFIG_USB0_ID_DET="PH8" CONFIG_AXP_GPIO=y CONFIG_VIDEO_LCD_MODE="x:800,y:480,depth:18,pclk_khz:33000,le:87,ri:167,up:31,lo:13,hs:1,vs:1,sync:3,vmode:0" CONFIG_VIDEO_LCD_DCLK_PHASE=0 diff --git a/configs/Ippo_q8h_v5_defconfig b/configs/Ippo_q8h_v5_defconfig index 29e3c89510..aa1eb691e7 100644 --- a/configs/Ippo_q8h_v5_defconfig +++ b/configs/Ippo_q8h_v5_defconfig @@ -5,6 +5,7 @@ CONFIG_DRAM_CLK=480 CONFIG_DRAM_ZQ=63351 CONFIG_USB0_VBUS_PIN="AXP0-VBUS-ENABLE" CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT" +CONFIG_USB0_ID_DET="PH8" CONFIG_AXP_GPIO=y 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 diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index ee018c7e6e..cafb48039e 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -217,6 +217,11 @@ static int sunxi_musb_enable(struct musb *musb) printf("A charger is plugged into the OTG: "); return -ENODEV; } + ret = sunxi_usb_phy_id_detect(0); + if (ret == 1) { + printf("No host cable detected: "); + return -ENODEV; + } sunxi_usb_phy_power_on(0); /* port power on */ } From d42faf3198262710d17548950e1ab41413e8b7f9 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 17 Jun 2015 15:49:26 +0200 Subject: [PATCH 11/16] sunxi: musb: Move musb config and platdata to the sunxi-musb glue Move the musb config and platdata to the sunxi-musb glue, which is where it really belongs. This is preparation patch for adding device-model support for the sunxi-musb-host code. Signed-off-by: Hans de Goede Acked-by: Ian Campbell --- arch/arm/include/asm/arch-sunxi/usb_phy.h | 7 +++++ board/sunxi/board.c | 28 ++---------------- drivers/usb/musb-new/sunxi.c | 35 ++++++++++++++++------- 3 files changed, 34 insertions(+), 36 deletions(-) diff --git a/arch/arm/include/asm/arch-sunxi/usb_phy.h b/arch/arm/include/asm/arch-sunxi/usb_phy.h index 5a9cacb6f4..17d31b8e31 100644 --- a/arch/arm/include/asm/arch-sunxi/usb_phy.h +++ b/arch/arm/include/asm/arch-sunxi/usb_phy.h @@ -19,3 +19,10 @@ void sunxi_usb_phy_power_off(int index); int sunxi_usb_phy_vbus_detect(int index); int sunxi_usb_phy_id_detect(int index); void sunxi_usb_phy_enable_squelch_detect(int index, int enable); + +/* Not really phy related, but we have to declare this somewhere ... */ +#if defined(CONFIG_MUSB_HOST) || defined(CONFIG_MUSB_GADGET) +void sunxi_musb_board_init(void); +#else +#define sunxi_musb_board_init() +#endif diff --git a/board/sunxi/board.c b/board/sunxi/board.c index 7220af3454..afed6a31ca 100644 --- a/board/sunxi/board.c +++ b/board/sunxi/board.c @@ -31,7 +31,6 @@ #include #include #include -#include #include #if defined CONFIG_VIDEO_LCD_PANEL_I2C && !(defined CONFIG_SPL_BUILD) @@ -449,28 +448,6 @@ void sunxi_board_init(void) } #endif -#if defined(CONFIG_MUSB_HOST) || defined(CONFIG_MUSB_GADGET) -extern const struct musb_platform_ops sunxi_musb_ops; - -static struct musb_hdrc_config musb_config = { - .multipoint = 1, - .dyn_fifo = 1, - .num_eps = 6, - .ram_bits = 11, -}; - -static struct musb_hdrc_platform_data musb_plat = { -#if defined(CONFIG_MUSB_HOST) - .mode = MUSB_HOST, -#else - .mode = MUSB_PERIPHERAL, -#endif - .config = &musb_config, - .power = 250, - .platform_ops = &sunxi_musb_ops, -}; -#endif - #ifdef CONFIG_USB_GADGET int g_dnl_board_usb_cable_connected(void) { @@ -533,9 +510,8 @@ int misc_init_r(void) if (ret) return ret; #endif -#if defined(CONFIG_MUSB_HOST) || defined(CONFIG_MUSB_GADGET) - musb_register(&musb_plat, NULL, (void *)SUNXI_USB0_BASE); -#endif + sunxi_musb_board_init(); + return 0; } #endif diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index cafb48039e..cbd2954c41 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -26,17 +26,9 @@ #include #include #include +#include #include "linux-compat.h" #include "musb_core.h" -#ifdef CONFIG_AXP152_POWER -#include -#endif -#ifdef CONFIG_AXP209_POWER -#include -#endif -#ifdef CONFIG_AXP221_POWER -#include -#endif /****************************************************************************** ****************************************************************************** @@ -277,8 +269,31 @@ static int sunxi_musb_init(struct musb *musb) return 0; } -const struct musb_platform_ops sunxi_musb_ops = { +static const struct musb_platform_ops sunxi_musb_ops = { .init = sunxi_musb_init, .enable = sunxi_musb_enable, .disable = sunxi_musb_disable, }; + +static struct musb_hdrc_config musb_config = { + .multipoint = 1, + .dyn_fifo = 1, + .num_eps = 6, + .ram_bits = 11, +}; + +static struct musb_hdrc_platform_data musb_plat = { +#if defined(CONFIG_MUSB_HOST) + .mode = MUSB_HOST, +#else + .mode = MUSB_PERIPHERAL, +#endif + .config = &musb_config, + .power = 250, + .platform_ops = &sunxi_musb_ops, +}; + +void sunxi_musb_board_init(void) +{ + musb_register(&musb_plat, NULL, (void *)SUNXI_USB0_BASE); +} From 91183babea8f36d7bea40ecbc3862913ca0eae65 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 17 Jun 2015 17:44:58 +0200 Subject: [PATCH 12/16] sunxi: musb: Use device-model for musb host mode Modify the sunxi musb glue to use the device-model for musb host mode. This allows using musb in host mode together with other host drivers such as ehci / ohci, which is esp. useful on boards which use the musb controller in host-only mode, these boards have e.g. an usb-a receptacle or an usb to sata converter attached to the musb controller. Signed-off-by: Hans de Goede Acked-by: Ian Campbell --- arch/arm/Kconfig | 2 +- drivers/usb/musb-new/sunxi.c | 57 ++++++++++++++++++++++++++++++++++++ 2 files changed, 58 insertions(+), 1 deletion(-) diff --git a/arch/arm/Kconfig b/arch/arm/Kconfig index 0e899cd0d9..3355b3bcaa 100644 --- a/arch/arm/Kconfig +++ b/arch/arm/Kconfig @@ -648,7 +648,7 @@ config ARCH_SUNXI select DM_GPIO select DM_ETH select DM_SERIAL - select DM_USB if !USB_MUSB_SUNXI + select DM_USB select OF_CONTROL select OF_SEPARATE select SPL_DISABLE_OF_CONTROL diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index cbd2954c41..6109011dca 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -26,9 +26,12 @@ #include #include #include +#include +#include #include #include "linux-compat.h" #include "musb_core.h" +#include "musb_uboot.h" /****************************************************************************** ****************************************************************************** @@ -293,7 +296,61 @@ static struct musb_hdrc_platform_data musb_plat = { .platform_ops = &sunxi_musb_ops, }; +#ifdef CONFIG_MUSB_HOST +int musb_usb_probe(struct udevice *dev) +{ + struct musb_host_data *host = dev_get_priv(dev); + struct usb_bus_priv *priv = dev_get_uclass_priv(dev); + + priv->desc_before_addr = true; + + if (!host->host) { + host->host = musb_init_controller(&musb_plat, NULL, + (void *)SUNXI_USB0_BASE); + if (!host->host) { + printf("Failed to init the controller\n"); + return -EIO; + } + } + + printf("MUSB OTG in host-mode\n"); + + return musb_lowlevel_init(host); +} + +int musb_usb_remove(struct udevice *dev) +{ + struct musb_host_data *host = dev_get_priv(dev); + + musb_stop(host->host); + + return 0; +} + +U_BOOT_DRIVER(usb_musb) = { + .name = "sunxi-musb", + .id = UCLASS_USB, + .probe = musb_usb_probe, + .remove = musb_usb_remove, + .ops = &musb_usb_ops, + .platdata_auto_alloc_size = sizeof(struct usb_platdata), + .priv_auto_alloc_size = sizeof(struct musb_host_data), +}; +#endif + void sunxi_musb_board_init(void) { +#ifdef CONFIG_MUSB_HOST + struct udevice *dev; + + /* + * Bind the driver directly for now as musb linux kernel support is + * still pending upstream so our dts files do not have the necessary + * nodes yet. TODO: Remove this as soon as the dts nodes are in place + * and bind by compatible instead. + */ + device_bind_driver(dm_root(), "sunxi-musb", "sunxi-musb", &dev); +#else musb_register(&musb_plat, NULL, (void *)SUNXI_USB0_BASE); +#endif } From 56a2085410d507c00d4bc374f9af10816638df24 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 18 Jun 2015 22:45:34 +0200 Subject: [PATCH 13/16] sunxi: musb: Improve output during probing When we return an error the usb core will print an error-message, so in this case do not print anything. Signed-off-by: Hans de Goede Reviewed-by: Marek Vasut Acked-by: Ian Campbell --- drivers/usb/musb-new/sunxi.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index 6109011dca..3542326238 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -301,21 +301,22 @@ int musb_usb_probe(struct udevice *dev) { struct musb_host_data *host = dev_get_priv(dev); struct usb_bus_priv *priv = dev_get_uclass_priv(dev); + int ret; priv->desc_before_addr = true; if (!host->host) { host->host = musb_init_controller(&musb_plat, NULL, (void *)SUNXI_USB0_BASE); - if (!host->host) { - printf("Failed to init the controller\n"); + if (!host->host) return -EIO; - } } - printf("MUSB OTG in host-mode\n"); + ret = musb_lowlevel_init(host); + if (ret == 0) + printf("MUSB OTG\n"); - return musb_lowlevel_init(host); + return ret; } int musb_usb_remove(struct udevice *dev) From 9ecce9707b05189a762fc87c8483408d175774df Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 18 Jun 2015 18:21:33 +0200 Subject: [PATCH 14/16] sunxi: musb: Stop treating not having a vbus-det gpio as an error On some boards the otg is wired up in host-only mode in this case we have no vbus-det gpio. Stop logging an error from sunxi_usb_phy_vbus_detect() in this case, and stop treating sunxi_usb_phy_vbus_detect() returning a negative errno, as if a charger is plugged into the otg port. Signed-off-by: Hans de Goede Reviewed-by: Marek Vasut Acked-by: Ian Campbell --- arch/arm/cpu/armv7/sunxi/usb_phy.c | 4 +--- drivers/usb/musb-new/sunxi.c | 2 +- 2 files changed, 2 insertions(+), 4 deletions(-) diff --git a/arch/arm/cpu/armv7/sunxi/usb_phy.c b/arch/arm/cpu/armv7/sunxi/usb_phy.c index 5e82ddc505..4d63a7449d 100644 --- a/arch/arm/cpu/armv7/sunxi/usb_phy.c +++ b/arch/arm/cpu/armv7/sunxi/usb_phy.c @@ -237,10 +237,8 @@ int sunxi_usb_phy_vbus_detect(int index) struct sunxi_usb_phy *phy = &sunxi_usb_phy[index]; int err, retries = 3; - if (phy->gpio_vbus_det < 0) { - eprintf("Error: invalid vbus detection pin\n"); + if (phy->gpio_vbus_det < 0) return phy->gpio_vbus_det; - } err = gpio_get_value(phy->gpio_vbus_det); /* diff --git a/drivers/usb/musb-new/sunxi.c b/drivers/usb/musb-new/sunxi.c index 3542326238..3a29b18e5f 100644 --- a/drivers/usb/musb-new/sunxi.c +++ b/drivers/usb/musb-new/sunxi.c @@ -208,7 +208,7 @@ static int sunxi_musb_enable(struct musb *musb) if (is_host_enabled(musb)) { ret = sunxi_usb_phy_vbus_detect(0); - if (ret) { + if (ret == 1) { printf("A charger is plugged into the OTG: "); return -ENODEV; } From a51c832cc18aeec439648f39f6759a1978206132 Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Wed, 17 Jun 2015 21:16:59 +0200 Subject: [PATCH 15/16] sunxi: ga10h: Enable both otg and regular usb host controllers This allows using devices plugged into both ports of the tablet. Signed-off-by: Hans de Goede Acked-by: Ian Campbell --- arch/arm/dts/sun8i-a23-a33.dtsi | 18 ++++++++++++++++++ arch/arm/dts/sun8i-a33-ga10h-v1.1.dts | 8 ++++++++ configs/ga10h_v1_1_defconfig | 2 ++ 3 files changed, 28 insertions(+) diff --git a/arch/arm/dts/sun8i-a23-a33.dtsi b/arch/arm/dts/sun8i-a23-a33.dtsi index 7abd0ae314..5cd2e92c19 100644 --- a/arch/arm/dts/sun8i-a23-a33.dtsi +++ b/arch/arm/dts/sun8i-a23-a33.dtsi @@ -332,6 +332,24 @@ #size-cells = <0>; }; + ehci0: usb@01c1a000 { + compatible = "allwinner,sun8i-a23-ehci", "generic-ehci"; + reg = <0x01c1a000 0x100>; + interrupts = ; + clocks = <&ahb1_gates 26>; + resets = <&ahb1_rst 26>; + status = "disabled"; + }; + + ohci0: usb@01c1a400 { + compatible = "allwinner,sun8i-a23-ohci", "generic-ohci"; + reg = <0x01c1a400 0x100>; + interrupts = ; + clocks = <&ahb1_gates 29>, <&usb_clk 16>; + resets = <&ahb1_rst 29>; + status = "disabled"; + }; + pio: pinctrl@01c20800 { /* compatible gets set in SoC specific dtsi file */ reg = <0x01c20800 0x400>; diff --git a/arch/arm/dts/sun8i-a33-ga10h-v1.1.dts b/arch/arm/dts/sun8i-a33-ga10h-v1.1.dts index 866703355b..da16343346 100644 --- a/arch/arm/dts/sun8i-a33-ga10h-v1.1.dts +++ b/arch/arm/dts/sun8i-a33-ga10h-v1.1.dts @@ -61,6 +61,10 @@ }; }; +&ehci0 { + status = "okay"; +}; + &i2c0 { pinctrl-names = "default"; pinctrl-0 = <&i2c0_pins_a>; @@ -109,6 +113,10 @@ status = "okay"; }; +&ohci0 { + status = "okay"; +}; + &pio { mmc0_cd_pin_q8h: mmc0_cd_pin@0 { allwinner,pins = "PB4"; diff --git a/configs/ga10h_v1_1_defconfig b/configs/ga10h_v1_1_defconfig index 3d75ecd1d3..e766db4f6f 100644 --- a/configs/ga10h_v1_1_defconfig +++ b/configs/ga10h_v1_1_defconfig @@ -6,6 +6,7 @@ CONFIG_DRAM_ZQ=15291 CONFIG_DRAM_ODT_EN=y CONFIG_USB0_VBUS_PIN="AXP0-VBUS-ENABLE" CONFIG_USB0_VBUS_DET="AXP0-VBUS-DETECT" +CONFIG_USB0_ID_DET="PH8" CONFIG_AXP_GPIO=y CONFIG_VIDEO_LCD_MODE="x:1024,y:600,depth:18,pclk_khz:52000,le:138,ri:162,up:22,lo:10,hs:20,vs:3,sync:3,vmode:0" CONFIG_VIDEO_LCD_DCLK_PHASE=0 @@ -23,3 +24,4 @@ CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5" # CONFIG_CMD_FPGA is not set CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3000 +CONFIG_USB_EHCI_HCD=y From 7f7409ba6ab937b73f16bac8d83e215db86ace3d Mon Sep 17 00:00:00 2001 From: Hans de Goede Date: Thu, 18 Jun 2015 18:19:22 +0200 Subject: [PATCH 16/16] sunxi: Enable both ehci and otg in host mode on various boards Now that the device-model port of the musb mode makes it possible, enable both the ehci and otg in host mode on boards where the musb is wired up in host only mode, either via an usb-a receptacle or via an usb <-> sata converter. Signed-off-by: Hans de Goede Reviewed-by: Marek Vasut Acked-by: Ian Campbell --- configs/CSQ_CS908_defconfig | 1 + configs/Mele_A1000G_quad_defconfig | 1 + configs/Mini-X_defconfig | 2 ++ configs/ba10_tv_box_defconfig | 2 ++ 4 files changed, 6 insertions(+) diff --git a/configs/CSQ_CS908_defconfig b/configs/CSQ_CS908_defconfig index b92b6a3df0..fe88a7b29f 100644 --- a/configs/CSQ_CS908_defconfig +++ b/configs/CSQ_CS908_defconfig @@ -15,3 +15,4 @@ CONFIG_ETH_DESIGNWARE=y CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3300 CONFIG_USB_EHCI_HCD=y +CONFIG_USB_MUSB_SUNXI=y diff --git a/configs/Mele_A1000G_quad_defconfig b/configs/Mele_A1000G_quad_defconfig index f32a9675d4..ffc8d9b7bd 100644 --- a/configs/Mele_A1000G_quad_defconfig +++ b/configs/Mele_A1000G_quad_defconfig @@ -17,3 +17,4 @@ CONFIG_AXP221_DLDO1_VOLT=3300 CONFIG_AXP221_DLDO4_VOLT=3300 CONFIG_AXP221_ALDO1_VOLT=3300 CONFIG_USB_EHCI_HCD=y +CONFIG_USB_MUSB_SUNXI=y diff --git a/configs/Mini-X_defconfig b/configs/Mini-X_defconfig index d7d74a9f08..c721c87742 100644 --- a/configs/Mini-X_defconfig +++ b/configs/Mini-X_defconfig @@ -9,3 +9,5 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER" # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set CONFIG_USB_EHCI_HCD=y +CONFIG_USB_MUSB_SUNXI=y +CONFIG_USB0_VBUS_PIN="PB9" diff --git a/configs/ba10_tv_box_defconfig b/configs/ba10_tv_box_defconfig index d944ae993e..ae302c544e 100644 --- a/configs/ba10_tv_box_defconfig +++ b/configs/ba10_tv_box_defconfig @@ -12,3 +12,5 @@ CONFIG_SYS_EXTRA_OPTIONS="AXP209_POWER,SUNXI_EMAC" # CONFIG_CMD_FLASH is not set # CONFIG_CMD_FPGA is not set CONFIG_USB_EHCI_HCD=y +CONFIG_USB_MUSB_SUNXI=y +CONFIG_USB0_VBUS_PIN="PB9"