Re: ttyO2 broken on IGEPv2 on 3.3, 3.4-rc5 or arm-soc/for-next, working on 3.2

2012-10-06 Thread Enric Balletbò i Serra
2012/10/5 Javier Martinez Canillas martinez.jav...@gmail.com:
 On Fri, Oct 5, 2012 at 10:10 AM, Thomas Petazzoni
 thomas.petazz...@free-electrons.com wrote:

 On Fri, 5 Oct 2012 09:32:07 +0200, Javier Martinez Canillas wrote:

 As Enric said, u-boot has SPL and NAND support for IGEP since
 v2012.10-rc1. I just tried kernel a 3.6 with u-boot v2012.10-rc2 and
 it works for me.

 Ok, I'll try this out.

 But I agree that the kernel shouldn't do any assumptions about the
 bootloader setting correctly the omap mux. Could you please share your
 bootloader that makes the kernel to fail (or your IGEP NAND patches on
 top of u-boot U-boot 2011.12) so I can reproduce the issue and try to
 fix it?

 Ok, I'm using the X-Loader from git://git.igep.es/pub/scm/x-loader.git,
 tag v1.4.4-3, on top of which I apply
 http://git.free-electrons.com/training-materials/plain/lab-data/sysdev/u-boot/x-loader-1.4.4-3-igep-nand-support.patch
 to add support for the NAND-based IGEPv2 rev6.

 In terms of U-Boot, I use U-Boot 2011.12, on top of which I apply
 http://git.free-electrons.com/training-materials/plain/lab-data/sysdev/u-boot/u-boot-2011.12-igep-nand-support.patch
 to add support for the NAND-based IGEPv2 rev6.

 To make things easier if you don't need to rebuild those, I've put
 online pre-built binaries of X-Loader and U-Boot I'm using:
 http://free-electrons.com/~thomas/pub/igep-serial-problem/.

 Thanks,

 Thomas

 Perfect, I'll try it and let you know if I find a fix for the issue.


Sorry if someone receives this email twice, I had some problems to
send this email and Mail Delivery Subsystem tells me
that the Delivery to the following recipient has been delayed.

Also I tried and works for me which make me think that could be a
hardware issue. Please make sure that pins 6, 8 and 9 of the J990
header are not connected. I'm noticed that some US-to-RS232 converters
had problems with this. If you use the IDC10 to DB9 cable take a look
at this article:

   http://labs.isee.biz/index.php/How_to_setup_the_IDC10_cable

If it's a hardware issue, then , why it worked before 3.2 ? Well, I'm
not sure, but maybe the mux is different for pins of uart1 that are
connected to J990 and causes the problem. If you see at the schematic
you'll see that J990

  x -  10  9 - uart1_rx
uart1_tx -   8   7 - x
gnd   -   6   5 - gnd
  x -   4   3 - uart3_tx
uart3_rx -   2   1 -x

If you use directly a IDC10-to-DB9 without cutting hires from 6 to 10
note that :

   - pin 6 of IDC10 is forced to gnd which corresponds to pin 6 of DB9
which is suposed to be used as DSR (Data Set Ready)
   - pin 8 of IDC10 is connected to uart1_tx which corresponds to pin
8 of DB9 which is suposed to be used as CTS (Clear to Send)
   - pin 9 of IDC10 is connected to uart1_rx which corresponds to pin
9 of DB9 which is suposed to be used as RI (Ring Indicator)

Regards,
Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] arm: igep0020: Specify the VPLL2 regulator unconditionally

2012-04-27 Thread Enric Balletbò i Serra
2012/4/23 Laurent Pinchart laurent.pinch...@ideasonboard.com:
 The supply is connected to the DSS DO-D5 pins and is thus needed for
 both serial and parallel display interfaces on the igep0030 as well as
 the igep0020.

 If the igep0030 module isn't connected to a display, no DSI or DPI
 display will be specified in board code, and the DSS driver won't enable
 to VPLL2 regulator anyway.

 Signed-off-by: Laurent Pinchart laurent.pinch...@ideasonboard.com
 ---
  arch/arm/mach-omap2/board-igep0020.c |   10 +-
  1 files changed, 5 insertions(+), 5 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-igep0020.c 
 b/arch/arm/mach-omap2/board-igep0020.c
 index a59ace0..242cdff 100644
 --- a/arch/arm/mach-omap2/board-igep0020.c
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -539,7 +539,10 @@ static void __init igep_i2c_init(void)
  {
        int ret;

 -       omap3_pmic_get_config(igep_twldata, TWL_COMMON_PDATA_USB, 0);
 +       omap3_pmic_get_config(igep_twldata, TWL_COMMON_PDATA_USB,
 +                             TWL_COMMON_REGULATOR_VPLL2);
 +       igep_twldata.vpll2-constraints.apply_uV = true;
 +       igep_twldata.vpll2-constraints.name = VDVI;

        if (machine_is_igep0020()) {
                /*
 @@ -553,10 +556,7 @@ static void __init igep_i2c_init(void)

                igep_twldata.keypad     = igep2_keypad_pdata;
                /* Get common pmic data */
 -               omap3_pmic_get_config(igep_twldata, TWL_COMMON_PDATA_AUDIO,
 -                                     TWL_COMMON_REGULATOR_VPLL2);
 -               igep_twldata.vpll2-constraints.apply_uV = true;
 -               igep_twldata.vpll2-constraints.name = VDVI;
 +               omap3_pmic_get_config(igep_twldata, TWL_COMMON_PDATA_AUDIO, 
 0);
        }

        omap3_pmic_init(twl4030, igep_twldata);
 --
 Regards,

 Laurent Pinchart

 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

Seems good to me.

Tony, as this is a fix ,may be included ?

Acked-by: Enric Balletbo i Serra eballe...@gmail.com
Tested-by: Enric Balletbo i Serra eballe...@gmail.com

Cheers,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RESEND PATCH 1/2] ARM: OMAP2+: nand: Make board_onenand_init() visible to board code

2012-04-25 Thread Enric Balletbò i Serra
2012/4/4 Javier Martinez Canillas jav...@dowhile0.org:
 board_onenand_init() and board_nand_init() initialization functions are
 used to initialize OneNAND and NAND memories respectively. But only
 board_nand_init() was visible to be used from board code. This patch makes
 possible to initialize a OneNAND flash memory within platform code.

 Signed-off-by: Javier Martinez Canillas jav...@dowhile0.org
 ---
  arch/arm/mach-omap2/board-flash.c |    4 ++--
  arch/arm/mach-omap2/board-flash.h |   11 +++
  2 files changed, 13 insertions(+), 2 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-flash.c 
 b/arch/arm/mach-omap2/board-flash.c
 index 0349fd2..70a81f9 100644
 --- a/arch/arm/mach-omap2/board-flash.c
 +++ b/arch/arm/mach-omap2/board-flash.c
 @@ -87,7 +87,7 @@ static struct omap_onenand_platform_data board_onenand_data 
 = {
        .dma_channel    = -1,   /* disable DMA in OMAP OneNAND driver */
  };

 -static void
 +void
  __init board_onenand_init(struct mtd_partition *onenand_parts,
                                u8 nr_parts, u8 cs)
  {
 @@ -98,7 +98,7 @@ __init board_onenand_init(struct mtd_partition 
 *onenand_parts,
        gpmc_onenand_init(board_onenand_data);
  }
  #else
 -static void
 +void
  __init board_onenand_init(struct mtd_partition *nor_parts, u8 nr_parts, u8 
 cs)
  {
  }
 diff --git a/arch/arm/mach-omap2/board-flash.h 
 b/arch/arm/mach-omap2/board-flash.h
 index d25503a..c44b70d 100644
 --- a/arch/arm/mach-omap2/board-flash.h
 +++ b/arch/arm/mach-omap2/board-flash.h
 @@ -47,3 +47,14 @@ static inline void board_nand_init(struct mtd_partition 
 *nand_parts,
  {
  }
  #endif
 +
 +#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
 +               defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
 +extern void board_onenand_init(struct mtd_partition *nand_parts,
 +                                       u8 nr_parts, u8 cs);
 +#else
 +static inline void board_onenand_init(struct mtd_partition *nand_parts,
 +                                       u8 nr_parts, u8 cs)
 +{
 +}
 +#endif
 --
 1.7.7.6


Seems good to me.

Tony, as this is a fix ,may be included ?

Acked-by: Enric Balletbo i Serra eballe...@gmail.com
Tested-by: Enric Balletbo i Serra eballe...@gmail.com

Cheers,
Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RESEND PATCH 2/2] OMAP3: igep0020: Add support for Micron NAND Flash storage memory

2012-04-25 Thread Enric Balletbò i Serra
2012/4/4 Javier Martinez Canillas jav...@dowhile0.org:
 IGEP-based boards can have two different flash memories, a OneNAND or
 a NAND device. The boot configuration pins (sys_boot) are used to
 specify which memory is available.

 Also, this patch removes unnecesary code for registering the OneNAND.

 Signed-off-by: Javier Martinez Canillas jav...@dowhile0.org
 ---
  arch/arm/mach-omap2/board-igep0020.c |   75 
 ++
  1 files changed, 31 insertions(+), 44 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-igep0020.c 
 b/arch/arm/mach-omap2/board-igep0020.c
 index 930c0d3..4af615a 100644
 --- a/arch/arm/mach-omap2/board-igep0020.c
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -24,6 +24,8 @@
  #include linux/i2c/twl.h
  #include linux/mmc/host.h

 +#include linux/mtd/nand.h
 +
  #include asm/mach-types.h
  #include asm/mach/arch.h

 @@ -39,6 +41,8 @@
  #include hsmmc.h
  #include sdram-numonyx-m65kam.h
  #include common-board-devices.h
 +#include board-flash.h
 +#include control.h

  #define IGEP2_SMSC911X_CS       5
  #define IGEP2_SMSC911X_GPIO     176
 @@ -60,6 +64,10 @@
  #define IGEP3_GPIO_LED1_RED    16
  #define IGEP3_GPIO_USBH_NRESET  183

 +#define IGEP_SYSBOOT_MASK           0x1f
 +#define IGEP_SYSBOOT_NAND           0x0f
 +#define IGEP_SYSBOOT_ONENAND        0x10
 +
  /*
  * IGEP2 Hardware Revision Table
  *
 @@ -110,8 +118,10 @@ static void __init igep2_get_revision(void)
        gpio_free(IGEP2_GPIO_LED1_RED);
  }

 -#if defined(CONFIG_MTD_ONENAND_OMAP2) || \
 -       defined(CONFIG_MTD_ONENAND_OMAP2_MODULE)
 +#if defined(CONFIG_MTD_ONENAND_OMAP2) ||               \
 +       defined(CONFIG_MTD_ONENAND_OMAP2_MODULE) ||     \
 +       defined(CONFIG_MTD_NAND_OMAP2) ||               \
 +       defined(CONFIG_MTD_NAND_OMAP2_MODULE)

  #define ONENAND_MAP             0x2000

 @@ -123,7 +133,7 @@ static void __init igep2_get_revision(void)
  * So MTD regards it as 4KiB page size and 256KiB block size 64*(2*2048)
  */

 -static struct mtd_partition igep_onenand_partitions[] = {
 +static struct mtd_partition igep_flash_partitions[] = {
        {
                .name           = X-Loader,
                .offset         = 0,
 @@ -151,50 +161,27 @@ static struct mtd_partition igep_onenand_partitions[] = 
 {
        },
  };

 -static struct omap_onenand_platform_data igep_onenand_data = {
 -       .parts = igep_onenand_partitions,
 -       .nr_parts = ARRAY_SIZE(igep_onenand_partitions),
 -       .dma_channel    = -1,   /* disable DMA in OMAP OneNAND driver */
 -};
 -
 -static struct platform_device igep_onenand_device = {
 -       .name           = omap2-onenand,
 -       .id             = -1,
 -       .dev = {
 -               .platform_data = igep_onenand_data,
 -       },
 -};
 +static inline u32 igep_get_sysboot_value(void)
 +{
 +       return omap_ctrl_readl(OMAP343X_CONTROL_STATUS)  IGEP_SYSBOOT_MASK;
 +}

  static void __init igep_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(IGEP: 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(IGEP: Unable to find configuration in GPMC\n);
 -               return;
 -       }
 -
 -       igep_onenand_data.cs = onenandcs;
 -
 -       if (platform_device_register(igep_onenand_device)  0)
 -               pr_err(IGEP: Unable to register OneNAND device\n);
 +       u32 mux;
 +       mux = igep_get_sysboot_value();
 +
 +       if (mux == IGEP_SYSBOOT_NAND) {
 +               pr_info(IGEP: initializing NAND memory device\n);
 +               board_nand_init(igep_flash_partitions,
 +                               ARRAY_SIZE(igep_flash_partitions),
 +                               0, NAND_BUSWIDTH_16);
 +       } else if (mux == IGEP_SYSBOOT_ONENAND) {
 +               pr_info(IGEP: initializing OneNAND memory device\n);
 +               board_onenand_init(igep_flash_partitions,
 +                                  ARRAY_SIZE(igep_flash_partitions), 0);
 +       } else
 +               pr_err(IGEP: Flash: unsupported sysboot sequence found\n);
  }

  #else
 --
 1.7.7.6


Seems good to me.

Tony, as this is a fix ,may be included ?

Acked-by: Enric Balletbo i Serra eballe...@gmail.com
Tested-by: Enric Balletbo i Serra eballe...@gmail.com

Cheers,
Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to 

Re: [PATCHv2 14/15] OMAP: Panda, Beagle, Overo: DVI: Add i2c_bus_num

2011-09-12 Thread Enric Balletbò i Serra
2011/9/12 Tomi Valkeinen tomi.valkei...@ti.com:
 Add i2c bus number for DVI output. The driver uses this to detect if a
 panel is connected and to read EDID.

 Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
 ---
  arch/arm/mach-omap2/board-omap3beagle.c |    1 +
  arch/arm/mach-omap2/board-omap4panda.c  |    1 +
  arch/arm/mach-omap2/board-overo.c       |    1 +
  3 files changed, 3 insertions(+), 0 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-omap3beagle.c 
 b/arch/arm/mach-omap2/board-omap3beagle.c
 index 26bc860..742ac45 100644
 --- a/arch/arm/mach-omap2/board-omap3beagle.c
 +++ b/arch/arm/mach-omap2/board-omap3beagle.c
 @@ -206,6 +206,7 @@ static void beagle_disable_dvi(struct omap_dss_device 
 *dssdev)
  static struct panel_dvi_platform_data dvi_panel = {
        .platform_enable = beagle_enable_dvi,
        .platform_disable = beagle_disable_dvi,
 +       .i2c_bus_num = 3,
  };

  static struct omap_dss_device beagle_dvi_device = {
 diff --git a/arch/arm/mach-omap2/board-omap4panda.c 
 b/arch/arm/mach-omap2/board-omap4panda.c
 index c35384e..a38ed273 100644
 --- a/arch/arm/mach-omap2/board-omap4panda.c
 +++ b/arch/arm/mach-omap2/board-omap4panda.c
 @@ -458,6 +458,7 @@ static void omap4_panda_disable_dvi(struct 
 omap_dss_device *dssdev)
  static struct panel_dvi_platform_data omap4_dvi_panel = {
        .platform_enable        = omap4_panda_enable_dvi,
        .platform_disable       = omap4_panda_disable_dvi,
 +       .i2c_bus_num = 3,
  };

  struct omap_dss_device omap4_panda_dvi_device = {
 diff --git a/arch/arm/mach-omap2/board-overo.c 
 b/arch/arm/mach-omap2/board-overo.c
 index 06064d5..da94376 100644
 --- a/arch/arm/mach-omap2/board-overo.c
 +++ b/arch/arm/mach-omap2/board-overo.c
 @@ -186,6 +186,7 @@ static void overo_panel_disable_dvi(struct 
 omap_dss_device *dssdev)
  static struct panel_dvi_platform_data dvi_panel = {
        .platform_enable        = overo_panel_enable_dvi,
        .platform_disable       = overo_panel_disable_dvi,
 +       .i2c_bus_num            = 3,
  };

  static struct omap_dss_device overo_dvi_device = {
 --
 1.7.4.1

 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html


Please, can also include the same modification for IGEP v2 board
(arch/arm/mach-omap2/board-igep0020.c) ?

Best regards,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv2 14/15] OMAP: Panda, Beagle, Overo: DVI: Add i2c_bus_num

2011-09-12 Thread Enric Balletbò i Serra
2011/9/12 Tomi Valkeinen tomi.valkei...@ti.com:
 On Mon, 2011-09-12 at 11:58 +0200, Enric Balletbò i Serra wrote:
 2011/9/12 Tomi Valkeinen tomi.valkei...@ti.com:
  Add i2c bus number for DVI output. The driver uses this to detect if a
  panel is connected and to read EDID.
 
  Signed-off-by: Tomi Valkeinen tomi.valkei...@ti.com
  ---
   arch/arm/mach-omap2/board-omap3beagle.c |    1 +
   arch/arm/mach-omap2/board-omap4panda.c  |    1 +
   arch/arm/mach-omap2/board-overo.c       |    1 +
   3 files changed, 3 insertions(+), 0 deletions(-)
 
  diff --git a/arch/arm/mach-omap2/board-omap3beagle.c 
  b/arch/arm/mach-omap2/board-omap3beagle.c
  index 26bc860..742ac45 100644
  --- a/arch/arm/mach-omap2/board-omap3beagle.c
  +++ b/arch/arm/mach-omap2/board-omap3beagle.c
  @@ -206,6 +206,7 @@ static void beagle_disable_dvi(struct omap_dss_device 
  *dssdev)
   static struct panel_dvi_platform_data dvi_panel = {
         .platform_enable = beagle_enable_dvi,
         .platform_disable = beagle_disable_dvi,
  +       .i2c_bus_num = 3,
   };
 
   static struct omap_dss_device beagle_dvi_device = {
  diff --git a/arch/arm/mach-omap2/board-omap4panda.c 
  b/arch/arm/mach-omap2/board-omap4panda.c
  index c35384e..a38ed273 100644
  --- a/arch/arm/mach-omap2/board-omap4panda.c
  +++ b/arch/arm/mach-omap2/board-omap4panda.c
  @@ -458,6 +458,7 @@ static void omap4_panda_disable_dvi(struct 
  omap_dss_device *dssdev)
   static struct panel_dvi_platform_data omap4_dvi_panel = {
         .platform_enable        = omap4_panda_enable_dvi,
         .platform_disable       = omap4_panda_disable_dvi,
  +       .i2c_bus_num = 3,
   };
 
   struct omap_dss_device omap4_panda_dvi_device = {
  diff --git a/arch/arm/mach-omap2/board-overo.c 
  b/arch/arm/mach-omap2/board-overo.c
  index 06064d5..da94376 100644
  --- a/arch/arm/mach-omap2/board-overo.c
  +++ b/arch/arm/mach-omap2/board-overo.c
  @@ -186,6 +186,7 @@ static void overo_panel_disable_dvi(struct 
  omap_dss_device *dssdev)
   static struct panel_dvi_platform_data dvi_panel = {
         .platform_enable        = overo_panel_enable_dvi,
         .platform_disable       = overo_panel_disable_dvi,
  +       .i2c_bus_num            = 3,
   };
 
   static struct omap_dss_device overo_dvi_device = {
  --
  1.7.4.1
 
  --
  To unsubscribe from this list: send the line unsubscribe linux-omap in
  the body of a message to majord...@vger.kernel.org
  More majordomo info at  http://vger.kernel.org/majordomo-info.html
 

 Please, can also include the same modification for IGEP v2 board
 (arch/arm/mach-omap2/board-igep0020.c) ?

 Sure. You have tested that the i2c bus is 3 and it works?

Yes, the i2c bus is 3 on IGEP v2 board and I'm just testing and seem is working.


  Tomi



--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


USB Ethernet gadget doesn't work with DM3730

2011-07-14 Thread Enric Balletbò i Serra
Hi all,

Playing with USB ethernet gadget on IGEP boards with mainline kernel
(Linux 3.0.0-rc7) I observed one strange behavior. The ethernet gadget
works with one board with OMAP3530 but it doesn't with another one
with DM3730. The log looks like this:

root@igep00x0:~# modprobe g_ether

[   51.420257] g_ether gadget: using random host ethernet address
[   51.427886] usb0: MAC da:93:4b:2d:55:e9
[   51.431915] usb0: HOST MAC 42:47:83:70:46:b6
[   51.436706] g_ether gadget: Ethernet Gadget, version: Memorial Day 2008
[   51.443725] g_ether gadget: g_ether ready
[   51.447906] musb-hdrc musb-hdrc: MUSB HDRC host driver
[   51.455871] musb-hdrc musb-hdrc: new USB bus registered, assigned
bus number 1
[   51.464141] usb usb1: New USB device found, idVendor=1d6b, idProduct=0002
[   51.471313] usb usb1: New USB device strings: Mfr=3, Product=2,
SerialNumber=1
[   51.478912] usb usb1: Product: MUSB HDRC host driver
[   51.484161] usb usb1: Manufacturer: Linux 3.0.0-rc7-00027-g8d86e5f musb-hcd
[   51.491485] usb usb1: SerialNumber: musb-hdrc
[   51.498321] hub 1-0:1.0: USB hub found
[   51.502410] hub 1-0:1.0: 1 port detected

root@igep00x0:~# ifconfig usb0 192.168.7.2

usb0  Link encap:Ethernet  HWaddr DA:93:4B:2D:55:E9
  inet addr:192.168.7.2  Bcast:192.168.7.255  Mask:255.255.255.0
  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  TX packets:0 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:0 (0.0 B)  TX bytes:0 (0.0 B)

root@igep00x0:~# ping 192.168.7.1
PING 192.168.7.1 (192.168.7.1): 56 data bytes

With DM3730 I can't ping the other side (the same configuration with
OMAP3530 works without problems). Any clue on this ?

Cheers,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RESEND PATCH 1/4] omap: igep0020: name refactoring for future merge with IGEP3

2011-05-17 Thread Enric Balletbò i Serra
Hi,

2011/5/17 Tony Lindgren t...@atomide.com:
 * Enric Balletbò i Serra eballe...@gmail.com [110516 10:11]:
 Hi Mike,

 The only comment I wanted to do is maybe I prefer rename the
 board-igep0020 to board-igep00x0 to be more generic. Apart from this
 these patch series looks good for me and has my ack. Thanks.

 I suggest we do the rename separately later on. Otherwise it
 easily gets classified as crazy churn type of patch, so best
 to stick to just code coalescing and fixes for this merge window.

Ok, so Mike you've my ack, thanks

Cheers,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RESEND PATCH 1/4] omap: igep0020: name refactoring for future merge with IGEP3

2011-05-16 Thread Enric Balletbò i Serra
Hi Mike,

The only comment I wanted to do is maybe I prefer rename the
board-igep0020 to board-igep00x0 to be more generic. Apart from this
these patch series looks good for me and has my ack. Thanks.

2011/5/12 Mike Rapoport m...@compulab.co.il:
 IGEP2 and IGEP3 boards are very similar and can be merged into one file.
 Start refactoring with changing igep2 to igep where applicable.

 Signed-off-by: Mike Rapoport m...@compulab.co.il
 ---
  arch/arm/mach-omap2/board-igep0020.c |  158 
 +-
  1 files changed, 79 insertions(+), 79 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-igep0020.c 
 b/arch/arm/mach-omap2/board-igep0020.c
 index c62c297e..ad20f7b 100644
 --- a/arch/arm/mach-omap2/board-igep0020.c
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -112,7 +112,7 @@ static void __init igep2_get_revision(void)
  * So MTD regards it as 4KiB page size and 256KiB block size 64*(2*2048)
  */

 -static struct mtd_partition igep2_onenand_partitions[] = {
 +static struct mtd_partition igep_onenand_partitions[] = {
        {
                .name           = X-Loader,
                .offset         = 0,
 @@ -140,21 +140,21 @@ static struct mtd_partition igep2_onenand_partitions[] 
 = {
        },
  };

 -static struct omap_onenand_platform_data igep2_onenand_data = {
 -       .parts = igep2_onenand_partitions,
 -       .nr_parts = ARRAY_SIZE(igep2_onenand_partitions),
 +static struct omap_onenand_platform_data igep_onenand_data = {
 +       .parts = igep_onenand_partitions,
 +       .nr_parts = ARRAY_SIZE(igep_onenand_partitions),
        .dma_channel    = -1,   /* disable DMA in OMAP OneNAND driver */
  };

 -static struct platform_device igep2_onenand_device = {
 +static struct platform_device igep_onenand_device = {
        .name           = omap2-onenand,
        .id             = -1,
        .dev = {
 -               .platform_data = igep2_onenand_data,
 +               .platform_data = igep_onenand_data,
        },
  };

 -static void __init igep2_flash_init(void)
 +static void __init igep_flash_init(void)
  {
        u8 cs = 0;
        u8 onenandcs = GPMC_CS_NUM + 1;
 @@ -166,7 +166,7 @@ static void __init igep2_flash_init(void)
                /* Check if NAND/oneNAND is configured */
                if ((ret  0xC00) == 0x800)
                        /* NAND found */
 -                       pr_err(IGEP2: Unsupported NAND found\n);
 +                       pr_err(IGEP: Unsupported NAND found\n);
                else {
                        ret = gpmc_cs_read_reg(cs, GPMC_CS_CONFIG7);
                        if ((ret  0x3F) == (ONENAND_MAP  24))
 @@ -176,18 +176,18 @@ static void __init igep2_flash_init(void)
        }

        if (onenandcs  GPMC_CS_NUM) {
 -               pr_err(IGEP2: Unable to find configuration in GPMC\n);
 +               pr_err(IGEP: Unable to find configuration in GPMC\n);
                return;
        }

 -       igep2_onenand_data.cs = onenandcs;
 +       igep_onenand_data.cs = onenandcs;

 -       if (platform_device_register(igep2_onenand_device)  0)
 -               pr_err(IGEP2: Unable to register OneNAND device\n);
 +       if (platform_device_register(igep_onenand_device)  0)
 +               pr_err(IGEP: Unable to register OneNAND device\n);
  }

  #else
 -static void __init igep2_flash_init(void) {}
 +static void __init igep_flash_init(void) {}
  #endif

  #if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
 @@ -211,11 +211,11 @@ static inline void __init igep2_init_smsc911x(void)
  static inline void __init igep2_init_smsc911x(void) { }
  #endif

 -static struct regulator_consumer_supply igep2_vmmc1_supply =
 +static struct regulator_consumer_supply igep_vmmc1_supply =
        REGULATOR_SUPPLY(vmmc, omap_hsmmc.0);

  /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
 -static struct regulator_init_data igep2_vmmc1 = {
 +static struct regulator_init_data igep_vmmc1 = {
        .constraints = {
                .min_uV                 = 185,
                .max_uV                 = 315,
 @@ -226,13 +226,13 @@ static struct regulator_init_data igep2_vmmc1 = {
                                        | REGULATOR_CHANGE_STATUS,
        },
        .num_consumer_supplies  = 1,
 -       .consumer_supplies      = igep2_vmmc1_supply,
 +       .consumer_supplies      = igep_vmmc1_supply,
  };

 -static struct regulator_consumer_supply igep2_vio_supply =
 +static struct regulator_consumer_supply igep_vio_supply =
        REGULATOR_SUPPLY(vmmc_aux, omap_hsmmc.1);

 -static struct regulator_init_data igep2_vio = {
 +static struct regulator_init_data igep_vio = {
        .constraints = {
                .min_uV                 = 180,
                .max_uV                 = 180,
 @@ -244,34 +244,34 @@ static struct regulator_init_data igep2_vio = {
                                        | REGULATOR_CHANGE_STATUS,
        },
        .num_consumer_supplies  = 1,
 -       .consumer_supplies      = igep2_vio_supply,
 +      

Re: [RESEND PATCH 3/4] omap: igep0020: add support for IGEP3

2011-05-16 Thread Enric Balletbò i Serra
2011/5/12 Mike Rapoport m...@compulab.co.il:
 Add IGEP3 machine support to board-igep0020

 Signed-off-by: Mike Rapoport m...@compulab.co.il
 ---
  arch/arm/mach-omap2/board-igep0020.c |  103 
 ++
  1 files changed, 80 insertions(+), 23 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-igep0020.c 
 b/arch/arm/mach-omap2/board-igep0020.c
 index ea7cbc6..0d6d583 100644
 --- a/arch/arm/mach-omap2/board-igep0020.c
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -55,6 +55,11 @@
  #define IGEP2_RC_GPIO_WIFI_NRESET  139
  #define IGEP2_RC_GPIO_BT_NRESET    137

 +#define IGEP3_GPIO_LED0_GREEN  54
 +#define IGEP3_GPIO_LED0_RED    53
 +#define IGEP3_GPIO_LED1_RED    16
 +#define IGEP3_GPIO_USBH_NRESET  183
 +
  /*
  * IGEP2 Hardware Revision Table
  *
 @@ -69,6 +74,7 @@

  #define IGEP2_BOARD_HWREV_B    0
  #define IGEP2_BOARD_HWREV_C    1
 +#define IGEP3_BOARD_HWREV      2

  static u8 hwrev;

 @@ -76,6 +82,11 @@ static void __init igep2_get_revision(void)
  {
        u8 ret;

 +       if (machine_is_igep0030()) {
 +               hwrev = IGEP3_BOARD_HWREV;
 +               return;
 +       }
 +
        omap_mux_init_gpio(IGEP2_GPIO_LED1_RED, OMAP_PIN_INPUT);

        if (gpio_request_one(IGEP2_GPIO_LED1_RED, GPIOF_IN, GPIO_HW0_REV)) {
 @@ -332,24 +343,40 @@ static struct platform_device igep_led_device = {

  static void __init igep_leds_init(void)
  {
 -       igep_gpio_leds[0].gpio = IGEP2_GPIO_LED0_RED;
 -       igep_gpio_leds[1].gpio = IGEP2_GPIO_LED0_GREEN;
 -       igep_gpio_leds[2].gpio = IGEP2_GPIO_LED1_RED;
 +       if (machine_is_igep0020()) {
 +               igep_gpio_leds[0].gpio = IGEP2_GPIO_LED0_RED;
 +               igep_gpio_leds[1].gpio = IGEP2_GPIO_LED0_GREEN;
 +               igep_gpio_leds[2].gpio = IGEP2_GPIO_LED1_RED;
 +       } else {
 +               igep_gpio_leds[0].gpio = IGEP3_GPIO_LED0_RED;
 +               igep_gpio_leds[1].gpio = IGEP3_GPIO_LED0_GREEN;
 +               igep_gpio_leds[2].gpio = IGEP3_GPIO_LED1_RED;
 +       }

        platform_device_register(igep_led_device);
  }

  #else
  static struct gpio igep_gpio_leds[] __initdata = {
 -       { IGEP2_GPIO_LED0_RED,   GPIOF_OUT_INIT_LOW, gpio-led:red:d0   },
 -       { IGEP2_GPIO_LED0_GREEN, GPIOF_OUT_INIT_LOW, gpio-led:green:d0 },
 -       { IGEP2_GPIO_LED1_RED,   GPIOF_OUT_INIT_LOW, gpio-led:red:d1   },
 +       { -EINVAL,      GPIOF_OUT_INIT_LOW, gpio-led:red:d0   },
 +       { -EINVAL,      GPIOF_OUT_INIT_LOW, gpio-led:green:d0 },
 +       { -EINVAL,      GPIOF_OUT_INIT_LOW, gpio-led:red:d1   },
  };

  static inline void igep_leds_init(void)
  {
        int i;

 +       if (machine_is_igep0020()) {
 +               igep_gpio_leds[0].gpio = IGEP2_GPIO_LED0_RED;
 +               igep_gpio_leds[1].gpio = IGEP2_GPIO_LED0_GREEN;
 +               igep_gpio_leds[2].gpio = IGEP2_GPIO_LED1_RED;
 +       } else {
 +               igep_gpio_leds[0].gpio = IGEP3_GPIO_LED0_RED;
 +               igep_gpio_leds[1].gpio = IGEP3_GPIO_LED0_GREEN;
 +               igep_gpio_leds[2].gpio = IGEP3_GPIO_LED1_RED;
 +       }
 +
        if (gpio_request_array(igep_gpio_leds, ARRAY_SIZE(igep_gpio_leds))) {
                pr_warning(IGEP v2: Could not obtain leds gpios\n);
                return;
 @@ -386,6 +413,9 @@ static int igep_twl_gpio_setup(struct device *dev,
        igep_gpio_leds[3].gpio = gpio + TWL4030_GPIO_MAX + 1;
  #endif

 +       if (machine_is_igep0030())
 +               return 0;
 +
        /*
         * REVISIT: need ehci-omap hooks for external VBUS
         * power switch and overcurrent detect
 @@ -548,18 +578,20 @@ static void __init igep_i2c_init(void)
  {
        int ret;

 -       /*
 -        * Bus 3 is attached to the DVI port where devices like the pico DLP
 -        * projector don't work reliably with 400kHz
 -        */
 -       ret = omap_register_i2c_bus(3, 100, igep2_i2c3_boardinfo,
 -               ARRAY_SIZE(igep2_i2c3_boardinfo));
 -       if (ret)
 -               pr_warning(IGEP2: Could not register I2C3 bus (%d)\n, ret);
 -
 -       igep_twldata.codec      = igep2_codec_data;
 -       igep_twldata.keypad     = igep2_keypad_pdata;
 -       igep_twldata.vpll2      = igep2_vpll2;
 +       if (machine_is_igep0020()) {
 +               /*
 +                * Bus 3 is attached to the DVI port where devices like the
 +                * pico DLP projector don't work reliably with 400kHz
 +                */
 +               ret = omap_register_i2c_bus(3, 100, igep2_i2c3_boardinfo,
 +                                           ARRAY_SIZE(igep2_i2c3_boardinfo));
 +               if (ret)
 +                       pr_warning(IGEP2: Could not register I2C3 bus 
 (%d)\n, ret);
 +
 +               igep_twldata.codec      = igep2_codec_data;
 +               igep_twldata.keypad     = igep2_keypad_pdata;
 +               igep_twldata.vpll2      = igep2_vpll2;
 +       }

        omap3_pmic_init(twl4030, igep_twldata);
  }
 @@ -575,6 +607,17 @@ static const struct usbhs_omap_board_data 

Re: [RESEND PATCH 2/4] omap: igep0020: minor refactoring

2011-05-16 Thread Enric Balletbò i Serra
2011/5/15 Arnd Bergmann a...@arndb.de:
 On Sunday 15 May 2011, m...@compulab.co.il wrote:
 We can keep all the data structures that differ between IGEP2 and IGEP3.
 However, this significantly reduces the benifit of the series.
 There's already code in the IGEP2 that differentiates between HW
 revisions, so anyway the board support will require some work for
 devicetree transition. Eventually, when devicetree will be usable on
 OMAPs, most of the code currently found in arch/arm/mach-omap2/board*
 will require some work and I hardly believe that the transition can be
 automated...

 True. Let's just use the version you posted then.

        Arnd


Acked-by: Enric Balletbo i Serra eballe...@iseebcn.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RESEND PATCH 4/4] omap: drop board-igep0030.c

2011-05-16 Thread Enric Balletbò i Serra
2011/5/12 Mike Rapoport m...@compulab.co.il:
 since it is merged into board-igep0020.c

 Signed-off-by: Mike Rapoport m...@compulab.co.il
 ---
  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..000
 --- 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-m65kam.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             0x2000
 -
 -/*
 - * 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,
 -       

Re: [RESEND PATCH 0/4] omap: merge IGEP v2 and v3

2011-05-13 Thread Enric Balletbò i Serra
Hi Mike,

2011/5/12 Mike Rapoport m...@compulab.co.il:
 Hi Tony,

 I'm resending this with the correct arm-linux mailing list cc'ed..
 Just discard the first set, sorry for the noise...

 This is yet another attempt to reduce code duplication in the board files :)
 Only build tested, since I don't have the hardware, so I belive an Ack from
 Enric is required.

Against which tree is based your work ?

Cheers,
  Enric


 Mike Rapoport (4):
  omap: igep0020: name refactoring for future merge with IGEP3
  omap: igep0020: minor refactoring
  omap: igep0020: add support for IGEP3
  omap: drop board-igep0030.c

  arch/arm/mach-omap2/Kconfig          |    1 +
  arch/arm/mach-omap2/Makefile         |    2 -
  arch/arm/mach-omap2/board-igep0020.c |  286 +-
  arch/arm/mach-omap2/board-igep0030.c |  438 
 --
  4 files changed, 174 insertions(+), 553 deletions(-)
  delete mode 100644 arch/arm/mach-omap2/board-igep0030.c

 --
 1.7.3.1


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] About ARM expansion boards and others things

2011-05-04 Thread Enric Balletbò i Serra
2011/5/4 Vladimir Pantelic vlado...@gmail.com:
 Enric Balletbò i Serra wrote:

 Hi guys,
 I'm thinking probably in a crazy idea, I hope someone can help me or
 kill definitely this idea from my mind.

 I'll explain a little more, the real problem is I don't know how to
 add support for an expansion board for IGEP v2 board. I see most of
 boards adds the support inside the board-x.c file, for example if
 the expansion board has a Touchscreen interface using ADS7846/TSC2046
 they register ads7846 platform data in board-.c file. This is ok
 beacause the ads7846 can be detected and if expansion board is not
 present  the detection fails, but maybe other devices in expansion
 board can't be detected (for example an I/O expansion). So which is
 the best form to do this ?

 I'm thinking in create a kernel module for the expansion board that
 add all the new features, the expansion board should come with a I2C
 E2PROM for board ID storage, so the idea is create an i2c driver that
 reads the E2PROM and if found the Board ID inits all the expansion
 board devices.

 don't know if you are aware of that:

 http://elinux.org/BeagleBoardPinMux#Expansion_boards


Yes I know it.

 also beagle.c board file has support for some expansion boards
 already, maybe there is some code to be shared.



But I don't see any support for expansion board in board-omap3beagle.c
  
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=blob;f=arch/arm/mach-omap2/board-omap3beagle.c;h=33007fd4a0835fd298129c9fda30b844707cc08b;hb=HEAD

i see some patches (not published in mainline) that are reading a
kernel cmdline. I mean,  the bootloader (u-boot) detects if an
expansion board is present (mostly via i2c) and then add to the kernel
cmdline a parameter with the name of the expansion board. The kernel
reads this parameter and initializes the expansion board devices.

But not sure if this is a good solution. What solution do you think is
better ? Using kernel cmdline or create a separate kernel module for
every expansion board ?

In fact the purpose of this email is discuss a bit which is the proper
solution to add an expansion board to the kernel mainline.

Regards,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [RFC] About ARM expansion boards and others things

2011-05-04 Thread Enric Balletbò i Serra
2011/5/4 Igor Grinberg grinb...@compulab.co.il:
 On 05/03/11 20:25, Enric Balletbò i Serra wrote:

 Hi guys,
 I'm thinking probably in a crazy idea, I hope someone can help me or
 kill definitely this idea from my mind.

 This is not that crazy as you think it is...

 I'll explain a little more, the real problem is I don't know how to
 add support for an expansion board for IGEP v2 board. I see most of
 boards adds the support inside the board-x.c file, for example if
 the expansion board has a Touchscreen interface using ADS7846/TSC2046
 they register ads7846 platform data in board-.c file. This is ok
 beacause the ads7846 can be detected and if expansion board is not
 present  the detection fails, but maybe other devices in expansion
 board can't be detected (for example an I/O expansion). So which is
 the best form to do this ?

 I'm thinking in create a kernel module for the expansion board that
 add all the new features, the expansion board should come with a I2C
 E2PROM for board ID storage, so the idea is create an i2c driver that
 reads the E2PROM and if found the Board ID inits all the expansion
 board devices.

 Why do you need to create a new driver? Why don't you use the existing one?
 at24 works nice with most i2c EEPROMs.

 Let me generalize:
 1) Lets call each board that actually has SoC, like IGEP, a System On Module 
 (SoM)
 2) SoM has on-board and on-SoC devices
 3) expansion has additional on-board devices
 4) We are talking about X SoMs and Y extensions
 5) Each SoM can be connected to each extension and communicate with its 
 devices.
 6) We are looking for a solution to be able to detect the expansion and 
 register
   the devices it has assembled.

Great generalitzation !

 I have done a few experiments, I've created a kernel module (driver)
 for a custom expansion board for IGEP v2,  the expansion board has :
    - I2C E2PROM
    - ADS7846 touch controller (spi)
    - Seiko 7.0inch LCD
    - General purpose I/O

 The driver is capable to register correctly i2c and spi devices and
 seems is working but I have problems with the Seiko 7.0inch LCD and
 configuring the MUX from driver.

 Like Tony already said the generic MUX API should solve the problem of MUX.
 But, you will still have a problem with devices that have to be initialized
 very early, like IO chips.

Right, about the MUX, there is any patch or specification for the MUX API ?


 Basically I wonder if it's possible add another omap_dss_device from
 kernel module to the omap DSS driver (something like
 omap_dss_register_new_device). Is a good or bad idea ? Why ? Is any
 reason to not export the MUX functionality to be used for other
 drivers ?

 ...

 All of this is a crazy idea ? What's the best form to solve the problem ?

 This is not crazy at all.
 We already use this concept in our BSP, we detect the expansion
 by reading data from EEPROM, and register the devices accordingly.
 We solve the MUX problem by initializing the pins to some default state
 and once the expansion detection is done, we reconfigure the pins
 to their right state as required by connected devices.

 And yes the above is done from board file.

So its possilbe read the EEPROM in board file ? How ? I was thinking
wasn't possible read the EEPROM in board initialitzation because was
in a early state.

 I don't see any reason to create a driver for the expansion,
 unless it can be removed/attached on the fly while the SoM is up and 
 running.

Completely agree, normally expansion board can't be connected on the fly


 Nevertheless, some framework or at least an agreement on how we should
 separate the SoM code from the expansion code.

 I thought of some convention like board-*.c will stay the code for the SoM
 and exp-*.c will be used for the expansion code.
 Now, the code in board-*.c will do the detection of the expansion and
 run the appropriate exp_*_init() function, which will do the initialization 
 steps
 for the detected expansion.
 A bit more complicated solution will be needed if there are several expansions
 connected all together.


Looks good for me if this is the accepted solution.

 I have had this in my mind for very long time, but did not want to bother,
 because there were discussions about a totally different approach which uses
 device trees (DT), where the detection of expansion is moved away
 from the kernel code.

 With the DT approach, the kernel (should) get(s) all the information regarding
 the devices and how they are wired for free (no detection).
 If I understand correctly, the information about devices
 (whether on SoM or expansion) could be either statically added to the DT
 structures or dynamically detected by the bootloader and passed to the
 kernel (like ATAGS work now).

Really interesting, I'll look that, do you think is the future to
solve this problem ? Have you tested ?


 I still doubt what approach would be better...

Me too, but I think it's interesting doing a brainstorming about this
theme because

[RFC] About ARM expansion boards and others things

2011-05-03 Thread Enric Balletbò i Serra
Hi guys,
I'm thinking probably in a crazy idea, I hope someone can help me or
kill definitely this idea from my mind.

I'll explain a little more, the real problem is I don't know how to
add support for an expansion board for IGEP v2 board. I see most of
boards adds the support inside the board-x.c file, for example if
the expansion board has a Touchscreen interface using ADS7846/TSC2046
they register ads7846 platform data in board-.c file. This is ok
beacause the ads7846 can be detected and if expansion board is not
present  the detection fails, but maybe other devices in expansion
board can't be detected (for example an I/O expansion). So which is
the best form to do this ?

I'm thinking in create a kernel module for the expansion board that
add all the new features, the expansion board should come with a I2C
E2PROM for board ID storage, so the idea is create an i2c driver that
reads the E2PROM and if found the Board ID inits all the expansion
board devices.

I have done a few experiments, I've created a kernel module (driver)
for a custom expansion board for IGEP v2,  the expansion board has :
   - I2C E2PROM
   - ADS7846 touch controller (spi)
   - Seiko 7.0inch LCD
   - General purpose I/O

The driver is capable to register correctly i2c and spi devices and
seems is working but I have problems with the Seiko 7.0inch LCD and
configuring the MUX from driver.

Basically I wonder if it's possible add another omap_dss_device from
kernel module to the omap DSS driver (something like
omap_dss_register_new_device). Is a good or bad idea ? Why ? Is any
reason to not export the MUX functionality to be used for other
drivers ?

All of this is a crazy idea ? What's the best form to solve the problem ?

I hope I have explained well, thanks and cheers,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


omap: USB host disconnects connecting a device through USB HUB

2011-04-07 Thread Enric Balletbò i Serra
Hi all,

I'm experimenting some issues with USB on IGEP v2 board, in certain
cases I've an USB disconnect when I plug a device. For me it fails
with kernel 2.6.35 but I think it also affect newer kernel, the issue
is easy to reproduce following these steps:

1. Power up the board (without any device connected )

2. When kernel is up, connect a powered USB HUB 2.0 to the USB host
port, kernel shows,

usb 1-1: new high speed USB device using ehci-omap and address 2
usb 1-1: New USB device found, idVendor=05e3, idProduct=0608
usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 1-1: Product: USB2.0 Hub
hub 1-1:1.0: USB hub found
hub 1-1:1.0: 4 ports detected
usb 1-1.4: new high speed USB device using ehci-omap and address 3
usb 1-1.4: New USB device found, idVendor=05e3, idProduct=0608
usb 1-1.4: New USB device strings: Mfr=0, Product=1, SerialNumber=0
usb 1-1.4: Product: USB2.0 Hub
hub 1-1.4:1.0: USB hub found
hub 1-1.4:1.0: 4 ports detected

3. Then if I connect a device (for example a pendrive) to the HUB I
get USB disconnect message

usb 1-1: USB disconnect, address 2
usb 1-1.4: USB disconnect, address 3

OTOH, it works without problem
  1. if power up the board with the USB HUB connected to the USB Host
port and the device connected to the USB hub.
  2. if after kernel is up, connect the USB HUB + device to the USB Host port

Anyone is experimenting something like this with other OMAP3-based boards ?

Regards,
   Enric Balletbò i Serra
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: omap: USB host disconnects connecting a device through USB HUB

2011-04-07 Thread Enric Balletbò i Serra
Hi,

2011/4/7 Alan Stern st...@rowland.harvard.edu:
 On Thu, 7 Apr 2011, Enric Balletbò i Serra wrote:

 Hi all,

 I'm experimenting some issues with USB on IGEP v2 board, in certain
 cases I've an USB disconnect when I plug a device. For me it fails
 with kernel 2.6.35 but I think it also affect newer kernel, the issue
 is easy to reproduce following these steps:

 1. Power up the board (without any device connected )

 2. When kernel is up, connect a powered USB HUB 2.0 to the USB host
 port, kernel shows,

 usb 1-1: new high speed USB device using ehci-omap and address 2
 usb 1-1: New USB device found, idVendor=05e3, idProduct=0608
 usb 1-1: New USB device strings: Mfr=0, Product=1, SerialNumber=0
 usb 1-1: Product: USB2.0 Hub
 hub 1-1:1.0: USB hub found
 hub 1-1:1.0: 4 ports detected
 usb 1-1.4: new high speed USB device using ehci-omap and address 3
 usb 1-1.4: New USB device found, idVendor=05e3, idProduct=0608
 usb 1-1.4: New USB device strings: Mfr=0, Product=1, SerialNumber=0
 usb 1-1.4: Product: USB2.0 Hub
 hub 1-1.4:1.0: USB hub found
 hub 1-1.4:1.0: 4 ports detected

 3. Then if I connect a device (for example a pendrive) to the HUB I
 get USB disconnect message

 usb 1-1: USB disconnect, address 2
 usb 1-1.4: USB disconnect, address 3

 OTOH, it works without problem
   1. if power up the board with the USB HUB connected to the USB Host
 port and the device connected to the USB hub.
   2. if after kernel is up, connect the USB HUB + device to the USB Host port

 Anyone is experimenting something like this with other OMAP3-based boards ?

 At first glance, it looks like a power-related issue.  Current inrush
 when the device is plugged in, or something like that.

 What happens if you attach the hub and pendrive to a standard PC?


With standard PC works as expected, would be possible a problem with
omap-ehci driver ? Maybe Felipe can give some light ?

 Alan Stern


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [REPOST][PATCH] Fix IGEPv2 second MMC channel power supply

2010-12-14 Thread Enric Balletbò i Serra
2010/12/13 Tony Lindgren t...@atomide.com:
 * Enric Balletbò i Serra eballe...@gmail.com [101213 08:47]:

 Tony, please can this patch be included before 2.6.37 ? Without this
 patch the wifi module on IGEP v2 board not works.

 Sorry it's too much for the -rc series. For the -rc series
 the fixes should be major bugs. This is in the category
 it never worked before.

 I will add it to omap-boards branch for the next merge window
 over the next few days while going through all the pending
 patches in patchwork.

Ok, I'll wait :-) thanks

Cheers,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 1/2] omap3: igepv2: Don't call gpio_set_value right after gpio_direction_output

2010-12-13 Thread Enric Balletbò i Serra
2010/12/12 Laurent Pinchart laurent.pinch...@ideasonboard.com:
 gpio_direction_output() has a value argument, there's no need to call
 gpio_set_value() explicitly right after.

 Signed-off-by: Laurent Pinchart laurent.pinch...@ideasonboard.com
 ---
  arch/arm/mach-omap2/board-igep0020.c |   20 
  1 files changed, 8 insertions(+), 12 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-igep0020.c 
 b/arch/arm/mach-omap2/board-igep0020.c
 index 5e035a5..20b88c1 100644
 --- a/arch/arm/mach-omap2/board-igep0020.c
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -342,24 +342,21 @@ static void __init igep2_leds_init(void)
  static inline void igep2_leds_init(void)
  {
        if ((gpio_request(IGEP2_GPIO_LED0_RED, gpio-led:red:d0) == 0) 
 -           (gpio_direction_output(IGEP2_GPIO_LED0_RED, 1) == 0)) {
 +           (gpio_direction_output(IGEP2_GPIO_LED0_RED, 0) == 0))
                gpio_export(IGEP2_GPIO_LED0_RED, 0);
 -               gpio_set_value(IGEP2_GPIO_LED0_RED, 0);
 -       } else
 +       else
                pr_warning(IGEP v2: Could not obtain gpio GPIO_LED0_RED\n);

        if ((gpio_request(IGEP2_GPIO_LED0_GREEN, gpio-led:green:d0) == 0) 
 -           (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 1) == 0)) {
 +           (gpio_direction_output(IGEP2_GPIO_LED0_GREEN, 0) == 0))
                gpio_export(IGEP2_GPIO_LED0_GREEN, 0);
 -               gpio_set_value(IGEP2_GPIO_LED0_GREEN, 0);
 -       } else
 +       else
                pr_warning(IGEP v2: Could not obtain gpio GPIO_LED0_GREEN\n);

        if ((gpio_request(IGEP2_GPIO_LED1_RED, gpio-led:red:d1) == 0) 
 -           (gpio_direction_output(IGEP2_GPIO_LED1_RED, 1) == 0)) {
 +           (gpio_direction_output(IGEP2_GPIO_LED1_RED, 0) == 0))
                gpio_export(IGEP2_GPIO_LED1_RED, 0);
 -               gpio_set_value(IGEP2_GPIO_LED1_RED, 0);
 -       } else
 +       else
                pr_warning(IGEP v2: Could not obtain gpio GPIO_LED1_RED\n);

  }
 @@ -397,10 +394,9 @@ static int igep2_twl_gpio_setup(struct device *dev,
        /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */
  #if !defined(CONFIG_LEDS_GPIO)  !defined(CONFIG_LEDS_GPIO_MODULE)
        if ((gpio_request(gpio+TWL4030_GPIO_MAX+1, gpio-led:green:d1) == 0)
 -            (gpio_direction_output(gpio + TWL4030_GPIO_MAX + 1, 1) == 0)) {
 +            (gpio_direction_output(gpio + TWL4030_GPIO_MAX + 1, 0) == 0))
                gpio_export(gpio + TWL4030_GPIO_MAX + 1, 0);
 -               gpio_set_value(gpio + TWL4030_GPIO_MAX + 1, 0);
 -       } else
 +       else
                pr_warning(IGEP v2: Could not obtain gpio GPIO_LED1_GREEN\n);
  #else
        igep2_gpio_leds[3].gpio = gpio + TWL4030_GPIO_MAX + 1;
 --
 1.7.2.2



Acked-by: Enric Balletbo i Serra eballe...@gmail.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 2/2] omap3: igepv2: LED gpio-led:green:d1 is active low

2010-12-13 Thread Enric Balletbò i Serra
2010/12/12 Laurent Pinchart laurent.pinch...@ideasonboard.com:
 Make sure the LED is turned off at boot time, and configure the GPIO LED
 device as active low.

 Signed-off-by: Laurent Pinchart laurent.pinch...@ideasonboard.com
 ---
  arch/arm/mach-omap2/board-igep0020.c |    3 ++-
  1 files changed, 2 insertions(+), 1 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-igep0020.c 
 b/arch/arm/mach-omap2/board-igep0020.c
 index 20b88c1..41a4b25 100644
 --- a/arch/arm/mach-omap2/board-igep0020.c
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -317,6 +317,7 @@ static struct gpio_led igep2_gpio_leds[] = {
                .name                   = gpio-led:green:d1,
                .default_trigger        = heartbeat,
                .gpio                   = -EINVAL, /* gets replaced */
 +               .active_low             = 1,
        },
  };

 @@ -394,7 +395,7 @@ static int igep2_twl_gpio_setup(struct device *dev,
        /* TWL4030_GPIO_MAX + 1 == ledB (out, active low LED) */
  #if !defined(CONFIG_LEDS_GPIO)  !defined(CONFIG_LEDS_GPIO_MODULE)
        if ((gpio_request(gpio+TWL4030_GPIO_MAX+1, gpio-led:green:d1) == 0)
 -            (gpio_direction_output(gpio + TWL4030_GPIO_MAX + 1, 0) == 0))
 +            (gpio_direction_output(gpio + TWL4030_GPIO_MAX + 1, 1) == 0))
                gpio_export(gpio + TWL4030_GPIO_MAX + 1, 0);
        else
                pr_warning(IGEP v2: Could not obtain gpio GPIO_LED1_GREEN\n);
 --
 1.7.2.2



Acked-by: Enric Balletbo i Serra eballe...@gmail.com
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [REPOST][PATCH] Fix IGEPv2 second MMC channel power supply

2010-12-13 Thread Enric Balletbò i Serra
Hi all,

2010/12/4 Marc Zyngier m...@misterjones.org:
 Commit 72f381ba056 (omap3: Remove VMMC2 regulator on IGEP v2)
 removed an unused regulator entry, but left the second MMC channel
 (used by the Libertas WLAN module) without link to power regulator.
 This causes the SDIO module to fail being detected.

 This patch adds the two regulators that actually feed the WLAN module
 (1v8 from the TWL4030 VIO LDO, and a fixed 3v3). With that patch, the
 second channel is properly detected. Details of the power supply
 implementation were kindly provided by Enric Balletbo i Serra.

 Also change vmmc1 to use symbolic names instead of direct device
 reference.

 Tested on an IGEPv2 Rev-B.

 Signed-off-by: Marc Zyngier m...@misterjones.org
 Acked-by: Enric Balletbo i Serra eballe...@gmail.com
 Cc: Tony Lindgren t...@atomide.com
 ---
  arch/arm/mach-omap2/board-igep0020.c |   61 -
  1 files changed, 51 insertions(+), 10 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-igep0020.c 
 b/arch/arm/mach-omap2/board-igep0020.c
 index 5e035a5..9a85e60 100644
 --- a/arch/arm/mach-omap2/board-igep0020.c
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -19,6 +19,7 @@
  #include linux/interrupt.h

  #include linux/regulator/machine.h
 +#include linux/regulator/fixed.h
  #include linux/i2c/twl.h
  #include linux/mmc/host.h

 @@ -257,9 +258,8 @@ static inline void __init igep2_init_smsc911x(void) { }
  static struct omap_board_config_kernel igep2_config[] __initdata = {
  };

 -static struct regulator_consumer_supply igep2_vmmc1_supply = {
 -       .supply         = vmmc,
 -};
 +static struct regulator_consumer_supply igep2_vmmc1_supply =
 +       REGULATOR_SUPPLY(vmmc, mmci-omap-hs.0);

  /* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
  static struct regulator_init_data igep2_vmmc1 = {
 @@ -276,6 +276,52 @@ static struct regulator_init_data igep2_vmmc1 = {
        .consumer_supplies      = igep2_vmmc1_supply,
  };

 +static struct regulator_consumer_supply igep2_vio_supply =
 +       REGULATOR_SUPPLY(vmmc_aux, mmci-omap-hs.1);
 +
 +static struct regulator_init_data igep2_vio = {
 +       .constraints = {
 +               .min_uV                 = 180,
 +               .max_uV                 = 180,
 +               .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      = igep2_vio_supply,
 +};
 +
 +static struct regulator_consumer_supply igep2_vmmc2_supply =
 +       REGULATOR_SUPPLY(vmmc, mmci-omap-hs.1);
 +
 +static struct regulator_init_data igep2_vmmc2 = {
 +       .constraints            = {
 +               .valid_modes_mask       = REGULATOR_MODE_NORMAL,
 +               .always_on              = 1,
 +       },
 +       .num_consumer_supplies  = 1,
 +       .consumer_supplies      = igep2_vmmc2_supply,
 +};
 +
 +static struct fixed_voltage_config igep2_vwlan = {
 +       .supply_name            = vwlan,
 +       .microvolts             = 330,
 +       .gpio                   = -EINVAL,
 +       .enabled_at_boot        = 1,
 +       .init_data              = igep2_vmmc2,
 +};
 +
 +static struct platform_device igep2_vwlan_device = {
 +       .name           = reg-fixed-voltage,
 +       .id             = 0,
 +       .dev = {
 +               .platform_data  = igep2_vwlan,
 +       },
 +};
 +
  static struct omap2_hsmmc_info mmc[] = {
        {
                .mmc            = 1,
 @@ -373,12 +419,6 @@ static int igep2_twl_gpio_setup(struct device *dev,
        omap2_hsmmc_init(mmc);

        /*
 -        * link regulators to MMC adapters ... we know the
 -        * regulators will be set up only *after* we return.
 -        */
 -       igep2_vmmc1_supply.dev = mmc[0].dev;
 -
 -       /*
         * REVISIT: need ehci-omap hooks for external VBUS
         * power switch and overcurrent detect
         */
 @@ -489,6 +529,7 @@ static void __init igep2_display_init(void)

  static struct platform_device *igep2_devices[] __initdata = {
        igep2_dss_device,
 +       igep2_vwlan_device,
  };

  static void __init igep2_init_irq(void)
 @@ -519,7 +560,7 @@ static struct twl4030_platform_data igep2_twldata = {
        .gpio           = igep2_twl4030_gpio_pdata,
        .vmmc1          = igep2_vmmc1,
        .vpll2          = igep2_vpll2,
 -
 +       .vio            = igep2_vio,
  };

  static struct i2c_board_info __initdata igep2_i2c1_boardinfo[] = {
 --
 1.7.3.2



Tony, please can this patch be included before 2.6.37 ? Without this
patch the wifi module on IGEP v2 board not works.

Thanks,
   Enric Balletbo i Serra.
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the 

Re: [PATCH] Fix IGEPv2 second MMC channel power supply

2010-11-15 Thread Enric Balletbò i Serra
Hi,

2010/11/14 Marc Zyngier m...@misterjones.org:
 On Sun, 14 Nov 2010 19:11:46 +0100
 Enric Balletbò i Serra eballe...@gmail.com wrote:

 Why we need to define an unexistent regulator in board file ? This
 should not be done enabling the CONFIG_DUMMY_REGULATOR in your kernel
 configuration  ?

 I'm not adding another regulator, but instead simply exposing the fact
 (or rather my guess) that the same regulator (vmmc1) is powering the
 two MMC channels. Not having access to the board schematics, I can't
 tell if that reflects the reality or not.

 But using CONFIG_DUMMY_REGULATOR seems the wrong idea to me, as it's
 just papering over the issue. We should be exposing what's really on
 the board (a fixed regulator if that's the case).

So the DUMMY_REGULATOR is only a workaround when a regulator is not
defined and shouldn't be used ? Sorry if this is a stupid question but
regulator interface is not too clear for me.

The reality is this :

 --- 
| 3V3 |   | 1V8 |
 ---
|  |
 -
|   WIFI/BT  |
 -
| ( MMC2  at 1V8 )
 
|   OMAP   |
 ---

3V3 is a fixed regulator
1V8 is a fixed regulator (VIO from TWL4030)

So, which you think is the right solution ?

Cheers,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] Fix IGEPv2 second MMC channel power supply

2010-11-14 Thread Enric Balletbò i Serra
2010/11/14 Felipe Balbi m...@felipebalbi.com:
 Hi,

 On Sun, 14 Nov 2010 11:34:12 +, Marc Zyngier m...@misterjones.org
 wrote:
 @@ -272,8 +273,8 @@ static struct regulator_init_data igep2_vmmc1 = {
                                       | REGULATOR_CHANGE_MODE
                                       | REGULATOR_CHANGE_STATUS,
       },
 -     .num_consumer_supplies  = 1,
 -     .consumer_supplies      = igep2_vmmc1_supply,
 +     .num_consumer_supplies  = 2,

 use ARRAY_SIZE(igep2_vmmc1_supplies),

 --
 balbi


Why we need to define an unexistent regulator in board file ? This
should not be done enabling the CONFIG_DUMMY_REGULATOR in your kernel
configuration  ?

Cheers,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


USB Ethernet gadget seems doesn't work with current mainline

2010-11-05 Thread Enric Balletbò i Serra
Hello all,

With current mainline and stable 2.6.35.y branch I've some strange
features with USB ethernet gadget ...

  r...@igep0020:~# uname -a
  Linux igep0020 2.6.37-rc1+ #1 Fri Nov 5 09:22:53 CET 2010 armv7l
unknown unknown GNU/Linux

  r...@igep0020:~# ifconfig
  usb0  Link encap:Ethernet  HWaddr 5A:A9:54:25:4C:04
  inet addr:192.168.7.2  Bcast:192.168.7.255  Mask:255.255.255.0
  inet6 addr: fe80::58a9:54ff:fe25:4c04/64 Scope:Link
  UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
  RX packets:0 errors:0 dropped:0 overruns:0 frame:0
  TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
  collisions:0 txqueuelen:1000
  RX bytes:0 (0.0 B)  TX bytes:4951 (4.8 KiB)

Pinging seems not work

  r...@igep0020:~# ping -c5 192.168.7.1
  PING 192.168.7.1 (192.168.7.1): 56 data bytes
  --- 192.168.7.1 ping statistics ---
  5 packets transmitted, 0 packets received, 100% packet loss

Curiously if I unplug and plug the USB cable, and ping again ...

  r...@igep0020:~# ping -c5 192.168.7.1
  PING 192.168.7.1 (192.168.7.1): 56 data bytes
  64 bytes from 192.168.7.1: seq=0 ttl=64 time=0.397 ms
  64 bytes from 192.168.7.1: seq=1 ttl=64 time=0.489 ms
  64 bytes from 192.168.7.1: seq=2 ttl=64 time=0.397 ms
  64 bytes from 192.168.7.1: seq=3 ttl=64 time=0.366 ms
  64 bytes from 192.168.7.1: seq=4 ttl=64 time=0.396 ms

  --- 192.168.7.1 ping statistics ---
  5 packets transmitted, 5 packets received, 0% packet loss
 round-trip min/avg/max = 0.366/0.409/0.489 ms

Works, anyone knows if the ethernet gadget is broken in current
mainline or have observed this feature ?

Thanks in advance,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: USB Ethernet gadget seems doesn't work with current mainline

2010-11-05 Thread Enric Balletbò i Serra
Hi,

2010/11/5 Ming Lei tom.leim...@gmail.com:
 2010/11/5 Grazvydas Ignotas nota...@gmail.com:
 hi,

 On Fri, Nov 5, 2010 at 10:39 AM, Enric Balletbò i Serra
 eballe...@gmail.com wrote:
 Hello all,

 With current mainline and stable 2.6.35.y branch I've some strange
 features with USB ethernet gadget ...

  r...@igep0020:~# uname -a
  Linux igep0020 2.6.37-rc1+ #1 Fri Nov 5 09:22:53 CET 2010 armv7l
 unknown unknown GNU/Linux

  r...@igep0020:~# ifconfig
  usb0      Link encap:Ethernet  HWaddr 5A:A9:54:25:4C:04
          inet addr:192.168.7.2  Bcast:192.168.7.255  Mask:255.255.255.0
          inet6 addr: fe80::58a9:54ff:fe25:4c04/64 Scope:Link
          UP BROADCAST RUNNING MULTICAST  MTU:1500  Metric:1
          RX packets:0 errors:0 dropped:0 overruns:0 frame:0
          TX packets:28 errors:0 dropped:0 overruns:0 carrier:0
          collisions:0 txqueuelen:1000
          RX bytes:0 (0.0 B)  TX bytes:4951 (4.8 KiB)

 Pinging seems not work

  r...@igep0020:~# ping -c5 192.168.7.1
  PING 192.168.7.1 (192.168.7.1): 56 data bytes
  --- 192.168.7.1 ping statistics ---
  5 packets transmitted, 0 packets received, 100% packet loss

 Curiously if I unplug and plug the USB cable, and ping again ...

  r...@igep0020:~# ping -c5 192.168.7.1
  PING 192.168.7.1 (192.168.7.1): 56 data bytes
  64 bytes from 192.168.7.1: seq=0 ttl=64 time=0.397 ms
  64 bytes from 192.168.7.1: seq=1 ttl=64 time=0.489 ms
  64 bytes from 192.168.7.1: seq=2 ttl=64 time=0.397 ms
  64 bytes from 192.168.7.1: seq=3 ttl=64 time=0.366 ms
  64 bytes from 192.168.7.1: seq=4 ttl=64 time=0.396 ms

  --- 192.168.7.1 ping statistics ---
  5 packets transmitted, 5 packets received, 0% packet loss
  round-trip min/avg/max = 0.366/0.409/0.489 ms

 Works, anyone knows if the ethernet gadget is broken in current
 mainline or have observed this feature ?

 Please try this patch:
 http://marc.info/?l=linux-usbm=128576496614332w=2

 Report back if it works, maybe then that patch will finally get merged..


 No, the patch is not merged to now.

 Felipe,  seems it is time to send out this musb bugfix patches.

Thanks, the patch is working for me in mainline on my IGEP's board.

Also the issue is fixed on my linux-2.6.35.y branch applying the patch
and cherry-picking

f11d893de444965dfd3e55f726533ae1df5c6471 usb: musb: support ISO high
bandwidth for gadget mode
b0fca50f5a94a268ed02cfddf8051ed9343f usb gadget: don't save bind
callback in struct usb_gadget_driver

Cheers,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH 0/2] mmc: omap_hsmmc: support SDIO cards (#2)

2010-10-29 Thread Enric Balletbò i Serra
Hi all,

2010/10/10 Mike Rapoport m...@compulab.co.il:
 Hi Madhu,

 Madhusudhan wrote:

 -Original Message-
 From: Steve Sakoman [mailto:sako...@gmail.com]
 Sent: Thursday, October 07, 2010 8:57 AM
 To: Mike Rapoport
 Cc: Madhusudhan Chikkature; David Vrabel; Chris Ball; linux-
 m...@vger.kernel.org; linux-omap@vger.kernel.org; Adrian Hunter
 Subject: Re: [PATCH 0/2] mmc: omap_hsmmc: support SDIO cards (#2)

 I can confirm exactly the same behavior on my hardware with this
 version of the patch.

 Steve,

 Okay. Did the version you had in your tree worked? I just want to check if
 I
 messed up something in my patch.

 The patch works if applied before commit
 b417577d3b9bbb06a4ddc9aa955af9bd503f7242 (omap_hsmmc: improve interrupt
 synchronisation). Apparently, changes in interrupt handling require major
 rework  of the SDIO interrupt handling...

On my hardware with this version of the patch and with commit
b417577d3b9bbb06a4ddc9aa955af9bd503f7242 previously applied still not
working, I'm missing something else ?

Cheers,
  Enric

 Regards,
 Madhu

 Steve



 --
 Sincerely yours,
 Mike.
 --
 To unsubscribe from this list: send the line unsubscribe linux-omap in
 the body of a message to majord...@vger.kernel.org
 More majordomo info at  http://vger.kernel.org/majordomo-info.html

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


How to add an expansion board on IGEP v2 board.

2010-10-27 Thread Enric Balletbò i Serra
Hello all,

I would ask some technical questions, maybe someone can help me. I
would add support for a new expansion board for IGEP v2 board,

The expansion board comes with a EEPROM, the EEPROM is used to
identify the expansion board, my idea is create a new file for
expansion board ( board-igep0020-expansion.c ) and

* on board-igep0020.c
  - Add extern void __init igep2_expansion_init(void);
  - Call igep2_expansion_init on igep2_init()

* on board-igep0020-expansion.c
  - Create  igep2_expansion_init, inside this funciton
- Add e2prom device and read board id
- If board ID exists then init all expansion devices

I'm in the right way ? Comments ?

Thanks in advance,
   Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Add new omap_dss_device after dss_device_registration

2010-10-27 Thread Enric Balletbò i Serra
Hello all,

Can I add a new omap_dss_device after dss_device registration  ?
Something like add_new_omap_dss_device(lcd_device) or similar ?

On IGEP v2 we register only igep2_dvi_device as dss_device, We want to
add a new dss_device (igep2_lcd_device) after dss registration. Is it
possible ?

For example we want to do something like this :

  step 1: register IGEP v2  dss_devices (dvi)
  step 2: detect if IGEP expansion board is detected.
  step 3: if it's detected add new dss_devices (lcd)

Thanks in advance,
  Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] omap3: Add minimal OMAP3 IGEP module support.

2010-10-02 Thread Enric Balletbò i Serra
2010/10/2 Tony Lindgren t...@atomide.com:
 * Enric Balletbo i Serra eballe...@gmail.com [101001 15:18]:
 The OMAP3 IGEP module is a low-power, high performance production-ready
 system-on-module (SOM) based on TI's OMAP3 family.

 Looks OK to me, but also looks like you're missing the uncompress.h
 DEBUG_LL/EARLY_PRINTK entry?


Mmmm, I see I missed I'll send the version two...

I'm learning a lot,  thanks for your patience :-)

Kind regards,

  Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCHv3 1/6] omap3: Add external VBUS power switch and overcurrent detect on IGEP v2 board.

2010-10-02 Thread Enric Balletbò i Serra
2010/10/2 David Cohen david.co...@nokia.com:
 Hi,

 On Fri, Oct 01, 2010 at 11:09:04PM +0200, ext Enric Balletbo i Serra wrote:
 GPIO for various devices are missing from the board initialization.
 This patch adds support for the VBUS and over current gpios.  Without this
 patch, input/outputs from these two sources are ignored.

 Signed-off-by: Enric Balletbo i Serra eballe...@gmail.com
 ---
  arch/arm/mach-omap2/board-igep0020.c |   16 
  1 files changed, 16 insertions(+), 0 deletions(-)

 diff --git a/arch/arm/mach-omap2/board-igep0020.c 
 b/arch/arm/mach-omap2/board-igep0020.c
 index 175f043..07dbdb7 100644
 --- a/arch/arm/mach-omap2/board-igep0020.c
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -274,6 +274,22 @@ static int igep2_twl_gpio_setup(struct device *dev,
       igep2_vmmc1_supply.dev = mmc[0].dev;
       igep2_vmmc2_supply.dev = mmc[1].dev;

 +     /*
 +      * REVISIT: need ehci-omap hooks for external VBUS
 +      * power switch and overcurrent detect
 +      */
 +     if ((gpio_request(gpio + 1, GPIO_EHCI_NOC)  0) ||
 +         (gpio_direction_input(gpio + 1)  0))
 +             pr_err(IGEP2: Could not obtain gpio for EHCI NOC);

 Shouldb't you return error if it can't request the GPIO?

I'm not sure what happens if I return and error, I see only prints a
debug message. Maybe the twl4030-gpio maintainer can explain if I need
return and error or not.

Other omap boards just don't check the gpio_request call and always
return 0. I don't consider this a critical error so maybe should be
better replace the pr_err with a pr_warning.


 +
 +     /*
 +      * TWL4030_GPIO_MAX + 0 == ledA, GPIO_USBH_CPEN
 +      * (out, active low)
 +      */
 +     if ((gpio_request(gpio + TWL4030_GPIO_MAX, GPIO_USBH_CPEN)  0) ||
 +         (gpio_direction_output(gpio + TWL4030_GPIO_MAX, 0)  0))
 +             pr_err(IGEP2: Could not obtain gpio for USBH_CPEN);

 Same here.

 +
       return 0;
  };


Kind regards,
  Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: musb_hdrc: usb_disconnect is not called when the USB device is disconnected.

2010-07-14 Thread Enric Balletbò i Serra
2010/7/14 Gadiyar, Anand gadi...@ti.com:
 Enric Balletbò i Serra
 Hello,

 When I disconnect an USB pendrive using twl4030 otg as host (step 2)
 the usb_disconnect function is not called. OTOH if I reconnect the
 device (step 3), then the usb_disconnect function is called.

 Does anyone have any ideas why usb_disconnect is not called when the
 device is removed?


 Which kernel version is this? Can you check if this patch fixes the behavior?

 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commitdiff;h=7d9645fdca444d53907b22a4b73e3967efe09781

I'm using stable kernel 2.6.33.6

And yes this patch is not applied in this version. I applied and
solves the issue. Thank you very much.

Best regards,
-- Enric


 - Anand


 Steps to see the feature:

 Step 1 : Plug a USB pendrive:
 [ 2116.491546] usb 1-1: new high speed USB device using musb_hdrc and 
 address 6
 [ 2116.751861] usb 1-1: New USB device found, idVendor=058f, idProduct=6387
 [ 2116.758697] usb 1-1: New USB device strings: Mfr=1, Product=2, 
 SerialNumber=3
 [ 2116.765899] usb 1-1: Product: Mass Storage
 [ 2116.770019] usb 1-1: Manufacturer: 2.0
 [ 2116.773834] usb 1-1: SerialNumber: A15B7B60
 [ 2116.786468] scsi4 : usb-storage 1-1:1.0
 [ 2117.797332] scsi 4:0:0:0: Direct-Access     2.0      Flash Disk  8.07 PQ: 
 0 ANSI: 2
 [ 2117.813293] sd 4:0:0:0: [sda] 1968128 512-byte logical blocks: (1.00 
 GB/961 MiB)
 [ 2117.829040] sd 4:0:0:0: [sda] Write Protect is off
 [ 2117.834014] sd 4:0:0:0: [sda] Mode Sense: 03 00 00 00
 [ 2117.834014] sd 4:0:0:0: [sda] Assuming drive cache: write through
 [ 2117.849212] sd 4:0:0:0: [sda] Assuming drive cache: write through
 [ 2117.856597]  sda: sda1
 [ 2117.965698] sd 4:0:0:0: [sda] Assuming drive cache: write through
 [ 2117.971954] sd 4:0:0:0: [sda] Attached SCSI removable disk
 [ 2118.738769] FAT: bogus number of reserved sectors
 [ 2118.743621] VFS: Can't find a valid FAT filesystem on dev sda.

 Step 2: Unplug the USB pendrive

 [ nothing here ]

 Step 3: Plug the USB pendrive:
 [ 2218.820556] usb 1-1: USB disconnect, address 6
 [ 2219.139831] usb 1-1: new high speed USB device using musb_hdrc and 
 address 7
 [ 2219.400146] usb 1-1: New USB device found, idVendor=058f, idProduct=6387
 [ 2219.406951] usb 1-1: New USB device strings: Mfr=1, Product=2, 
 SerialNumber=3
 [ 2219.414184] usb 1-1: Product: Mass Storage
 [ 2219.418304] usb 1-1: Manufacturer: 2.0
 [ 2219.422119] usb 1-1: SerialNumber: A15B7B60
 [ 2219.434875] scsi5 : usb-storage 1-1:1.0
 [ 2220.445770] scsi 5:0:0:0: Direct-Access     2.0      Flash Disk  8.07 PQ: 
 0 ANSI: 2
 [ 2220.461547] sd 5:0:0:0: [sda] 1968128 512-byte logical blocks:(1.00 
 GB/961 MiB)
 [ 2220.476379] sd 5:0:0:0: [sda] Write Protect is off
 [ 2220.481323] sd 5:0:0:0: [sda] Mode Sense: 03 00 00 00
 [ 2220.481323] sd 5:0:0:0: [sda] Assuming drive cache: write through
 [ 2220.497314] sd 5:0:0:0: [sda] Assuming drive cache: write through
 [ 2220.504516]  sda: sda1
 [ 2220.603790] sd 5:0:0:0: [sda] Assuming drive cache: write through
 [ 2220.610015] sd 5:0:0:0: [sda] Attached SCSI removable disk
 [ 2221.378570] FAT: bogus number of reserved sectors
 [ 2221.383453] VFS: Can't find a valid FAT filesystem on dev sda.


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Possible bug in onenand_base ?

2010-07-12 Thread Enric Balletbò i Serra
Hello,

2010/7/8 Artem Bityutskiy dedeki...@gmail.com:
 On Thu, 2010-07-08 at 12:11 +0200, Enric Balletbò i Serra wrote:
 Hello,

 2010/7/8 Artem Bityutskiy dedeki...@gmail.com:
  On Thu, 2010-07-08 at 11:55 +0200, Enric Balletbò i Serra wrote:
  Hello,
 
  I made new tests regarding this issue. Looks like the problem is
  reading from the OneNAND device.
 
  Did you try older kernel and then bisecting who is responsible for the
  breakage?

 Yes, before commit

 5988af2319781bc8e0ce418affec4e09cfa77907 (mtd: Flex-OneNAND support)

 http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5988af2319781bc8e0ce418affec4e09cfa77907

 my  OneNAND is working, after the commit, the OneNAND support is broken.

 Ok, we could revert it, but it is better to fix it. CCing the author of
 the commit.


Comparing the onenand_base.c file before commit

  5988af2319781bc8e0ce418affec4e09cfa77907 (mtd: Flex-OneNAND support)

and after the commit I made a little patch which seems solves the
issue. The patch has two parts.

The first part replaces line 380 with  'page = (int) (addr 
this-page_shift);' like before apply the Flex-OneNAND support. I
suppose this is not the better solution, but with this the nandtest
tool works for me. Maybe the author of the commit can clarify this.

The second part (1964) adds two lines which I think are missed when
the Flex-OneNAND support was applied.

diff --git a/drivers/mtd/onenand/onenand_base.c
b/drivers/mtd/onenand/onenand_base.c
index 26caf25..a39d906 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -377,7 +377,7 @@ static int onenand_command(struct mtd_info *mtd,
int cmd, loff_t addr, size_t le

default:
block = onenand_block(this, addr);
-   page = (int) (addr - onenand_addr(this, block)) 
this-page_shift;
+   page = (int) (addr  this-page_shift);

if (ONENAND_IS_2PLANE(this)) {
/* Make the even block number */
@@ -1961,6 +1961,9 @@ static int onenand_write_ops_nolock(struct
mtd_info *mtd, loff_t to,

/* In partial page write we don't update bufferram */
onenand_update_bufferram(mtd, to, !ret  !subpage);
+   ONENAND_SET_BUFFERRAM1(this);
+   onenand_update_bufferram(mtd, to +
this-writesize, !ret  !subpage);
+
if (ret) {
printk(KERN_ERR %s: write failed %d\n,
__func__, ret);

Best regards,

Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


musb_hdrc: usb_disconnect is not called when the USB device is disconnected.

2010-07-12 Thread Enric Balletbò i Serra
Hello,

When I disconnect an USB pendrive using twl4030 otg as host (step 2)
the usb_disconnect function is not called. OTOH if I reconnect the
device (step 3), then the usb_disconnect function is called.

Does anyone have any ideas why usb_disconnect is not called when the
device is removed?

Steps to see the feature:

Step 1 : Plug a USB pendrive:
[ 2116.491546] usb 1-1: new high speed USB device using musb_hdrc and address 6
[ 2116.751861] usb 1-1: New USB device found, idVendor=058f, idProduct=6387
[ 2116.758697] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2116.765899] usb 1-1: Product: Mass Storage
[ 2116.770019] usb 1-1: Manufacturer: 2.0
[ 2116.773834] usb 1-1: SerialNumber: A15B7B60
[ 2116.786468] scsi4 : usb-storage 1-1:1.0
[ 2117.797332] scsi 4:0:0:0: Direct-Access 2.0  Flash Disk
  8.07 PQ: 0 ANSI: 2
[ 2117.813293] sd 4:0:0:0: [sda] 1968128 512-byte logical blocks:
(1.00 GB/961 MiB)
[ 2117.829040] sd 4:0:0:0: [sda] Write Protect is off
[ 2117.834014] sd 4:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 2117.834014] sd 4:0:0:0: [sda] Assuming drive cache: write through
[ 2117.849212] sd 4:0:0:0: [sda] Assuming drive cache: write through
[ 2117.856597]  sda: sda1
[ 2117.965698] sd 4:0:0:0: [sda] Assuming drive cache: write through
[ 2117.971954] sd 4:0:0:0: [sda] Attached SCSI removable disk
[ 2118.738769] FAT: bogus number of reserved sectors
[ 2118.743621] VFS: Can't find a valid FAT filesystem on dev sda.

Step 2: Unplug the USB pendrive

[ nothing here ]

Step 3: Plug the USB pendrive:
[ 2218.820556] usb 1-1: USB disconnect, address 6
[ 2219.139831] usb 1-1: new high speed USB device using musb_hdrc and address 7
[ 2219.400146] usb 1-1: New USB device found, idVendor=058f, idProduct=6387
[ 2219.406951] usb 1-1: New USB device strings: Mfr=1, Product=2, SerialNumber=3
[ 2219.414184] usb 1-1: Product: Mass Storage
[ 2219.418304] usb 1-1: Manufacturer: 2.0
[ 2219.422119] usb 1-1: SerialNumber: A15B7B60
[ 2219.434875] scsi5 : usb-storage 1-1:1.0
[ 2220.445770] scsi 5:0:0:0: Direct-Access 2.0  Flash Disk
  8.07 PQ: 0 ANSI: 2
[ 2220.461547] sd 5:0:0:0: [sda] 1968128 512-byte logical blocks:
(1.00 GB/961 MiB)
[ 2220.476379] sd 5:0:0:0: [sda] Write Protect is off
[ 2220.481323] sd 5:0:0:0: [sda] Mode Sense: 03 00 00 00
[ 2220.481323] sd 5:0:0:0: [sda] Assuming drive cache: write through
[ 2220.497314] sd 5:0:0:0: [sda] Assuming drive cache: write through
[ 2220.504516]  sda: sda1
[ 2220.603790] sd 5:0:0:0: [sda] Assuming drive cache: write through
[ 2220.610015] sd 5:0:0:0: [sda] Attached SCSI removable disk
[ 2221.378570] FAT: bogus number of reserved sectors
[ 2221.383453] VFS: Can't find a valid FAT filesystem on dev sda.

Thanks in advance,

Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Possible bug in onenand_base ?

2010-07-08 Thread Enric Balletbò i Serra
Hello,

I made new tests regarding this issue. Looks like the problem is
reading from the OneNAND device.

TEST 1
# modprobe mtd_pagetest dev=4
[  126.505340]
[  126.506866] =
[  126.512756] mtd_pagetest: MTD device: 4
[  126.520477] mtd_pagetest: MTD device size 262668288, eraseblock
size 262144, page size 4096, count of eraseblocks 1002, pages per
eraseblock 64, OOB size 64
[  126.535034] mtd_pagetest: scanning for bad eraseblocks
[  126.540771] mtd_pagetest: scanned 1002 eraseblocks, 0 are bad
[  126.546630] mtd_pagetest: erasing whole device
[  128.406890] mtd_pagetest: erased 1002 eraseblocks
[  128.411712] mtd_pagetest: writing whole device
[  128.451721] mtd_pagetest: written up to eraseblock 0
[  137.443817] mtd_pagetest: written up to eraseblock 256
[  146.440216] mtd_pagetest: written up to eraseblock 512
[  155.430755] mtd_pagetest: written up to eraseblock 768
[  163.618225] mtd_pagetest: written 1002 eraseblocks
[  163.623168] mtd_pagetest: verifying all eraseblocks
[  163.632965] onenand_wait: ECC error = 0x4488
[  163.638031] onenand_wait: ECC error = 0x4884
[  163.642486] onenand_wait: ECC error = 0x
[  163.647247] onenand_wait: ECC error = 0x
[  163.651733] mtd_pagetest: error: read failed at 0x0
[  163.656890] mtd_pagetest: error -74 occurred
[  163.661224] =


TEST 2
# nandtest -l 262144 /dev/mtd4
ECC corrections: 0
ECC failures   : 260
Bad blocks : 0
BBT blocks : 0
: reading...[  837.103302] onenand_wait: ECC error = 0x8488
[  837.109832] onenand_wait: ECC error = 0x8488
[  837.114532] onenand_wait: ECC error = 0x
(...)
[  837.683624] onenand_wait: ECC error = 0x8448
[  837.688079] onenand_wait: ECC error = 0x8488

ECC failed at 
: checking...
compare failed. seed 1804289383
Byte 0x1 is 5a should be da
Byte 0x3 is 82 should be 92
(...)

I suspect currently OneNAND with 2 planes is broken. Someone with this
type of device can try these tests ?

Thanks in advance,
Enric

2010/5/12 Enric Balletbò i Serra eballe...@gmail.com:
 I answer to myself.

 DDP (dual die plane) not implies 'ONENAND_HAS_2PLANE'.  A device with
 a single die can also have '2 planes'. I'm right ?

 Sorry for these newbie questions, I'm just introducing to OneNAND devices.

 Cheers,

 Enric

 2010/5/12 Enric Balletbò i Serra eballe...@gmail.com:
 Hello,

 I have a bit of time to investigate more.

 I have two boards with two different OneNAND chips populated.

 The first one is a dual Die Plan 4-Gbit (2 dice of 2-Gbit)

 [   26.406890] Muxed OneNAND(DDP) 512MB 1.8V 16-bit (0x58)
 [   26.412170] OneNAND version = 0x0031
 [   26.415771] Chip support all block unlock
 [   26.419830] Chip has 2 plane

 The second is a single die of 2-Gbit.

 [   32.897735] Muxed OneNAND 256MB 1.8V 16-bit (0x40)
 [   32.902557] OneNAND version = 0x0031
 [   32.906188] Chip support all block unlock
 [   32.910247] Chip has 2 plane

 As I understand the bit 3 of DEVICE_ID register indicates if package
 is a single-die or a dual-die, so

 - Muxed OneNAND(DDP) 512MB 1.8V 16-bit - device id: 0x58 - bit 3 is
 1 - dual-die
 - Muxed OneNAND 256MB 1.8V 16-bit - device id: 0x40 - bit 3 is 0 
 -single-die

 The question is, why those devices are reporting 'Chip has 2 plane' ?

 Sorry if this is a trivial question but I'm not sure about DDP and '2
 plane' concepts. Are the same ?

 Cheers,

 Enric

 2010/5/6 Enric Balletbò i Serra eballe...@gmail.com:
 Hi,

 2010/5/6 Kyungmin Park kmp...@infradead.org:
 Hi,

 What's your chip version? maybe some mis-probe it seems to be probed
 at 4KiB pagesize OneNAND.

 Is a 4-Gbit DDP OneNAND device from Numonyx composed of two 2-Gbit 2KB
 page dice stacked together, the device is equipped with two DataRAMs,
 and two-plane NAND Flash memory array,

 These two component enables simultaneous program of 4KiB (
 CONFIG_MTD_ONENAND_2X_PROGRAM)

 Cheers,

 Enric


 Thank you,
 Kyungmin Park

 On Thu, May 6, 2010 at 8:22 PM, Enric Balletbò i Serra
 eballe...@gmail.com wrote:
 Hi,

 2010/5/6 Kyungmin Park kyungmin.p...@samsung.com:
 Hi,

 Can you add this statement at below the code?
 printk(%s[%d] page %d, %d, %d\n, __func__, __LINE__, page, (int)
 onenand_addr(this, block), ((int) addr  this-page_shift) 
 this-page_mask);

 Yes,

 With this code nandtest fails:

 onenand_base.c

 377:     default:
                block = onenand_block(this, addr);
 /*  (line disabled)   page = (int) (addr  this-page_shift); */
                  page = (int) (addr - onenand_addr(this, block)) 
 this-page_shift;

                printk(%s[%d] page %d, %d, %d\n, __func__, __LINE__,
 page, (int)
                        onenand_addr(this, block), ((int) addr 
 this-page_shift) 
                        this-page_mask);

                if (ONENAND_IS_2PLANE(this)) {
                        /* Make the even block number */
                        block = ~1;
                        /* Is it the odd plane

Re: Possible bug in onenand_base ?

2010-07-08 Thread Enric Balletbò i Serra
Hello,

2010/7/8 Artem Bityutskiy dedeki...@gmail.com:
 On Thu, 2010-07-08 at 11:55 +0200, Enric Balletbò i Serra wrote:
 Hello,

 I made new tests regarding this issue. Looks like the problem is
 reading from the OneNAND device.

 Did you try older kernel and then bisecting who is responsible for the
 breakage?

Yes, before commit

5988af2319781bc8e0ce418affec4e09cfa77907 (mtd: Flex-OneNAND support)

http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=5988af2319781bc8e0ce418affec4e09cfa77907

my  OneNAND is working, after the commit, the OneNAND support is broken.

Cheers,
Enric


 --
 Best Regards,
 Artem Bityutskiy (Артём Битюцкий)


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


mtd_pagetest fails with omap2 OneNAND driver

2010-07-07 Thread Enric Balletbò i Serra
Hello,

I need some help to understand what is wrong, maybe someone can help me.

I'm running an OMAP3-based board with a OneNAND from Numonyx, the
problem is some mtd tests fails. An example is the mtd_pagetest, the
erase test fails.

[  937.885925] mtd_pagetest: erasetest
[  937.889434] mtd_pagetest: erasing block 0
[  937.895721] mtd_pagetest: writing 1st page of block 0
[  937.901550] mtd_pagetest: erasing block 0
[  937.907623] mtd_pagetest: reading 1st page of block 0
[  937.912994] mtd_pagetest: verifying 1st page of block 0 is all 0xff
[  937.919342] mtd_pagetest: verifying all 0xff failed at 0
[  937.924713] mtd_pagetest: finished with 1 errors

If I read the mtd contents

# mtd_debug read /dev/mtd4 0 1024 output.log
# hexdump output.log
000 1caf ecfa 976b aa81 700a 9ce1 5427 32eb

looks like the mtd partition it's not erased, but If I use the
flash_eraseall tool erases the flash completely without problem

# flash_eraseall /dev/mtd4
Erasing 256 Kibyte @ fa8 -- 100 % complete.
# mtd_debug read /dev/mtd4 0 1024 output.log
Copied 1024 bytes from address 0x in flash to file.log
# hexdump output.log
000        
*
400

So I don't understand why this test fails. Any idea what might be wrong ?

Here the full log

[  775.590270] =
[  775.596160] mtd_pagetest: MTD device: 4
[  775.603851] mtd_pagetest: MTD device size 262668288, eraseblock
size 262144, page size 4096, count of eraseblocks 1002, pages per
eraseblock 64, OOB size 64
[  775.618408] mtd_pagetest: scanning for bad eraseblocks
[  775.624420] mtd_pagetest: scanned 1002 eraseblocks, 0 are bad
[  775.630218] mtd_pagetest: erasing whole device
[  777.486846] mtd_pagetest: erased 1002 eraseblocks
[  777.491638] mtd_pagetest: writing whole device
[  777.531585] mtd_pagetest: written up to eraseblock 0
[  786.519378] mtd_pagetest: written up to eraseblock 256
[  795.505706] mtd_pagetest: written up to eraseblock 512
[  804.488769] mtd_pagetest: written up to eraseblock 768
[  812.668182] mtd_pagetest: written 1002 eraseblocks
[  812.673126] mtd_pagetest: verifying all eraseblocks
[  812.803375] mtd_pagetest: verified up to eraseblock 0
[  844.772460] mtd_pagetest: verified up to eraseblock 256
[  876.734741] mtd_pagetest: verified up to eraseblock 512
[  908.696838] mtd_pagetest: verified up to eraseblock 768
[  937.791229] mtd_pagetest: verified 1002 eraseblocks
[  937.796234] mtd_pagetest: crosstest
[  937.800903] mtd_pagetest: reading page at 0x0
[  937.805877] mtd_pagetest: reading page at 0xfa7f000
[  937.811096] mtd_pagetest: reading page at 0x0
[  937.816070] mtd_pagetest: verifying pages read at 0x0 match
[  937.821838] mtd_pagetest: crosstest ok
[  937.825622] mtd_pagetest: erasecrosstest
[  937.829589] mtd_pagetest: erasing block 0
[  937.835906] mtd_pagetest: writing 1st page of block 0
[  937.841552] mtd_pagetest: reading 1st page of block 0
[  937.847198] mtd_pagetest: verifying 1st page of block 0
[  937.852600] mtd_pagetest: erasing block 0
[  937.858734] mtd_pagetest: writing 1st page of block 0
[  937.864379] mtd_pagetest: erasing block 1001
[  937.870788] mtd_pagetest: reading 1st page of block 0
[  937.876342] mtd_pagetest: verifying 1st page of block 0
[  937.881652] mtd_pagetest: erasecrosstest ok
[  937.885925] mtd_pagetest: erasetest
[  937.889434] mtd_pagetest: erasing block 0
[  937.895721] mtd_pagetest: writing 1st page of block 0
[  937.901550] mtd_pagetest: erasing block 0
[  937.907623] mtd_pagetest: reading 1st page of block 0
[  937.912994] mtd_pagetest: verifying 1st page of block 0 is all 0xff
[  937.919342] mtd_pagetest: verifying all 0xff failed at 0
[  937.924713] mtd_pagetest: finished with 1 errors
[  937.929870] =

Thanks in advance,

Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Possible bug in onenand_base ?

2010-05-12 Thread Enric Balletbò i Serra
Hello,

I have a bit of time to investigate more.

I have two boards with two different OneNAND chips populated.

The first one is a dual Die Plan 4-Gbit (2 dice of 2-Gbit)

[   26.406890] Muxed OneNAND(DDP) 512MB 1.8V 16-bit (0x58)
[   26.412170] OneNAND version = 0x0031
[   26.415771] Chip support all block unlock
[   26.419830] Chip has 2 plane

The second is a single die of 2-Gbit.

[   32.897735] Muxed OneNAND 256MB 1.8V 16-bit (0x40)
[   32.902557] OneNAND version = 0x0031
[   32.906188] Chip support all block unlock
[   32.910247] Chip has 2 plane

As I understand the bit 3 of DEVICE_ID register indicates if package
is a single-die or a dual-die, so

- Muxed OneNAND(DDP) 512MB 1.8V 16-bit - device id: 0x58 - bit 3 is
1 - dual-die
- Muxed OneNAND 256MB 1.8V 16-bit - device id: 0x40 - bit 3 is 0 -single-die

The question is, why those devices are reporting 'Chip has 2 plane' ?

Sorry if this is a trivial question but I'm not sure about DDP and '2
plane' concepts. Are the same ?

Cheers,

Enric

2010/5/6 Enric Balletbò i Serra eballe...@gmail.com:
 Hi,

 2010/5/6 Kyungmin Park kmp...@infradead.org:
 Hi,

 What's your chip version? maybe some mis-probe it seems to be probed
 at 4KiB pagesize OneNAND.

 Is a 4-Gbit DDP OneNAND device from Numonyx composed of two 2-Gbit 2KB
 page dice stacked together, the device is equipped with two DataRAMs,
 and two-plane NAND Flash memory array,

 These two component enables simultaneous program of 4KiB (
 CONFIG_MTD_ONENAND_2X_PROGRAM)

 Cheers,

 Enric


 Thank you,
 Kyungmin Park

 On Thu, May 6, 2010 at 8:22 PM, Enric Balletbò i Serra
 eballe...@gmail.com wrote:
 Hi,

 2010/5/6 Kyungmin Park kyungmin.p...@samsung.com:
 Hi,

 Can you add this statement at below the code?
 printk(%s[%d] page %d, %d, %d\n, __func__, __LINE__, page, (int)
 onenand_addr(this, block), ((int) addr  this-page_shift) 
 this-page_mask);

 Yes,

 With this code nandtest fails:

 onenand_base.c

 377:     default:
                block = onenand_block(this, addr);
 /*  (line disabled)   page = (int) (addr  this-page_shift); */
                  page = (int) (addr - onenand_addr(this, block)) 
 this-page_shift;

                printk(%s[%d] page %d, %d, %d\n, __func__, __LINE__,
 page, (int)
                        onenand_addr(this, block), ((int) addr 
 this-page_shift) 
                        this-page_mask);

                if (ONENAND_IS_2PLANE(this)) {
                        /* Make the even block number */
                        block = ~1;
                        /* Is it the odd plane? */
                        if (addr  this-writesize)
                                block++;
                        page = 1;
                }
                page = this-page_mask;
                break;


 --- start log nandtest fail ---
 # nandtest -l 262144 /dev/mtd3
 ECC corrections: 0
 ECC failures   : 0
 Bad blocks     : 0
 BBT blocks     : 0
 : writing...
 [  243.144287] onenand_command[382] page 0, 2621440, 0
 [  243.150787] onenand_command[382] page 2, 2621440, 2
 [  243.156158] onenand_command[382] page 4, 2621440, 4
 (...)
 [  243.310729] onenand_command[382] page 60, 2621440, 60
 [  243.316223] onenand_command[382] page 62, 2621440, 62
 [  243.322204] onenand_command[382] page 0, 2752512, 0
 [  243.327636] onenand_command[382] page 2, 2752512, 2
 [  243.332977] onenand_command[382] page 4, 2752512, 4
 (...)
 [  243.487487] onenand_command[382] page 60, 2752512, 60
 [  243.493041] onenand_command[382] page 62, 2752512, 62
 : reading...
 [  243.498535] onenand_command[382] page 0, 2621440, 0
 [  243.505249] onenand_wait: ECC error = 0x8488
 [  243.509552] onenand_command[382] page 1, 2621440, 1
 [  243.514587] onenand_wait: ECC error = 0x8488
 [  243.518890] onenand_command[382] page 2, 2621440, 2
 (...)
 [  244.089050] onenand_command[382] page 62, 2621440, 62
 [  244.094268] onenand_wait: ECC error = 0x8448
 [  244.098602] onenand_command[382] page 63, 2621440, 63
 [  244.103790] onenand_wait: ECC error = 0x8488
 [  244.109191] onenand_command[382] page 0, 2752512, 0
 [  244.114196] onenand_wait: ECC error = 0x8488
 [  244.118469] onenand_command[382] page 1, 2752512, 1
 [  244.123535] onenand_wait: ECC error = 0x8488
 [  244.127838] onenand_command[382] page 2, 2752512, 2
 (...)
 [  244.698150] onenand_command[382] page 62, 2752512, 62
 [  244.703369] onenand_wait: ECC error = 0x8448
 [  244.707672] onenand_command[382] page 63, 2752512, 63
 [  244.712890] onenand_wait: ECC error = 0x8488

 ECC failed at 
 : checking...
 compare failed. seed 1804289383
 Byte 0x1 is 5a should be da
 Byte 0x3 is 82 should be 92
 Byte 0x4 is 10 should be 1a
 Byte 0x5 is 21 should be b7

 --- end log nandtest fail ---


 With this other code nandtest pass

 onenand_base.c

 377:     default:
                block = onenand_block(this, addr);
                page = (int) (addr  this-page_shift);
 /* (line disabled)  page = (int) (addr - onenand_addr(this, block

Re: Possible bug in onenand_base ?

2010-05-12 Thread Enric Balletbò i Serra
I answer to myself.

DDP (dual die plane) not implies 'ONENAND_HAS_2PLANE'.  A device with
a single die can also have '2 planes'. I'm right ?

Sorry for these newbie questions, I'm just introducing to OneNAND devices.

Cheers,

Enric

2010/5/12 Enric Balletbò i Serra eballe...@gmail.com:
 Hello,

 I have a bit of time to investigate more.

 I have two boards with two different OneNAND chips populated.

 The first one is a dual Die Plan 4-Gbit (2 dice of 2-Gbit)

 [   26.406890] Muxed OneNAND(DDP) 512MB 1.8V 16-bit (0x58)
 [   26.412170] OneNAND version = 0x0031
 [   26.415771] Chip support all block unlock
 [   26.419830] Chip has 2 plane

 The second is a single die of 2-Gbit.

 [   32.897735] Muxed OneNAND 256MB 1.8V 16-bit (0x40)
 [   32.902557] OneNAND version = 0x0031
 [   32.906188] Chip support all block unlock
 [   32.910247] Chip has 2 plane

 As I understand the bit 3 of DEVICE_ID register indicates if package
 is a single-die or a dual-die, so

 - Muxed OneNAND(DDP) 512MB 1.8V 16-bit - device id: 0x58 - bit 3 is
 1 - dual-die
 - Muxed OneNAND 256MB 1.8V 16-bit - device id: 0x40 - bit 3 is 0 
 -single-die

 The question is, why those devices are reporting 'Chip has 2 plane' ?

 Sorry if this is a trivial question but I'm not sure about DDP and '2
 plane' concepts. Are the same ?

 Cheers,

 Enric

 2010/5/6 Enric Balletbò i Serra eballe...@gmail.com:
 Hi,

 2010/5/6 Kyungmin Park kmp...@infradead.org:
 Hi,

 What's your chip version? maybe some mis-probe it seems to be probed
 at 4KiB pagesize OneNAND.

 Is a 4-Gbit DDP OneNAND device from Numonyx composed of two 2-Gbit 2KB
 page dice stacked together, the device is equipped with two DataRAMs,
 and two-plane NAND Flash memory array,

 These two component enables simultaneous program of 4KiB (
 CONFIG_MTD_ONENAND_2X_PROGRAM)

 Cheers,

 Enric


 Thank you,
 Kyungmin Park

 On Thu, May 6, 2010 at 8:22 PM, Enric Balletbò i Serra
 eballe...@gmail.com wrote:
 Hi,

 2010/5/6 Kyungmin Park kyungmin.p...@samsung.com:
 Hi,

 Can you add this statement at below the code?
 printk(%s[%d] page %d, %d, %d\n, __func__, __LINE__, page, (int)
 onenand_addr(this, block), ((int) addr  this-page_shift) 
 this-page_mask);

 Yes,

 With this code nandtest fails:

 onenand_base.c

 377:     default:
                block = onenand_block(this, addr);
 /*  (line disabled)   page = (int) (addr  this-page_shift); */
                  page = (int) (addr - onenand_addr(this, block)) 
 this-page_shift;

                printk(%s[%d] page %d, %d, %d\n, __func__, __LINE__,
 page, (int)
                        onenand_addr(this, block), ((int) addr 
 this-page_shift) 
                        this-page_mask);

                if (ONENAND_IS_2PLANE(this)) {
                        /* Make the even block number */
                        block = ~1;
                        /* Is it the odd plane? */
                        if (addr  this-writesize)
                                block++;
                        page = 1;
                }
                page = this-page_mask;
                break;


 --- start log nandtest fail ---
 # nandtest -l 262144 /dev/mtd3
 ECC corrections: 0
 ECC failures   : 0
 Bad blocks     : 0
 BBT blocks     : 0
 : writing...
 [  243.144287] onenand_command[382] page 0, 2621440, 0
 [  243.150787] onenand_command[382] page 2, 2621440, 2
 [  243.156158] onenand_command[382] page 4, 2621440, 4
 (...)
 [  243.310729] onenand_command[382] page 60, 2621440, 60
 [  243.316223] onenand_command[382] page 62, 2621440, 62
 [  243.322204] onenand_command[382] page 0, 2752512, 0
 [  243.327636] onenand_command[382] page 2, 2752512, 2
 [  243.332977] onenand_command[382] page 4, 2752512, 4
 (...)
 [  243.487487] onenand_command[382] page 60, 2752512, 60
 [  243.493041] onenand_command[382] page 62, 2752512, 62
 : reading...
 [  243.498535] onenand_command[382] page 0, 2621440, 0
 [  243.505249] onenand_wait: ECC error = 0x8488
 [  243.509552] onenand_command[382] page 1, 2621440, 1
 [  243.514587] onenand_wait: ECC error = 0x8488
 [  243.518890] onenand_command[382] page 2, 2621440, 2
 (...)
 [  244.089050] onenand_command[382] page 62, 2621440, 62
 [  244.094268] onenand_wait: ECC error = 0x8448
 [  244.098602] onenand_command[382] page 63, 2621440, 63
 [  244.103790] onenand_wait: ECC error = 0x8488
 [  244.109191] onenand_command[382] page 0, 2752512, 0
 [  244.114196] onenand_wait: ECC error = 0x8488
 [  244.118469] onenand_command[382] page 1, 2752512, 1
 [  244.123535] onenand_wait: ECC error = 0x8488
 [  244.127838] onenand_command[382] page 2, 2752512, 2
 (...)
 [  244.698150] onenand_command[382] page 62, 2752512, 62
 [  244.703369] onenand_wait: ECC error = 0x8448
 [  244.707672] onenand_command[382] page 63, 2752512, 63
 [  244.712890] onenand_wait: ECC error = 0x8488

 ECC failed at 
 : checking...
 compare failed. seed 1804289383
 Byte 0x1 is 5a should be da
 Byte 0x3 is 82 should be 92
 Byte 0x4 is 10 should be 1a

Re: Possible bug in onenand_base ?

2010-05-06 Thread Enric Balletbò i Serra
[ 2025.343811] onenand_command[382] page 1345, 2752512, 1
[ 2025.349151] onenand_command[382] page 1346, 2752512, 2
(...)
[ 2025.672576] onenand_command[382] page 1406, 2752512, 62
[ 2025.677978] onenand_command[382] page 1407, 2752512, 63
: checking...
Finished pass 1 successfully
--- end log nandtest pass ---


 In my test environment, it displays the correct page number.
 (addr - onenand_addr(this, block)  this-page_shift is same as
 '(addr  this-page_shift)  this-page_mask'.


Looks like page number is wrong ?

Cheers,

Enric

 Thank you,
 Kyungmin Park

 On Fri, Apr 30, 2010 at 7:05 PM, Enric Balletbò i Serra
 eballe...@gmail.com wrote:
 Hello all,

 After commit 5988af2319781bc8e0ce418affec4e09cfa77907 (mtd:
 Flex-OneNAND support) the onenand support for my device is broken.

 Before this commit when I run the nandtest program all is ok
 ---
 # nandtest /dev/mtd3
 ECC corrections: 0
 ECC failures   : 0
 Bad blocks     : 0
 BBT blocks     : 0
 002c: checking...
 Finished pass 1 successfully
 --

 Introduced commit 5988af2319781bc8e0ce418affec4e09cfa7790 the nandtest
 fails with:
 ---
 # nandtest /dev/mtd3
 ECC corrections: 0
 ECC failures   : 0
 Bad blocks     : 0
 BBT blocks     : 0
 : reading...
 [  299.092041] onenand_wait: ECC error = 0x8488
    ( ... lots of ECC errors ... )
 [  299.092041] onenand_wait: ECC error = 0x8488
 ECC failed at 
 : checking...
 compare failed. seed 1804289383
 Byte 0x1 is 5a should be da
 Byte 0x3 is 82 should be 92
 Byte 0x4 is 10 should be 1a
    ( ... )
 ---

 Investigating a little I see a significant difference introduced by
 this patch. In line

 347:        page = (int) (addr - onenand_addr(this, block)) 
 this-page_shift;   (patch applied)

 instead of

 347:        page = (int) (addr  this-page_shift);  (without patch)

 I applied commit 5988af2319781bc8e0ce418affec4e09cfa7790 and replaced
 the line 347 and now works again. Fantastic, but I suspect this is not
 the proper solution (probably this breaks other onenands devices, I
 can't test).

 I'm just introducing in OneNAND devices so anyone can help me to
 understand and solve the problem ? Note that my device is a Numonyx
 4-Gbit DDP (DUAL DIE PLAN) OneNAND flash memory ( 2 dice of 2Gb, 2KB
 page )

 Thanks in advance,

 ///:~Enric

 ---
 diff --git a/drivers/mtd/onenand/onenand_base.c
 b/drivers/mtd/onenand/onenand_base.c
 index 081f97d..b1d50a3 100644
 --- a/drivers/mtd/onenand/onenand_base.c
 +++ b/drivers/mtd/onenand/onenand_base.c
 @@ -344,7 +344,7 @@ static int onenand_command(struct mtd_info *mtd,
 int cmd, loff_t addr, size_t le

        default:
                block = (int) onenand_block(this, addr);
 -               page = (int) (addr - onenand_addr(this, block))  
 this-page_shift;
 +               page = (int) (addr  this-page_shift);

                if (ONENAND_IS_2PLANE(this)) {
                        /* Make the even block number */
 ---

 __
 Linux MTD discussion mailing list
 http://lists.infradead.org/mailman/listinfo/linux-mtd/


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Possible bug in onenand_base ?

2010-04-30 Thread Enric Balletbò i Serra
Hello all,

After commit 5988af2319781bc8e0ce418affec4e09cfa77907 (mtd:
Flex-OneNAND support) the onenand support for my device is broken.

Before this commit when I run the nandtest program all is ok
---
# nandtest /dev/mtd3
ECC corrections: 0
ECC failures   : 0
Bad blocks : 0
BBT blocks : 0
002c: checking...
Finished pass 1 successfully
--

Introduced commit 5988af2319781bc8e0ce418affec4e09cfa7790 the nandtest
fails with:
---
# nandtest /dev/mtd3
ECC corrections: 0
ECC failures   : 0
Bad blocks : 0
BBT blocks : 0
: reading...
[  299.092041] onenand_wait: ECC error = 0x8488
( ... lots of ECC errors ... )
[  299.092041] onenand_wait: ECC error = 0x8488
ECC failed at 
: checking...
compare failed. seed 1804289383
Byte 0x1 is 5a should be da
Byte 0x3 is 82 should be 92
Byte 0x4 is 10 should be 1a
( ... )
---

Investigating a little I see a significant difference introduced by
this patch. In line

347:page = (int) (addr - onenand_addr(this, block)) 
this-page_shift;   (patch applied)

instead of

347:page = (int) (addr  this-page_shift);  (without patch)

I applied commit 5988af2319781bc8e0ce418affec4e09cfa7790 and replaced
the line 347 and now works again. Fantastic, but I suspect this is not
the proper solution (probably this breaks other onenands devices, I
can't test).

I'm just introducing in OneNAND devices so anyone can help me to
understand and solve the problem ? Note that my device is a Numonyx
4-Gbit DDP (DUAL DIE PLAN) OneNAND flash memory ( 2 dice of 2Gb, 2KB
page )

Thanks in advance,

///:~Enric

---
diff --git a/drivers/mtd/onenand/onenand_base.c
b/drivers/mtd/onenand/onenand_base.c
index 081f97d..b1d50a3 100644
--- a/drivers/mtd/onenand/onenand_base.c
+++ b/drivers/mtd/onenand/onenand_base.c
@@ -344,7 +344,7 @@ static int onenand_command(struct mtd_info *mtd,
int cmd, loff_t addr, size_t le

default:
block = (int) onenand_block(this, addr);
-   page = (int) (addr - onenand_addr(this, block))  
this-page_shift;
+   page = (int) (addr  this-page_shift);

if (ONENAND_IS_2PLANE(this)) {
/* Make the even block number */
---
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RESEND] omap3: Fix EHCI port for IGEP v2 board.

2010-03-15 Thread Enric Balletbò i Serra
Hello,

Felipe, sorry but I don't understand your questions,m maybe I'm
missing something.

All IGEP v2 boards uses USB1HS EHCI port. My mistake was suppose that
port_mode[1] -- EHCI USB1HS but this is not correct, the EHCI USB1HS
is port_mode[0]. This patch only fixes this.

Best regards,

Enric

 2010/3/15 Felipe Balbi m...@felipebalbi.com

 Hi,

 On Mon, Mar 01, 2010 at 04:02:36PM +0100, Enric Balletbo i Serra wrote:
  @@ -458,13 +458,13 @@ static struct omap_musb_board_data musb_board_data 
  = {
   };
 
   static const struct ehci_hcd_omap_platform_data ehci_pdata __initconst = 
  {
  -     .port_mode[0] = EHCI_HCD_OMAP_MODE_UNKNOWN,
  -     .port_mode[1] = EHCI_HCD_OMAP_MODE_PHY,
  +     .port_mode[0] = EHCI_HCD_OMAP_MODE_PHY,
  +     .port_mode[1] = EHCI_HCD_OMAP_MODE_UNKNOWN,
        .port_mode[2] = EHCI_HCD_OMAP_MODE_UNKNOWN,
 
        .phy_reset = true,
  -     .reset_gpio_port[0] = -EINVAL,
  -     .reset_gpio_port[1] = IGEP2_GPIO_USBH_NRESET,
  +     .reset_gpio_port[0] = IGEP2_GPIO_USBH_NRESET,
  +     .reset_gpio_port[1] = -EINVAL,

 no way to be backwards compatible ? Is it worth to be backwards
 compatible ?

 --
 balbi



--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH RESEND] omap3: Fix EHCI port for IGEP v2 board.

2010-03-15 Thread Enric Balletbò i Serra
Hi,

2010/3/15 Felipe Balbi m...@felipebalbi.com:
 Hi,

 please don't top-post. Read more at [1].

Sorry

 is there a IGEP v1 board available ? Are there any developers around
 using it ? If true, you should try to be backwards compatible.

Yes, IGEP v1 is available but it's a different platform with different processor
and aren't compatible.

See http://www.igep-platform.com.

 - IGEPv1 is low-power and fan-less single board computer based on ATMEL
 ARM9 processor.

 - IGEPv2 is low-power and fan-less single board computer based on
OMAP35x processor.

Regards,

--
Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


OMAPFB: cannot parse default modes

2010-03-04 Thread Enric Balletbò i Serra
Hello,

Testing the Linux Omap master branch on IGEP v2 board I get this feature

[   17.565155] omapfb omapfb: cannot parse default modes

My kernel command line is something like  '..
omapfb.mode=dvi:1280x720mr...@60' which works without problems with
latest 2.6.33-rc8. Any idea about this ? There is something different
between 2.6.33 and 2.633-rc8 ? I'm missing something ?

Thanks in advance,

Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: OMAPFB: cannot parse default modes

2010-03-04 Thread Enric Balletbò i Serra
For me also works, thanks

Best regards,

Enric

2010/3/4 Tomi Valkeinen tomi.valkei...@nokia.com:
 On Thu, 2010-03-04 at 16:25 +0100, ext Enric Balletbò i Serra wrote:
 Hello,

 Testing the Linux Omap master branch on IGEP v2 board I get this feature

 [   17.565155] omapfb omapfb: cannot parse default modes

 My kernel command line is something like  '..
 omapfb.mode=dvi:1280x720mr...@60' which works without problems with
 latest 2.6.33-rc8. Any idea about this ? There is something different
 between 2.6.33 and 2.633-rc8 ? I'm missing something ?

 There's no difference between the tagged 2.6.33-rc8 and 2.6.33. But in
 the current merge window there went a big bunch of DSS patches in, and
 you are right, setting modes doesn't work in git HEAD.

 There's some code missing related to mode setting, and it needs some
 thinking how to make it properly. But here's a quick hack patch I made,
 that makes mode setting work at least for me on 3430SDP.

  Tomi


--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: Question about omap_hsmmc driver

2010-01-07 Thread Enric Balletbò i Serra
Hi,

The mux configuration is set at u-boot level and this works with
kernel 2.6.28 so I suppose the mux configuration is setup correctly.

Looking at driver I see new data in twl4030_hsmmc_info struct. Please,
can you explain a bit the transceiver, ocr_mask and ext_clock  ?

Just for information, on IGEP v2 the MMC2 should be at 1.8V and don't
use twl4030 regulator.

Thanks a lot,

  Enric

2010/1/5 Madhusudhan madhu...@ti.com:
 Hi Enric,

 You see from the log there is a timeout on CMD5. This could happen because
 of multiple reasons. One of them is muxing of CMD/CLK lines. Or it could be
 due to negotiation of voltage.

 I would look at these things first.

 Regards,
 Madhu

 
 From: Enric Balletbò i Serra [mailto:eballe...@gmail.com]
 Sent: Tuesday, January 05, 2010 10:44 AM
 To: linux-omap@vger.kernel.org; madhu...@ti.com
 Subject: Question about omap_hsmmc driver

 Hi all,

 I'm having problems trying to run the SDIO WLAN module on my IGEP v2 board
 using the latest omap kernel (2.6.33-rc2). The SDIO WLAN module is connected
 to the MMC2 using 4 wires. With an older kernel ( 2.6.28 ) works fine but
 the same configuration with 2.6.33-rc2 do not detect the SDIO card.


 Any idea to solve the problem ? There is a substantial modification in this
 driver. Any help will be appreciated. I attached the log.

 Thanks in advance,
    Enric


 [   24.521484] mmci-omap-hs mmci-omap-hs.1: DISABLED - ENABLED
 [   24.522003] mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0
 timing 0
 [   24.522033] mmci-omap-hs mmci-omap-hs.1: ENABLED - DISABLED
 [   24.522308] mmci-omap-hs mmci-omap-hs.1: DISABLED - ENABLED
 [   24.522338] mmc1: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 65535 width 0
 timing 0
 [   24.545104] mmc1: clock 40Hz busmode 1 powermode 2 cs 0 Vdd 65535
 width 0 timing 0
 [   24.568298] mmc1: clock 40Hz busmode 1 powermode 2 cs 1 Vdd 65535
 width 0 timing 0
 [   24.569335] mmc1: starting CMD0 arg  flags 00c0
 [   24.569366] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD0, argument 0x
 [   24.569519] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 1
 [   24.569549] mmc1: req done (CMD0): 0:    
 [   24.572540] mmc1: clock 40Hz busmode 1 powermode 2 cs 0 Vdd 65535
 width 0 timing 0
 [   24.573547] mmc1: starting CMD8 arg 00aa flags 02f5
 [   24.573577] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD8, argument 0x00aa
 [   24.573913] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
 [   24.573913] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
 [   24.573944] mmc1: req done (CMD8): -110:   
 
 [   24.575744] mmc1: starting CMD5 arg  flags 02e1
 [   24.575775] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD5, argument 0x
 [   24.576110] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
 [   24.576141] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
 [   24.576171] mmc1: req failed (CMD5): -110, retrying...
 [   24.576171] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD5, argument 0x
 [   24.576507] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
 [   24.576538] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
 [   24.576568] mmc1: req failed (CMD5): -110, retrying...
 [   24.576568] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD5, argument 0x
 [   24.576904] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
 [   24.576934] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
 [   24.576934] mmc1: req failed (CMD5): -110, retrying...
 [   24.576965] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD5, argument 0x
 [   24.577301] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
 [   24.577331] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
 [   24.577331] mmc1: req done (CMD5): -110:   
 
 [   24.578247] mmc1: starting CMD55 arg  flags 00f5
 [   24.578247] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD55, argument 0x
 [   24.578582] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
 [   24.578613] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
 [   24.578643] mmc1: req done (CMD55): -110:   
 
 [   24.580444] mmc1: starting CMD55 arg  flags 00f5
 [   24.580474] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD55, argument 0x
 [   24.580810] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
 [   24.580810] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
 [   24.580841] mmc1: req done (CMD55): -110:   
 
 [   24.582641] mmc1: starting CMD55 arg  flags 00f5
 [   24.582672] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD55, argument 0x
 [   24.583007] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
 [   24.583007] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
 [   24.583038] mmc1: req done (CMD55): -110:   
 
 [   24.584899] mmc1: starting CMD55 arg 

Question about omap_hsmmc driver

2010-01-05 Thread Enric Balletbò i Serra
Hi all,

I'm having problems trying to run the SDIO WLAN module on my IGEP v2
board using the latest omap kernel (2.6.33-rc2). The SDIO WLAN module
is connected to the MMC2 using 4 wires. With an older kernel ( 2.6.28
) works fine but the same configuration with 2.6.33-rc2 do not detect
the SDIO card.

Any idea to solve the problem ? There is a substantial modification in
this driver. Any help will be appreciated. I attached the log.

Thanks in advance,
   Enric


[   24.521484] mmci-omap-hs mmci-omap-hs.1: DISABLED - ENABLED
[   24.522003] mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
[   24.522033] mmci-omap-hs mmci-omap-hs.1: ENABLED - DISABLED
[   24.522308] mmci-omap-hs mmci-omap-hs.1: DISABLED - ENABLED
[   24.522338] mmc1: clock 0Hz busmode 1 powermode 1 cs 0 Vdd 65535
width 0 timing 0
[   24.545104] mmc1: clock 40Hz busmode 1 powermode 2 cs 0 Vdd
65535 width 0 timing 0
[   24.568298] mmc1: clock 40Hz busmode 1 powermode 2 cs 1 Vdd
65535 width 0 timing 0
[   24.569335] mmc1: starting CMD0 arg  flags 00c0
[   24.569366] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD0, argument 0x
[   24.569519] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 1
[   24.569549] mmc1: req done (CMD0): 0:    
[   24.572540] mmc1: clock 40Hz busmode 1 powermode 2 cs 0 Vdd
65535 width 0 timing 0
[   24.573547] mmc1: starting CMD8 arg 00aa flags 02f5
[   24.573577] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD8, argument 0x00aa
[   24.573913] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.573913] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.573944] mmc1: req done (CMD8): -110:    
[   24.575744] mmc1: starting CMD5 arg  flags 02e1
[   24.575775] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD5, argument 0x
[   24.576110] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.576141] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.576171] mmc1: req failed (CMD5): -110, retrying...
[   24.576171] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD5, argument 0x
[   24.576507] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.576538] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.576568] mmc1: req failed (CMD5): -110, retrying...
[   24.576568] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD5, argument 0x
[   24.576904] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.576934] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.576934] mmc1: req failed (CMD5): -110, retrying...
[   24.576965] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD5, argument 0x
[   24.577301] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.577331] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.577331] mmc1: req done (CMD5): -110:    
[   24.578247] mmc1: starting CMD55 arg  flags 00f5
[   24.578247] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD55, argument 0x
[   24.578582] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.578613] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.578643] mmc1: req done (CMD55): -110:    
[   24.580444] mmc1: starting CMD55 arg  flags 00f5
[   24.580474] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD55, argument 0x
[   24.580810] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.580810] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.580841] mmc1: req done (CMD55): -110:    
[   24.582641] mmc1: starting CMD55 arg  flags 00f5
[   24.582672] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD55, argument 0x
[   24.583007] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.583007] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.583038] mmc1: req done (CMD55): -110:    
[   24.584899] mmc1: starting CMD55 arg  flags 00f5
[   24.584899] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD55, argument 0x
[   24.585235] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.585266] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.585296] mmc1: req done (CMD55): -110:    
[   24.587097] mmc1: starting CMD1 arg  flags 00e1
[   24.587097] mmci-omap-hs mmci-omap-hs.1: mmc1: CMD1, argument 0x
[   24.587432] mmci-omap-hs mmci-omap-hs.1: IRQ Status is 18000
[   24.587463] mmci-omap-hs mmci-omap-hs.1: MMC IRQ 0x18000 : ERRI CTO
[   24.587493] mmc1: req done (CMD1): -110:    
[   24.589294] mmc1: clock 0Hz busmode 1 powermode 0 cs 0 Vdd 0 width 0 timing 0
[   24.623962] mmci-omap-hs mmci-omap-hs.1: ENABLED - DISABLED
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  

Re: [PATCH (for-next)] ASoC: Add support for IGEP v2

2009-11-18 Thread Enric Balletbò i Serra
 This part isn't relevant to ASoC. Shouldn't it go separately through 
 linux-omap?

 It could possibly get folded into the patch adding this board support in the
 first place.

 - Anand

Oops, sorry is a mistake I will resend the patch without this.

Thanks,

Enric

2009/11/18 Gadiyar, Anand gadi...@ti.com:
 Mike Rapoport wrote:
 Enric Balletbo i Serra wrote:
  From: Enric Balletbo i Serra eballe...@iseebcn.com
 
 
  Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
  ---
   arch/arm/mach-omap2/Kconfig |    2 +-
   sound/soc/omap/Kconfig      |    7 ++
   sound/soc/omap/Makefile     |    2 +
   sound/soc/omap/igep0020.c   |  148 
  +++
   4 files changed, 158 insertions(+), 1 deletions(-)
   create mode 100644 sound/soc/omap/igep0020.c
 
  diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
  index 68866f3..6922198 100644
  --- a/arch/arm/mach-omap2/Kconfig
  +++ b/arch/arm/mach-omap2/Kconfig
  @@ -114,7 +114,7 @@ config MACH_OMAP_3630SDP
      depends on ARCH_OMAP3  ARCH_OMAP34XX
 
   config MACH_IGEP0020
  -   bool IGEP0020
  +   bool IGEP v2 board
      depends on ARCH_OMAP3  ARCH_OMAP34XX
 
   config MACH_OMAP_4430SDP




--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Doubts around SoC audio on omap3

2009-11-16 Thread Enric Balletbò i Serra
Hi all,

I would like to add support for SoC audio on the IGEP v2 board but I
have some doubts about how to do. As I have seen in the source code,
the SoC driver for IGEP should be the same as omap3evm, overo and
cm-t35.

So, is better to use the solution adopted by the board CM-T35 or add a
specific file for the board IGEP like omap3evm board ?

Is there any difference between the omap3evm driver and the overo driver ?

Thanks in advance,

Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


Re: [PATCH] ARM: OMAP3: Add support for the IGEP v2 board (rev B)

2009-10-14 Thread Enric Balletbò i Serra
Ok, I will resubmit in few minuts

Thanks,

  Enric

2009/10/13 Tony Lindgren t...@atomide.com:
 * Enric Balletbò i Serra eballe...@gmail.com [091009 09:18]:
   This patch adds minimal IGEP v2 support.

 Can you please move the defconfig into a separate patch
 when you resubmit? It makes it easier for people to read
 the patch.

 Regards,

 Tony

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH 1/2] ARM: OMAP3: Add support for the IGEP v2 board (rev B)

2009-10-14 Thread Enric Balletbò i Serra
This patch adds minimal IGEP v2 support.

The IGEP v2 board is a low-cost, fan-less and industrial temperature
range single board computer that unleashes laptop-like performance and
expandability without the bulk, expense, or noise of typical desktop
machines. Its architecture shares much in common with other OMAP3 boards.

Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
---
 arch/arm/mach-omap2/Kconfig  |4 +
 arch/arm/mach-omap2/Makefile |2 +
 arch/arm/mach-omap2/board-igep0020.c |  252 ++
 3 files changed, 258 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/mach-omap2/board-igep0020.c

diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
index 75b1c7e..9936510 100644
--- a/arch/arm/mach-omap2/Kconfig
+++ b/arch/arm/mach-omap2/Kconfig
@@ -85,6 +85,10 @@ config MACH_OMAP_ZOOM2
bool OMAP3 Zoom2 board
depends on ARCH_OMAP3  ARCH_OMAP34XX

+config MACH_IGEP0020
+   bool IGEP0020
+   depends on ARCH_OMAP3  ARCH_OMAP34XX
+
 config MACH_OMAP_4430SDP
bool OMAP 4430 SDP board
depends on ARCH_OMAP4
diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
index 6b7702f..df0bdc4 100644
--- a/arch/arm/mach-omap2/Makefile
+++ b/arch/arm/mach-omap2/Makefile
@@ -74,6 +74,8 @@ obj-$(CONFIG_MACH_NOKIA_RX51) += board-rx51.o \
 obj-$(CONFIG_MACH_OMAP_ZOOM2)  += board-zoom2.o \
   mmc-twl4030.o \
   board-zoom-debugboard.o
+obj-$(CONFIG_MACH_IGEP0020)+= board-igep0020.o \
+  mmc-twl4030.o \

 obj-$(CONFIG_MACH_OMAP_4430SDP)+= board-4430sdp.o

diff --git a/arch/arm/mach-omap2/board-igep0020.c
b/arch/arm/mach-omap2/board-igep0020.c
new file mode 100644
index 000..15175e0
--- /dev/null
+++ b/arch/arm/mach-omap2/board-igep0020.c
@@ -0,0 +1,252 @@
+/*
+ * Copyright (C) 2009 Integration Software and Electronic Engineering.
+ *
+ * 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/delay.h
+#include linux/platform_device.h
+#include linux/input.h
+#include linux/gpio.h
+#include linux/i2c/twl4030.h
+#include linux/regulator/machine.h
+
+#include asm/mach-types.h
+#include asm/mach/arch.h
+
+#include mach/common.h
+#include mach/gpmc.h
+#include mach/onenand.h
+#include mach/usb.h
+
+#include mmc-twl4030.h
+
+#define IGEP2_SMSC911X_CS   5
+#define IGEP2_SMSC911X_GPIO 176
+#define IGEP2_GPIO_LED_0_RED   26
+#define IGEP2_GPIO_LED_0_GREEN 27
+#define IGEP2_GPIO_LED_1_RED   28
+
+#if defined(CONFIG_SMSC911X) || defined(CONFIG_SMSC911X_MODULE)
+
+#include linux/smsc911x.h
+
+static struct resource igep2_smsc911x_resources[] = {
+   {
+   .name   = smsc911x-memory,
+   .flags  = IORESOURCE_MEM,
+   },
+   {
+   .flags  = IORESOURCE_IRQ | IORESOURCE_IRQ_LOWLEVEL,
+   },
+};
+
+static struct smsc911x_platform_config igep2_smsc911x_config = {
+   .irq_polarity   = SMSC911X_IRQ_POLARITY_ACTIVE_LOW,
+   .irq_type   = SMSC911X_IRQ_TYPE_OPEN_DRAIN,
+   .flags  = SMSC911X_USE_32BIT ,
+   .phy_interface  = PHY_INTERFACE_MODE_MII,
+};
+
+static struct platform_device igep2_smsc911x_device = {
+   .name   = smsc911x,
+   .id = -1,
+   .num_resources  = ARRAY_SIZE(igep2_smsc911x_resources),
+   .resource   = igep2_smsc911x_resources,
+   .dev= {
+   .platform_data = igep2_smsc911x_config,
+   },
+};
+
+static inline void __init igep2_init_smsc911x(void)
+{
+   unsigned long cs_mem_base;
+
+   if (gpmc_cs_request(IGEP2_SMSC911X_CS, SZ_16M, cs_mem_base)  0) {
+   pr_warning(igep2_init_smsc911x: 
+  Failed request for GPMC mem\n);
+   gpmc_cs_free(IGEP2_SMSC911X_CS);
+   return;
+   }
+
+   igep2_smsc911x_resources[0].start = cs_mem_base + 0x0;
+   igep2_smsc911x_resources[0].end   = cs_mem_base + 0xff;
+
+   if ((gpio_request(IGEP2_SMSC911X_GPIO, SMSC911X IRQ) == 0) 
+   (gpio_direction_input(IGEP2_SMSC911X_GPIO) == 0)) {
+   gpio_export(IGEP2_SMSC911X_GPIO, 0);
+   } else {
+   pr_warning(igep2_init_smsc911x: 
+  Could not obtain gpio for IRQ\n);
+   return;
+   }
+
+   igep2_smsc911x_resources[1].start = OMAP_GPIO_IRQ(IGEP2_SMSC911X_GPIO);
+   igep2_smsc911x_resources[1].end   = 0;
+
+   platform_device_register(igep2_smsc911x_device);
+}
+
+#else
+
+static inline void __init igep2_init_smsc911x(void) { }
+
+#endif
+
+static struct 

[PATCH 2/2] ARM: OMAP3: IGEP-v2: Add defconfig

2009-10-14 Thread Enric Balletbò i Serra
Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
---
 arch/arm/configs/igep0020_defconfig | 1432 +++
 1 files changed, 1432 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/configs/igep0020_defconfig

diff --git a/arch/arm/configs/igep0020_defconfig
b/arch/arm/configs/igep0020_defconfig
new file mode 100644
index 000..e66dca4
--- /dev/null
+++ b/arch/arm/configs/igep0020_defconfig
@@ -0,0 +1,1432 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.32-rc4
+# Tue Oct 13 12:53:15 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0x
+CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED=anticipatory
+# CONFIG_FREEZER is not set
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_W90X900 is not set
+# CONFIG_ARCH_PNX4008 is not set
+# CONFIG_ARCH_PXA is not set
+# CONFIG_ARCH_MSM is not set
+# CONFIG_ARCH_RPC is not set
+# CONFIG_ARCH_SA1100 is not set
+# CONFIG_ARCH_S3C2410 is not set
+# CONFIG_ARCH_S3C64XX is not set

Re: [PATCH] ARM: OMAP3: Add support for the IGEP v2 board (rev B)

2009-10-13 Thread Enric Balletbò i Serra
Hello Nishanth,

Thanks for your feedback, I'll forward the patch correcting some things

2009/10/10 Nishanth Menon n...@ti.com:

 could you add more details on where do we get more data on this platform?

More details will be in new patch and you can get more information here:

   www.igep-platform.com

Regards,

   Enric

2009/10/10 Nishanth Menon n...@ti.com:
 Hi,
 Thanks for the patch.. a few minor comments follow from a read through..

 Enric Balletbò i Serra had written, on 10/09/2009 10:59 AM, the following:

  This patch adds minimal IGEP v2 support.

 could you add more details on where do we get more data on this platform?


 Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
 ---
  arch/arm/configs/igep0020_defconfig  | 1443
 ++
  arch/arm/mach-omap2/Kconfig          |    4 +
  arch/arm/mach-omap2/Makefile         |    2 +
  arch/arm/mach-omap2/board-igep0020.c |  239 ++
  4 files changed, 1688 insertions(+), 0 deletions(-)
  create mode 100644 arch/arm/configs/igep0020_defconfig
  create mode 100644 arch/arm/mach-omap2/board-igep0020.c

 [...]

 --- /dev/null
 +++ b/arch/arm/mach-omap2/board-igep0020.c
 @@ -0,0 +1,239 @@
 +/*

 [..]

 +static inline void __init igep2_init_smsc911x(void)
 +{
 +       unsigned long cs_mem_base;
 +
 +       if (gpmc_cs_request(IGEP2_SMSC911X_CS, SZ_16M, cs_mem_base)  0)
 {
 +               printk(KERN_ERR Failed request for GPMC mem for
 smsc911x\n);
 +               return;
 +       }
 +
 +       igep2_smsc911x_resources[0].start = cs_mem_base + 0x0;
 +       igep2_smsc911x_resources[0].end   = cs_mem_base + 0xff;
 +
 +       if ((gpio_request(IGEP2_SMSC911X_GPIO, SMSC911X IRQ) == 0) 
 +           (gpio_direction_input(IGEP2_SMSC911X_GPIO) == 0)) {
 +               gpio_export(IGEP2_SMSC911X_GPIO, 0);
 +       } else {

 could you run scripts/checkpatch --strict ../patchName after generating the
 patch with git format-patch -s -M -o .. -1 ? one liners dont usually need a
 {} also there are few warning inducing code below..

 +               printk(KERN_ERR could not obtain gpio for SMSC911X
 IRQ\n);

 probably dumb question: should'nt we be moving to pr_err and family instead
 of printks?

 further, if this does not work.. are'nt you supposed to release the cs?
 gpmc_cs_free perhaps?

 +               return;
 +       }
 +
 +       igep2_smsc911x_resources[1].start =
 OMAP_GPIO_IRQ(IGEP2_SMSC911X_GPIO);
 +       igep2_smsc911x_resources[1].end   = 0;
 +
 +       platform_device_register(igep2_smsc911x_device);
 +}
 +
 +#else
 +
 +static inline void __init igep2_init_smsc911x(void) { }
 +
 +#endif
 +

 [..]

 +               .flags          = I2C_CLIENT_WAKE,
 +               .irq            = INT_34XX_SYS_NIRQ,
 +               .platform_data  = igep2_twldata,
 +       },
 +};
 +
 +static int __init igep2_i2c_init(void)
 +{
 +       omap_register_i2c_bus(1, 2600, igep2_i2c_boardinfo,
 +                       ARRAY_SIZE(igep2_i2c_boardinfo));

 you may want to step down to 2400
 http://marc.info/?l=linux-omapm=125510664919890w=2 if you are using
 26Mhz.. if you are using twl5030..

 +       omap_register_i2c_bus(3, 400, NULL, 0);
 +       return 0;
 +}
 +
 +static void __init igep2_init(void)
 +{
 +       igep2_i2c_init();
 +       omap_serial_init();
 +       usb_musb_init();
 +
 +       igep2_init_smsc911x();
 +
 +       /* GPIO userspace leds */
 +       if ((gpio_request(IGEP2_GPIO_LED_0_RED, GPIO_LED_0_RED) == 0) 
 (gpio_direction_output(IGEP2_GPIO_LED_0_RED, 1) == 0)) {
 +               gpio_export(IGEP2_GPIO_LED_0_RED, 1);
 +       } else {
 +               printk(KERN_ERR could not obtain gpio for 
 GPIO_LED_0_RED\n);

 do you really want to flag a an error for a led glow?

 +       }
 +       if ((gpio_request(IGEP2_GPIO_LED_0_GREEN, GPIO_LED_0_GREEN) ==
 0)
  (gpio_direction_output(IGEP2_GPIO_LED_0_GREEN, 1) == 0)) {
 +               gpio_export(IGEP2_GPIO_LED_0_GREEN, 1);
 +       } else {
 +               printk(KERN_ERR could not obtain gpio for 
 GPIO_LED_0_GREEN\n);
 +       }
 +       if ((gpio_request(IGEP2_GPIO_LED_1_RED, GPIO_LED_1_RED) == 0) 
 (gpio_direction_output(IGEP2_GPIO_LED_1_RED, 1) == 0)) {

 here is a an long line?
 [...]
 --
 Regards,
 Nishanth Menon

--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH v2] ARM: OMAP3: Add support for the IGEP v2 board (rev B)

2009-10-13 Thread Enric Balletbò i Serra
This patch adds minimal IGEP v2 support.

The IGEP v2 board is a low-cost, fan-less and industrial temperature
range single board computer that unleashes laptop-like performance and
expandability without the bulk, expense, or noise of typical desktop
machines. Its architecture shares much in common with other OMAP3 boards.

Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
---
 arch/arm/configs/igep0020_defconfig  | 1432 ++
 arch/arm/mach-omap2/Kconfig  |4 +
 arch/arm/mach-omap2/Makefile |2 +
 arch/arm/mach-omap2/board-igep0020.c |  252 ++
 4 files changed, 1690 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/configs/igep0020_defconfig
 create mode 100644 arch/arm/mach-omap2/board-igep0020.c

diff --git a/arch/arm/configs/igep0020_defconfig
b/arch/arm/configs/igep0020_defconfig
new file mode 100644
index 000..e66dca4
--- /dev/null
+++ b/arch/arm/configs/igep0020_defconfig
@@ -0,0 +1,1432 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.32-rc4
+# Tue Oct 13 12:53:15 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0x
+CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED=anticipatory
+# CONFIG_FREEZER is not set
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is 

How to add suport for new ARM board IGEP0020

2009-10-09 Thread Enric Balletbò i Serra
Hi all,

  I'm a newbie and I have some questions. What is the procedure to
publish our patches to add support for a new OMAP3 based board ? Can I
send the patches to this list ?

  Thanks in advance,

 Enric
--
To unsubscribe from this list: send the line unsubscribe linux-omap in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html


[PATCH] ARM: OMAP3: Add support for the IGEP v2 board (rev B)

2009-10-09 Thread Enric Balletbò i Serra
  This patch adds minimal IGEP v2 support.

Signed-off-by: Enric Balletbo i Serra eballe...@iseebcn.com
---
 arch/arm/configs/igep0020_defconfig  | 1443 ++
 arch/arm/mach-omap2/Kconfig  |4 +
 arch/arm/mach-omap2/Makefile |2 +
 arch/arm/mach-omap2/board-igep0020.c |  239 ++
 4 files changed, 1688 insertions(+), 0 deletions(-)
 create mode 100644 arch/arm/configs/igep0020_defconfig
 create mode 100644 arch/arm/mach-omap2/board-igep0020.c

diff --git a/arch/arm/configs/igep0020_defconfig
b/arch/arm/configs/igep0020_defconfig
new file mode 100644
index 000..639920d
--- /dev/null
+++ b/arch/arm/configs/igep0020_defconfig
@@ -0,0 +1,1443 @@
+#
+# Automatically generated make config: don't edit
+# Linux kernel version: 2.6.32-rc3
+# Fri Oct  9 16:01:26 2009
+#
+CONFIG_ARM=y
+CONFIG_SYS_SUPPORTS_APM_EMULATION=y
+CONFIG_GENERIC_GPIO=y
+CONFIG_GENERIC_TIME=y
+CONFIG_GENERIC_CLOCKEVENTS=y
+CONFIG_GENERIC_HARDIRQS=y
+CONFIG_STACKTRACE_SUPPORT=y
+CONFIG_HAVE_LATENCYTOP_SUPPORT=y
+CONFIG_LOCKDEP_SUPPORT=y
+CONFIG_TRACE_IRQFLAGS_SUPPORT=y
+CONFIG_HARDIRQS_SW_RESEND=y
+CONFIG_GENERIC_IRQ_PROBE=y
+CONFIG_RWSEM_GENERIC_SPINLOCK=y
+CONFIG_ARCH_HAS_CPUFREQ=y
+CONFIG_GENERIC_HWEIGHT=y
+CONFIG_GENERIC_CALIBRATE_DELAY=y
+CONFIG_GENERIC_HARDIRQS_NO__DO_IRQ=y
+CONFIG_VECTORS_BASE=0x
+CONFIG_DEFCONFIG_LIST=/lib/modules/$UNAME_RELEASE/.config
+CONFIG_CONSTRUCTORS=y
+
+#
+# General setup
+#
+CONFIG_EXPERIMENTAL=y
+CONFIG_BROKEN_ON_SMP=y
+CONFIG_INIT_ENV_ARG_LIMIT=32
+CONFIG_LOCALVERSION=
+# CONFIG_LOCALVERSION_AUTO is not set
+CONFIG_SWAP=y
+CONFIG_SYSVIPC=y
+CONFIG_SYSVIPC_SYSCTL=y
+# CONFIG_POSIX_MQUEUE is not set
+CONFIG_BSD_PROCESS_ACCT=y
+# CONFIG_BSD_PROCESS_ACCT_V3 is not set
+# CONFIG_TASKSTATS is not set
+# CONFIG_AUDIT is not set
+
+#
+# RCU Subsystem
+#
+CONFIG_TREE_RCU=y
+# CONFIG_TREE_PREEMPT_RCU is not set
+# CONFIG_RCU_TRACE is not set
+CONFIG_RCU_FANOUT=32
+# CONFIG_RCU_FANOUT_EXACT is not set
+# CONFIG_TREE_RCU_TRACE is not set
+# CONFIG_IKCONFIG is not set
+CONFIG_LOG_BUF_SHIFT=17
+CONFIG_GROUP_SCHED=y
+CONFIG_FAIR_GROUP_SCHED=y
+# CONFIG_RT_GROUP_SCHED is not set
+CONFIG_USER_SCHED=y
+# CONFIG_CGROUP_SCHED is not set
+# CONFIG_CGROUPS is not set
+# CONFIG_SYSFS_DEPRECATED_V2 is not set
+# CONFIG_RELAY is not set
+# CONFIG_NAMESPACES is not set
+CONFIG_BLK_DEV_INITRD=y
+CONFIG_INITRAMFS_SOURCE=
+CONFIG_RD_GZIP=y
+# CONFIG_RD_BZIP2 is not set
+# CONFIG_RD_LZMA is not set
+CONFIG_CC_OPTIMIZE_FOR_SIZE=y
+CONFIG_SYSCTL=y
+CONFIG_ANON_INODES=y
+CONFIG_EMBEDDED=y
+CONFIG_UID16=y
+# CONFIG_SYSCTL_SYSCALL is not set
+CONFIG_KALLSYMS=y
+# CONFIG_KALLSYMS_ALL is not set
+CONFIG_KALLSYMS_EXTRA_PASS=y
+CONFIG_HOTPLUG=y
+CONFIG_PRINTK=y
+CONFIG_BUG=y
+CONFIG_ELF_CORE=y
+CONFIG_BASE_FULL=y
+CONFIG_FUTEX=y
+CONFIG_EPOLL=y
+CONFIG_SIGNALFD=y
+CONFIG_TIMERFD=y
+CONFIG_EVENTFD=y
+CONFIG_SHMEM=y
+CONFIG_AIO=y
+
+#
+# Kernel Performance Events And Counters
+#
+CONFIG_VM_EVENT_COUNTERS=y
+CONFIG_COMPAT_BRK=y
+CONFIG_SLAB=y
+# CONFIG_SLUB is not set
+# CONFIG_SLOB is not set
+# CONFIG_PROFILING is not set
+CONFIG_HAVE_OPROFILE=y
+# CONFIG_KPROBES is not set
+CONFIG_HAVE_KPROBES=y
+CONFIG_HAVE_KRETPROBES=y
+CONFIG_HAVE_CLK=y
+
+#
+# GCOV-based kernel profiling
+#
+# CONFIG_SLOW_WORK is not set
+CONFIG_HAVE_GENERIC_DMA_COHERENT=y
+CONFIG_SLABINFO=y
+CONFIG_RT_MUTEXES=y
+CONFIG_BASE_SMALL=0
+CONFIG_MODULES=y
+# CONFIG_MODULE_FORCE_LOAD is not set
+CONFIG_MODULE_UNLOAD=y
+# CONFIG_MODULE_FORCE_UNLOAD is not set
+CONFIG_MODVERSIONS=y
+CONFIG_MODULE_SRCVERSION_ALL=y
+CONFIG_BLOCK=y
+CONFIG_LBDAF=y
+# CONFIG_BLK_DEV_BSG is not set
+# CONFIG_BLK_DEV_INTEGRITY is not set
+
+#
+# IO Schedulers
+#
+CONFIG_IOSCHED_NOOP=y
+CONFIG_IOSCHED_AS=y
+CONFIG_IOSCHED_DEADLINE=y
+CONFIG_IOSCHED_CFQ=y
+CONFIG_DEFAULT_AS=y
+# CONFIG_DEFAULT_DEADLINE is not set
+# CONFIG_DEFAULT_CFQ is not set
+# CONFIG_DEFAULT_NOOP is not set
+CONFIG_DEFAULT_IOSCHED=anticipatory
+CONFIG_FREEZER=y
+
+#
+# System Type
+#
+CONFIG_MMU=y
+# CONFIG_ARCH_AAEC2000 is not set
+# CONFIG_ARCH_INTEGRATOR is not set
+# CONFIG_ARCH_REALVIEW is not set
+# CONFIG_ARCH_VERSATILE is not set
+# CONFIG_ARCH_AT91 is not set
+# CONFIG_ARCH_CLPS711X is not set
+# CONFIG_ARCH_GEMINI is not set
+# CONFIG_ARCH_EBSA110 is not set
+# CONFIG_ARCH_EP93XX is not set
+# CONFIG_ARCH_FOOTBRIDGE is not set
+# CONFIG_ARCH_MXC is not set
+# CONFIG_ARCH_STMP3XXX is not set
+# CONFIG_ARCH_NETX is not set
+# CONFIG_ARCH_H720X is not set
+# CONFIG_ARCH_NOMADIK is not set
+# CONFIG_ARCH_IOP13XX is not set
+# CONFIG_ARCH_IOP32X is not set
+# CONFIG_ARCH_IOP33X is not set
+# CONFIG_ARCH_IXP23XX is not set
+# CONFIG_ARCH_IXP2000 is not set
+# CONFIG_ARCH_IXP4XX is not set
+# CONFIG_ARCH_L7200 is not set
+# CONFIG_ARCH_KIRKWOOD is not set
+# CONFIG_ARCH_LOKI is not set
+# CONFIG_ARCH_MV78XX0 is not set
+# CONFIG_ARCH_ORION5X is not set
+# CONFIG_ARCH_MMP is not set
+# CONFIG_ARCH_KS8695 is not set
+# CONFIG_ARCH_NS9XXX is not set
+# CONFIG_ARCH_W90X900