|
@@ -28,6 +28,7 @@
|
|
|
#include "prm-regbits-34xx.h"
|
|
|
#include "cm-regbits-34xx.h"
|
|
|
#include "wd_timer.h"
|
|
|
+#include <mach/am35xx.h>
|
|
|
|
|
|
/*
|
|
|
* OMAP3xxx hardware module integration data
|
|
@@ -55,6 +56,8 @@ static struct omap_hwmod omap3xxx_gpio5_hwmod;
|
|
|
static struct omap_hwmod omap3xxx_gpio6_hwmod;
|
|
|
static struct omap_hwmod omap34xx_sr1_hwmod;
|
|
|
static struct omap_hwmod omap34xx_sr2_hwmod;
|
|
|
+static struct omap_hwmod am35xx_usbhsotg_hwmod;
|
|
|
+
|
|
|
|
|
|
static struct omap_hwmod omap3xxx_dma_system_hwmod;
|
|
|
|
|
@@ -117,6 +120,13 @@ static struct omap_hwmod_ocp_if omap3xxx_usbhsotg__l3 = {
|
|
|
.user = OCP_USER_MPU,
|
|
|
};
|
|
|
|
|
|
+/* l3_core -> am35xx_usbhsotg interface */
|
|
|
+static struct omap_hwmod_ocp_if am35xx_usbhsotg__l3 = {
|
|
|
+ .master = &am35xx_usbhsotg_hwmod,
|
|
|
+ .slave = &omap3xxx_l3_main_hwmod,
|
|
|
+ .clk = "core_l3_ick",
|
|
|
+ .user = OCP_USER_MPU,
|
|
|
+};
|
|
|
/* L4_CORE -> L4_WKUP interface */
|
|
|
static struct omap_hwmod_ocp_if omap3xxx_l4_core__l4_wkup = {
|
|
|
.master = &omap3xxx_l4_core_hwmod,
|
|
@@ -340,6 +350,31 @@ static struct omap_hwmod_ocp_if *omap3xxx_usbhsotg_slaves[] = {
|
|
|
&omap3xxx_l4_core__usbhsotg,
|
|
|
};
|
|
|
|
|
|
+static struct omap_hwmod_addr_space am35xx_usbhsotg_addrs[] = {
|
|
|
+ {
|
|
|
+ .pa_start = AM35XX_IPSS_USBOTGSS_BASE,
|
|
|
+ .pa_end = AM35XX_IPSS_USBOTGSS_BASE + SZ_4K - 1,
|
|
|
+ .flags = ADDR_TYPE_RT
|
|
|
+ },
|
|
|
+};
|
|
|
+
|
|
|
+/* l4_core -> usbhsotg */
|
|
|
+static struct omap_hwmod_ocp_if am35xx_l4_core__usbhsotg = {
|
|
|
+ .master = &omap3xxx_l4_core_hwmod,
|
|
|
+ .slave = &am35xx_usbhsotg_hwmod,
|
|
|
+ .clk = "l4_ick",
|
|
|
+ .addr = am35xx_usbhsotg_addrs,
|
|
|
+ .addr_cnt = ARRAY_SIZE(am35xx_usbhsotg_addrs),
|
|
|
+ .user = OCP_USER_MPU,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_ocp_if *am35xx_usbhsotg_masters[] = {
|
|
|
+ &am35xx_usbhsotg__l3,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_ocp_if *am35xx_usbhsotg_slaves[] = {
|
|
|
+ &am35xx_l4_core__usbhsotg,
|
|
|
+};
|
|
|
/* Slave interfaces on the L4_CORE interconnect */
|
|
|
static struct omap_hwmod_ocp_if *omap3xxx_l4_core_slaves[] = {
|
|
|
&omap3xxx_l3_main__l4_core,
|
|
@@ -1452,6 +1487,33 @@ static struct omap_hwmod omap3xxx_usbhsotg_hwmod = {
|
|
|
| HWMOD_SWSUP_MSTANDBY,
|
|
|
.omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430)
|
|
|
};
|
|
|
+/* usb_otg_hs */
|
|
|
+static struct omap_hwmod_irq_info am35xx_usbhsotg_mpu_irqs[] = {
|
|
|
+
|
|
|
+ { .name = "mc", .irq = 71 },
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod_class am35xx_usbotg_class = {
|
|
|
+ .name = "am35xx_usbotg",
|
|
|
+ .sysc = NULL,
|
|
|
+};
|
|
|
+
|
|
|
+static struct omap_hwmod am35xx_usbhsotg_hwmod = {
|
|
|
+ .name = "am35x_otg_hs",
|
|
|
+ .mpu_irqs = am35xx_usbhsotg_mpu_irqs,
|
|
|
+ .mpu_irqs_cnt = ARRAY_SIZE(am35xx_usbhsotg_mpu_irqs),
|
|
|
+ .main_clk = NULL,
|
|
|
+ .prcm = {
|
|
|
+ .omap2 = {
|
|
|
+ },
|
|
|
+ },
|
|
|
+ .masters = am35xx_usbhsotg_masters,
|
|
|
+ .masters_cnt = ARRAY_SIZE(am35xx_usbhsotg_masters),
|
|
|
+ .slaves = am35xx_usbhsotg_slaves,
|
|
|
+ .slaves_cnt = ARRAY_SIZE(am35xx_usbhsotg_slaves),
|
|
|
+ .class = &am35xx_usbotg_class,
|
|
|
+ .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430ES3_1)
|
|
|
+};
|
|
|
|
|
|
static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
|
|
|
&omap3xxx_l3_main_hwmod,
|
|
@@ -1488,6 +1550,9 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
|
|
|
/* usbotg class */
|
|
|
&omap3xxx_usbhsotg_hwmod,
|
|
|
|
|
|
+ /* usbotg for am35x */
|
|
|
+ &am35xx_usbhsotg_hwmod,
|
|
|
+
|
|
|
NULL,
|
|
|
};
|
|
|
|