aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorFelipe Contreras <felipe.contreras@gmail.com>2011-02-24 15:51:32 -0500
committerTony Lindgren <tony@atomide.com>2011-02-24 15:51:32 -0500
commit0f9dfdd3d76d356250595cde200efe7c07dec0a1 (patch)
tree7291bd5acfc1668d4569c05c85021ccd76534cc0
parentfca1ab55f9a9f7e862a03a68c2b5577c15c344df (diff)
OMAP3: hwmod data: add mailbox data
Mailbox hwmod data for omap3. Signed-off-by: Felipe Contreras <felipe.contreras@gmail.com> Signed-off-by: Omar Ramirez Luna <omar.ramirez@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_3xxx_data.c71
1 files changed, 71 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
index e9d001228568..510d5e11a4ea 100644
--- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c
@@ -1858,6 +1858,74 @@ static struct omap_hwmod omap36xx_sr2_hwmod = {
1858 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1), 1858 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3630ES1),
1859}; 1859};
1860 1860
1861/*
1862 * 'mailbox' class
1863 * mailbox module allowing communication between the on-chip processors
1864 * using a queued mailbox-interrupt mechanism.
1865 */
1866
1867static struct omap_hwmod_class_sysconfig omap3xxx_mailbox_sysc = {
1868 .rev_offs = 0x000,
1869 .sysc_offs = 0x010,
1870 .syss_offs = 0x014,
1871 .sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
1872 SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
1873 .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
1874 .sysc_fields = &omap_hwmod_sysc_type1,
1875};
1876
1877static struct omap_hwmod_class omap3xxx_mailbox_hwmod_class = {
1878 .name = "mailbox",
1879 .sysc = &omap3xxx_mailbox_sysc,
1880};
1881
1882static struct omap_hwmod omap3xxx_mailbox_hwmod;
1883static struct omap_hwmod_irq_info omap3xxx_mailbox_irqs[] = {
1884 { .irq = 26 },
1885};
1886
1887static struct omap_hwmod_addr_space omap3xxx_mailbox_addrs[] = {
1888 {
1889 .pa_start = 0x48094000,
1890 .pa_end = 0x480941ff,
1891 .flags = ADDR_TYPE_RT,
1892 },
1893};
1894
1895/* l4_core -> mailbox */
1896static struct omap_hwmod_ocp_if omap3xxx_l4_core__mailbox = {
1897 .master = &omap3xxx_l4_core_hwmod,
1898 .slave = &omap3xxx_mailbox_hwmod,
1899 .addr = omap3xxx_mailbox_addrs,
1900 .addr_cnt = ARRAY_SIZE(omap3xxx_mailbox_addrs),
1901 .user = OCP_USER_MPU | OCP_USER_SDMA,
1902};
1903
1904/* mailbox slave ports */
1905static struct omap_hwmod_ocp_if *omap3xxx_mailbox_slaves[] = {
1906 &omap3xxx_l4_core__mailbox,
1907};
1908
1909static struct omap_hwmod omap3xxx_mailbox_hwmod = {
1910 .name = "mailbox",
1911 .class = &omap3xxx_mailbox_hwmod_class,
1912 .mpu_irqs = omap3xxx_mailbox_irqs,
1913 .mpu_irqs_cnt = ARRAY_SIZE(omap3xxx_mailbox_irqs),
1914 .main_clk = "mailboxes_ick",
1915 .prcm = {
1916 .omap2 = {
1917 .prcm_reg_id = 1,
1918 .module_bit = OMAP3430_EN_MAILBOXES_SHIFT,
1919 .module_offs = CORE_MOD,
1920 .idlest_reg_id = 1,
1921 .idlest_idle_bit = OMAP3430_ST_MAILBOXES_SHIFT,
1922 },
1923 },
1924 .slaves = omap3xxx_mailbox_slaves,
1925 .slaves_cnt = ARRAY_SIZE(omap3xxx_mailbox_slaves),
1926 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430),
1927};
1928
1861/* l4 core -> mcspi1 interface */ 1929/* l4 core -> mcspi1 interface */
1862static struct omap_hwmod_addr_space omap34xx_mcspi1_addr_space[] = { 1930static struct omap_hwmod_addr_space omap34xx_mcspi1_addr_space[] = {
1863 { 1931 {
@@ -2253,6 +2321,9 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = {
2253 /* dma_system class*/ 2321 /* dma_system class*/
2254 &omap3xxx_dma_system_hwmod, 2322 &omap3xxx_dma_system_hwmod,
2255 2323
2324 /* mailbox class */
2325 &omap3xxx_mailbox_hwmod,
2326
2256 /* mcspi class */ 2327 /* mcspi class */
2257 &omap34xx_mcspi1, 2328 &omap34xx_mcspi1,
2258 &omap34xx_mcspi2, 2329 &omap34xx_mcspi2,