diff options
author | Felipe Contreras <felipe.contreras@gmail.com> | 2011-02-24 15:51:32 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2011-02-24 15:51:32 -0500 |
commit | 0f9dfdd3d76d356250595cde200efe7c07dec0a1 (patch) | |
tree | 7291bd5acfc1668d4569c05c85021ccd76534cc0 | |
parent | fca1ab55f9a9f7e862a03a68c2b5577c15c344df (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.c | 71 |
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 | |||
1867 | static 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 | |||
1877 | static struct omap_hwmod_class omap3xxx_mailbox_hwmod_class = { | ||
1878 | .name = "mailbox", | ||
1879 | .sysc = &omap3xxx_mailbox_sysc, | ||
1880 | }; | ||
1881 | |||
1882 | static struct omap_hwmod omap3xxx_mailbox_hwmod; | ||
1883 | static struct omap_hwmod_irq_info omap3xxx_mailbox_irqs[] = { | ||
1884 | { .irq = 26 }, | ||
1885 | }; | ||
1886 | |||
1887 | static 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 */ | ||
1896 | static 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 */ | ||
1905 | static struct omap_hwmod_ocp_if *omap3xxx_mailbox_slaves[] = { | ||
1906 | &omap3xxx_l4_core__mailbox, | ||
1907 | }; | ||
1908 | |||
1909 | static 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 */ |
1862 | static struct omap_hwmod_addr_space omap34xx_mcspi1_addr_space[] = { | 1930 | static 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, |