1/* 2 * 3 * arch/arm/mach-u300/include/mach/u300-regs.h 4 * 5 * 6 * Copyright (C) 2006-2009 ST-Ericsson AB 7 * License terms: GNU General Public License (GPL) version 2 8 * Basic register address definitions in physical memory and 9 * some block definitions for core devices like the timer. 10 * Author: Linus Walleij <linus.walleij@stericsson.com> 11 */ 12 13#ifndef __MACH_U300_REGS_H 14#define __MACH_U300_REGS_H 15 16/* 17 * These are the large blocks of memory allocated for I/O. 18 * the defines are used for setting up the I/O memory mapping. 19 */ 20 21/* NAND Flash CS0 */ 22#define U300_NAND_CS0_PHYS_BASE 0x80000000 23 24/* NFIF */ 25#define U300_NAND_IF_PHYS_BASE 0x9f800000 26 27/* AHB Peripherals */ 28#define U300_AHB_PER_PHYS_BASE 0xa0000000 29#define U300_AHB_PER_VIRT_BASE 0xff010000 30 31/* FAST Peripherals */ 32#define U300_FAST_PER_PHYS_BASE 0xc0000000 33#define U300_FAST_PER_VIRT_BASE 0xff020000 34 35/* SLOW Peripherals */ 36#define U300_SLOW_PER_PHYS_BASE 0xc0010000 37#define U300_SLOW_PER_VIRT_BASE 0xff000000 38 39/* Boot ROM */ 40#define U300_BOOTROM_PHYS_BASE 0xffff0000 41#define U300_BOOTROM_VIRT_BASE 0xffff0000 42 43/* SEMI config base */ 44#ifdef CONFIG_MACH_U300_BS335 45#define U300_SEMI_CONFIG_BASE 0x2FFE0000 46#else 47#define U300_SEMI_CONFIG_BASE 0x30000000 48#endif 49 50/* 51 * All the following peripherals are specified at their PHYSICAL address, 52 * so if you need to access them (in the kernel), you MUST use the macros 53 * defined in <asm/io.h> to map to the IO_ADDRESS_AHB() IO_ADDRESS_FAST() 54 * etc. 55 */ 56 57/* 58 * AHB peripherals 59 */ 60 61/* AHB Peripherals Bridge Controller */ 62#define U300_AHB_BRIDGE_BASE (U300_AHB_PER_PHYS_BASE+0x0000) 63 64/* Vectored Interrupt Controller 0, servicing 32 interrupts */ 65#define U300_INTCON0_BASE (U300_AHB_PER_PHYS_BASE+0x1000) 66#define U300_INTCON0_VBASE (U300_AHB_PER_VIRT_BASE+0x1000) 67 68/* Vectored Interrupt Controller 1, servicing 32 interrupts */ 69#define U300_INTCON1_BASE (U300_AHB_PER_PHYS_BASE+0x2000) 70#define U300_INTCON1_VBASE (U300_AHB_PER_VIRT_BASE+0x2000) 71 72/* Memory Stick Pro (MSPRO) controller */ 73#define U300_MSPRO_BASE (U300_AHB_PER_PHYS_BASE+0x3000) 74 75/* EMIF Configuration Area */ 76#define U300_EMIF_CFG_BASE (U300_AHB_PER_PHYS_BASE+0x4000) 77 78 79/* 80 * FAST peripherals 81 */ 82 83/* FAST bridge control */ 84#define U300_FAST_BRIDGE_BASE (U300_FAST_PER_PHYS_BASE+0x0000) 85 86/* MMC/SD controller */ 87#define U300_MMCSD_BASE (U300_FAST_PER_PHYS_BASE+0x1000) 88 89/* PCM I2S0 controller */ 90#define U300_PCM_I2S0_BASE (U300_FAST_PER_PHYS_BASE+0x2000) 91 92/* PCM I2S1 controller */ 93#define U300_PCM_I2S1_BASE (U300_FAST_PER_PHYS_BASE+0x3000) 94 95/* I2C0 controller */ 96#define U300_I2C0_BASE (U300_FAST_PER_PHYS_BASE+0x4000) 97 98/* I2C1 controller */ 99#define U300_I2C1_BASE (U300_FAST_PER_PHYS_BASE+0x5000) 100 101/* SPI controller */ 102#define U300_SPI_BASE (U300_FAST_PER_PHYS_BASE+0x6000) 103 104#ifdef CONFIG_MACH_U300_BS335 105/* Fast UART1 on U335 only */ 106#define U300_UART1_BASE (U300_SLOW_PER_PHYS_BASE+0x7000) 107#endif 108 109/* 110 * SLOW peripherals 111 */ 112 113/* SLOW bridge control */ 114#define U300_SLOW_BRIDGE_BASE (U300_SLOW_PER_PHYS_BASE) 115 116/* SYSCON */ 117#define U300_SYSCON_BASE (U300_SLOW_PER_PHYS_BASE+0x1000) 118#define U300_SYSCON_VBASE (U300_SLOW_PER_VIRT_BASE+0x1000) 119 120/* Watchdog */ 121#define U300_WDOG_BASE (U300_SLOW_PER_PHYS_BASE+0x2000) 122 123/* UART0 */ 124#define U300_UART0_BASE (U300_SLOW_PER_PHYS_BASE+0x3000) 125 126/* APP side special timer */ 127#define U300_TIMER_APP_BASE (U300_SLOW_PER_PHYS_BASE+0x4000) 128#define U300_TIMER_APP_VBASE (U300_SLOW_PER_VIRT_BASE+0x4000) 129 130/* Keypad */ 131#define U300_KEYPAD_BASE (U300_SLOW_PER_PHYS_BASE+0x5000) 132 133/* GPIO */ 134#define U300_GPIO_BASE (U300_SLOW_PER_PHYS_BASE+0x6000) 135 136/* RTC */ 137#define U300_RTC_BASE (U300_SLOW_PER_PHYS_BASE+0x7000) 138 139/* Bus tracer */ 140#define U300_BUSTR_BASE (U300_SLOW_PER_PHYS_BASE+0x8000) 141 142/* Event handler (hardware queue) */ 143#define U300_EVHIST_BASE (U300_SLOW_PER_PHYS_BASE+0x9000) 144 145/* Genric Timer */ 146#define U300_TIMER_BASE (U300_SLOW_PER_PHYS_BASE+0xa000) 147 148/* PPM */ 149#define U300_PPM_BASE (U300_SLOW_PER_PHYS_BASE+0xb000) 150 151 152/* 153 * REST peripherals 154 */ 155 156/* ISP (image signal processor) is only available in U335 */ 157#ifdef CONFIG_MACH_U300_BS335 158#define U300_ISP_BASE (0xA0008000) 159#endif 160 161/* DMA Controller base */ 162#define U300_DMAC_BASE (0xC0020000) 163 164/* MSL Base */ 165#define U300_MSL_BASE (0xc0022000) 166 167/* APEX Base */ 168#define U300_APEX_BASE (0xc0030000) 169 170/* Video Encoder Base */ 171#ifdef CONFIG_MACH_U300_BS335 172#define U300_VIDEOENC_BASE (0xc0080000) 173#else 174#define U300_VIDEOENC_BASE (0xc0040000) 175#endif 176 177/* XGAM Base */ 178#define U300_XGAM_BASE (0xd0000000) 179 180/* 181 * Virtual accessor macros for static devices 182 */ 183 184 185#endif 186