aboutsummaryrefslogtreecommitdiffstats
path: root/arch/arm/mach-omap2
diff options
context:
space:
mode:
authorSriram <srk@ti.com>2010-05-10 17:29:16 -0400
committerTony Lindgren <tony@atomide.com>2010-05-20 13:48:57 -0400
commit917336318ef1c2520b6898113dade12c401ea1a0 (patch)
treed86439bf5f4abb339221a8dcbcd6692c86632a00 /arch/arm/mach-omap2
parenta29b8204d22c9c634841f2474c0bc327f36d7be6 (diff)
can: ti_hecc: board specific hookup on AM3517EVM
Add board specific hookup for TI HECC driver on AM3517 EVM Signed-off-by: Sriramakrishnan <srk@ti.com> Signed-off-by: Tony Lindgren <tony@atomide.com>
Diffstat (limited to 'arch/arm/mach-omap2')
-rw-r--r--arch/arm/mach-omap2/board-am3517evm.c38
-rw-r--r--arch/arm/mach-omap2/include/mach/am35xx.h9
2 files changed, 47 insertions, 0 deletions
diff --git a/arch/arm/mach-omap2/board-am3517evm.c b/arch/arm/mach-omap2/board-am3517evm.c
index c1c4389fbd8f..6ca0075026ff 100644
--- a/arch/arm/mach-omap2/board-am3517evm.c
+++ b/arch/arm/mach-omap2/board-am3517evm.c
@@ -21,6 +21,7 @@
21#include <linux/platform_device.h> 21#include <linux/platform_device.h>
22#include <linux/gpio.h> 22#include <linux/gpio.h>
23#include <linux/i2c/pca953x.h> 23#include <linux/i2c/pca953x.h>
24#include <linux/can/platform/ti_hecc.h>
24 25
25#include <mach/hardware.h> 26#include <mach/hardware.h>
26#include <mach/am35xx.h> 27#include <mach/am35xx.h>
@@ -292,6 +293,42 @@ static struct omap_board_mux board_mux[] __initdata = {
292#define board_mux NULL 293#define board_mux NULL
293#endif 294#endif
294 295
296
297static struct resource am3517_hecc_resources[] = {
298 {
299 .start = AM35XX_IPSS_HECC_BASE,
300 .end = AM35XX_IPSS_HECC_BASE + 0x3FFF,
301 .flags = IORESOURCE_MEM,
302 },
303 {
304 .start = INT_35XX_HECC0_IRQ,
305 .end = INT_35XX_HECC0_IRQ,
306 .flags = IORESOURCE_IRQ,
307 },
308};
309
310static struct platform_device am3517_hecc_device = {
311 .name = "ti_hecc",
312 .id = -1,
313 .num_resources = ARRAY_SIZE(am3517_hecc_resources),
314 .resource = am3517_hecc_resources,
315};
316
317static struct ti_hecc_platform_data am3517_evm_hecc_pdata = {
318 .scc_hecc_offset = AM35XX_HECC_SCC_HECC_OFFSET,
319 .scc_ram_offset = AM35XX_HECC_SCC_RAM_OFFSET,
320 .hecc_ram_offset = AM35XX_HECC_RAM_OFFSET,
321 .mbx_offset = AM35XX_HECC_MBOX_OFFSET,
322 .int_line = AM35XX_HECC_INT_LINE,
323 .version = AM35XX_HECC_VERSION,
324};
325
326static void am3517_evm_hecc_init(struct ti_hecc_platform_data *pdata)
327{
328 am3517_hecc_device.dev.platform_data = pdata;
329 platform_device_register(&am3517_hecc_device);
330}
331
295static void __init am3517_evm_init(void) 332static void __init am3517_evm_init(void)
296{ 333{
297 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); 334 omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
@@ -305,6 +342,7 @@ static void __init am3517_evm_init(void)
305 /* Configure GPIO for EHCI port */ 342 /* Configure GPIO for EHCI port */
306 omap_mux_init_gpio(57, OMAP_PIN_OUTPUT); 343 omap_mux_init_gpio(57, OMAP_PIN_OUTPUT);
307 usb_ehci_init(&ehci_pdata); 344 usb_ehci_init(&ehci_pdata);
345 am3517_evm_hecc_init(&am3517_evm_hecc_pdata);
308 /* DSS */ 346 /* DSS */
309 am3517_evm_display_init(); 347 am3517_evm_display_init();
310 348
diff --git a/arch/arm/mach-omap2/include/mach/am35xx.h b/arch/arm/mach-omap2/include/mach/am35xx.h
index a705f946fc46..0636263c2e7d 100644
--- a/arch/arm/mach-omap2/include/mach/am35xx.h
+++ b/arch/arm/mach-omap2/include/mach/am35xx.h
@@ -23,4 +23,13 @@
23#define AM35XX_IPSS_HECC_BASE 0x5C050000 23#define AM35XX_IPSS_HECC_BASE 0x5C050000
24#define AM35XX_IPSS_VPFE_BASE 0x5C060000 24#define AM35XX_IPSS_VPFE_BASE 0x5C060000
25 25
26
27/* HECC module specifc offset definitions */
28#define AM35XX_HECC_SCC_HECC_OFFSET (0x0)
29#define AM35XX_HECC_SCC_RAM_OFFSET (0x3000)
30#define AM35XX_HECC_RAM_OFFSET (0x3000)
31#define AM35XX_HECC_MBOX_OFFSET (0x2000)
32#define AM35XX_HECC_INT_LINE (0x0)
33#define AM35XX_HECC_VERSION (0x1)
34
26#endif /* __ASM_ARCH_AM35XX_H */ 35#endif /* __ASM_ARCH_AM35XX_H */