diff options
author | Paul Kocialkowski | 2016-02-27 19:19:06 +0100 |
---|---|---|
committer | Tom Rini | 2016-03-15 15:12:52 -0400 |
commit | e66782e6eae2b918bffd56d7146895f8ad1c00dc (patch) | |
tree | ed2a5b6c8f9c40df3743a95d0f12a62458ac9ba9 | |
parent | 27754d18fc1b5a5c6a6e86ababf44b382a6dc7d9 (diff) |
kc1: MUSB USB controller and fastboot USB gadget support
This adds support for the MUSB USB dual-role controller in peripheral mode,
with configuration options for the fastboot USB gadget.
At this point, flashing the internal eMMC is support.
Signed-off-by: Paul Kocialkowski <contact@paulk.fr>
-rw-r--r-- | board/amazon/kc1/kc1.c | 27 | ||||
-rw-r--r-- | board/amazon/kc1/kc1.h | 4 | ||||
-rw-r--r-- | configs/kc1_defconfig | 2 | ||||
-rw-r--r-- | include/configs/kc1.h | 35 |
4 files changed, 68 insertions, 0 deletions
diff --git a/board/amazon/kc1/kc1.c b/board/amazon/kc1/kc1.c index a189bb2c084..29d9c648c78 100644 --- a/board/amazon/kc1/kc1.c +++ b/board/amazon/kc1/kc1.c @@ -8,6 +8,9 @@ #include <config.h> #include <common.h> +#include <linux/ctype.h> +#include <linux/usb/musb.h> +#include <asm/omap_musb.h> #include <asm/arch/sys_proto.h> #include <asm/arch/mmc_host_def.h> #include <asm/gpio.h> @@ -21,6 +24,26 @@ const struct omap_sysinfo sysinfo = { .board_string = "kc1" }; +static struct musb_hdrc_config musb_config = { + .multipoint = 1, + .dyn_fifo = 1, + .num_eps = 16, + .ram_bits = 12 +}; + +static struct omap_musb_board_data musb_board_data = { + .interface_type = MUSB_INTERFACE_UTMI, +}; + +static struct musb_hdrc_platform_data musb_platform_data = { + .mode = MUSB_PERIPHERAL, + .config = &musb_config, + .power = 100, + .platform_ops = &omap2430_ops, + .board_data = &musb_board_data, +}; + + void set_muxconf_regs(void) { do_set_mux((*ctrl)->control_padconf_core_base, core_padconf_array, @@ -66,6 +89,10 @@ int misc_init_r(void) omap_die_id_serial(); + /* MUSB */ + + musb_register(&musb_platform_data, &musb_board_data, (void *)MUSB_BASE); + return 0; } diff --git a/board/amazon/kc1/kc1.h b/board/amazon/kc1/kc1.h index 886bd38eedb..67d008f05da 100644 --- a/board/amazon/kc1/kc1.h +++ b/board/amazon/kc1/kc1.h @@ -87,6 +87,10 @@ const struct pad_conf_entry core_padconf_array[] = { { UNIPRO_RY1, (IEN | DIS | M3) }, /* gpio_178 */ { UNIPRO_RX2, (IDIS | DIS | M7) }, /* safe_mode */ { UNIPRO_RY2, (IDIS | DIS | M7) }, /* safe_mode */ + /* USBA0_OTG */ + { USBA0_OTG_CE, (IDIS | PTD | M0) }, /* usba0_otg_ce */ + { USBA0_OTG_DP, (IEN | DIS | M0) }, /* usba0_otg_dp */ + { USBA0_OTG_DM, (IEN | DIS | M0) }, /* usba0_otg_dm */ }; #endif diff --git a/configs/kc1_defconfig b/configs/kc1_defconfig index c9cadd91e78..1e5c9185c14 100644 --- a/configs/kc1_defconfig +++ b/configs/kc1_defconfig @@ -10,3 +10,5 @@ CONFIG_CMD_GPIO=y # CONFIG_CMD_SETEXPR is not set # CONFIG_CMD_NFS is not set CONFIG_SYS_NS16550=y +CONFIG_USB=y +CONFIG_USB_MUSB_GADGET=y diff --git a/include/configs/kc1.h b/include/configs/kc1.h index 281041dc312..185e8de3199 100644 --- a/include/configs/kc1.h +++ b/include/configs/kc1.h @@ -172,6 +172,41 @@ 115200 } /* + * USB gadget + */ + +#define CONFIG_USB_MUSB_PIO_ONLY +#define CONFIG_USB_MUSB_OMAP2PLUS + +#define CONFIG_USB_GADGET +#define CONFIG_USB_GADGET_DUALSPEED +#define CONFIG_USB_GADGET_VBUS_DRAW 0 + +/* + * Download + */ + +#define CONFIG_USB_GADGET_DOWNLOAD + +#define CONFIG_G_DNL_VENDOR_NUM 0x0451 +#define CONFIG_G_DNL_PRODUCT_NUM 0xd022 +#define CONFIG_G_DNL_MANUFACTURER "Texas Instruments" + +/* + * Fastboot + */ + +#define CONFIG_USB_FUNCTION_FASTBOOT + +#define CONFIG_FASTBOOT_BUF_ADDR CONFIG_SYS_LOAD_ADDR +#define CONFIG_FASTBOOT_BUF_SIZE 0x2000000 + +#define CONFIG_FASTBOOT_FLASH +#define CONFIG_FASTBOOT_FLASH_MMC_DEV 0 + +#define CONFIG_CMD_FASTBOOT + +/* * Environment */ |