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 <common.h>
|
||||||
#include <asm/io.h>
|
#include <asm/io.h>
|
||||||
|
#include <asm/omap_musb.h>
|
||||||
|
#include <asm/arch/am35x_def.h>
|
||||||
#include <asm/arch/mem.h>
|
#include <asm/arch/mem.h>
|
||||||
#include <asm/arch/mux.h>
|
#include <asm/arch/mux.h>
|
||||||
#include <asm/arch/sys_proto.h>
|
#include <asm/arch/sys_proto.h>
|
||||||
#include <asm/arch/mmc_host_def.h>
|
#include <asm/arch/mmc_host_def.h>
|
||||||
|
#include <asm/arch/musb.h>
|
||||||
#include <asm/mach-types.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 <i2c.h>
|
||||||
|
#include <netdev.h>
|
||||||
#include "am3517evm.h"
|
#include "am3517evm.h"
|
||||||
|
|
||||||
DECLARE_GLOBAL_DATA_PTR;
|
DECLARE_GLOBAL_DATA_PTR;
|
||||||
|
@ -50,6 +58,52 @@ int board_init(void)
|
||||||
return 0;
|
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
|
* Routine: misc_init_r
|
||||||
* Description: Init i2c, ethernet, etc... (done here so udelay works)
|
* Description: Init i2c, ethernet, etc... (done here so udelay works)
|
||||||
|
@ -62,6 +116,8 @@ int misc_init_r(void)
|
||||||
|
|
||||||
dieid_num_r();
|
dieid_num_r();
|
||||||
|
|
||||||
|
am3517_evm_musb_init();
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -83,3 +139,21 @@ int board_mmc_init(bd_t *bis)
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
#endif
|
#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
|
* USB configuration
|
||||||
* Enable CONFIG_MUSB_HCD for Host functionalities MSC, keyboard
|
* Enable CONFIG_MUSB_HOST for Host functionalities MSC, keyboard
|
||||||
* Enable CONFIG_MUSB_UDC for Device functionalities.
|
* Enable CONFIG_MUSB_GADGET for Device functionalities.
|
||||||
*/
|
*/
|
||||||
#define CONFIG_USB_AM35X 1
|
#define CONFIG_USB_MUSB_AM35X
|
||||||
#define CONFIG_MUSB_HCD 1
|
#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_CMD_USB
|
||||||
|
|
||||||
#define CONFIG_USB_STORAGE
|
#define CONFIG_USB_STORAGE
|
||||||
|
@ -117,21 +118,15 @@
|
||||||
#define CONFIG_PREBOOT "usb start"
|
#define CONFIG_PREBOOT "usb start"
|
||||||
#endif /* CONFIG_USB_KEYBOARD */
|
#endif /* CONFIG_USB_KEYBOARD */
|
||||||
|
|
||||||
#endif /* CONFIG_MUSB_HCD */
|
#endif /* CONFIG_MUSB_HOST */
|
||||||
|
|
||||||
#ifdef CONFIG_MUSB_UDC
|
#ifdef CONFIG_MUSB_GADGET
|
||||||
/* USB device configuration */
|
#define CONFIG_USB_GADGET_DUALSPEED
|
||||||
#define CONFIG_USB_DEVICE 1
|
#define CONFIG_USB_ETHER
|
||||||
#define CONFIG_USB_TTY 1
|
#define CONFIG_USB_ETH_RNDIS
|
||||||
#define CONFIG_SYS_CONSOLE_IS_IN_ENV 1
|
#endif /* CONFIG_MUSB_GADGET */
|
||||||
/* 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 */
|
|
||||||
|
|
||||||
#endif /* CONFIG_USB_AM35X */
|
#endif /* CONFIG_USB_MUSB_AM35X */
|
||||||
|
|
||||||
/* commands to include */
|
/* commands to include */
|
||||||
#include <config_cmd_default.h>
|
#include <config_cmd_default.h>
|
||||||
|
|
Loading…
Add table
Reference in a new issue