diff options
Diffstat (limited to 'arch/arm/mach-omap2/board-am3517evm.c')
-rw-r--r-- | arch/arm/mach-omap2/board-am3517evm.c | 38 |
1 files changed, 38 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 | |||
297 | static 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 | |||
310 | static 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 | |||
317 | static 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 | |||
326 | static 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 | |||
295 | static void __init am3517_evm_init(void) | 332 | static 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 | ||