diff options
| author | Colin Cross <ccross@android.com> | 2010-07-28 00:34:38 -0400 |
|---|---|---|
| committer | Colin Cross <ccross@android.com> | 2010-10-21 21:11:24 -0400 |
| commit | c231d6976a161ae7b5b3aba4a1821b2e9c00c02c (patch) | |
| tree | 4c831bd313e1c29144afe3b5d2d5f9fd653348b9 | |
| parent | b5153163ed580e00c67bdfecb02b2e3843817b3e (diff) | |
[ARM] tegra: update iomap
Add missing io address map entries from datasheet.
Add the IRAM area to the statically mapped io regions.
Correct the onewire, USB, and statmon addresses
Signed-off-by: Colin Cross <ccross@android.com>
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/io.h | 6 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/include/mach/iomap.h | 33 | ||||
| -rw-r--r-- | arch/arm/mach-tegra/io.c | 6 |
3 files changed, 39 insertions, 6 deletions
diff --git a/arch/arm/mach-tegra/include/mach/io.h b/arch/arm/mach-tegra/include/mach/io.h index 35edfc32ffc9..16f16189b5eb 100644 --- a/arch/arm/mach-tegra/include/mach/io.h +++ b/arch/arm/mach-tegra/include/mach/io.h | |||
| @@ -33,6 +33,10 @@ | |||
| 33 | * | 33 | * |
| 34 | */ | 34 | */ |
| 35 | 35 | ||
| 36 | #define IO_IRAM_PHYS 0x40000000 | ||
| 37 | #define IO_IRAM_VIRT 0xFE400000 | ||
| 38 | #define IO_IRAM_SIZE SZ_256K | ||
| 39 | |||
| 36 | #define IO_CPU_PHYS 0x50040000 | 40 | #define IO_CPU_PHYS 0x50040000 |
| 37 | #define IO_CPU_VIRT 0xFE000000 | 41 | #define IO_CPU_VIRT 0xFE000000 |
| 38 | #define IO_CPU_SIZE SZ_16K | 42 | #define IO_CPU_SIZE SZ_16K |
| @@ -55,6 +59,8 @@ | |||
| 55 | IO_TO_VIRT_XLATE((n), IO_APB_PHYS, IO_APB_VIRT) : \ | 59 | IO_TO_VIRT_XLATE((n), IO_APB_PHYS, IO_APB_VIRT) : \ |
| 56 | IO_TO_VIRT_BETWEEN((n), IO_CPU_PHYS, IO_CPU_SIZE) ? \ | 60 | IO_TO_VIRT_BETWEEN((n), IO_CPU_PHYS, IO_CPU_SIZE) ? \ |
| 57 | IO_TO_VIRT_XLATE((n), IO_CPU_PHYS, IO_CPU_VIRT) : \ | 61 | IO_TO_VIRT_XLATE((n), IO_CPU_PHYS, IO_CPU_VIRT) : \ |
| 62 | IO_TO_VIRT_BETWEEN((n), IO_IRAM_PHYS, IO_IRAM_SIZE) ? \ | ||
| 63 | IO_TO_VIRT_XLATE((n), IO_IRAM_PHYS, IO_IRAM_VIRT) : \ | ||
| 58 | 0) | 64 | 0) |
| 59 | 65 | ||
| 60 | #ifndef __ASSEMBLER__ | 66 | #ifndef __ASSEMBLER__ |
diff --git a/arch/arm/mach-tegra/include/mach/iomap.h b/arch/arm/mach-tegra/include/mach/iomap.h index 1741f7dd7a9b..44a4f4bcf91f 100644 --- a/arch/arm/mach-tegra/include/mach/iomap.h +++ b/arch/arm/mach-tegra/include/mach/iomap.h | |||
| @@ -23,9 +23,15 @@ | |||
| 23 | 23 | ||
| 24 | #include <asm/sizes.h> | 24 | #include <asm/sizes.h> |
| 25 | 25 | ||
| 26 | #define TEGRA_IRAM_BASE 0x40000000 | ||
| 27 | #define TEGRA_IRAM_SIZE SZ_256K | ||
| 28 | |||
| 26 | #define TEGRA_ARM_PERIF_BASE 0x50040000 | 29 | #define TEGRA_ARM_PERIF_BASE 0x50040000 |
| 27 | #define TEGRA_ARM_PERIF_SIZE SZ_8K | 30 | #define TEGRA_ARM_PERIF_SIZE SZ_8K |
| 28 | 31 | ||
| 32 | #define TEGRA_ARM_PL310_BASE 0x50043000 | ||
| 33 | #define TEGRA_ARM_PL310_SIZE SZ_4K | ||
| 34 | |||
| 29 | #define TEGRA_ARM_INT_DIST_BASE 0x50041000 | 35 | #define TEGRA_ARM_INT_DIST_BASE 0x50041000 |
| 30 | #define TEGRA_ARM_INT_DIST_SIZE SZ_4K | 36 | #define TEGRA_ARM_INT_DIST_SIZE SZ_4K |
| 31 | 37 | ||
| @@ -68,7 +74,22 @@ | |||
| 68 | #define TEGRA_FLOW_CTRL_BASE 0x60007000 | 74 | #define TEGRA_FLOW_CTRL_BASE 0x60007000 |
| 69 | #define TEGRA_FLOW_CTRL_SIZE 20 | 75 | #define TEGRA_FLOW_CTRL_SIZE 20 |
| 70 | 76 | ||
| 71 | #define TEGRA_STATMON_BASE 0x6000C4000 | 77 | #define TEGRA_AHB_DMA_BASE 0x60008000 |
| 78 | #define TEGRA_AHB_DMA_SIZE SZ_4K | ||
| 79 | |||
| 80 | #define TEGRA_AHB_DMA_CH0_BASE 0x60009000 | ||
| 81 | #define TEGRA_AHB_DMA_CH0_SIZE 32 | ||
| 82 | |||
| 83 | #define TEGRA_APB_DMA_BASE 0x6000A000 | ||
| 84 | #define TEGRA_APB_DMA_SIZE SZ_4K | ||
| 85 | |||
| 86 | #define TEGRA_APB_DMA_CH0_BASE 0x6000B000 | ||
| 87 | #define TEGRA_APB_DMA_CH0_SIZE 32 | ||
| 88 | |||
| 89 | #define TEGRA_AHB_GIZMO_BASE 0x6000C004 | ||
| 90 | #define TEGRA_AHB_GIZMO_SIZE 0x10C | ||
| 91 | |||
| 92 | #define TEGRA_STATMON_BASE 0x6000C400 | ||
| 72 | #define TEGRA_STATMON_SIZE SZ_1K | 93 | #define TEGRA_STATMON_SIZE SZ_1K |
| 73 | 94 | ||
| 74 | #define TEGRA_GPIO_BASE 0x6000D000 | 95 | #define TEGRA_GPIO_BASE 0x6000D000 |
| @@ -137,7 +158,7 @@ | |||
| 137 | #define TEGRA_I2C3_BASE 0x7000C500 | 158 | #define TEGRA_I2C3_BASE 0x7000C500 |
| 138 | #define TEGRA_I2C3_SIZE SZ_256 | 159 | #define TEGRA_I2C3_SIZE SZ_256 |
| 139 | 160 | ||
| 140 | #define TEGRA_OWR_BASE 0x7000D000 | 161 | #define TEGRA_OWR_BASE 0x7000C600 |
| 141 | #define TEGRA_OWR_SIZE 80 | 162 | #define TEGRA_OWR_SIZE 80 |
| 142 | 163 | ||
| 143 | #define TEGRA_DVC_BASE 0x7000D000 | 164 | #define TEGRA_DVC_BASE 0x7000D000 |
| @@ -182,12 +203,12 @@ | |||
| 182 | #define TEGRA_USB_BASE 0xC5000000 | 203 | #define TEGRA_USB_BASE 0xC5000000 |
| 183 | #define TEGRA_USB_SIZE SZ_16K | 204 | #define TEGRA_USB_SIZE SZ_16K |
| 184 | 205 | ||
| 185 | #define TEGRA_USB1_BASE 0xC5004000 | 206 | #define TEGRA_USB2_BASE 0xC5004000 |
| 186 | #define TEGRA_USB1_SIZE SZ_16K | ||
| 187 | |||
| 188 | #define TEGRA_USB2_BASE 0xC5008000 | ||
| 189 | #define TEGRA_USB2_SIZE SZ_16K | 207 | #define TEGRA_USB2_SIZE SZ_16K |
| 190 | 208 | ||
| 209 | #define TEGRA_USB3_BASE 0xC5008000 | ||
| 210 | #define TEGRA_USB3_SIZE SZ_16K | ||
| 211 | |||
| 191 | #define TEGRA_SDMMC1_BASE 0xC8000000 | 212 | #define TEGRA_SDMMC1_BASE 0xC8000000 |
| 192 | #define TEGRA_SDMMC1_SIZE SZ_512 | 213 | #define TEGRA_SDMMC1_SIZE SZ_512 |
| 193 | 214 | ||
diff --git a/arch/arm/mach-tegra/io.c b/arch/arm/mach-tegra/io.c index 9fe2c5c683d4..31848a9592f8 100644 --- a/arch/arm/mach-tegra/io.c +++ b/arch/arm/mach-tegra/io.c | |||
| @@ -49,6 +49,12 @@ static struct map_desc tegra_io_desc[] __initdata = { | |||
| 49 | .length = IO_CPU_SIZE, | 49 | .length = IO_CPU_SIZE, |
| 50 | .type = MT_DEVICE, | 50 | .type = MT_DEVICE, |
| 51 | }, | 51 | }, |
| 52 | { | ||
| 53 | .virtual = IO_IRAM_VIRT, | ||
| 54 | .pfn = __phys_to_pfn(IO_IRAM_PHYS), | ||
| 55 | .length = IO_IRAM_SIZE, | ||
| 56 | .type = MT_DEVICE, | ||
| 57 | }, | ||
| 52 | }; | 58 | }; |
| 53 | 59 | ||
| 54 | void __init tegra_map_common_io(void) | 60 | void __init tegra_map_common_io(void) |
