diff options
author | G, Manjunath Kondaiah <manjugk@ti.com> | 2010-12-20 21:27:19 -0500 |
---|---|---|
committer | Tony Lindgren <tony@atomide.com> | 2010-12-20 21:38:29 -0500 |
commit | 01438ab6a49b63ef02b2eb44b63345a09792f982 (patch) | |
tree | 22c9700d47b486c413b57ddbcfb0980d92847ad2 /arch/arm | |
parent | 82cbd1aebafd126f40a8ed0725a6feb6ed710576 (diff) |
OMAP3: hwmod data: add system DMA
Add OMAP3 DMA hwmod data
Signed-off-by: G, Manjunath Kondaiah <manjugk@ti.com>
Tested-by: Kevin Hilman <khilman@deeprootsystems.com>
Acked-by: Kevin Hilman <khilman@deeprootsystems.com>
Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm')
-rw-r--r-- | arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | 97 |
1 files changed, 97 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 2687be10d7aa..d5acb63ba9e0 100644 --- a/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c +++ b/arch/arm/mach-omap2/omap_hwmod_3xxx_data.c | |||
@@ -52,6 +52,8 @@ static struct omap_hwmod omap3xxx_gpio4_hwmod; | |||
52 | static struct omap_hwmod omap3xxx_gpio5_hwmod; | 52 | static struct omap_hwmod omap3xxx_gpio5_hwmod; |
53 | static struct omap_hwmod omap3xxx_gpio6_hwmod; | 53 | static struct omap_hwmod omap3xxx_gpio6_hwmod; |
54 | 54 | ||
55 | static struct omap_hwmod omap3xxx_dma_system_hwmod; | ||
56 | |||
55 | /* L3 -> L4_CORE interface */ | 57 | /* L3 -> L4_CORE interface */ |
56 | static struct omap_hwmod_ocp_if omap3xxx_l3_main__l4_core = { | 58 | static struct omap_hwmod_ocp_if omap3xxx_l3_main__l4_core = { |
57 | .master = &omap3xxx_l3_main_hwmod, | 59 | .master = &omap3xxx_l3_main_hwmod, |
@@ -1090,6 +1092,98 @@ static struct omap_hwmod omap3xxx_gpio6_hwmod = { | |||
1090 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | 1092 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), |
1091 | }; | 1093 | }; |
1092 | 1094 | ||
1095 | /* dma_system -> L3 */ | ||
1096 | static struct omap_hwmod_ocp_if omap3xxx_dma_system__l3 = { | ||
1097 | .master = &omap3xxx_dma_system_hwmod, | ||
1098 | .slave = &omap3xxx_l3_main_hwmod, | ||
1099 | .clk = "core_l3_ick", | ||
1100 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
1101 | }; | ||
1102 | |||
1103 | /* dma attributes */ | ||
1104 | static struct omap_dma_dev_attr dma_dev_attr = { | ||
1105 | .dev_caps = RESERVE_CHANNEL | DMA_LINKED_LCH | GLOBAL_PRIORITY | | ||
1106 | IS_CSSA_32 | IS_CDSA_32 | IS_RW_PRIORITY, | ||
1107 | .lch_count = 32, | ||
1108 | }; | ||
1109 | |||
1110 | static struct omap_hwmod_class_sysconfig omap3xxx_dma_sysc = { | ||
1111 | .rev_offs = 0x0000, | ||
1112 | .sysc_offs = 0x002c, | ||
1113 | .syss_offs = 0x0028, | ||
1114 | .sysc_flags = (SYSC_HAS_SIDLEMODE | SYSC_HAS_SOFTRESET | | ||
1115 | SYSC_HAS_MIDLEMODE | SYSC_HAS_CLOCKACTIVITY | | ||
1116 | SYSC_HAS_EMUFREE | SYSC_HAS_AUTOIDLE), | ||
1117 | .idlemodes = (SIDLE_FORCE | SIDLE_NO | SIDLE_SMART | | ||
1118 | MSTANDBY_FORCE | MSTANDBY_NO | MSTANDBY_SMART), | ||
1119 | .sysc_fields = &omap_hwmod_sysc_type1, | ||
1120 | }; | ||
1121 | |||
1122 | static struct omap_hwmod_class omap3xxx_dma_hwmod_class = { | ||
1123 | .name = "dma", | ||
1124 | .sysc = &omap3xxx_dma_sysc, | ||
1125 | }; | ||
1126 | |||
1127 | /* dma_system */ | ||
1128 | static struct omap_hwmod_irq_info omap3xxx_dma_system_irqs[] = { | ||
1129 | { .name = "0", .irq = 12 }, /* INT_24XX_SDMA_IRQ0 */ | ||
1130 | { .name = "1", .irq = 13 }, /* INT_24XX_SDMA_IRQ1 */ | ||
1131 | { .name = "2", .irq = 14 }, /* INT_24XX_SDMA_IRQ2 */ | ||
1132 | { .name = "3", .irq = 15 }, /* INT_24XX_SDMA_IRQ3 */ | ||
1133 | }; | ||
1134 | |||
1135 | static struct omap_hwmod_addr_space omap3xxx_dma_system_addrs[] = { | ||
1136 | { | ||
1137 | .pa_start = 0x48056000, | ||
1138 | .pa_end = 0x4a0560ff, | ||
1139 | .flags = ADDR_TYPE_RT | ||
1140 | }, | ||
1141 | }; | ||
1142 | |||
1143 | /* dma_system master ports */ | ||
1144 | static struct omap_hwmod_ocp_if *omap3xxx_dma_system_masters[] = { | ||
1145 | &omap3xxx_dma_system__l3, | ||
1146 | }; | ||
1147 | |||
1148 | /* l4_cfg -> dma_system */ | ||
1149 | static struct omap_hwmod_ocp_if omap3xxx_l4_core__dma_system = { | ||
1150 | .master = &omap3xxx_l4_core_hwmod, | ||
1151 | .slave = &omap3xxx_dma_system_hwmod, | ||
1152 | .clk = "core_l4_ick", | ||
1153 | .addr = omap3xxx_dma_system_addrs, | ||
1154 | .addr_cnt = ARRAY_SIZE(omap3xxx_dma_system_addrs), | ||
1155 | .user = OCP_USER_MPU | OCP_USER_SDMA, | ||
1156 | }; | ||
1157 | |||
1158 | /* dma_system slave ports */ | ||
1159 | static struct omap_hwmod_ocp_if *omap3xxx_dma_system_slaves[] = { | ||
1160 | &omap3xxx_l4_core__dma_system, | ||
1161 | }; | ||
1162 | |||
1163 | static struct omap_hwmod omap3xxx_dma_system_hwmod = { | ||
1164 | .name = "dma", | ||
1165 | .class = &omap3xxx_dma_hwmod_class, | ||
1166 | .mpu_irqs = omap3xxx_dma_system_irqs, | ||
1167 | .mpu_irqs_cnt = ARRAY_SIZE(omap3xxx_dma_system_irqs), | ||
1168 | .main_clk = "core_l3_ick", | ||
1169 | .prcm = { | ||
1170 | .omap2 = { | ||
1171 | .module_offs = CORE_MOD, | ||
1172 | .prcm_reg_id = 1, | ||
1173 | .module_bit = OMAP3430_ST_SDMA_SHIFT, | ||
1174 | .idlest_reg_id = 1, | ||
1175 | .idlest_idle_bit = OMAP3430_ST_SDMA_SHIFT, | ||
1176 | }, | ||
1177 | }, | ||
1178 | .slaves = omap3xxx_dma_system_slaves, | ||
1179 | .slaves_cnt = ARRAY_SIZE(omap3xxx_dma_system_slaves), | ||
1180 | .masters = omap3xxx_dma_system_masters, | ||
1181 | .masters_cnt = ARRAY_SIZE(omap3xxx_dma_system_masters), | ||
1182 | .dev_attr = &dma_dev_attr, | ||
1183 | .omap_chip = OMAP_CHIP_INIT(CHIP_IS_OMAP3430), | ||
1184 | .flags = HWMOD_NO_IDLEST, | ||
1185 | }; | ||
1186 | |||
1093 | static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { | 1187 | static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { |
1094 | &omap3xxx_l3_main_hwmod, | 1188 | &omap3xxx_l3_main_hwmod, |
1095 | &omap3xxx_l4_core_hwmod, | 1189 | &omap3xxx_l4_core_hwmod, |
@@ -1113,6 +1207,9 @@ static __initdata struct omap_hwmod *omap3xxx_hwmods[] = { | |||
1113 | &omap3xxx_gpio4_hwmod, | 1207 | &omap3xxx_gpio4_hwmod, |
1114 | &omap3xxx_gpio5_hwmod, | 1208 | &omap3xxx_gpio5_hwmod, |
1115 | &omap3xxx_gpio6_hwmod, | 1209 | &omap3xxx_gpio6_hwmod, |
1210 | |||
1211 | /* dma_system class*/ | ||
1212 | &omap3xxx_dma_system_hwmod, | ||
1116 | NULL, | 1213 | NULL, |
1117 | }; | 1214 | }; |
1118 | 1215 | ||