diff --git a/arch/arm/mach-omap2/omap_hwmod_54xx_data.c b/arch/arm/mach-omap2/omap_hwmod_54xx_data.c
index 5749adfb68b1f55f9a59935288252f8cedc506ee..73c152d17a91fabd2d6bdd95abdef72805c1e945 100644 (file)
#include <linux/omap-dma.h>
#include <linux/platform_data/spi-omap2-mcspi.h>
#include <linux/platform_data/asoc-ti-mcbsp.h>
+#include <linux/platform_data/mailbox-omap.h>
#include <plat/dmtimer.h>
#include "omap_hwmod.h"
/* Base offset for all OMAP5 dma requests */
#define OMAP54XX_DMA_REQ_START 1
+/* Backward references (IPs with Bus Master capability) */
+static struct omap_hwmod omap54xx_bb2d_hwmod;
+
/*
* IP blocks
{ .irq = -1 }
};
+static struct omap_hwmod_addr_space omap54xx_bb2d_addrs[] = {
+ {
+ .pa_start = 0x59000000,
+ .pa_end = 0x590007ff,
+ .flags = ADDR_TYPE_RT
+ },
+ { }
+};
+
+/* l3_main_2 -> bb2d */
+static struct omap_hwmod_ocp_if omap54xx_l3_main_2__bb2d = {
+ .master = &omap54xx_l3_main_2_hwmod,
+ .slave = &omap54xx_bb2d_hwmod,
+ .clk = "l3_iclk_div",
+ .addr = omap54xx_bb2d_addrs,
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
static struct omap_hwmod omap54xx_bb2d_hwmod = {
.name = "bb2d",
.class = &omap54xx_bb2d_hwmod_class,
};
/* mailbox */
+static struct omap_mbox_dev_info omap54xx_mbox_info[] = {
+ { .name = "mbox-ipu", .tx_id = 0, .rx_id = 1 },
+ { .name = "mbox-dsp", .tx_id = 3, .rx_id = 2 },
+};
+
+static struct omap_mbox_pdata omap54xx_mbox_attrs = {
+ .intr_type = MBOX_INTR_CFG_TYPE2,
+ .info_cnt = ARRAY_SIZE(omap54xx_mbox_info),
+ .info = omap54xx_mbox_info,
+};
+
static struct omap_hwmod_irq_info omap54xx_mailbox_irqs[] = {
{ .irq = 26 + OMAP54XX_IRQ_GIC_START },
{ .irq = -1 }
.context_offs = OMAP54XX_RM_L4CFG_MAILBOX_CONTEXT_OFFSET,
},
},
+ .dev_attr = &omap54xx_mbox_attrs,
};
/*
.mpu_irqs = omap54xx_mmc4_irqs,
.sdma_reqs = omap54xx_mmc4_sdma_reqs,
.main_clk = "func_48m_fclk",
- .flags = HWMOD_SWSUP_SIDLE_ACT,
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_MMC4_CLKCTRL_OFFSET,
},
};
+static struct resource omap54xx_sata_phy_addrs[] = {
+ {
+ .name = "sata_phy_rx",
+ .start = 0x4A096000,
+ .end = 0x4A096080,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .name = "sata_phy_tx",
+ .start = 0x4A096400,
+ .end = 0x4A096464,
+ .flags = IORESOURCE_MEM,
+ },
+ {
+ .name = "sata_pll",
+ .start = 0x4A096800,
+ .end = 0x4A096840,
+ .flags = IORESOURCE_MEM,
+ },
+ { }
+};
+
+static struct omap_ocp2scp_dev ocp2scp3_dev_attr[] = {
+ {
+ .drv_name = "omap-sata",
+ .res = omap54xx_sata_phy_addrs,
+ },
+ { }
+};
+
+/* ocp2scp3 */
+static struct omap_hwmod omap54xx_ocp2scp3_hwmod;
+static struct omap_hwmod_addr_space omap54xx_ocp2scp3_addrs[] = {
+ {
+ .name = "ocp2scp3",
+ .pa_start = 0x4a090000,
+ .pa_end = 0x4a09001f,
+ .flags = ADDR_TYPE_RT
+ },
+ { }
+};
+
+/* l4_cfg -> ocp2scp3 */
+static struct omap_hwmod_ocp_if omap54xx_l4_cfg__ocp2scp3 = {
+ .master = &omap54xx_l4_cfg_hwmod,
+ .slave = &omap54xx_ocp2scp3_hwmod,
+ .clk = "l4_root_clk_div",
+ .addr = omap54xx_ocp2scp3_addrs,
+ .user = OCP_USER_MPU | OCP_USER_SDMA,
+};
+
+static struct omap_hwmod omap54xx_ocp2scp3_hwmod = {
+ .name = "ocp2scp3",
+ .class = &omap54xx_ocp2scp_hwmod_class,
+ .clkdm_name = "l3init_clkdm",
+ .prcm = {
+ .omap4 = {
+ .clkctrl_offs = OMAP54XX_CM_L3INIT_OCP2SCP3_CLKCTRL_OFFSET,
+ .context_offs = OMAP54XX_RM_L3INIT_OCP2SCP3_CONTEXT_OFFSET,
+ .modulemode = MODULEMODE_HWCTRL,
+ },
+ },
+ .dev_attr = ocp2scp3_dev_attr,
+};
+
/*
* 'sata' class
* sata: serial ata interface gen2 compliant ( 1 rx/ 1 tx)
.flags = HWMOD_SWSUP_SIDLE | HWMOD_SWSUP_MSTANDBY,
.mpu_irqs = omap54xx_sata_irqs,
.main_clk = "func_48m_fclk",
- .flags = HWMOD_SWSUP_SIDLE_ACT,
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L3INIT_SATA_CLKCTRL_OFFSET,
.mpu_irqs = omap54xx_uart5_irqs,
.sdma_reqs = omap54xx_uart5_sdma_reqs,
.main_clk = "func_48m_fclk",
+ .flags = HWMOD_SWSUP_SIDLE_ACT,
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_UART5_CLKCTRL_OFFSET,
.mpu_irqs = omap54xx_uart6_irqs,
.sdma_reqs = omap54xx_uart6_sdma_reqs,
.main_clk = "func_48m_fclk",
+ .flags = HWMOD_SWSUP_SIDLE_ACT,
.prcm = {
.omap4 = {
.clkctrl_offs = OMAP54XX_CM_L4PER_UART6_CLKCTRL_OFFSET,
/* usb_host_hs */
static struct omap_hwmod_irq_info omap54xx_usb_host_hs_irqs[] = {
- { .name = "ohci", .irq = 76 + OMAP54XX_IRQ_GIC_START },
- { .name = "ehci", .irq = 77 + OMAP54XX_IRQ_GIC_START },
+ { .name = "ohci-irq", .irq = 76 + OMAP54XX_IRQ_GIC_START },
+ { .name = "ehci-irq", .irq = 77 + OMAP54XX_IRQ_GIC_START },
{ .irq = -1 }
};
.user = OCP_USER_MPU,
};
-/* l3_main_2 -> bb2d */
-static struct omap_hwmod_ocp_if omap54xx_l3_main_2__bb2d = {
- .master = &omap54xx_l3_main_2_hwmod,
- .slave = &omap54xx_bb2d_hwmod,
- .clk = "l3_iclk_div",
- .user = OCP_USER_MPU | OCP_USER_SDMA,
-};
static struct omap_hwmod_addr_space omap54xx_c2c_addrs[] = {
{
{
.name = "tll",
.pa_start = 0x4a062000,
- .pa_end = 0x4a0627ff,
+ .pa_end = 0x4a062fff,
.flags = ADDR_TYPE_RT
},
- {
- .name = "ulpi",
- .pa_start = 0x4a062800,
- .pa_end = 0x4a062bff,
- },
{ }
};
&omap54xx_l4_cfg__mpu,
&omap54xx_l3_main_2__ocmc_ram,
&omap54xx_l4_cfg__ocp2scp1,
+ &omap54xx_l4_cfg__ocp2scp3,
&omap54xx_l4_cfg__sata,
&omap54xx_l4_wkup__scrm,
&omap54xx_l4_abe__slimbus1,