Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux
1
fork

Configure Feed

Select the types of activity you want to include in your feed.

at v3.8-rc3 114 lines 3.0 kB view raw
1/* 2 * linux/arch/arm/mach-versatile/versatile_pb.c 3 * 4 * Copyright (C) 2004 ARM Limited 5 * Copyright (C) 2000 Deep Blue Solutions Ltd 6 * 7 * This program is free software; you can redistribute it and/or modify 8 * it under the terms of the GNU General Public License as published by 9 * the Free Software Foundation; either version 2 of the License, or 10 * (at your option) any later version. 11 * 12 * This program is distributed in the hope that it will be useful, 13 * but WITHOUT ANY WARRANTY; without even the implied warranty of 14 * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the 15 * GNU General Public License for more details. 16 * 17 * You should have received a copy of the GNU General Public License 18 * along with this program; if not, write to the Free Software 19 * Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA 20 */ 21 22#include <linux/init.h> 23#include <linux/device.h> 24#include <linux/amba/bus.h> 25#include <linux/amba/pl061.h> 26#include <linux/amba/mmci.h> 27#include <linux/io.h> 28 29#include <mach/hardware.h> 30#include <asm/hardware/vic.h> 31#include <asm/irq.h> 32#include <asm/mach-types.h> 33 34#include <asm/mach/arch.h> 35 36#include "core.h" 37 38#if 1 39#define IRQ_MMCI1A IRQ_VICSOURCE23 40#else 41#define IRQ_MMCI1A IRQ_SIC_MMCI1A 42#endif 43 44static struct mmci_platform_data mmc1_plat_data = { 45 .ocr_mask = MMC_VDD_32_33|MMC_VDD_33_34, 46 .status = mmc_status, 47 .gpio_wp = -1, 48 .gpio_cd = -1, 49}; 50 51static struct pl061_platform_data gpio2_plat_data = { 52 .gpio_base = 16, 53 .irq_base = IRQ_GPIO2_START, 54}; 55 56static struct pl061_platform_data gpio3_plat_data = { 57 .gpio_base = 24, 58 .irq_base = IRQ_GPIO3_START, 59}; 60 61#define UART3_IRQ { IRQ_SIC_UART3 } 62#define SCI1_IRQ { IRQ_SIC_SCI3 } 63#define MMCI1_IRQ { IRQ_MMCI1A, IRQ_SIC_MMCI1B } 64 65/* 66 * These devices are connected via the core APB bridge 67 */ 68#define GPIO2_IRQ { IRQ_GPIOINT2 } 69#define GPIO3_IRQ { IRQ_GPIOINT3 } 70 71/* 72 * These devices are connected via the DMA APB bridge 73 */ 74 75/* FPGA Primecells */ 76APB_DEVICE(uart3, "fpga:09", UART3, NULL); 77APB_DEVICE(sci1, "fpga:0a", SCI1, NULL); 78APB_DEVICE(mmc1, "fpga:0b", MMCI1, &mmc1_plat_data); 79 80/* DevChip Primecells */ 81APB_DEVICE(gpio2, "dev:e6", GPIO2, &gpio2_plat_data); 82APB_DEVICE(gpio3, "dev:e7", GPIO3, &gpio3_plat_data); 83 84static struct amba_device *amba_devs[] __initdata = { 85 &uart3_device, 86 &gpio2_device, 87 &gpio3_device, 88 &sci1_device, 89 &mmc1_device, 90}; 91 92static void __init versatile_pb_init(void) 93{ 94 int i; 95 96 versatile_init(); 97 98 for (i = 0; i < ARRAY_SIZE(amba_devs); i++) { 99 struct amba_device *d = amba_devs[i]; 100 amba_device_register(d, &iomem_resource); 101 } 102} 103 104MACHINE_START(VERSATILE_PB, "ARM-Versatile PB") 105 /* Maintainer: ARM Ltd/Deep Blue Solutions Ltd */ 106 .atag_offset = 0x100, 107 .map_io = versatile_map_io, 108 .init_early = versatile_init_early, 109 .init_irq = versatile_init_irq, 110 .handle_irq = vic_handle_irq, 111 .timer = &versatile_timer, 112 .init_machine = versatile_pb_init, 113 .restart = versatile_restart, 114MACHINE_END