[PATCH 2/2] mx31_3ds: revert cpld debug board relate code
Sascha Hauer
s.hauer at pengutronix.de
Wed Jun 16 02:57:08 EDT 2010
[Added Magnus to Cc]
Magnus,
As you are the original author of the removed code, can I have you
Acked-by or Tested-by here?
Sascha
On Sat, Jun 12, 2010 at 10:25:07PM +0800, Jason Wang wrote:
> Because we add a cpld debug board support in mxc level, we remove
> those redudent codes from board level.
>
> Signed-off-by: Jason Wang <jason77.wang at gmail.com>
> ---
> arch/arm/mach-mx3/Kconfig | 1 +
> arch/arm/mach-mx3/mach-mx31_3ds.c | 168 +----------------------
> arch/arm/plat-mxc/include/mach/board-mx31_3ds.h | 42 ------
> 3 files changed, 4 insertions(+), 207 deletions(-)
>
> diff --git a/arch/arm/mach-mx3/Kconfig b/arch/arm/mach-mx3/Kconfig
> index 344753f..fd422cf 100644
> --- a/arch/arm/mach-mx3/Kconfig
> +++ b/arch/arm/mach-mx3/Kconfig
> @@ -58,6 +58,7 @@ config MACH_MX31LITE
> config MACH_MX31_3DS
> bool "Support MX31PDK (3DS)"
> select ARCH_MX31
> + select MXC_DEBUG_BOARD
> help
> Include support for MX31PDK (3DS) platform. This includes specific
> configurations for the board and its peripherals.
> diff --git a/arch/arm/mach-mx3/mach-mx31_3ds.c b/arch/arm/mach-mx3/mach-mx31_3ds.c
> index 58e5729..d8af726 100644
> --- a/arch/arm/mach-mx3/mach-mx31_3ds.c
> +++ b/arch/arm/mach-mx3/mach-mx31_3ds.c
> @@ -22,7 +22,6 @@
> #include <linux/clk.h>
> #include <linux/irq.h>
> #include <linux/gpio.h>
> -#include <linux/smsc911x.h>
> #include <linux/platform_device.h>
> #include <linux/mfd/mc13783.h>
> #include <linux/spi/spi.h>
> @@ -38,6 +37,7 @@
> #include <asm/mach/map.h>
> #include <mach/common.h>
> #include <mach/board-mx31_3ds.h>
> +#include <mach/cpld_debugboard.h>
> #include <mach/imx-uart.h>
> #include <mach/iomux-mx3.h>
> #include <mach/mxc_nand.h>
> @@ -213,173 +213,11 @@ static struct imxuart_platform_data uart_pdata = {
> };
>
> /*
> - * Support for the SMSC9217 on the Debug board.
> - */
> -
> -static struct smsc911x_platform_config smsc911x_config = {
> - .irq_polarity = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
> - .irq_type = SMSC911X_IRQ_TYPE_PUSH_PULL,
> - .flags = SMSC911X_USE_16BIT | SMSC911X_FORCE_INTERNAL_PHY,
> - .phy_interface = PHY_INTERFACE_MODE_MII,
> -};
> -
> -static struct resource smsc911x_resources[] = {
> - {
> - .start = LAN9217_BASE_ADDR,
> - .end = LAN9217_BASE_ADDR + 0xff,
> - .flags = IORESOURCE_MEM,
> - }, {
> - .start = EXPIO_INT_ENET,
> - .end = EXPIO_INT_ENET,
> - .flags = IORESOURCE_IRQ,
> - },
> -};
> -
> -static struct platform_device smsc911x_device = {
> - .name = "smsc911x",
> - .id = -1,
> - .num_resources = ARRAY_SIZE(smsc911x_resources),
> - .resource = smsc911x_resources,
> - .dev = {
> - .platform_data = &smsc911x_config,
> - },
> -};
> -
> -/*
> - * Routines for the CPLD on the debug board. It contains a CPLD handling
> - * LEDs, switches, interrupts for Ethernet.
> - */
> -
> -static void mx31_3ds_expio_irq_handler(uint32_t irq, struct irq_desc *desc)
> -{
> - uint32_t imr_val;
> - uint32_t int_valid;
> - uint32_t expio_irq;
> -
> - imr_val = __raw_readw(CPLD_INT_MASK_REG);
> - int_valid = __raw_readw(CPLD_INT_STATUS_REG) & ~imr_val;
> -
> - expio_irq = MXC_EXP_IO_BASE;
> - for (; int_valid != 0; int_valid >>= 1, expio_irq++) {
> - if ((int_valid & 1) == 0)
> - continue;
> - generic_handle_irq(expio_irq);
> - }
> -}
> -
> -/*
> - * Disable an expio pin's interrupt by setting the bit in the imr.
> - * @param irq an expio virtual irq number
> - */
> -static void expio_mask_irq(uint32_t irq)
> -{
> - uint16_t reg;
> - uint32_t expio = MXC_IRQ_TO_EXPIO(irq);
> -
> - /* mask the interrupt */
> - reg = __raw_readw(CPLD_INT_MASK_REG);
> - reg |= 1 << expio;
> - __raw_writew(reg, CPLD_INT_MASK_REG);
> -}
> -
> -/*
> - * Acknowledge an expanded io pin's interrupt by clearing the bit in the isr.
> - * @param irq an expanded io virtual irq number
> - */
> -static void expio_ack_irq(uint32_t irq)
> -{
> - uint32_t expio = MXC_IRQ_TO_EXPIO(irq);
> -
> - /* clear the interrupt status */
> - __raw_writew(1 << expio, CPLD_INT_RESET_REG);
> - __raw_writew(0, CPLD_INT_RESET_REG);
> - /* mask the interrupt */
> - expio_mask_irq(irq);
> -}
> -
> -/*
> - * Enable a expio pin's interrupt by clearing the bit in the imr.
> - * @param irq a expio virtual irq number
> - */
> -static void expio_unmask_irq(uint32_t irq)
> -{
> - uint16_t reg;
> - uint32_t expio = MXC_IRQ_TO_EXPIO(irq);
> -
> - /* unmask the interrupt */
> - reg = __raw_readw(CPLD_INT_MASK_REG);
> - reg &= ~(1 << expio);
> - __raw_writew(reg, CPLD_INT_MASK_REG);
> -}
> -
> -static struct irq_chip expio_irq_chip = {
> - .ack = expio_ack_irq,
> - .mask = expio_mask_irq,
> - .unmask = expio_unmask_irq,
> -};
> -
> -static int __init mx31_3ds_init_expio(void)
> -{
> - int i;
> - int ret;
> -
> - /* Check if there's a debug board connected */
> - if ((__raw_readw(CPLD_MAGIC_NUMBER1_REG) != 0xAAAA) ||
> - (__raw_readw(CPLD_MAGIC_NUMBER2_REG) != 0x5555) ||
> - (__raw_readw(CPLD_MAGIC_NUMBER3_REG) != 0xCAFE)) {
> - /* No Debug board found */
> - return -ENODEV;
> - }
> -
> - pr_info("i.MX31 3DS Debug board detected, rev = 0x%04X\n",
> - __raw_readw(CPLD_CODE_VER_REG));
> -
> - /*
> - * Configure INT line as GPIO input
> - */
> - ret = gpio_request(IOMUX_TO_GPIO(MX31_PIN_GPIO1_1), "sms9217-irq");
> - if (ret)
> - pr_warning("could not get LAN irq gpio\n");
> - else
> - gpio_direction_input(IOMUX_TO_GPIO(MX31_PIN_GPIO1_1));
> -
> - /* Disable the interrupts and clear the status */
> - __raw_writew(0, CPLD_INT_MASK_REG);
> - __raw_writew(0xFFFF, CPLD_INT_RESET_REG);
> - __raw_writew(0, CPLD_INT_RESET_REG);
> - __raw_writew(0x1F, CPLD_INT_MASK_REG);
> - for (i = MXC_EXP_IO_BASE;
> - i < (MXC_EXP_IO_BASE + MXC_MAX_EXP_IO_LINES);
> - i++) {
> - set_irq_chip(i, &expio_irq_chip);
> - set_irq_handler(i, handle_level_irq);
> - set_irq_flags(i, IRQF_VALID);
> - }
> - set_irq_type(EXPIO_PARENT_INT, IRQ_TYPE_LEVEL_LOW);
> - set_irq_chained_handler(EXPIO_PARENT_INT, mx31_3ds_expio_irq_handler);
> -
> - return 0;
> -}
> -
> -/*
> - * This structure defines the MX31 memory map.
> - */
> -static struct map_desc mx31_3ds_io_desc[] __initdata = {
> - {
> - .virtual = MX31_CS5_BASE_ADDR_VIRT,
> - .pfn = __phys_to_pfn(MX31_CS5_BASE_ADDR),
> - .length = MX31_CS5_SIZE,
> - .type = MT_DEVICE,
> - },
> -};
> -
> -/*
> * Set up static virtual mappings.
> */
> static void __init mx31_3ds_map_io(void)
> {
> mx31_map_io();
> - iotable_init(mx31_3ds_io_desc, ARRAY_SIZE(mx31_3ds_io_desc));
> }
>
> /*!
> @@ -402,8 +240,8 @@ static void __init mxc_board_init(void)
> mx31_3ds_usbotg_init();
> mxc_register_device(&mxc_otg_udc_device, &usbotg_pdata);
>
> - if (!mx31_3ds_init_expio())
> - platform_device_register(&smsc911x_device);
> + if (!mxc_expio_init(CS5_BASE_ADDR, EXPIO_PARENT_INT))
> + platform_device_register(&smsc_lan9217_device);
> }
>
> static void __init mx31_3ds_timer_init(void)
> diff --git a/arch/arm/plat-mxc/include/mach/board-mx31_3ds.h b/arch/arm/plat-mxc/include/mach/board-mx31_3ds.h
> index da92933..c26d88d 100644
> --- a/arch/arm/plat-mxc/include/mach/board-mx31_3ds.h
> +++ b/arch/arm/plat-mxc/include/mach/board-mx31_3ds.h
> @@ -12,48 +12,6 @@
> #define __ASM_ARCH_MXC_BOARD_MX31_3DS_H__
>
> /* Definitions for components on the Debug board */
> -
> -/* Base address of CPLD controller on the Debug board */
> -#define DEBUG_BASE_ADDRESS CS5_IO_ADDRESS(CS5_BASE_ADDR)
> -
> -/* LAN9217 ethernet base address */
> -#define LAN9217_BASE_ADDR CS5_BASE_ADDR
> -
> -/* CPLD config and interrupt base address */
> -#define CPLD_ADDR (DEBUG_BASE_ADDRESS + 0x20000)
> -
> -/* LED switchs */
> -#define CPLD_LED_REG (CPLD_ADDR + 0x00)
> -/* buttons */
> -#define CPLD_SWITCH_BUTTONS_REG (EXPIO_ADDR + 0x08)
> -/* status, interrupt */
> -#define CPLD_INT_STATUS_REG (CPLD_ADDR + 0x10)
> -#define CPLD_INT_MASK_REG (CPLD_ADDR + 0x38)
> -#define CPLD_INT_RESET_REG (CPLD_ADDR + 0x20)
> -/* magic word for debug CPLD */
> -#define CPLD_MAGIC_NUMBER1_REG (CPLD_ADDR + 0x40)
> -#define CPLD_MAGIC_NUMBER2_REG (CPLD_ADDR + 0x48)
> -/* CPLD code version */
> -#define CPLD_CODE_VER_REG (CPLD_ADDR + 0x50)
> -/* magic word for debug CPLD */
> -#define CPLD_MAGIC_NUMBER3_REG (CPLD_ADDR + 0x58)
> -/* module reset register */
> -#define CPLD_MODULE_RESET_REG (CPLD_ADDR + 0x60)
> -/* CPU ID and Personality ID */
> -#define CPLD_MCU_BOARD_ID_REG (CPLD_ADDR + 0x68)
> -
> -/* CPLD IRQ line for external uart, external ethernet etc */
> #define EXPIO_PARENT_INT IOMUX_TO_IRQ(MX31_PIN_GPIO1_1)
>
> -#define MXC_EXP_IO_BASE (MXC_BOARD_IRQ_START)
> -#define MXC_IRQ_TO_EXPIO(irq) ((irq) - MXC_EXP_IO_BASE)
> -
> -#define EXPIO_INT_ENET (MXC_EXP_IO_BASE + 0)
> -#define EXPIO_INT_XUART_A (MXC_EXP_IO_BASE + 1)
> -#define EXPIO_INT_XUART_B (MXC_EXP_IO_BASE + 2)
> -#define EXPIO_INT_BUTTON_A (MXC_EXP_IO_BASE + 3)
> -#define EXPIO_INT_BUTTON_B (MXC_EXP_IO_BASE + 4)
> -
> -#define MXC_MAX_EXP_IO_LINES 16
> -
> #endif /* __ASM_ARCH_MXC_BOARD_MX31_3DS_H__ */
> --
> 1.5.6.5
>
>
--
Pengutronix e.K. | |
Industrial Linux Solutions | http://www.pengutronix.de/ |
Peiner Str. 6-8, 31137 Hildesheim, Germany | Phone: +49-5121-206917-0 |
Amtsgericht Hildesheim, HRA 2686 | Fax: +49-5121-206917-5555 |
More information about the linux-arm-kernel
mailing list