mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
sunxi: Hookup OTG USB controller support
Hookup OTG USB controller support and enable the otg controller + USB-keyb on various tablets. This allows tablet owners to interact with u-boot without needing to solder a serial console onto their tablet PCB. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Ian Campbell <ijc@hellion.org.uk>
This commit is contained in:
parent
ea87948f1a
commit
1a800f7af3
6 changed files with 49 additions and 3 deletions
|
@ -11,6 +11,8 @@
|
|||
* SPDX-License-Identifier: GPL-2.0+
|
||||
*/
|
||||
|
||||
extern const struct musb_platform_ops sunxi_musb_ops;
|
||||
|
||||
void *sunxi_usbc_get_io_base(int index);
|
||||
int sunxi_usbc_request_resources(int index);
|
||||
int sunxi_usbc_free_resources(int index);
|
||||
|
|
|
@ -357,6 +357,15 @@ config VIDEO_LCD_PANEL_MIPI_4_LANE_513_MBPS_VIA_SSD2828
|
|||
endchoice
|
||||
|
||||
|
||||
config USB_MUSB_SUNXI
|
||||
bool "Enable sunxi OTG / DRC USB controller in host mode"
|
||||
default n
|
||||
---help---
|
||||
Say y here to enable support for the sunxi OTG / DRC USB controller
|
||||
used on almost all sunxi boards. Note currently u-boot can only have
|
||||
one usb host controller enabled at a time, so enabling this on boards
|
||||
which also use the ehci host controller will result in build errors.
|
||||
|
||||
config USB_KEYBOARD
|
||||
boolean "Enable USB keyboard support"
|
||||
default y
|
||||
|
|
|
@ -28,7 +28,9 @@
|
|||
#include <asm/arch/dram.h>
|
||||
#include <asm/arch/gpio.h>
|
||||
#include <asm/arch/mmc.h>
|
||||
#include <asm/arch/usbc.h>
|
||||
#include <asm/io.h>
|
||||
#include <linux/usb/musb.h>
|
||||
#include <net.h>
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
@ -209,6 +211,26 @@ void sunxi_board_init(void)
|
|||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_MUSB_HOST) || defined(CONFIG_MUSB_GADGET)
|
||||
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_MISC_INIT_R
|
||||
int misc_init_r(void)
|
||||
{
|
||||
|
@ -228,6 +250,9 @@ int misc_init_r(void)
|
|||
eth_setenv_enetaddr("ethaddr", mac_addr);
|
||||
}
|
||||
|
||||
#if defined(CONFIG_MUSB_HOST) || defined(CONFIG_MUSB_GADGET)
|
||||
musb_register(&musb_plat, NULL, (void *)SUNXI_USB0_BASE);
|
||||
#endif
|
||||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
CONFIG_SPL=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
|
||||
CONFIG_FDTFILE="sun8i-a23-ippo-q8h-v1.2.dtb"
|
||||
CONFIG_USB_MUSB_SUNXI=y
|
||||
CONFIG_USB0_VBUS_PIN="axp_drivebus"
|
||||
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
|
||||
CONFIG_VIDEO_LCD_POWER="PH7"
|
||||
CONFIG_VIDEO_LCD_BL_EN="PH6"
|
||||
CONFIG_VIDEO_LCD_BL_PWM="PH0"
|
||||
CONFIG_USB_KEYBOARD=n
|
||||
+S:CONFIG_ARM=y
|
||||
+S:CONFIG_ARCH_SUNXI=y
|
||||
+S:CONFIG_MACH_SUN8I=y
|
||||
|
|
|
@ -1,12 +1,13 @@
|
|||
CONFIG_SPL=y
|
||||
CONFIG_SYS_EXTRA_OPTIONS="CONS_INDEX=5"
|
||||
CONFIG_FDTFILE="sun8i-a23-ippo-q8h-v5.dtb"
|
||||
CONFIG_USB_MUSB_SUNXI=y
|
||||
CONFIG_USB0_VBUS_PIN="axp_drivebus"
|
||||
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_USB_KEYBOARD=n
|
||||
+S:CONFIG_ARM=y
|
||||
+S:CONFIG_ARCH_SUNXI=y
|
||||
+S:CONFIG_MACH_SUN8I=y
|
||||
|
|
|
@ -247,8 +247,16 @@
|
|||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_EHCI
|
||||
#define CONFIG_CMD_USB
|
||||
#define CONFIG_SYS_USB_EHCI_MAX_ROOT_PORTS 1
|
||||
#endif
|
||||
|
||||
#ifdef CONFIG_USB_MUSB_SUNXI
|
||||
#define CONFIG_MUSB_HOST
|
||||
#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
|
||||
|
||||
|
|
Loading…
Reference in a new issue