]> Gitweb @ Texas Instruments - Open Source Git Repositories - git.TI.com/gitweb - android-sdk/kernel-video.git/blobdiff - arch/arm/mach-omap2/omap_hwmod_54xx_data.c
ARM: OMAP5/DRA7: hwmod: add ADDR_TYPE_RT to bb2d address flags
[android-sdk/kernel-video.git] / arch / arm / mach-omap2 / omap_hwmod_54xx_data.c
index 5749adfb68b1f55f9a59935288252f8cedc506ee..73c152d17a91fabd2d6bdd95abdef72805c1e945 100644 (file)
@@ -26,6 +26,7 @@
 #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"
@@ -44,6 +45,9 @@
 /* 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
@@ -338,6 +342,24 @@ static struct omap_hwmod_irq_info omap54xx_bb2d_irqs[] = {
        { .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,
@@ -1941,6 +1963,17 @@ static struct omap_hwmod_class omap54xx_mailbox_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 }
@@ -1958,6 +1991,7 @@ static struct omap_hwmod omap54xx_mailbox_hwmod = {
                        .context_offs = OMAP54XX_RM_L4CFG_MAILBOX_CONTEXT_OFFSET,
                },
        },
+       .dev_attr       = &omap54xx_mbox_attrs,
 };
 
 /*
@@ -2496,7 +2530,6 @@ static struct omap_hwmod omap54xx_mmc4_hwmod = {
        .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,
@@ -2625,6 +2658,71 @@ static struct omap_hwmod omap54xx_ocp2scp1_hwmod = {
        },
 };
 
+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)
@@ -2661,7 +2759,6 @@ static struct omap_hwmod omap54xx_sata_hwmod = {
        .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,
@@ -3329,6 +3426,7 @@ static struct omap_hwmod omap54xx_uart5_hwmod = {
        .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,
@@ -3357,6 +3455,7 @@ static struct omap_hwmod omap54xx_uart6_hwmod = {
        .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,
@@ -3389,8 +3488,8 @@ static struct omap_hwmod_class omap54xx_usb_host_hs_hwmod_class = {
 
 /* 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 }
 };
 
@@ -3883,13 +3982,6 @@ static struct omap_hwmod_ocp_if omap54xx_l4_abe__aess = {
        .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[] = {
        {
@@ -5525,14 +5617,9 @@ static struct omap_hwmod_addr_space omap54xx_usb_tll_hs_addrs[] = {
        {
                .name           = "tll",
                .pa_start       = 0x4a062000,
-               .pa_end         = 0x4a0627ff,
+               .pa_end         = 0x4a062fff,
                .flags          = ADDR_TYPE_RT
        },
-       {
-               .name           = "ulpi",
-               .pa_start       = 0x4a062800,
-               .pa_end         = 0x4a062bff,
-       },
        { }
 };
 
@@ -5667,6 +5754,7 @@ static struct omap_hwmod_ocp_if *omap54xx_hwmod_ocp_ifs[] __initdata = {
        &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,