linux-omap.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Vladimir Pantelic <vladoman@gmail.com>
To: Oleg Drokin <green@linuxhacker.ru>
Cc: Abimanyu Gottumukkala <me@abimanyu.in>, linux-omap@vger.kernel.org
Subject: Re: [PATCH 1/2] Initial B&N Nook Color (encore) support.
Date: Tue, 03 May 2011 13:08:38 +0200	[thread overview]
Message-ID: <4DBFE236.1000702@gmail.com> (raw)
In-Reply-To: <9405B4F1-479C-4724-B617-37FB15BB300C@linuxhacker.ru>

Oleg Drokin wrote:
> Hello!
>
>    Is there any special support needed for 3621, though?
>    My understanding is that's just 3630 without a "phone" part?

3621 is more or less a 3630 in a different package, less pins,
0.5mm ball pitch and no PoP option.

>    The .29 kernel they had only added is_omap3621 stuff that's not
>    called anywhere, but smartreflex code (I guess that's might be
>    useful to add too of course).
>
>    I know about the new code drop is coming, but I don't
>    expect there to be any basic stuff changes (and this board file
>    is coming pretty barebones right now), besides I am not so
>    optimistic to actually expect this patch to be merged right away,
>    but I am already gathering valuable feedback. ;)
>
>    BTW I saw in the archives that you are also working a port,
>    do you have your tree hosted anywhere?
>
> Bye,
>      Oleg
> On Apr 28, 2011, at 7:34 PM, Abimanyu Gottumukkala wrote:
>
>>  Hi,
>>
>>  Nook color has Ti OMAP 3621. 3621 CPU Support is not available in
>>  current kernel, adding CPU support will be nice before board.
>>  BN is set to release new source code in few days, taking new code as
>>  porting base is also recommended.
>>
>>  Regards,
>>  Abimanyu G
>>
>>  On Thu, Apr 28, 2011 at 9:27 PM,<green@linuxhacker.ru>  wrote:
>>>  From: Oleg Drokin<green@linuxhacker.ru>
>>>
>>>  Bare-bones board file, comes with serial console, gpio keys,
>>>  MMC/SDCard and USB support.
>>>  ---
>>>   arch/arm/mach-omap2/Kconfig                  |    5 +
>>>   arch/arm/mach-omap2/Makefile                 |    2 +
>>>   arch/arm/mach-omap2/board-omap3encore.c      |  380 ++++++++++++++++++++++++++
>>>   arch/arm/plat-omap/include/plat/uncompress.h |    1 +
>>>   arch/arm/tools/mach-types                    |    2 +-
>>>   5 files changed, 389 insertions(+), 1 deletions(-)
>>>   create mode 100644 arch/arm/mach-omap2/board-omap3encore.c
>>>
>>>  diff --git a/arch/arm/mach-omap2/Kconfig b/arch/arm/mach-omap2/Kconfig
>>>  index b997a35..5370561 100644
>>>  --- a/arch/arm/mach-omap2/Kconfig
>>>  +++ b/arch/arm/mach-omap2/Kconfig
>>>  @@ -173,6 +173,11 @@ config MACH_OMAP3_TORPEDO
>>>          for full description please see the products webpage at
>>>          http://www.logicpd.com/products/development-kits/zoom-omap35x-torpedo-development-kit
>>>
>>>  +config MACH_ENCORE
>>>  +        bool "Barnes&  Noble Encore (Nook Color)"
>>>  +        depends on ARCH_OMAP3
>>>  +        select OMAP_PACKAGE_CBP
>>>  +
>>>   config MACH_OVERO
>>>         bool "Gumstix Overo board"
>>>         depends on ARCH_OMAP3
>>>  diff --git a/arch/arm/mach-omap2/Makefile b/arch/arm/mach-omap2/Makefile
>>>  index 512b152..b894777 100644
>>>  --- a/arch/arm/mach-omap2/Makefile
>>>  +++ b/arch/arm/mach-omap2/Makefile
>>>  @@ -189,6 +189,8 @@ obj-$(CONFIG_MACH_OMAP3530_LV_SOM)      += board-omap3logic.o \
>>>                                            hsmmc.o
>>>   obj-$(CONFIG_MACH_OMAP3_TORPEDO)        += board-omap3logic.o \
>>>                                            hsmmc.o
>>>  +obj-$(CONFIG_MACH_ENCORE)              += board-omap3encore.o \
>>>  +                                          hsmmc.o
>>>   obj-$(CONFIG_MACH_OVERO)               += board-overo.o \
>>>                                            hsmmc.o
>>>   obj-$(CONFIG_MACH_OMAP3EVM)            += board-omap3evm.o \
>>>  diff --git a/arch/arm/mach-omap2/board-omap3encore.c b/arch/arm/mach-omap2/board-omap3encore.c
>>>  new file mode 100644
>>>  index 0000000..c7bf8de
>>>  --- /dev/null
>>>  +++ b/arch/arm/mach-omap2/board-omap3encore.c
>>>  @@ -0,0 +1,380 @@
>>>  +/*
>>>  + *
>>>  + * Copyright (C) 2008 Texas Instruments Inc.
>>>  + * Vikram Pandita<vikram.pandita@ti.com>
>>>  + *
>>>  + * Modified from mach-omap2/board-ldp.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.
>>>  + *
>>>  + * April 2011 Oleg Drokin<green@linuxhacker.ru>  - Port to 2.6.39
>>>  + *
>>>  + */
>>>  +
>>>  +#include<linux/kernel.h>
>>>  +#include<linux/platform_device.h>
>>>  +#include<linux/gpio_keys.h>
>>>  +#include<linux/err.h>
>>>  +
>>>  +#include<linux/spi/spi.h>
>>>  +#include<linux/i2c/twl.h>
>>>  +#include<linux/regulator/machine.h>
>>>  +#include<linux/regulator/fixed.h>
>>>  +#include<mach/hardware.h>
>>>  +#include<asm/mach-types.h>
>>>  +#include<asm/mach/arch.h>
>>>  +
>>>  +#include<mach/gpio.h>
>>>  +#include<plat/board.h>
>>>  +#include<plat/common.h>
>>>  +#include<plat/usb.h>
>>>  +#include<plat/mux.h>
>>>  +#include<plat/sram.h>
>>>  +#include<plat/mmc.h>
>>>  +#include<plat/omap-serial.h>
>>>  +#include<plat/system.h>
>>>  +
>>>  +#include "mux.h"
>>>  +#include "hsmmc.h"
>>>  +#include "sdram-hynix-h8mbx00u0mer-0em.h"
>>>  +
>>>  +/* Encore-specific device-info and i2c addresses. */
>>>  +/* Battery, bus 1 */
>>>  +#define MAX17042_I2C_SLAVE_ADDRESS     0x36
>>>  +#define MAX17042_GPIO_FOR_IRQ          100
>>>  +
>>>  +/*addition of MAXIM8903/TI GPIO mapping WRT schematics */
>>>  +#define MAX8903_UOK_GPIO_FOR_IRQ       115
>>>  +#define MAX8903_DOK_GPIO_FOR_IRQ       114
>>>  +#define MAX8903_GPIO_CHG_EN            110
>>>  +#define MAX8903_GPIO_CHG_STATUS                111
>>>  +#define MAX8903_GPIO_CHG_FLT           101
>>>  +#define MAX8903_GPIO_CHG_IUSB          102
>>>  +#define MAX8903_GPIO_CHG_USUS          104
>>>  +#define MAX8903_GPIO_CHG_ILM           61
>>>  +
>>>  +/* TI WLAN */
>>>  +#define ENCORE_WIFI_PMENA_GPIO         22
>>>  +#define ENCORE_WIFI_IRQ_GPIO           15
>>>  +#define ENCORE_WIFI_EN_POW             16
>>>  +
>>>  +/* Accelerometer i2c bus 1*/
>>>  +#define KXTF9_I2C_SLAVE_ADDRESS                0x0F
>>>  +#define KXTF9_GPIO_FOR_PWR             34
>>>  +#define KXTF9_GPIO_FOR_IRQ             113
>>>  +
>>>  +/* Touch screen i2c bus 2*/
>>>  +#define CYTTSP_I2C_SLAVEADDRESS                34
>>>  +#define ENCORE_CYTTSP_GPIO             99
>>>  +#define ENCORE_CYTTSP_RESET_GPIO       46
>>>  +
>>>  +/* Audio codec, i2c bus 2 */
>>>  +#define AUDIO_CODEC_POWER_ENABLE_GPIO  103
>>>  +#define AUDIO_CODEC_RESET_GPIO         37
>>>  +#define AUDIO_CODEC_IRQ_GPIO           59
>>>  +#define AIC3100_I2CSLAVEADDRESS                0x18
>>>  +
>>>  +
>>>  +/* Different HW revisions */
>>>  +#define BOARD_ENCORE_REV_EVT1A         0x1
>>>  +#define BOARD_ENCORE_REV_EVT1B         0x2
>>>  +#define BOARD_ENCORE_REV_EVT2          0x3
>>>  +#define BOARD_ENCORE_REV_DVT           0x4
>>>  +#define BOARD_ENCORE_REV_PVT           0x5
>>>  +#define BOARD_ENCORE_REV_UNKNOWN       0x6
>>>  +
>>>  +static inline int is_encore_board_evt2(void)
>>>  +{
>>>  +    return (system_rev>= BOARD_ENCORE_REV_EVT2);
>>>  +}
>>>  +
>>>  +static inline int is_encore_board_evt1b(void)
>>>  +{
>>>  +    return (system_rev == BOARD_ENCORE_REV_EVT1B);
>>>  +}
>>>  +
>>>  +static int encore_twl4030_keymap[] = {
>>>  +       KEY(0, 0, KEY_HOME),
>>>  +       KEY(0, 1, KEY_VOLUMEUP),
>>>  +       KEY(0, 2, KEY_VOLUMEDOWN),
>>>  +       0
>>>  +};
>>>  +
>>>  +static struct matrix_keymap_data encore_twl4030_keymap_data = {
>>>  +       .keymap                 = encore_twl4030_keymap,
>>>  +       .keymap_size    = ARRAY_SIZE(encore_twl4030_keymap),
>>>  +};
>>>  +
>>>  +static struct twl4030_keypad_data encore_kp_twl4030_data = {
>>>  +       .rows                   = 8,
>>>  +       .cols                   = 8,
>>>  +       .keymap_data            =&encore_twl4030_keymap_data,
>>>  +       .rep                    = 1,
>>>  +};
>>>  +
>>>  +/* HOME key code for HW>  EVT2A */
>>>  +static struct gpio_keys_button encore_gpio_buttons[] = {
>>>  +       {
>>>  +               .code                   = KEY_POWER,
>>>  +               .gpio                   = 14,
>>>  +               .desc                   = "POWER",
>>>  +               .active_low             = 0,
>>>  +               .wakeup                 = 1,
>>>  +       },
>>>  +       {
>>>  +               .code                   = KEY_HOME,
>>>  +               .gpio                   = 48,
>>>  +               .desc                   = "HOME",
>>>  +               .active_low             = 1,
>>>  +               .wakeup                 = 1,
>>>  +       },
>>>  +};
>>>  +
>>>  +static struct gpio_keys_platform_data encore_gpio_key_info = {
>>>  +       .buttons        = encore_gpio_buttons,
>>>  +       .nbuttons       = ARRAY_SIZE(encore_gpio_buttons),
>>>  +};
>>>  +
>>>  +static struct platform_device encore_keys_gpio = {
>>>  +       .name   = "gpio-keys",
>>>  +       .id     = -1,
>>>  +       .dev    = {
>>>  +               .platform_data  =&encore_gpio_key_info,
>>>  +       },
>>>  +};
>>>  +
>>>  +static struct platform_device *encore_devices[] __initdata = {
>>>  +&encore_keys_gpio,
>>>  +};
>>>  +
>>>  +static void __init omap_encore_init_early(void)
>>>  +{
>>>  +       omap2_init_common_infrastructure();
>>>  +       omap2_init_common_devices(h8mbx00u0mer0em_sdrc_params,
>>>  +                                 h8mbx00u0mer0em_sdrc_params);
>>>  +}
>>>  +
>>>  +static struct twl4030_usb_data encore_usb_data = {
>>>  +      .usb_mode        = T2_USB_MODE_ULPI,
>>>  +};
>>>  +
>>>  +static struct regulator_consumer_supply encore_vmmc1_supply = {
>>>  +       .supply         = "vmmc",
>>>  +};
>>>  +
>>>  +static struct regulator_consumer_supply encore_vdda_dac_supply =
>>>  +       REGULATOR_SUPPLY("vdda_dac", "omapdss_venc");
>>>  +
>>>  +/* VMMC1 for OMAP VDD_MMC1 (i/o) and MMC1 card */
>>>  +static struct regulator_init_data encore_vmmc1 = {
>>>  +       .constraints = {
>>>  +               .min_uV                 = 1850000,
>>>  +               .max_uV                 = 3150000,
>>>  +               .valid_modes_mask       = REGULATOR_MODE_NORMAL
>>>  +                                       | REGULATOR_MODE_STANDBY,
>>>  +               .valid_ops_mask         = REGULATOR_CHANGE_VOLTAGE
>>>  +                                       | REGULATOR_CHANGE_MODE
>>>  +                                       | REGULATOR_CHANGE_STATUS,
>>>  +       },
>>>  +       .num_consumer_supplies  = 1,
>>>  +       .consumer_supplies      =&encore_vmmc1_supply,
>>>  +};
>>>  +
>>>  +static struct regulator_init_data encore_vdac = {
>>>  +       .constraints = {
>>>  +               .min_uV                 = 1800000,
>>>  +               .max_uV                 = 1800000,
>>>  +               .valid_modes_mask       = REGULATOR_MODE_NORMAL
>>>  +                                       | REGULATOR_MODE_STANDBY,
>>>  +               .valid_ops_mask         = REGULATOR_CHANGE_MODE
>>>  +                                       | REGULATOR_CHANGE_STATUS,
>>>  +       },
>>>  +       .num_consumer_supplies  = 1,
>>>  +       .consumer_supplies      =&encore_vdda_dac_supply,
>>>  +};
>>>  +
>>>  +/* The order is reverted in this table so that internal eMMC is presented
>>>  + * as first mmc card for compatibility with existing installations and
>>>  + * for common sense reasons */
>>>  +static struct omap2_hsmmc_info mmc[] __initdata = {
>>>  +       {
>>>  +               .name           = "internal",
>>>  +               .mmc            = 2,
>>>  +               .caps           = MMC_CAP_4_BIT_DATA | MMC_CAP_8_BIT_DATA,
>>>  +               .gpio_cd        = -EINVAL,
>>>  +               .gpio_wp        = -EINVAL,
>>>  +               .nonremovable   = true,
>>>  +               .power_saving   = true,
>>>  +               .ocr_mask       = MMC_VDD_165_195, /* 1.85V */
>>>  +       },
>>>  +       {
>>>  +               .name           = "external",
>>>  +               .mmc            = 1,
>>>  +               .caps           = MMC_CAP_4_BIT_DATA,
>>>  +               .gpio_cd        = -EINVAL,
>>>  +               .gpio_wp        = -EINVAL,
>>>  +               .power_saving   = true,
>>>  +       },
>>>  +       {
>>>  +               .name           = "internal",
>>>  +               .mmc            = 3,
>>>  +               .caps           = MMC_CAP_4_BIT_DATA,
>>>  +               .gpio_cd        = -EINVAL,
>>>  +               .gpio_wp        = -EINVAL,
>>>  +               .nonremovable   = true,
>>>  +               .power_saving   = true,
>>>  +       },
>>>  +       {}      /* Terminator */
>>>  +};
>>>  +
>>>  +static int encore_hsmmc_card_detect(struct device *dev, int slot)
>>>  +{
>>>  +       struct omap_mmc_platform_data *mmc = dev->platform_data;
>>>  +
>>>  +       /* Encore board EVT2 and later has pin high when card is present) */
>>>  +       return gpio_get_value_cansleep(mmc->slots[0].switch_pin);
>>>  +}
>>>  +
>>>  +static int encore_twl4030_hsmmc_late_init(struct device *dev)
>>>  +{
>>>  +        int ret = 0;
>>>  +        struct platform_device *pdev = container_of(dev,
>>>  +                                struct platform_device, dev);
>>>  +        struct omap_mmc_platform_data *pdata = dev->platform_data;
>>>  +
>>>  +       if(is_encore_board_evt2()) {
>>>  +               /* Setting MMC1 (external) Card detect */
>>>  +               if (pdev->id == 0) {
>>>  +                       pdata->slots[0].card_detect = encore_hsmmc_card_detect;
>>>  +               }
>>>  +       }
>>>  +        return ret;
>>>  +}
>>>  +
>>>  +static __init void encore_hsmmc_set_late_init(struct device *dev)
>>>  +{
>>>  +       struct omap_mmc_platform_data *pdata;
>>>  +
>>>  +       /* dev can be null if CONFIG_MMC_OMAP_HS is not set */
>>>  +       if (!dev)
>>>  +               return;
>>>  +
>>>  +       pdata = dev->platform_data;
>>>  +       pdata->init = encore_twl4030_hsmmc_late_init;
>>>  +}
>>>  +
>>>  +static int __ref encore_twl_gpio_setup(struct device *dev,
>>>  +               unsigned gpio, unsigned ngpio)
>>>  +{
>>>  +       struct omap2_hsmmc_info *c;
>>>  +       /*
>>>  +        * gpio + 0 is "mmc0_cd" (input/IRQ),
>>>  +        * gpio + 1 is "mmc1_cd" (input/IRQ)
>>>  +        */
>>>  +       mmc[1].gpio_cd = gpio + 0;
>>>  +       mmc[0].gpio_cd = gpio + 1;
>>>  +       omap2_hsmmc_init(mmc);
>>>  +       for (c = mmc; c->mmc; c++)
>>>  +                encore_hsmmc_set_late_init(c->dev);
>>>  +
>>>  +       /*
>>>  +        * link regulators to MMC adapters ... we "know" the
>>>  +        * regulators will be set up only *after* we return.
>>>  +        */
>>>  +       encore_vmmc1_supply.dev = mmc[1].dev;
>>>  +
>>>  +       return 0;
>>>  +}
>>>  +
>>>  +static struct twl4030_gpio_platform_data encore_gpio_data = {
>>>  +       .gpio_base      = OMAP_MAX_GPIO_LINES,
>>>  +       .irq_base       = TWL4030_GPIO_IRQ_BASE,
>>>  +       .irq_end        = TWL4030_GPIO_IRQ_END,
>>>  +       .setup          = encore_twl_gpio_setup,
>>>  +};
>>>  +
>>>  +static struct twl4030_madc_platform_data encore_madc_data = {
>>>  +       .irq_line       = 1,
>>>  +};
>>>  +
>>>  +static struct twl4030_platform_data __refdata encore_twldata = {
>>>  +       .irq_base       = TWL4030_IRQ_BASE,
>>>  +       .irq_end        = TWL4030_IRQ_END,
>>>  +
>>>  +       .madc           =&encore_madc_data,
>>>  +       .usb            =&encore_usb_data,
>>>  +       .gpio           =&encore_gpio_data,
>>>  +       .keypad         =&encore_kp_twl4030_data,
>>>  +       .vmmc1          =&encore_vmmc1,
>>>  +       .vdac           =&encore_vdac,
>>>  +};
>>>  +
>>>  +static struct i2c_board_info __initdata encore_i2c_bus1_info[] = {
>>>  +       {
>>>  +               I2C_BOARD_INFO("tps65921", 0x48),
>>>  +               .flags = I2C_CLIENT_WAKE,
>>>  +               .irq = INT_34XX_SYS_NIRQ,
>>>  +               .platform_data =&encore_twldata,
>>>  +       },
>>>  +};
>>>  +
>>>  +static struct i2c_board_info __initdata encore_i2c_bus2_info[] = {
>>>  +};
>>>  +
>>>  +
>>>  +static struct omap_musb_board_data musb_board_data = {
>>>  +       .interface_type         = MUSB_INTERFACE_ULPI,
>>>  +#ifdef CONFIG_USB_MUSB_OTG
>>>  +       .mode                   = MUSB_OTG,
>>>  +#elif defined(CONFIG_USB_MUSB_HDRC_HCD)
>>>  +       .mode                   = MUSB_HOST,
>>>  +#elif defined(CONFIG_USB_GADGET_MUSB_HDRC)
>>>  +       .mode                   = MUSB_PERIPHERAL,
>>>  +#endif
>>>  +       .power                  = 100,
>>>  +};
>>>  +
>>>  +#ifdef CONFIG_OMAP_MUX
>>>  +static struct omap_board_mux board_mux[] __initdata = {
>>>  +        { .reg_offset = OMAP_MUX_TERMINATOR },
>>>  +};
>>>  +#else
>>>  +#define board_mux       NULL
>>>  +#endif
>>>  +
>>>  +static struct omap_board_config_kernel encore_config[] __initdata = {
>>>  +};
>>>  +
>>>  +static int __init omap_i2c_init(void)
>>>  +{
>>>  +       omap_register_i2c_bus(1, 100, encore_i2c_bus1_info,
>>>  +                       ARRAY_SIZE(encore_i2c_bus1_info));
>>>  +       omap_register_i2c_bus(2, 400, encore_i2c_bus2_info,
>>>  +                       ARRAY_SIZE(encore_i2c_bus2_info));
>>>  +       return 0;
>>>  +}
>>>  +
>>>  +static void __init omap_encore_init(void)
>>>  +{
>>>  +       omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);
>>>  +       omap_i2c_init();
>>>  +       omap_serial_init();
>>>  +       usb_musb_init(&musb_board_data);
>>>  +
>>>  +       omap_board_config = encore_config;
>>>  +       omap_board_config_size = ARRAY_SIZE(encore_config);
>>>  +
>>>  +       platform_add_devices(encore_devices, ARRAY_SIZE(encore_devices));
>>>  +}
>>>  +
>>>  +MACHINE_START(ENCORE, "encore")
>>>  +       .boot_params    = 0x80000100,
>>>  +       .reserve        = omap_reserve,
>>>  +       .map_io         = omap3_map_io,
>>>  +       .init_early     = omap_encore_init_early,
>>>  +       .init_irq       = omap_init_irq,
>>>  +       .init_machine   = omap_encore_init,
>>>  +       .timer          =&omap_timer,
>>>  +MACHINE_END
>>>  diff --git a/arch/arm/plat-omap/include/plat/uncompress.h b/arch/arm/plat-omap/include/plat/uncompress.h
>>>  index 30b891c..f2de4ff 100644
>>>  --- a/arch/arm/plat-omap/include/plat/uncompress.h
>>>  +++ b/arch/arm/plat-omap/include/plat/uncompress.h
>>>  @@ -161,6 +161,7 @@ static inline void __arch_decomp_setup(unsigned long arch_id)
>>>                 DEBUG_LL_OMAP3(3, omap_ldp);
>>>                 DEBUG_LL_OMAP3(3, overo);
>>>                 DEBUG_LL_OMAP3(3, touchbook);
>>>  +               DEBUG_LL_OMAP3(3, encore);
>>>
>>>                 /* omap4 based boards using UART3 */
>>>                 DEBUG_LL_OMAP4(3, omap_4430sdp);
>>>  diff --git a/arch/arm/tools/mach-types b/arch/arm/tools/mach-types
>>>  index 7ca41f0..2f0db3e 100644
>>>  --- a/arch/arm/tools/mach-types
>>>  +++ b/arch/arm/tools/mach-types
>>>  @@ -962,7 +962,7 @@ omapl138_case_a3    MACH_OMAPL138_CASE_A3   OMAPL138_CASE_A3        3280
>>>   uemd                   MACH_UEMD               UEMD                    3281
>>>   ccwmx51mut             MACH_CCWMX51MUT         CCWMX51MUT              3282
>>>   rockhopper             MACH_ROCKHOPPER         ROCKHOPPER              3283
>>>  -nookcolor              MACH_NOOKCOLOR          NOOKCOLOR               3284
>>>  +encore                 MACH_ENCORE             ENCORE                  3284
>>>   hkdkc100               MACH_HKDKC100           HKDKC100                3285
>>>   ts42xx                 MACH_TS42XX             TS42XX                  3286
>>>   aebl                   MACH_AEBL               AEBL                    3287
>>>  --
>>>  1.7.4.4
>>>
>>>  --
>>>  To unsubscribe from this list: send the line "unsubscribe linux-omap" in
>>>  the body of a message to majordomo@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 majordomo@vger.kernel.org
> More majordomo info at  http://vger.kernel.org/majordomo-info.html


  reply	other threads:[~2011-05-03 11:08 UTC|newest]

Thread overview: 16+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2011-04-28 15:57 Initial B&N Nook Color support, take two green
2011-04-28 15:57 ` [PATCH 1/2] Initial B&N Nook Color (encore) support green
2011-04-28 23:34   ` Abimanyu Gottumukkala
2011-04-29  0:49     ` Oleg Drokin
2011-05-03 11:08       ` Vladimir Pantelic [this message]
2011-05-03  9:22   ` Tony Lindgren
2011-04-28 15:57 ` [PATCH 2/2] Add tps65921 chip green
2011-04-28 17:05 ` Initial B&N Nook Color support, take two Paul Walmsley
2011-04-28 17:21   ` Oleg Drokin
  -- strict thread matches above, loose matches on Subject: below --
2011-05-08 21:50 Initial B&N Nook Color support, take three green
2011-05-08 21:50 ` [PATCH 1/2] Initial B&N Nook Color (encore) support green
2011-05-09  7:03   ` Igor Grinberg
2011-05-13  3:52     ` Oleg Drokin
2011-05-15  7:25       ` Igor Grinberg
2011-05-09 20:28   ` Mark Brown
2011-04-27  1:52 Initial B&N Nook Color support green
2011-04-27  1:52 ` [PATCH 1/2] Initial B&N Nook Color (Encore) support green
2011-04-27  8:54   ` Mike Rapoport

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=4DBFE236.1000702@gmail.com \
    --to=vladoman@gmail.com \
    --cc=green@linuxhacker.ru \
    --cc=linux-omap@vger.kernel.org \
    --cc=me@abimanyu.in \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).