diff options
author | Sekhar Nori <nsekhar@ti.com> | 2011-02-24 00:09:27 -0500 |
---|---|---|
committer | Kevin Hilman <khilman@ti.com> | 2011-03-11 13:48:29 -0500 |
commit | fdce5568066e1173c9323f021c7ade6859b8234d (patch) | |
tree | 1d91c8b5ccdcd0578955f5634fe0b6d0b7e95eeb /arch/arm/mach-davinci/board-da850-evm.c | |
parent | dd561c6a77edd5a106484901d8a5d3d5eb4a54b5 (diff) |
davinci: add spi devices support for da850/omap-l138/am18x evm
This patch adds the on-board SPI flash device to the
DA850/OMAP-L138/AM18x EVM. It also registers the SPI flash
device to the MTD subsystem.
Based on SPI flash device support for MityDSP-L138F platform.
Signed-off-by: Sekhar Nori <nsekhar@ti.com>
[michael.williamson@criticallink.com: moved da850_evm_spi1_pdata to devices-da8xx.c]
[michael.williamson@criticallink.com: moved da850evm_init_spi1 to devices-da8xx.c]
Signed-off-by: Michael Williamson <michael.williamson@criticallink.com>
Signed-off-by: Kevin Hilman <khilman@ti.com>
Diffstat (limited to 'arch/arm/mach-davinci/board-da850-evm.c')
-rw-r--r-- | arch/arm/mach-davinci/board-da850-evm.c | 73 |
1 files changed, 73 insertions, 0 deletions
diff --git a/arch/arm/mach-davinci/board-da850-evm.c b/arch/arm/mach-davinci/board-da850-evm.c index 11f986bec89..0aef6b2eb13 100644 --- a/arch/arm/mach-davinci/board-da850-evm.c +++ b/arch/arm/mach-davinci/board-da850-evm.c | |||
@@ -29,6 +29,8 @@ | |||
29 | #include <linux/regulator/machine.h> | 29 | #include <linux/regulator/machine.h> |
30 | #include <linux/regulator/tps6507x.h> | 30 | #include <linux/regulator/tps6507x.h> |
31 | #include <linux/input/tps6507x-ts.h> | 31 | #include <linux/input/tps6507x-ts.h> |
32 | #include <linux/spi/spi.h> | ||
33 | #include <linux/spi/flash.h> | ||
32 | 34 | ||
33 | #include <asm/mach-types.h> | 35 | #include <asm/mach-types.h> |
34 | #include <asm/mach/arch.h> | 36 | #include <asm/mach/arch.h> |
@@ -38,6 +40,7 @@ | |||
38 | #include <mach/nand.h> | 40 | #include <mach/nand.h> |
39 | #include <mach/mux.h> | 41 | #include <mach/mux.h> |
40 | #include <mach/aemif.h> | 42 | #include <mach/aemif.h> |
43 | #include <mach/spi.h> | ||
41 | 44 | ||
42 | #define DA850_EVM_PHY_ID "0:00" | 45 | #define DA850_EVM_PHY_ID "0:00" |
43 | #define DA850_LCD_PWR_PIN GPIO_TO_PIN(2, 8) | 46 | #define DA850_LCD_PWR_PIN GPIO_TO_PIN(2, 8) |
@@ -48,6 +51,70 @@ | |||
48 | 51 | ||
49 | #define DA850_MII_MDIO_CLKEN_PIN GPIO_TO_PIN(2, 6) | 52 | #define DA850_MII_MDIO_CLKEN_PIN GPIO_TO_PIN(2, 6) |
50 | 53 | ||
54 | static struct mtd_partition da850evm_spiflash_part[] = { | ||
55 | [0] = { | ||
56 | .name = "UBL", | ||
57 | .offset = 0, | ||
58 | .size = SZ_64K, | ||
59 | .mask_flags = MTD_WRITEABLE, | ||
60 | }, | ||
61 | [1] = { | ||
62 | .name = "U-Boot", | ||
63 | .offset = MTDPART_OFS_APPEND, | ||
64 | .size = SZ_512K, | ||
65 | .mask_flags = MTD_WRITEABLE, | ||
66 | }, | ||
67 | [2] = { | ||
68 | .name = "U-Boot-Env", | ||
69 | .offset = MTDPART_OFS_APPEND, | ||
70 | .size = SZ_64K, | ||
71 | .mask_flags = MTD_WRITEABLE, | ||
72 | }, | ||
73 | [3] = { | ||
74 | .name = "Kernel", | ||
75 | .offset = MTDPART_OFS_APPEND, | ||
76 | .size = SZ_2M + SZ_512K, | ||
77 | .mask_flags = 0, | ||
78 | }, | ||
79 | [4] = { | ||
80 | .name = "Filesystem", | ||
81 | .offset = MTDPART_OFS_APPEND, | ||
82 | .size = SZ_4M, | ||
83 | .mask_flags = 0, | ||
84 | }, | ||
85 | [5] = { | ||
86 | .name = "MAC-Address", | ||
87 | .offset = SZ_8M - SZ_64K, | ||
88 | .size = SZ_64K, | ||
89 | .mask_flags = MTD_WRITEABLE, | ||
90 | }, | ||
91 | }; | ||
92 | |||
93 | static struct flash_platform_data da850evm_spiflash_data = { | ||
94 | .name = "m25p80", | ||
95 | .parts = da850evm_spiflash_part, | ||
96 | .nr_parts = ARRAY_SIZE(da850evm_spiflash_part), | ||
97 | .type = "m25p64", | ||
98 | }; | ||
99 | |||
100 | static struct davinci_spi_config da850evm_spiflash_cfg = { | ||
101 | .io_type = SPI_IO_TYPE_DMA, | ||
102 | .c2tdelay = 8, | ||
103 | .t2cdelay = 8, | ||
104 | }; | ||
105 | |||
106 | static struct spi_board_info da850evm_spi_info[] = { | ||
107 | { | ||
108 | .modalias = "m25p80", | ||
109 | .platform_data = &da850evm_spiflash_data, | ||
110 | .controller_data = &da850evm_spiflash_cfg, | ||
111 | .mode = SPI_MODE_0, | ||
112 | .max_speed_hz = 30000000, | ||
113 | .bus_num = 1, | ||
114 | .chip_select = 0, | ||
115 | }, | ||
116 | }; | ||
117 | |||
51 | static struct mtd_partition da850_evm_norflash_partition[] = { | 118 | static struct mtd_partition da850_evm_norflash_partition[] = { |
52 | { | 119 | { |
53 | .name = "bootloaders + env", | 120 | .name = "bootloaders + env", |
@@ -1167,6 +1234,12 @@ static __init void da850_evm_init(void) | |||
1167 | if (ret) | 1234 | if (ret) |
1168 | pr_warning("da850_evm_init: suspend registration failed: %d\n", | 1235 | pr_warning("da850_evm_init: suspend registration failed: %d\n", |
1169 | ret); | 1236 | ret); |
1237 | |||
1238 | ret = da8xx_register_spi(1, da850evm_spi_info, | ||
1239 | ARRAY_SIZE(da850evm_spi_info)); | ||
1240 | if (ret) | ||
1241 | pr_warning("da850_evm_init: spi 1 registration failed: %d\n", | ||
1242 | ret); | ||
1170 | } | 1243 | } |
1171 | 1244 | ||
1172 | #ifdef CONFIG_SERIAL_8250_CONSOLE | 1245 | #ifdef CONFIG_SERIAL_8250_CONSOLE |