linux/arch/arm/mach-realview/include/mach/board-pbx.h
<<
>>
Prefs
   1/*
   2 * arch/arm/mach-realview/include/mach/board-pbx.h
   3 *
   4 * Copyright (C) 2009 ARM Limited
   5 *
   6 * This program is free software; you can redistribute it and/or modify
   7 * it under the terms of the GNU General Public License version 2 as
   8 * published by the Free Software Foundation.
   9 *
  10 * This program is distributed in the hope that it will be useful,
  11 * but WITHOUT ANY WARRANTY; without even the implied warranty of
  12 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
  13 * GNU General Public License for more details.
  14 *
  15 * You should have received a copy of the GNU General Public License
  16 * along with this program; if not, write to the Free Software
  17 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
  18 */
  19
  20#ifndef __ASM_ARCH_BOARD_PBX_H
  21#define __ASM_ARCH_BOARD_PBX_H
  22
  23#include <mach/platform.h>
  24
  25/*
  26 * Peripheral addresses
  27 */
  28#define REALVIEW_PBX_UART0_BASE                 0x10009000      /* UART 0 */
  29#define REALVIEW_PBX_UART1_BASE                 0x1000A000      /* UART 1 */
  30#define REALVIEW_PBX_UART2_BASE                 0x1000B000      /* UART 2 */
  31#define REALVIEW_PBX_UART3_BASE                 0x1000C000      /* UART 3 */
  32#define REALVIEW_PBX_SSP_BASE                   0x1000D000      /* Synchronous Serial Port */
  33#define REALVIEW_PBX_WATCHDOG0_BASE             0x1000F000      /* Watchdog 0 */
  34#define REALVIEW_PBX_WATCHDOG_BASE              0x10010000      /* watchdog interface */
  35#define REALVIEW_PBX_TIMER0_1_BASE              0x10011000      /* Timer 0 and 1 */
  36#define REALVIEW_PBX_TIMER2_3_BASE              0x10012000      /* Timer 2 and 3 */
  37#define REALVIEW_PBX_GPIO0_BASE                 0x10013000      /* GPIO port 0 */
  38#define REALVIEW_PBX_RTC_BASE                   0x10017000      /* Real Time Clock */
  39#define REALVIEW_PBX_TIMER4_5_BASE              0x10018000      /* Timer 4/5 */
  40#define REALVIEW_PBX_TIMER6_7_BASE              0x10019000      /* Timer 6/7 */
  41#define REALVIEW_PBX_SCTL_BASE                  0x1001A000      /* System Controller */
  42#define REALVIEW_PBX_CLCD_BASE                  0x10020000      /* CLCD */
  43#define REALVIEW_PBX_ONB_SRAM_BASE              0x10060000      /* On-board SRAM */
  44#define REALVIEW_PBX_DMC_BASE                   0x100E0000      /* DMC configuration */
  45#define REALVIEW_PBX_SMC_BASE                   0x100E1000      /* SMC configuration */
  46#define REALVIEW_PBX_CAN_BASE                   0x100E2000      /* CAN bus */
  47#define REALVIEW_PBX_GIC_CPU_BASE               0x1E000000      /* Generic interrupt controller CPU interface */
  48#define REALVIEW_PBX_FLASH0_BASE                0x40000000
  49#define REALVIEW_PBX_FLASH0_SIZE                SZ_64M
  50#define REALVIEW_PBX_FLASH1_BASE                0x44000000
  51#define REALVIEW_PBX_FLASH1_SIZE                SZ_64M
  52#define REALVIEW_PBX_ETH_BASE                   0x4E000000      /* Ethernet */
  53#define REALVIEW_PBX_USB_BASE                   0x4F000000      /* USB */
  54#define REALVIEW_PBX_GIC_DIST_BASE              0x1E001000      /* Generic interrupt controller distributor */
  55#define REALVIEW_PBX_LT_BASE                    0xC0000000      /* Logic Tile expansion */
  56#define REALVIEW_PBX_SDRAM6_BASE                0x70000000      /* SDRAM bank 6 256MB */
  57#define REALVIEW_PBX_SDRAM7_BASE                0x80000000      /* SDRAM bank 7 256MB */
  58
  59/*
  60 * Tile-specific addresses
  61 */
  62#define REALVIEW_PBX_TILE_SCU_BASE              0x1F000000      /* SCU registers */
  63#define REALVIEW_PBX_TILE_GIC_CPU_BASE          0x1F000100      /* Private Generic interrupt controller CPU interface */
  64#define REALVIEW_PBX_TILE_TWD_BASE              0x1F000600
  65#define REALVIEW_PBX_TILE_TWD_PERCPU_BASE       0x1F000700
  66#define REALVIEW_PBX_TILE_TWD_SIZE              0x00000100
  67#define REALVIEW_PBX_TILE_GIC_DIST_BASE         0x1F001000      /* Private Generic interrupt controller distributor */
  68#define REALVIEW_PBX_TILE_L220_BASE             0x1F002000      /* L220 registers */
  69
  70#define REALVIEW_PBX_SYS_PLD_CTRL1              0x74
  71
  72/*
  73 * PBX PCI regions
  74 */
  75#define REALVIEW_PBX_PCI_BASE                   0x90040000      /* PCI-X Unit base */
  76#define REALVIEW_PBX_PCI_IO_BASE                0x90050000      /* IO Region on AHB */
  77#define REALVIEW_PBX_PCI_MEM_BASE               0xA0000000      /* MEM Region on AHB */
  78
  79#define REALVIEW_PBX_PCI_BASE_SIZE              0x10000         /* 16 Kb */
  80#define REALVIEW_PBX_PCI_IO_SIZE                0x1000          /* 4 Kb */
  81#define REALVIEW_PBX_PCI_MEM_SIZE               0x20000000      /* 512 MB */
  82
  83/*
  84 * Core tile identification (REALVIEW_SYS_PROCID)
  85 */
  86#define REALVIEW_PBX_PROC_MASK          0xFF000000
  87#define REALVIEW_PBX_PROC_ARM7TDMI      0x00000000
  88#define REALVIEW_PBX_PROC_ARM9          0x02000000
  89#define REALVIEW_PBX_PROC_ARM11         0x04000000
  90#define REALVIEW_PBX_PROC_ARM11MP       0x06000000
  91#define REALVIEW_PBX_PROC_A9MP          0x0C000000
  92#define REALVIEW_PBX_PROC_A8            0x0E000000
  93
  94#define check_pbx_proc(proc_type)                                            \
  95        ((readl(__io_address(REALVIEW_SYS_PROCID)) & REALVIEW_PBX_PROC_MASK) \
  96        == proc_type)
  97
  98#ifdef CONFIG_MACH_REALVIEW_PBX
  99#define core_tile_pbx11mp()     check_pbx_proc(REALVIEW_PBX_PROC_ARM11MP)
 100#define core_tile_pbxa9mp()     check_pbx_proc(REALVIEW_PBX_PROC_A9MP)
 101#define core_tile_pbxa8()       check_pbx_proc(REALVIEW_PBX_PROC_A8)
 102#else
 103#define core_tile_pbx11mp()     0
 104#define core_tile_pbxa9mp()     0
 105#define core_tile_pbxa8()       0
 106#endif
 107
 108#endif  /* __ASM_ARCH_BOARD_PBX_H */
 109