diff options
| author | mattis fjallstrom <mattis@acm.org> | 2015-09-06 11:09:39 -0700 |
|---|---|---|
| committer | mattis fjallstrom <mattis@acm.org> | 2015-09-06 11:09:39 -0700 |
| commit | ee87ec4d2c955c929a4c27ce8a56f918444cf955 (patch) | |
| tree | c18141755ad893eddd5b504e4cf096ad4e7062b9 /board/olio/h1/h1.c | |
| parent | 2c25de1ed5c6f8f6bba3b5ec506f430d8a883a83 (diff) | |
| download | olio-uboot-2014.01-ee87ec4d2c955c929a4c27ce8a56f918444cf955.tar.xz olio-uboot-2014.01-ee87ec4d2c955c929a4c27ce8a56f918444cf955.zip | |
First fastboot commit, MLO built here wont work so be careful.
Change-Id: Ic8d65a92da82896282eee71cf0d0515f64c939bc
Diffstat (limited to 'board/olio/h1/h1.c')
| -rw-r--r-- | board/olio/h1/h1.c | 72 |
1 files changed, 72 insertions, 0 deletions
diff --git a/board/olio/h1/h1.c b/board/olio/h1/h1.c index e69797638..43bc998fd 100644 --- a/board/olio/h1/h1.c +++ b/board/olio/h1/h1.c @@ -26,9 +26,43 @@ #include <command.h> #include <power/tps65910.h> #include <i2c.h> +#include <asm/arch/musb.h> +#include <asm/arch/mmc_host_def.h> +#include <asm/arch/am35x_def.h> +#include <i2c.h> +#include <linux/compiler.h> +#include <linux/usb/ch9.h> +#include <linux/usb/gadget.h> +#include <linux/usb/musb.h> +#include <asm/omap_musb.h> + +#ifdef CONFIG_USB_EHCI +#include <usb.h> +#include <asm/ehci-omap.h> +#endif DECLARE_GLOBAL_DATA_PTR; +#define USB_CS 17 + + +static struct omap_usbhs_board_data usbhs_bdata = { + .port_mode[0] = OMAP_EHCI_PORT_MODE_PHY, + .port_mode[1] = OMAP_USBHS_PORT_MODE_UNUSED, + .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED, +}; + +int ehci_hcd_init(int index, enum usb_init_type init, + struct ehci_hccr **hccr, struct ehci_hcor **hcor) +{ + return omap_ehci_hcd_init(index, &usbhs_bdata, hccr, hcor); +} + +int ehci_hcd_stop(int index) +{ + return omap_ehci_hcd_stop(); +} + /* * Routine: board_init * Description: Early hardware init. @@ -154,6 +188,38 @@ static int accel_regulator_init(void) return i2c_write(TPS65910_CTRL_I2C_ADDR, TPS65910_VDIG1_REG, 1, &buf, 1); } +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_ULPI, +}; + +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 = 100, + .platform_ops = &omap2430_ops, + .board_data = &musb_board_data, +}; + + +static void olio_evm_musb_init(void) +{ + printf("musb mode %s \n", musb_plat.mode == MUSB_PERIPHERAL ? "MUSB_PERIPHERAL" : "MUSB_HOST"); + musb_register(&musb_plat, &musb_board_data, (void *)MUSB_BASE); +} + /* * Routine: misc_init_r * Description: Configure board specific parts @@ -174,6 +240,12 @@ int misc_init_r(void) dieid_num_r(); + printf("debug usb_data0 %d mode %d \n", CONTROL_PADCONF_HSUSB0_DATA0 , (IEN | PD | M0)); + gpio_request(USB_CS, "usb_cs"); + gpio_direction_output(USB_CS, 1); + + olio_evm_musb_init(); + return 0; } |