2011/5/12 Mike Rapoport <mike@xxxxxxxxxxxxxx>: > since it is merged into board-igep0020.c > > Signed-off-by: Mike Rapoport <mike@xxxxxxxxxxxxxx> > --- > Âarch/arm/mach-omap2/Kconfig     Â|  Â1 + > Âarch/arm/mach-omap2/Makefile     |  Â2 - > Âarch/arm/mach-omap2/board-igep0030.c | Â438 ---------------------------------- > Â3 files changed, 1 insertions(+), 440 deletions(-) > Âdelete mode 100644 arch/arm/mach-omap2/board-igep0030.c > > diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig > index b997a35..19d5891 100644 > --- a/arch/arm/mach-omap2/Kconfig > +++ b/arch/arm/mach-omap2/Kconfig > @@ -288,6 +288,7 @@ config MACH_IGEP0030 >    Âdepends on ARCH_OMAP3 >    Âdefault y >    Âselect OMAP_PACKAGE_CBB > +    select MACH_IGEP0020 > > Âconfig MACH_SBC3530 >    Âbool "OMAP3 SBC STALKER board" > diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile > index a0c2cae..186f482 100644 > --- a/arch/arm/mach-omap2/Makefile > +++ b/arch/arm/mach-omap2/Makefile > @@ -229,8 +229,6 @@ obj-$(CONFIG_MACH_CM_T35)      += board-cm-t35.o \ > Âobj-$(CONFIG_MACH_CM_T3517)      Â+= board-cm-t3517.o > Âobj-$(CONFIG_MACH_IGEP0020)      Â+= board-igep0020.o \ >                      hsmmc.o > -obj-$(CONFIG_MACH_IGEP0030)      Â+= board-igep0030.o \ > -                     Âhsmmc.o > Âobj-$(CONFIG_MACH_OMAP3_TOUCHBOOK)   += board-omap3touchbook.o \ >                      hsmmc.o > Âobj-$(CONFIG_MACH_OMAP_4430SDP)        Â+= board-4430sdp.o \ > diff --git a/arch/arm/mach-omap2/board-igep0030.c b/arch/arm/mach-omap2/board-igep0030.c > deleted file mode 100644 > index 83f6be2..0000000 > --- a/arch/arm/mach-omap2/board-igep0030.c > +++ /dev/null > @@ -1,438 +0,0 @@ > -/* > - * Copyright (C) 2010 - ISEE 2007 SL > - * > - * Modified from mach-omap2/board-generic.c > - * > - * This program is free software; you can redistribute it and/or modify > - * it under the terms of the GNU General Public License version 2 as > - * published by the Free Software Foundation. > - */ > - > -#include <linux/kernel.h> > -#include <linux/init.h> > -#include <linux/platform_device.h> > -#include <linux/delay.h> > -#include <linux/err.h> > -#include <linux/clk.h> > -#include <linux/io.h> > -#include <linux/gpio.h> > -#include <linux/interrupt.h> > - > -#include <linux/regulator/machine.h> > -#include <linux/regulator/fixed.h> > -#include <linux/i2c/twl.h> > -#include <linux/mmc/host.h> > - > -#include <asm/mach-types.h> > -#include <asm/mach/arch.h> > - > -#include <plat/board.h> > -#include <plat/common.h> > -#include <plat/gpmc.h> > -#include <plat/usb.h> > -#include <plat/onenand.h> > - > -#include "mux.h" > -#include "hsmmc.h" > -#include "sdram-numonyx-m65kxxxxam.h" > -#include "common-board-devices.h" > - > -#define IGEP3_GPIO_LED0_GREEN Â54 > -#define IGEP3_GPIO_LED0_RED  Â53 > -#define IGEP3_GPIO_LED1_RED  Â16 > - > -#define IGEP3_GPIO_WIFI_NPD  Â138 > -#define IGEP3_GPIO_WIFI_NRESET 139 > -#define IGEP3_GPIO_BT_NRESET  137 > - > -#define IGEP3_GPIO_USBH_NRESET Â183 > - > - > -#if defined(CONFIG_MTD_ONENAND_OMAP2) || \ > -    defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) > - > -#define ONENAND_MAP       0x20000000 > - > -/* > - * x2 Flash built-in COMBO POP MEMORY > - * Since the device is equipped with two DataRAMs, and two-plane NAND > - * Flash memory array, these two component enables simultaneous program > - * of 4KiB. Plane1 has only even blocks such as block0, block2, block4 > - * while Plane2 has only odd blocks such as block1, block3, block5. > - * So MTD regards it as 4KiB page size and 256KiB block size 64*(2*2048) > - */ > - > -static struct mtd_partition igep3_onenand_partitions[] = { > -    { > -        .name      = "X-Loader", > -        .offset     = 0, > -        .size      = 2 * (64*(2*2048)) > -    }, > -    { > -        .name      = "U-Boot", > -        .offset     = MTDPART_OFS_APPEND, > -        .size      = 6 * (64*(2*2048)), > -    }, > -    { > -        .name      = "Environment", > -        .offset     = MTDPART_OFS_APPEND, > -        .size      = 2 * (64*(2*2048)), > -    }, > -    { > -        .name      = "Kernel", > -        .offset     = MTDPART_OFS_APPEND, > -        .size      = 12 * (64*(2*2048)), > -    }, > -    { > -        .name      = "File System", > -        .offset     = MTDPART_OFS_APPEND, > -        .size      = MTDPART_SIZ_FULL, > -    }, > -}; > - > -static struct omap_onenand_platform_data igep3_onenand_pdata = { > -    .parts = igep3_onenand_partitions, > -    .nr_parts = ARRAY_SIZE(igep3_onenand_partitions), > -    .onenand_setup = NULL, > -    .dma_channel  Â= -1,  /* disable DMA in OMAP OneNAND driver */ > -}; > - > -static struct platform_device igep3_onenand_device = { > -    .name      = "omap2-onenand", > -    .id       = -1, > -    .dev = { > -        .platform_data = &igep3_onenand_pdata, > -    }, > -}; > - > -static void __init igep3_flash_init(void) > -{ > -    u8 cs = 0; > -    u8 onenandcs = GPMC_CS_NUM + 1; > - > -    for (cs = 0; cs < GPMC_CS_NUM; cs++) { > -        u32 ret; > -        ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG1); > - > -        /* Check if NAND/oneNAND is configured */ > -        if ((ret & 0xC00) == 0x800) > -            /* NAND found */ > -            pr_err("IGEP3: Unsupported NAND found\n"); > -        else { > -            ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG7); > - > -            if ((ret & 0x3F) == (ONENAND_MAP >> 24)) > -                /* OneNAND found */ > -                onenandcs = cs; > -        } > -    } > - > -    if (onenandcs > GPMC_CS_NUM) { > -        pr_err("IGEP3: Unable to find configuration in GPMC\n"); > -        return; > -    } > - > -    igep3_onenand_pdata.cs = onenandcs; > - > -    if (platform_device_register(&igep3_onenand_device) < 0) > -        pr_err("IGEP3: Unable to register OneNAND device\n"); > -} > - > -#else > -static void __init igep3_flash_init(void) {} > -#endif > - > -static struct regulator_consumer_supply igep3_vmmc1_supply = > -    REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"); > - > -/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */ > -static struct regulator_init_data igep3_vmmc1 = { > -    .constraints = { > -        .min_uV         = 1850000, > -        .max_uV         = 3150000, > -        .valid_modes_mask    = REGULATOR_MODE_NORMAL > -                    | REGULATOR_MODE_STANDBY, > -        .valid_ops_mask     = REGULATOR_CHANGE_VOLTAGE > -                    | REGULATOR_CHANGE_MODE > -                    | REGULATOR_CHANGE_STATUS, > -    }, > -    .num_consumer_supplies Â= 1, > -    .consumer_supplies   Â= &igep3_vmmc1_supply, > -}; > - > -static struct regulator_consumer_supply igep3_vio_supply = > -    REGULATOR_SUPPLY("vmmc_aux", "omap_hsmmc.1"); > - > -static struct regulator_init_data igep3_vio = { > -    .constraints = { > -        .min_uV         = 1800000, > -        .max_uV         = 1800000, > -        .apply_uV        = 1, > -        .valid_modes_mask    = REGULATOR_MODE_NORMAL > -                    | REGULATOR_MODE_STANDBY, > -        .valid_ops_mask     = REGULATOR_CHANGE_VOLTAGE > -                    | REGULATOR_CHANGE_MODE > -                    | REGULATOR_CHANGE_STATUS, > -    }, > -    .num_consumer_supplies Â= 1, > -    .consumer_supplies   Â= &igep3_vio_supply, > -}; > - > -static struct regulator_consumer_supply igep3_vmmc2_supply = > -    REGULATOR_SUPPLY("vmmc", "omap_hsmmc.1"); > - > -static struct regulator_init_data igep3_vmmc2 = { > -    .constraints  Â= { > -        .valid_modes_mask    = REGULATOR_MODE_NORMAL, > -        .always_on       Â= 1, > -    }, > -    .num_consumer_supplies Â= 1, > -    .consumer_supplies   Â= &igep3_vmmc2_supply, > -}; > - > -static struct fixed_voltage_config igep3_vwlan = { > -    .supply_name      Â= "vwlan", > -    .microvolts       = 3300000, > -    .gpio          = -EINVAL, > -    .enabled_at_boot    Â= 1, > -    .init_data       Â= &igep3_vmmc2, > -}; > - > -static struct platform_device igep3_vwlan_device = { > -    .name  = "reg-fixed-voltage", > -    .id   = 0, > -    .dev  Â= { > -        .platform_data = &igep3_vwlan, > -    }, > -}; > - > -static struct omap2_hsmmc_info mmc[] = { > -    [0] = { > -        .mmc      Â= 1, > -        .caps      = MMC_CAP_4_BIT_DATA, > -        .gpio_cd    Â= -EINVAL, > -        .gpio_wp    Â= -EINVAL, > -    }, > -#if defined(CONFIG_LIBERTAS_SDIO) || defined(CONFIG_LIBERTAS_SDIO_MODULE) > -    [1] = { > -        .mmc      Â= 2, > -        .caps      = MMC_CAP_4_BIT_DATA, > -        .gpio_cd    Â= -EINVAL, > -        .gpio_wp    Â= -EINVAL, > -    }, > -#endif > -    {}   Â/* Terminator */ > -}; > - > -#if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) > -#include <linux/leds.h> > - > -static struct gpio_led igep3_gpio_leds[] = { > -    [0] = { > -        .name          = "gpio-led:red:d0", > -        .gpio          = IGEP3_GPIO_LED0_RED, > -        .default_trigger    Â= "default-off" > -    }, > -    [1] = { > -        .name          = "gpio-led:green:d0", > -        .gpio          = IGEP3_GPIO_LED0_GREEN, > -        .default_trigger    Â= "default-off", > -    }, > -    [2] = { > -        .name          = "gpio-led:red:d1", > -        .gpio          = IGEP3_GPIO_LED1_RED, > -        .default_trigger    Â= "default-off", > -    }, > -    [3] = { > -        .name          = "gpio-led:green:d1", > -        .default_trigger    Â= "heartbeat", > -        .gpio          = -EINVAL, /* gets replaced */ > -    }, > -}; > - > -static struct gpio_led_platform_data igep3_led_pdata = { > -    .leds      = igep3_gpio_leds, > -    .num_leds    = ARRAY_SIZE(igep3_gpio_leds), > -}; > - > -static struct platform_device igep3_led_device = { > -    Â.name  = "leds-gpio", > -    Â.id   = -1, > -    Â.dev  Â= { > -        Â.platform_data = &igep3_led_pdata, > -    }, > -}; > - > -static void __init igep3_leds_init(void) > -{ > -    platform_device_register(&igep3_led_device); > -} > - > -#else > -static struct gpio igep3_gpio_leds[] __initdata = { > -    { IGEP3_GPIO_LED0_RED,  GPIOF_OUT_INIT_HIGH, "gpio-led:red:d0"  }, > -    { IGEP3_GPIO_LED0_GREEN, GPIOF_OUT_INIT_HIGH, "gpio-led:green:d0" }, > -    { IGEP3_GPIO_LED1_RED,  GPIOF_OUT_INIT_HIGH, "gpio-led:red:d1"  }, > -}; > - > -static inline void igep3_leds_init(void) > -{ > -    if (gpio_request_array(igep3_gpio_leds, ARRAY_SIZE(igep3_gpio_leds))) { > -        pr_warning("IGEP3: Could not obtain leds gpios\n"); > -        return; > -    } > -    gpio_export(IGEP3_GPIO_LED0_RED, 0); > -    gpio_export(IGEP3_GPIO_LED0_GREEN, 0); > -    gpio_export(IGEP3_GPIO_LED1_RED, 0); > -} > -#endif > - > -static int igep3_twl4030_gpio_setup(struct device *dev, > -        unsigned gpio, unsigned ngpio) > -{ > -#if !defined(CONFIG_LEDS_GPIO) && !defined(CONFIG_LEDS_GPIO_MODULE) > -    int ret; > - > -    /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */ > -    ret = gpio_request_one(gpio + TWL4030_GPIO_MAX + 1, GPIOF_OUT_INIT_HIGH, > -               Â"gpio-led:green:d1"); > -    if (ret) > -        pr_warning("IGEP3: Could not obtain gpio GPIO_LED1_GREEN\n"); > -    else > -        gpio_export(gpio + TWL4030_GPIO_MAX + 1, 0); > -#else > -    igep3_gpio_leds[3].gpio = gpio + TWL4030_GPIO_MAX + 1; > -#endif > -    /* gpio + 0 is "mmc0_cd" (input/IRQ) */ > -    mmc[0].gpio_cd = gpio + 0; > -    omap2_hsmmc_init(mmc); > - > -    return 0; > -}; > - > -static struct twl4030_gpio_platform_data igep3_twl4030_gpio_pdata = { > -    .gpio_base   Â= OMAP_MAX_GPIO_LINES, > -    .irq_base    = TWL4030_GPIO_IRQ_BASE, > -    .irq_end    Â= TWL4030_GPIO_IRQ_END, > -    .use_leds    = true, > -    .setup     Â= igep3_twl4030_gpio_setup, > -}; > - > -static struct twl4030_usb_data igep3_twl4030_usb_data = { > -    .usb_mode    = T2_USB_MODE_ULPI, > -}; > - > -static struct platform_device *igep3_devices[] __initdata = { > -    &igep3_vwlan_device, > -}; > - > -static void __init igep3_init_early(void) > -{ > -    omap2_init_common_infrastructure(); > -    omap2_init_common_devices(m65kxxxxam_sdrc_params, > -                 m65kxxxxam_sdrc_params); > -} > - > -static struct twl4030_platform_data igep3_twl4030_pdata = { > -    .irq_base    = TWL4030_IRQ_BASE, > -    .irq_end    Â= TWL4030_IRQ_END, > - > -    /* platform_data for children goes here */ > -    .usb      Â= &igep3_twl4030_usb_data, > -    .gpio      = &igep3_twl4030_gpio_pdata, > -    .vmmc1     Â= &igep3_vmmc1, > -    .vio      Â= &igep3_vio, > -}; > - > -static int __init igep3_i2c_init(void) > -{ > -    omap3_pmic_init("twl4030", &igep3_twl4030_pdata); > - > -    return 0; > -} > - > -#if defined(CONFIG_LIBERTAS_SDIO) || defined(CONFIG_LIBERTAS_SDIO_MODULE) > -static struct gpio igep3_wlan_bt_gpios[] __initdata = { > -    { IGEP3_GPIO_WIFI_NPD,  ÂGPIOF_OUT_INIT_HIGH, "GPIO_WIFI_NPD"  Â}, > -    { IGEP3_GPIO_WIFI_NRESET, GPIOF_OUT_INIT_HIGH, "GPIO_WIFI_NRESET" }, > -    { IGEP3_GPIO_BT_NRESET,  GPIOF_OUT_INIT_HIGH, "GPIO_BT_NRESET"  }, > -}; > - > -static void __init igep3_wifi_bt_init(void) > -{ > -    int err; > - > -    /* Configure MUX values for W-LAN + Bluetooth GPIO's */ > -    omap_mux_init_gpio(IGEP3_GPIO_WIFI_NPD, OMAP_PIN_OUTPUT); > -    omap_mux_init_gpio(IGEP3_GPIO_WIFI_NRESET, OMAP_PIN_OUTPUT); > -    omap_mux_init_gpio(IGEP3_GPIO_BT_NRESET, OMAP_PIN_OUTPUT); > - > -    /* Set GPIO's for ÂW-LAN + Bluetooth combo module */ > -    err = gpio_request_array(igep3_wlan_bt_gpios, > -                ÂARRAY_SIZE(igep3_wlan_bt_gpios)); > -    if (err) { > -        pr_warning("IGEP3: Could not obtain WIFI/BT gpios\n"); > -        return; > -    } > - > -    gpio_export(IGEP3_GPIO_WIFI_NPD, 0); > -    gpio_export(IGEP3_GPIO_WIFI_NRESET, 0); > -    gpio_export(IGEP3_GPIO_BT_NRESET, 0); > - > -    gpio_set_value(IGEP3_GPIO_WIFI_NRESET, 0); > -    udelay(10); > -    gpio_set_value(IGEP3_GPIO_WIFI_NRESET, 1); > -} > -#else > -void __init igep3_wifi_bt_init(void) {} > -#endif > - > -static const struct usbhs_omap_board_data usbhs_bdata __initconst = { > -    .port_mode[0] = OMAP_USBHS_PORT_MODE_UNUSED, > -    .port_mode[1] = OMAP_EHCI_PORT_MODE_PHY, > -    .port_mode[2] = OMAP_USBHS_PORT_MODE_UNUSED, > - > -    .phy_reset = true, > -    .reset_gpio_port[0] = -EINVAL, > -    .reset_gpio_port[1] = IGEP3_GPIO_USBH_NRESET, > -    .reset_gpio_port[2] = -EINVAL, > -}; > - > -#ifdef CONFIG_OMAP_MUX > -static struct omap_board_mux board_mux[] __initdata = { > -    OMAP3_MUX(I2C2_SDA, OMAP_MUX_MODE4 | OMAP_PIN_OUTPUT), > -    { .reg_offset = OMAP_MUX_TERMINATOR }, > -}; > -#endif > - > -static void __init igep3_init(void) > -{ > -    omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); > - > -    /* Register I2C busses and drivers */ > -    igep3_i2c_init(); > -    platform_add_devices(igep3_devices, ARRAY_SIZE(igep3_devices)); > -    omap_serial_init(); > -    usb_musb_init(NULL); > -    usbhs_init(&usbhs_bdata); > - > -    igep3_flash_init(); > -    igep3_leds_init(); > - > -    /* > -    Â* WLAN-BT combo module from MuRata which has a Marvell WLAN > -    Â* (88W8686) + CSR Bluetooth chipset. Uses SDIO interface. > -    Â*/ > -    igep3_wifi_bt_init(); > - > -} > - > -MACHINE_START(IGEP0030, "IGEP OMAP3 module") > -    .boot_params  Â= 0x80000100, > -    .reserve    Â= omap_reserve, > -    .map_io     = omap3_map_io, > -    .init_early   = igep3_init_early, > -    .init_irq    = omap_init_irq, > -    .init_machine  = igep3_init, > -    .timer     Â= &omap_timer, > -MACHINE_END > -- > 1.7.3.1 > > Acked-by: Enric Balletbo i Serra <eballetbo@xxxxxxxxxxx> ÿô.nÇ·®+%˱é¥wÿº{.nÇ·¥{±þ§ø¡Ü}©²ÆzÚj:+v¨þø®w¥þàÞ¨è&¢)ß«a¶Úÿûz¹ÞúÝjÿwèf