diff options
author | Cyril Chemparathy <cyril@ti.com> | 2011-01-18 14:21:39 -0500 |
---|---|---|
committer | Kevin Hilman <khilman@ti.com> | 2011-03-15 11:17:22 -0400 |
commit | 24981753dd7427f14324e45b659aeba8c1c66b11 (patch) | |
tree | bc6e53314ca765be5afbb7b4d05b69adfb4a8e0a /arch/arm/mach-davinci | |
parent | a72aeefebe6545ad5c9c699e1121019c1709ca77 (diff) |
davinci: add tnetv107x ssp platform device
This patch adds an SSP platform device definition for the tnetv107x soc family.
The clock lookup entry has also been updated to match.
Signed-off-by: Cyril Chemparathy <cyril@ti.com>
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-davinci')
-rw-r--r-- | arch/arm/mach-davinci/devices-tnetv107x.c | 25 | ||||
-rw-r--r-- | arch/arm/mach-davinci/include/mach/tnetv107x.h | 2 | ||||
-rw-r--r-- | arch/arm/mach-davinci/tnetv107x.c | 2 |
3 files changed, 28 insertions, 1 deletions
diff --git a/arch/arm/mach-davinci/devices-tnetv107x.c b/arch/arm/mach-davinci/devices-tnetv107x.c index 85503debda51..6162cae7f868 100644 --- a/arch/arm/mach-davinci/devices-tnetv107x.c +++ b/arch/arm/mach-davinci/devices-tnetv107x.c | |||
@@ -35,6 +35,7 @@ | |||
35 | #define TNETV107X_SDIO0_BASE 0x08088700 | 35 | #define TNETV107X_SDIO0_BASE 0x08088700 |
36 | #define TNETV107X_SDIO1_BASE 0x08088800 | 36 | #define TNETV107X_SDIO1_BASE 0x08088800 |
37 | #define TNETV107X_KEYPAD_BASE 0x08088a00 | 37 | #define TNETV107X_KEYPAD_BASE 0x08088a00 |
38 | #define TNETV107X_SSP_BASE 0x08088c00 | ||
38 | #define TNETV107X_ASYNC_EMIF_CNTRL_BASE 0x08200000 | 39 | #define TNETV107X_ASYNC_EMIF_CNTRL_BASE 0x08200000 |
39 | #define TNETV107X_ASYNC_EMIF_DATA_CE0_BASE 0x30000000 | 40 | #define TNETV107X_ASYNC_EMIF_DATA_CE0_BASE 0x30000000 |
40 | #define TNETV107X_ASYNC_EMIF_DATA_CE1_BASE 0x40000000 | 41 | #define TNETV107X_ASYNC_EMIF_DATA_CE1_BASE 0x40000000 |
@@ -342,6 +343,25 @@ static struct platform_device tsc_device = { | |||
342 | .resource = tsc_resources, | 343 | .resource = tsc_resources, |
343 | }; | 344 | }; |
344 | 345 | ||
346 | static struct resource ssp_resources[] = { | ||
347 | { | ||
348 | .start = TNETV107X_SSP_BASE, | ||
349 | .end = TNETV107X_SSP_BASE + 0x1ff, | ||
350 | .flags = IORESOURCE_MEM, | ||
351 | }, | ||
352 | { | ||
353 | .start = IRQ_TNETV107X_SSP, | ||
354 | .flags = IORESOURCE_IRQ, | ||
355 | }, | ||
356 | }; | ||
357 | |||
358 | static struct platform_device ssp_device = { | ||
359 | .name = "ti-ssp", | ||
360 | .id = -1, | ||
361 | .num_resources = ARRAY_SIZE(ssp_resources), | ||
362 | .resource = ssp_resources, | ||
363 | }; | ||
364 | |||
345 | void __init tnetv107x_devices_init(struct tnetv107x_device_info *info) | 365 | void __init tnetv107x_devices_init(struct tnetv107x_device_info *info) |
346 | { | 366 | { |
347 | int i, error; | 367 | int i, error; |
@@ -380,4 +400,9 @@ void __init tnetv107x_devices_init(struct tnetv107x_device_info *info) | |||
380 | keypad_device.dev.platform_data = info->keypad_config; | 400 | keypad_device.dev.platform_data = info->keypad_config; |
381 | platform_device_register(&keypad_device); | 401 | platform_device_register(&keypad_device); |
382 | } | 402 | } |
403 | |||
404 | if (info->ssp_config) { | ||
405 | ssp_device.dev.platform_data = info->ssp_config; | ||
406 | platform_device_register(&ssp_device); | ||
407 | } | ||
383 | } | 408 | } |
diff --git a/arch/arm/mach-davinci/include/mach/tnetv107x.h b/arch/arm/mach-davinci/include/mach/tnetv107x.h index 5a681d880dcb..89c1fdc63c0b 100644 --- a/arch/arm/mach-davinci/include/mach/tnetv107x.h +++ b/arch/arm/mach-davinci/include/mach/tnetv107x.h | |||
@@ -34,6 +34,7 @@ | |||
34 | 34 | ||
35 | #include <linux/serial_8250.h> | 35 | #include <linux/serial_8250.h> |
36 | #include <linux/input/matrix_keypad.h> | 36 | #include <linux/input/matrix_keypad.h> |
37 | #include <linux/mfd/ti_ssp.h> | ||
37 | 38 | ||
38 | #include <mach/mmc.h> | 39 | #include <mach/mmc.h> |
39 | #include <mach/nand.h> | 40 | #include <mach/nand.h> |
@@ -44,6 +45,7 @@ struct tnetv107x_device_info { | |||
44 | struct davinci_mmc_config *mmc_config[2]; /* 2 controllers */ | 45 | struct davinci_mmc_config *mmc_config[2]; /* 2 controllers */ |
45 | struct davinci_nand_pdata *nand_config[4]; /* 4 chipsels */ | 46 | struct davinci_nand_pdata *nand_config[4]; /* 4 chipsels */ |
46 | struct matrix_keypad_platform_data *keypad_config; | 47 | struct matrix_keypad_platform_data *keypad_config; |
48 | struct ti_ssp_data *ssp_config; | ||
47 | }; | 49 | }; |
48 | 50 | ||
49 | extern struct platform_device tnetv107x_wdt_device; | 51 | extern struct platform_device tnetv107x_wdt_device; |
diff --git a/arch/arm/mach-davinci/tnetv107x.c b/arch/arm/mach-davinci/tnetv107x.c index 6fcdecec8d8c..1b28fdd892a6 100644 --- a/arch/arm/mach-davinci/tnetv107x.c +++ b/arch/arm/mach-davinci/tnetv107x.c | |||
@@ -278,7 +278,7 @@ static struct clk_lookup clks[] = { | |||
278 | CLK(NULL, "timer1", &clk_timer1), | 278 | CLK(NULL, "timer1", &clk_timer1), |
279 | CLK("tnetv107x_wdt.0", NULL, &clk_wdt_arm), | 279 | CLK("tnetv107x_wdt.0", NULL, &clk_wdt_arm), |
280 | CLK(NULL, "clk_wdt_dsp", &clk_wdt_dsp), | 280 | CLK(NULL, "clk_wdt_dsp", &clk_wdt_dsp), |
281 | CLK("ti-ssp.0", NULL, &clk_ssp), | 281 | CLK("ti-ssp", NULL, &clk_ssp), |
282 | CLK(NULL, "clk_tdm0", &clk_tdm0), | 282 | CLK(NULL, "clk_tdm0", &clk_tdm0), |
283 | CLK(NULL, "clk_vlynq", &clk_vlynq), | 283 | CLK(NULL, "clk_vlynq", &clk_vlynq), |
284 | CLK(NULL, "clk_mcdma", &clk_mcdma), | 284 | CLK(NULL, "clk_mcdma", &clk_mcdma), |