diff options
Diffstat (limited to 'arch/arm/mach-pxa/pcm027.c')
-rw-r--r-- | arch/arm/mach-pxa/pcm027.c | 266 |
1 files changed, 0 insertions, 266 deletions
diff --git a/arch/arm/mach-pxa/pcm027.c b/arch/arm/mach-pxa/pcm027.c deleted file mode 100644 index 7ff6f0d655c8..000000000000 --- a/arch/arm/mach-pxa/pcm027.c +++ /dev/null @@ -1,266 +0,0 @@ -// SPDX-License-Identifier: GPL-2.0-only -/* - * linux/arch/arm/mach-pxa/pcm027.c - * Support for the Phytec phyCORE-PXA270 CPU card (aka PCM-027). - * - * Refer - * http://www.phytec.com/products/sbc/ARM-XScale/phyCORE-XScale-PXA270.html - * for additional hardware info - * - * Author: Juergen Kilb - * Created: April 05, 2005 - * Copyright: Phytec Messtechnik GmbH - * e-Mail: armlinux@phytec.de - * - * based on Intel Mainstone Board - * - * Copyright 2007 Juergen Beisert @ Pengutronix (j.beisert@pengutronix.de) - */ - -#include <linux/irq.h> -#include <linux/platform_device.h> -#include <linux/mtd/physmap.h> -#include <linux/spi/spi.h> -#include <linux/spi/max7301.h> -#include <linux/spi/pxa2xx_spi.h> -#include <linux/leds.h> - -#include <asm/mach-types.h> -#include <asm/mach/arch.h> -#include "pxa27x.h" -#include "pcm027.h" -#include "generic.h" - -/* - * ABSTRACT: - * - * The PXA270 processor comes with a bunch of hardware on its silicon. - * Not all of this hardware can be used at the same time and not all - * is routed to module's connectors. Also it depends on the baseboard, what - * kind of hardware can be used in which way. - * -> So this file supports the main devices on the CPU card only! - * Refer pcm990-baseboard.c how to extend this features to get a full - * blown system with many common interfaces. - * - * The PCM-027 supports the following interfaces through its connectors and - * will be used in pcm990-baseboard.c: - * - * - LCD support - * - MMC support - * - IDE/CF card - * - FFUART - * - BTUART - * - IRUART - * - AC97 - * - SSP - * - SSP3 - * - * Claimed GPIOs: - * GPIO0 -> IRQ input from RTC - * GPIO2 -> SYS_ENA*) - * GPIO3 -> PWR_SCL - * GPIO4 -> PWR_SDA - * GPIO5 -> PowerCap0*) - * GPIO6 -> PowerCap1*) - * GPIO7 -> PowerCap2*) - * GPIO8 -> PowerCap3*) - * GPIO15 -> /CS1 - * GPIO20 -> /CS2 - * GPIO21 -> /CS3 - * GPIO33 -> /CS5 network controller select - * GPIO52 -> IRQ from network controller - * GPIO78 -> /CS2 - * GPIO80 -> /CS4 - * GPIO90 -> LED0 - * GPIO91 -> LED1 - * GPIO114 -> IRQ from CAN controller - * GPIO117 -> SCL - * GPIO118 -> SDA - * - * *) CPU internal use only - */ - -static unsigned long pcm027_pin_config[] __initdata = { - /* Chip Selects */ - GPIO20_nSDCS_2, - GPIO21_nSDCS_3, - GPIO15_nCS_1, - GPIO78_nCS_2, - GPIO80_nCS_4, - GPIO33_nCS_5, /* Ethernet */ - - /* I2C */ - GPIO117_I2C_SCL, - GPIO118_I2C_SDA, - - /* GPIO */ - GPIO52_GPIO, /* IRQ from network controller */ -#ifdef CONFIG_LEDS_GPIO - GPIO90_GPIO, /* PCM027_LED_CPU */ - GPIO91_GPIO, /* PCM027_LED_HEART_BEAT */ -#endif - GPIO114_GPIO, /* IRQ from CAN controller */ -}; - -/* - * SMC91x network controller specific stuff - */ -static struct resource smc91x_resources[] = { - [0] = { - .start = PCM027_ETH_PHYS + 0x300, - .end = PCM027_ETH_PHYS + PCM027_ETH_SIZE, - .flags = IORESOURCE_MEM, - }, - [1] = { - .start = PCM027_ETH_IRQ, - .end = PCM027_ETH_IRQ, - /* note: smc91x's driver doesn't use the trigger bits yet */ - .flags = IORESOURCE_IRQ | PCM027_ETH_IRQ_EDGE, - } -}; - -static struct platform_device smc91x_device = { - .name = "smc91x", - .id = 0, - .num_resources = ARRAY_SIZE(smc91x_resources), - .resource = smc91x_resources, -}; - -/* - * SPI host and devices - */ -static struct pxa2xx_spi_controller pxa_ssp_master_info = { - .num_chipselect = 1, -}; - -static struct max7301_platform_data max7301_info = { - .base = -1, -}; - -/* bus_num must match id in pxa2xx_set_spi_info() call */ -static struct spi_board_info spi_board_info[] __initdata = { - { - .modalias = "max7301", - .platform_data = &max7301_info, - .max_speed_hz = 13000000, - .bus_num = 1, - .chip_select = 0, - .mode = SPI_MODE_0, - }, -}; - -/* - * NOR flash - */ -static struct physmap_flash_data pcm027_flash_data = { - .width = 4, -}; - -static struct resource pcm027_flash_resource = { - .start = PCM027_FLASH_PHYS, - .end = PCM027_FLASH_PHYS + PCM027_FLASH_SIZE - 1 , - .flags = IORESOURCE_MEM, -}; - -static struct platform_device pcm027_flash = { - .name = "physmap-flash", - .id = 0, - .dev = { - .platform_data = &pcm027_flash_data, - }, - .resource = &pcm027_flash_resource, - .num_resources = 1, -}; - -#ifdef CONFIG_LEDS_GPIO - -static struct gpio_led pcm027_led[] = { - { - .name = "led0:red", /* FIXME */ - .gpio = PCM027_LED_CPU - }, - { - .name = "led1:green", /* FIXME */ - .gpio = PCM027_LED_HEARD_BEAT - }, -}; - -static struct gpio_led_platform_data pcm027_led_data = { - .num_leds = ARRAY_SIZE(pcm027_led), - .leds = pcm027_led -}; - -static struct platform_device pcm027_led_dev = { - .name = "leds-gpio", - .id = 0, - .dev = { - .platform_data = &pcm027_led_data, - }, -}; - -#endif /* CONFIG_LEDS_GPIO */ - -/* - * declare the available device resources on this board - */ -static struct platform_device *devices[] __initdata = { - &smc91x_device, - &pcm027_flash, -#ifdef CONFIG_LEDS_GPIO - &pcm027_led_dev -#endif -}; - -/* - * pcm027_init - breath some life into the board - */ -static void __init pcm027_init(void) -{ - /* system bus arbiter setting - * - Core_Park - * - LCD_wt:DMA_wt:CORE_Wt = 2:3:4 - */ - ARB_CNTRL = ARB_CORE_PARK | 0x234; - - pxa2xx_mfp_config(pcm027_pin_config, ARRAY_SIZE(pcm027_pin_config)); - - pxa_set_ffuart_info(NULL); - pxa_set_btuart_info(NULL); - pxa_set_stuart_info(NULL); - - platform_add_devices(devices, ARRAY_SIZE(devices)); - - /* at last call the baseboard to initialize itself */ -#ifdef CONFIG_MACH_PCM990_BASEBOARD - pcm990_baseboard_init(); -#endif - - pxa2xx_set_spi_info(1, &pxa_ssp_master_info); - spi_register_board_info(spi_board_info, ARRAY_SIZE(spi_board_info)); -} - -static void __init pcm027_map_io(void) -{ - pxa27x_map_io(); - - /* initialize sleep mode regs (wake-up sources, etc) */ - PGSR0 = 0x01308000; - PGSR1 = 0x00CF0002; - PGSR2 = 0x0E294000; - PGSR3 = 0x0000C000; - PWER = 0x40000000 | PWER_GPIO0 | PWER_GPIO1; - PRER = 0x00000000; - PFER = 0x00000003; -} - -MACHINE_START(PCM027, "Phytec Messtechnik GmbH phyCORE-PXA270") - /* Maintainer: Pengutronix */ - .atag_offset = 0x100, - .map_io = pcm027_map_io, - .nr_irqs = PCM027_NR_IRQS, - .init_irq = pxa27x_init_irq, - .handle_irq = pxa27x_handle_irq, - .init_time = pxa_timer_init, - .init_machine = pcm027_init, - .restart = pxa_restart, -MACHINE_END |