diff options
Diffstat (limited to 'arch/arm/mach-omap1/io.c')
| -rw-r--r-- | arch/arm/mach-omap1/io.c | 30 |
1 files changed, 8 insertions, 22 deletions
diff --git a/arch/arm/mach-omap1/io.c b/arch/arm/mach-omap1/io.c index 207df0fe934d..eb8261d7dead 100644 --- a/arch/arm/mach-omap1/io.c +++ b/arch/arm/mach-omap1/io.c | |||
| @@ -19,6 +19,7 @@ | |||
| 19 | 19 | ||
| 20 | extern int clk_init(void); | 20 | extern int clk_init(void); |
| 21 | extern void omap_check_revision(void); | 21 | extern void omap_check_revision(void); |
| 22 | extern void omap_sram_init(void); | ||
| 22 | 23 | ||
| 23 | /* | 24 | /* |
| 24 | * The machine specific code may provide the extra mapping besides the | 25 | * The machine specific code may provide the extra mapping besides the |
| @@ -32,7 +33,6 @@ static struct map_desc omap_io_desc[] __initdata = { | |||
| 32 | static struct map_desc omap730_io_desc[] __initdata = { | 33 | static struct map_desc omap730_io_desc[] __initdata = { |
| 33 | { OMAP730_DSP_BASE, OMAP730_DSP_START, OMAP730_DSP_SIZE, MT_DEVICE }, | 34 | { OMAP730_DSP_BASE, OMAP730_DSP_START, OMAP730_DSP_SIZE, MT_DEVICE }, |
| 34 | { OMAP730_DSPREG_BASE, OMAP730_DSPREG_START, OMAP730_DSPREG_SIZE, MT_DEVICE }, | 35 | { OMAP730_DSPREG_BASE, OMAP730_DSPREG_START, OMAP730_DSPREG_SIZE, MT_DEVICE }, |
| 35 | { OMAP730_SRAM_BASE, OMAP730_SRAM_START, OMAP730_SRAM_SIZE, MT_DEVICE } | ||
| 36 | }; | 36 | }; |
| 37 | #endif | 37 | #endif |
| 38 | 38 | ||
| @@ -40,27 +40,13 @@ static struct map_desc omap730_io_desc[] __initdata = { | |||
| 40 | static struct map_desc omap1510_io_desc[] __initdata = { | 40 | static struct map_desc omap1510_io_desc[] __initdata = { |
| 41 | { OMAP1510_DSP_BASE, OMAP1510_DSP_START, OMAP1510_DSP_SIZE, MT_DEVICE }, | 41 | { OMAP1510_DSP_BASE, OMAP1510_DSP_START, OMAP1510_DSP_SIZE, MT_DEVICE }, |
| 42 | { OMAP1510_DSPREG_BASE, OMAP1510_DSPREG_START, OMAP1510_DSPREG_SIZE, MT_DEVICE }, | 42 | { OMAP1510_DSPREG_BASE, OMAP1510_DSPREG_START, OMAP1510_DSPREG_SIZE, MT_DEVICE }, |
| 43 | { OMAP1510_SRAM_BASE, OMAP1510_SRAM_START, OMAP1510_SRAM_SIZE, MT_DEVICE } | ||
| 44 | }; | 43 | }; |
| 45 | #endif | 44 | #endif |
| 46 | 45 | ||
| 47 | #if defined(CONFIG_ARCH_OMAP16XX) | 46 | #if defined(CONFIG_ARCH_OMAP16XX) |
| 48 | static struct map_desc omap1610_io_desc[] __initdata = { | 47 | static struct map_desc omap16xx_io_desc[] __initdata = { |
| 49 | { OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE }, | 48 | { OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE }, |
| 50 | { OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE }, | 49 | { OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE }, |
| 51 | { OMAP16XX_SRAM_BASE, OMAP16XX_SRAM_START, OMAP1610_SRAM_SIZE, MT_DEVICE } | ||
| 52 | }; | ||
| 53 | |||
| 54 | static struct map_desc omap5912_io_desc[] __initdata = { | ||
| 55 | { OMAP16XX_DSP_BASE, OMAP16XX_DSP_START, OMAP16XX_DSP_SIZE, MT_DEVICE }, | ||
| 56 | { OMAP16XX_DSPREG_BASE, OMAP16XX_DSPREG_START, OMAP16XX_DSPREG_SIZE, MT_DEVICE }, | ||
| 57 | /* | ||
| 58 | * The OMAP5912 has 250kByte internal SRAM. Because the mapping is baseed on page | ||
| 59 | * size (4kByte), it seems that the last 2kByte (=0x800) of the 250kByte are not mapped. | ||
| 60 | * Add additional 2kByte (0x800) so that the last page is mapped and the last 2kByte | ||
| 61 | * can be used. | ||
| 62 | */ | ||
| 63 | { OMAP16XX_SRAM_BASE, OMAP16XX_SRAM_START, OMAP5912_SRAM_SIZE + 0x800, MT_DEVICE } | ||
| 64 | }; | 50 | }; |
| 65 | #endif | 51 | #endif |
| 66 | 52 | ||
| @@ -86,14 +72,13 @@ static void __init _omap_map_io(void) | |||
| 86 | } | 72 | } |
| 87 | #endif | 73 | #endif |
| 88 | #if defined(CONFIG_ARCH_OMAP16XX) | 74 | #if defined(CONFIG_ARCH_OMAP16XX) |
| 89 | if (cpu_is_omap1610() || cpu_is_omap1710()) { | 75 | if (cpu_is_omap16xx()) { |
| 90 | iotable_init(omap1610_io_desc, ARRAY_SIZE(omap1610_io_desc)); | 76 | iotable_init(omap16xx_io_desc, ARRAY_SIZE(omap16xx_io_desc)); |
| 91 | } | ||
| 92 | if (cpu_is_omap5912()) { | ||
| 93 | iotable_init(omap5912_io_desc, ARRAY_SIZE(omap5912_io_desc)); | ||
| 94 | } | 77 | } |
| 95 | #endif | 78 | #endif |
| 96 | 79 | ||
| 80 | omap_sram_init(); | ||
| 81 | |||
| 97 | /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort | 82 | /* REVISIT: Refer to OMAP5910 Errata, Advisory SYS_1: "Timeout Abort |
| 98 | * on a Posted Write in the TIPB Bridge". | 83 | * on a Posted Write in the TIPB Bridge". |
| 99 | */ | 84 | */ |
| @@ -108,8 +93,9 @@ static void __init _omap_map_io(void) | |||
| 108 | /* | 93 | /* |
| 109 | * This should only get called from board specific init | 94 | * This should only get called from board specific init |
| 110 | */ | 95 | */ |
| 111 | void omap_map_common_io(void) | 96 | void __init omap_map_common_io(void) |
| 112 | { | 97 | { |
| 113 | if (!initialized) | 98 | if (!initialized) |
| 114 | _omap_map_io(); | 99 | _omap_map_io(); |
| 115 | } | 100 | } |
| 101 | |||
