mirror of
https://github.com/Fishwaldo/u-boot.git
synced 2025-03-17 20:51:39 +00:00
am3517_evm: switch to musb-new
Use new musb framework instead of the old one on AM3517_EVM. Signed-off-by: Ilya Yanok <ilya.yanok@cogentembedded.com>
This commit is contained in:
parent
08fc71711a
commit
88919ff7bf
2 changed files with 88 additions and 19 deletions
|
@ -25,12 +25,20 @@
|
|||
|
||||
#include <common.h>
|
||||
#include <asm/io.h>
|
||||
#include <asm/omap_musb.h>
|
||||
#include <asm/arch/am35x_def.h>
|
||||
#include <asm/arch/mem.h>
|
||||
#include <asm/arch/mux.h>
|
||||
#include <asm/arch/sys_proto.h>
|
||||
#include <asm/arch/mmc_host_def.h>
|
||||
#include <asm/arch/musb.h>
|
||||
#include <asm/mach-types.h>
|
||||
#include <asm/errno.h>
|
||||
#include <linux/usb/ch9.h>
|
||||
#include <linux/usb/gadget.h>
|
||||
#include <linux/usb/musb.h>
|
||||
#include <i2c.h>
|
||||
#include <netdev.h>
|
||||
#include "am3517evm.h"
|
||||
|
||||
DECLARE_GLOBAL_DATA_PTR;
|
||||
|
@ -50,6 +58,52 @@ int board_init(void)
|
|||
return 0;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_USB_MUSB_AM35X
|
||||
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 = {
|
||||
.set_phy_power = am35x_musb_phy_power,
|
||||
.clear_irq = am35x_musb_clear_irq,
|
||||
.reset = am35x_musb_reset,
|
||||
};
|
||||
|
||||
static struct musb_hdrc_platform_data musb_plat = {
|
||||
#if defined(CONFIG_MUSB_HOST)
|
||||
.mode = MUSB_HOST,
|
||||
#elif defined(CONFIG_MUSB_GADGET)
|
||||
.mode = MUSB_PERIPHERAL,
|
||||
#else
|
||||
#error "Please define either CONFIG_MUSB_HOST or CONFIG_MUSB_GADGET"
|
||||
#endif
|
||||
.config = &musb_config,
|
||||
.power = 250,
|
||||
.platform_ops = &am35x_ops,
|
||||
.board_data = &musb_board_data,
|
||||
};
|
||||
|
||||
static void am3517_evm_musb_init(void)
|
||||
{
|
||||
/*
|
||||
* Set up USB clock/mode in the DEVCONF2 register.
|
||||
* USB2.0 PHY reference clock is 13 MHz
|
||||
*/
|
||||
clrsetbits_le32(&am35x_scm_general_regs->devconf2,
|
||||
CONF2_REFFREQ | CONF2_OTGMODE | CONF2_PHY_GPIOMODE,
|
||||
CONF2_REFFREQ_13MHZ | CONF2_SESENDEN |
|
||||
CONF2_VBDTCTEN | CONF2_DATPOL);
|
||||
|
||||
musb_register(&musb_plat, &musb_board_data,
|
||||
(void *)AM35XX_IPSS_USBOTGSS_BASE);
|
||||
}
|
||||
#else
|
||||
#define am3517_evm_musb_init() do {} while (0)
|
||||
#endif
|
||||
|
||||
/*
|
||||
* Routine: misc_init_r
|
||||
* Description: Init i2c, ethernet, etc... (done here so udelay works)
|
||||
|
@ -62,6 +116,8 @@ int misc_init_r(void)
|
|||
|
||||
dieid_num_r();
|
||||
|
||||
am3517_evm_musb_init();
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
|
@ -83,3 +139,21 @@ int board_mmc_init(bd_t *bis)
|
|||
return 0;
|
||||
}
|
||||
#endif
|
||||
|
||||
#if defined(CONFIG_USB_ETHER) && defined(CONFIG_MUSB_GADGET)
|
||||
int board_eth_init(bd_t *bis)
|
||||
{
|
||||
int rv, n = 0;
|
||||
|
||||
rv = cpu_eth_init(bis);
|
||||
if (rv > 0)
|
||||
n += rv;
|
||||
|
||||
rv = usb_eth_initialize(bis);
|
||||
if (rv > 0)
|
||||
n += rv;
|
||||
|
||||
return n;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
|
|
@ -97,15 +97,16 @@
|
|||
|
||||
/*
|
||||
* USB configuration
|
||||
* Enable CONFIG_MUSB_HCD for Host functionalities MSC, keyboard
|
||||
* Enable CONFIG_MUSB_UDC for Device functionalities.
|
||||
* Enable CONFIG_MUSB_HOST for Host functionalities MSC, keyboard
|
||||
* Enable CONFIG_MUSB_GADGET for Device functionalities.
|
||||
*/
|
||||
#define CONFIG_USB_AM35X 1
|
||||
#define CONFIG_MUSB_HCD 1
|
||||
#define CONFIG_USB_MUSB_AM35X
|
||||
#define CONFIG_MUSB_HOST
|
||||
#define CONFIG_MUSB_PIO_ONLY
|
||||
|
||||
#ifdef CONFIG_USB_AM35X
|
||||
#ifdef CONFIG_USB_MUSB_AM35X
|
||||
|
||||
#ifdef CONFIG_MUSB_HCD
|
||||
#ifdef CONFIG_MUSB_HOST
|
||||
#define CONFIG_CMD_USB
|
||||
|
||||
#define CONFIG_USB_STORAGE
|
||||
|
@ -117,21 +118,15 @@
|
|||
#define CONFIG_PREBOOT "usb start"
|
||||
#endif /* CONFIG_USB_KEYBOARD */
|
||||
|
||||
#endif /* CONFIG_MUSB_HCD */
|
||||
#endif /* CONFIG_MUSB_HOST */
|
||||
|
||||
#ifdef CONFIG_MUSB_UDC
|
||||
/* USB device configuration */
|
||||
#define CONFIG_USB_DEVICE 1
|
||||
#define CONFIG_USB_TTY 1
|
||||
#define CONFIG_SYS_CONSOLE_IS_IN_ENV 1
|
||||
/* Change these to suit your needs */
|
||||
#define CONFIG_USBD_VENDORID 0x0451
|
||||
#define CONFIG_USBD_PRODUCTID 0x5678
|
||||
#define CONFIG_USBD_MANUFACTURER "Texas Instruments"
|
||||
#define CONFIG_USBD_PRODUCT_NAME "AM3517EVM"
|
||||
#endif /* CONFIG_MUSB_UDC */
|
||||
#ifdef CONFIG_MUSB_GADGET
|
||||
#define CONFIG_USB_GADGET_DUALSPEED
|
||||
#define CONFIG_USB_ETHER
|
||||
#define CONFIG_USB_ETH_RNDIS
|
||||
#endif /* CONFIG_MUSB_GADGET */
|
||||
|
||||
#endif /* CONFIG_USB_AM35X */
|
||||
#endif /* CONFIG_USB_MUSB_AM35X */
|
||||
|
||||
/* commands to include */
|
||||
#include <config_cmd_default.h>
|
||||
|
|
Loading…
Add table
Reference in a new issue