aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2/omap_hwmod_2420_data.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/arm/mach-omap2/omap_hwmod_2420_data.c')
-rw-r--r--arch/arm/mach-omap2/omap_hwmod_2420_data.c202
1 files changed, 202 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/omap_hwmod_2420_data.c b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
index e58621aa9b34..e0bc2c7a15de 100644
--- a/arch/arm/mach-omap2/omap_hwmod_2420_data.c
+++ b/arch/arm/mach-omap2/omap_hwmod_2420_data.c
@@ -110,6 +110,8 @@ static struct omap_hwmod omap2420_uart2_hwmod;
110static struct omap_hwmod omap2420_uart3_hwmod; 110static struct omap_hwmod omap2420_uart3_hwmod;
111static struct omap_hwmod omap2420_i2c1_hwmod; 111static struct omap_hwmod omap2420_i2c1_hwmod;
112static struct omap_hwmod omap2420_i2c2_hwmod; 112static struct omap_hwmod omap2420_i2c2_hwmod;
113static struct omap_hwmod omap2420_mcbsp1_hwmod;
114static struct omap_hwmod omap2420_mcbsp2_hwmod;
113 115
114/* l4 core -> mcspi1 interface */ 116/* l4 core -> mcspi1 interface */
115static struct omap_hwmod_addr_space omap2420_mcspi1_addr_space[] = { 117static struct omap_hwmod_addr_space omap2420_mcspi1_addr_space[] = {
@@ -1828,6 +1830,76 @@ static struct omap_hwmod omap2420_dma_system_hwmod = {
1828}; 1830};
1829 1831
1830/* 1832/*
1833 * 'mailbox' class
1834 * mailbox module allowing communication between the on-chip processors
1835 * using a queued mailbox-interrupt mechanism.
1836 */
1837
1838static struct omap_hwmod_class_sysconfig omap2420_mailbox_sysc = {
1839 .rev_offs = 0x000,
1840 .sysc_offs = 0x010,
1841 .syss_offs = 0x014,
1842 .sysc_flags = (SYSC_HAS_CLOCKACTIVITY | SYSC_HAS_SIDLEMODE |
1843 SYSC_HAS_SOFTRESET | SYSC_HAS_AUTOIDLE),
1844 .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART),
1845 .sysc_fields = &omap_hwmod_sysc_type1,
1846};
1847
1848static struct omap_hwmod_class omap2420_mailbox_hwmod_class = {
1849 .name = "mailbox",
1850 .sysc = &omap2420_mailbox_sysc,
1851};
1852
1853/* mailbox */
1854static struct omap_hwmod omap2420_mailbox_hwmod;
1855static struct omap_hwmod_irq_info omap2420_mailbox_irqs[] = {
1856 { .name = "dsp", .irq = 26 },
1857 { .name = "iva", .irq = 34 },
1858};
1859
1860static struct omap_hwmod_addr_space omap2420_mailbox_addrs[] = {
1861 {
1862 .pa_start = 0x48094000,
1863 .pa_end = 0x480941ff,
1864 .flags = ADDR_TYPE_RT,
1865 },
1866};
1867
1868/* l4_core -> mailbox */
1869static struct omap_hwmod_ocp_if omap2420_l4_core__mailbox = {
1870 .master = &omap2420_l4_core_hwmod,
1871 .slave = &omap2420_mailbox_hwmod,
1872 .addr = omap2420_mailbox_addrs,
1873 .addr_cnt = ARRAY_SIZE(omap2420_mailbox_addrs),
1874 .user = OCP_USER_MPU | OCP_USER_SDMA,
1875};
1876
1877/* mailbox slave ports */
1878static struct omap_hwmod_ocp_if *omap2420_mailbox_slaves[] = {
1879 &omap2420_l4_core__mailbox,
1880};
1881
1882static struct omap_hwmod omap2420_mailbox_hwmod = {
1883 .name = "mailbox",
1884 .class = &omap2420_mailbox_hwmod_class,
1885 .mpu_irqs = omap2420_mailbox_irqs,
1886 .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mailbox_irqs),
1887 .main_clk = "mailboxes_ick",
1888 .prcm = {
1889 .omap2 = {
1890 .prcm_reg_id = 1,
1891 .module_bit = OMAP24XX_EN_MAILBOXES_SHIFT,
1892 .module_offs = CORE_MOD,
1893 .idlest_reg_id = 1,
1894 .idlest_idle_bit = OMAP24XX_ST_MAILBOXES_SHIFT,
1895 },
1896 },
1897 .slaves = omap2420_mailbox_slaves,
1898 .slaves_cnt = ARRAY_SIZE(omap2420_mailbox_slaves),
1899 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
1900};
1901
1902/*
1831 * 'mcspi' class 1903 * 'mcspi' class
1832 * multichannel serial port interface (mcspi) / master/slave synchronous serial 1904 * multichannel serial port interface (mcspi) / master/slave synchronous serial
1833 * bus 1905 * bus
@@ -1940,6 +2012,129 @@ static struct omap_hwmod omap2420_mcspi2_hwmod = {
1940 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420), 2012 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
1941}; 2013};
1942 2014
2015/*
2016 * 'mcbsp' class
2017 * multi channel buffered serial port controller
2018 */
2019
2020static struct omap_hwmod_class omap2420_mcbsp_hwmod_class = {
2021 .name = "mcbsp",
2022};
2023
2024/* mcbsp1 */
2025static struct omap_hwmod_irq_info omap2420_mcbsp1_irqs[] = {
2026 { .name = "tx", .irq = 59 },
2027 { .name = "rx", .irq = 60 },
2028};
2029
2030static struct omap_hwmod_dma_info omap2420_mcbsp1_sdma_chs[] = {
2031 { .name = "rx", .dma_req = 32 },
2032 { .name = "tx", .dma_req = 31 },
2033};
2034
2035static struct omap_hwmod_addr_space omap2420_mcbsp1_addrs[] = {
2036 {
2037 .name = "mpu",
2038 .pa_start = 0x48074000,
2039 .pa_end = 0x480740ff,
2040 .flags = ADDR_TYPE_RT
2041 },
2042};
2043
2044/* l4_core -> mcbsp1 */
2045static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp1 = {
2046 .master = &omap2420_l4_core_hwmod,
2047 .slave = &omap2420_mcbsp1_hwmod,
2048 .clk = "mcbsp1_ick",
2049 .addr = omap2420_mcbsp1_addrs,
2050 .addr_cnt = ARRAY_SIZE(omap2420_mcbsp1_addrs),
2051 .user = OCP_USER_MPU | OCP_USER_SDMA,
2052};
2053
2054/* mcbsp1 slave ports */
2055static struct omap_hwmod_ocp_if *omap2420_mcbsp1_slaves[] = {
2056 &omap2420_l4_core__mcbsp1,
2057};
2058
2059static struct omap_hwmod omap2420_mcbsp1_hwmod = {
2060 .name = "mcbsp1",
2061 .class = &omap2420_mcbsp_hwmod_class,
2062 .mpu_irqs = omap2420_mcbsp1_irqs,
2063 .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mcbsp1_irqs),
2064 .sdma_reqs = omap2420_mcbsp1_sdma_chs,
2065 .sdma_reqs_cnt = ARRAY_SIZE(omap2420_mcbsp1_sdma_chs),
2066 .main_clk = "mcbsp1_fck",
2067 .prcm = {
2068 .omap2 = {
2069 .prcm_reg_id = 1,
2070 .module_bit = OMAP24XX_EN_MCBSP1_SHIFT,
2071 .module_offs = CORE_MOD,
2072 .idlest_reg_id = 1,
2073 .idlest_idle_bit = OMAP24XX_ST_MCBSP1_SHIFT,
2074 },
2075 },
2076 .slaves = omap2420_mcbsp1_slaves,
2077 .slaves_cnt = ARRAY_SIZE(omap2420_mcbsp1_slaves),
2078 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
2079};
2080
2081/* mcbsp2 */
2082static struct omap_hwmod_irq_info omap2420_mcbsp2_irqs[] = {
2083 { .name = "tx", .irq = 62 },
2084 { .name = "rx", .irq = 63 },
2085};
2086
2087static struct omap_hwmod_dma_info omap2420_mcbsp2_sdma_chs[] = {
2088 { .name = "rx", .dma_req = 34 },
2089 { .name = "tx", .dma_req = 33 },
2090};
2091
2092static struct omap_hwmod_addr_space omap2420_mcbsp2_addrs[] = {
2093 {
2094 .name = "mpu",
2095 .pa_start = 0x48076000,
2096 .pa_end = 0x480760ff,
2097 .flags = ADDR_TYPE_RT
2098 },
2099};
2100
2101/* l4_core -> mcbsp2 */
2102static struct omap_hwmod_ocp_if omap2420_l4_core__mcbsp2 = {
2103 .master = &omap2420_l4_core_hwmod,
2104 .slave = &omap2420_mcbsp2_hwmod,
2105 .clk = "mcbsp2_ick",
2106 .addr = omap2420_mcbsp2_addrs,
2107 .addr_cnt = ARRAY_SIZE(omap2420_mcbsp2_addrs),
2108 .user = OCP_USER_MPU | OCP_USER_SDMA,
2109};
2110
2111/* mcbsp2 slave ports */
2112static struct omap_hwmod_ocp_if *omap2420_mcbsp2_slaves[] = {
2113 &omap2420_l4_core__mcbsp2,
2114};
2115
2116static struct omap_hwmod omap2420_mcbsp2_hwmod = {
2117 .name = "mcbsp2",
2118 .class = &omap2420_mcbsp_hwmod_class,
2119 .mpu_irqs = omap2420_mcbsp2_irqs,
2120 .mpu_irqs_cnt = ARRAY_SIZE(omap2420_mcbsp2_irqs),
2121 .sdma_reqs = omap2420_mcbsp2_sdma_chs,
2122 .sdma_reqs_cnt = ARRAY_SIZE(omap2420_mcbsp2_sdma_chs),
2123 .main_clk = "mcbsp2_fck",
2124 .prcm = {
2125 .omap2 = {
2126 .prcm_reg_id = 1,
2127 .module_bit = OMAP24XX_EN_MCBSP2_SHIFT,
2128 .module_offs = CORE_MOD,
2129 .idlest_reg_id = 1,
2130 .idlest_idle_bit = OMAP24XX_ST_MCBSP2_SHIFT,
2131 },
2132 },
2133 .slaves = omap2420_mcbsp2_slaves,
2134 .slaves_cnt = ARRAY_SIZE(omap2420_mcbsp2_slaves),
2135 .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP2420),
2136};
2137
1943static __initdata struct omap_hwmod *omap2420_hwmods[] = { 2138static __initdata struct omap_hwmod *omap2420_hwmods[] = {
1944 &omap2420_l3_main_hwmod, 2139 &omap2420_l3_main_hwmod,
1945 &omap2420_l4_core_hwmod, 2140 &omap2420_l4_core_hwmod,
@@ -1982,6 +2177,13 @@ static __initdata struct omap_hwmod *omap2420_hwmods[] = {
1982 /* dma_system class*/ 2177 /* dma_system class*/
1983 &omap2420_dma_system_hwmod, 2178 &omap2420_dma_system_hwmod,
1984 2179
2180 /* mailbox class */
2181 &omap2420_mailbox_hwmod,
2182
2183 /* mcbsp class */
2184 &omap2420_mcbsp1_hwmod,
2185 &omap2420_mcbsp2_hwmod,
2186
1985 /* mcspi class */ 2187 /* mcspi class */
1986 &omap2420_mcspi1_hwmod, 2188 &omap2420_mcspi1_hwmod,
1987 &omap2420_mcspi2_hwmod, 2189 &omap2420_mcspi2_hwmod,