Skip to contentSkip to conversation

Initial B&N Nook Color support, take three

PATCH New green at linuxhacker.ru 3 participants 7 messages May 8, 2011 – May 15, 2011

Subsystems (4)
lore
Share & tools
lore
#0 lore raw

This is yet another attempt. All previous feedback incorporated. Rebased against devel-cleanup.

#1 lore raw

PATCH 1/2 Initial B&N Nook Color (encore) support.

From: Oleg Drokin <[email protected]>

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      |  363 ++++++++++++++++++++++++++
 arch/arm/plat-omap/include/plat/uncompress.h |    1 +
 arch/arm/tools/mach-types                    |    2 +-
 5 files changed, 372 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/mach-omap2/board-omap3encore.c
arch/arm/mach-omap2/Kconfig +5 -0
index b997a35..5370561 100644
@@ -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
arch/arm/mach-omap2/Makefile +2 -0
index a0c2cae..619e5ca 100644
@@ -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 \
arch/arm/mach-omap2/board-omap3encore.c new file +363 -0

363 lines not on this page · raw message

arch/arm/plat-omap/include/plat/uncompress.h +1 -0
index 30b891c..f2de4ff 100644
@@ -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);
arch/arm/tools/mach-types +1 -1
index 7ca41f0..2f0db3e 100644
@@ -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
Signature · 1 line
1.7.4.4
#2 lore raw

PATCH 1/2 Initial B&N Nook Color (encore) support.

Hi Oleg,

Quoted 7 lines · green at linuxhacker.ru

From: Oleg Drokin <[email protected]>

Bare-bones board file, comes with serial console, gpio keys, MMC/SDCard and USB support.

---

In general, here you should write the version history of your patch...

Quoted 73 lines
 arch/arm/mach-omap2/Kconfig                  |    5 +
 arch/arm/mach-omap2/Makefile                 |    2 +
 arch/arm/mach-omap2/board-omap3encore.c      |  363 ++++++++++++++++++++++++++
 arch/arm/plat-omap/include/plat/uncompress.h |    1 +
 arch/arm/tools/mach-types                    |    2 +-
 5 files changed, 372 insertions(+), 1 deletions(-)
 create mode 100644 arch/arm/mach-omap2/board-omap3encore.c
arch/arm/mach-omap2/Kconfig +5 -0
index b997a35..5370561 100644
@@ -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
arch/arm/mach-omap2/Makefile +2 -0
index a0c2cae..619e5ca 100644
@@ -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 \
arch/arm/mach-omap2/board-omap3encore.c new file +30 -0
new file mode 100644
index 0000000..6c044c0
@@ -0,0 +1,363 @@
+/*
+ * Support for Barns&Noble Nook Color
+ *
+ * Loosely based on mach-omap2/board-zoom.c
+ * Copyright (C) 2008-2010 Texas Instruments Inc.
+ *
+ * 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.
+ *
+ * May 2011 Oleg Drokin <[email protected]> - 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 <linux/gpio.h>
+#include <plat/board.h>
+#include <plat/common.h>

arch/arm/mach-omap2/board-omap3encore.c line 40

Quoted 10 lines
arch/arm/mach-omap2/board-omap3encore.c new file +10 -0
+#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"

Are all the above includes needed? (spi? maybe some others)

Quoted 39 lines
arch/arm/mach-omap2/board-omap3encore.c new file +39 -0
+
+/* 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 */

arch/arm/mach-omap2/board-omap3encore.c line 89

Quoted 10 lines
arch/arm/mach-omap2/board-omap3encore.c new file +10 -0
+#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);

No need for parentheses

arch/arm/mach-omap2/board-omap3encore.c line 94

Quoted 5 lines
arch/arm/mach-omap2/board-omap3encore.c new file +5 -0
+}
+
+static inline int is_encore_board_evt1b(void)
+{
+	return (system_rev == BOARD_ENCORE_REV_EVT1B);

ditto

Quoted 93 lines
arch/arm/mach-omap2/board-omap3encore.c new file +93 -0
+}
+
+static int encore_twl4030_keymap[] = {
+	KEY(1, 0, KEY_VOLUMEUP),
+	KEY(2, 0, KEY_VOLUMEDOWN),
+};
+
+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,

arch/arm/mach-omap2/board-omap3encore.c line 197

Quoted 10 lines
arch/arm/mach-omap2/board-omap3encore.c new file +10 -0
+		.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 */

/*
*
*/

Quoted 26 lines
arch/arm/mach-omap2/board-omap3encore.c new file +26 -0
+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,

arch/arm/mach-omap2/board-omap3encore.c line 233

Quoted 10 lines
arch/arm/mach-omap2/board-omap3encore.c new file +10 -0
+		.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) */

parentheses?

Quoted 5 lines
arch/arm/mach-omap2/board-omap3encore.c new file +5 -0
+	return gpio_get_value_cansleep(mmc->slots[0].switch_pin);
+}
+
+static int encore_twl4030_hsmmc_late_init(struct device *dev)
+{

arch/arm/mach-omap2/board-omap3encore.c line 248

Quoted 10 lines
arch/arm/mach-omap2/board-omap3encore.c new file +10 -0
+	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;
+	}

empty line here would be nice

Quoted 75 lines
arch/arm/mach-omap2/board-omap3encore.c new file +75 -0
+	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[] = {
+};
+
+#ifdef CONFIG_OMAP_MUX
+static struct omap_board_mux board_mux[] __initdata = {

arch/arm/mach-omap2/board-omap3encore.c line 333

Quoted 10 lines
arch/arm/mach-omap2/board-omap3encore.c new file +10 -0
+	{ .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)

You always return 0 here and you don't check the return value, why not make it void and remove the return statement?

arch/arm/mach-omap2/board-omap3encore.c line 344

Quoted 11 lines
arch/arm/mach-omap2/board-omap3encore.c new file +11 -0
+{
+	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);

You select CBP package in Kconfig, but pass CBB here?

Quoted 24 lines
arch/arm/mach-omap2/board-omap3encore.c new file +19 -0
+	omap_i2c_init();
+	omap_serial_init();
+	usb_musb_init(NULL);
+
+	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
arch/arm/plat-omap/include/plat/uncompress.h +0 -0
index 30b891c..f2de4ff 100644

arch/arm/plat-omap/include/plat/uncompress.h static inline void __arch_decomp_setup(unsigned long arch_id) · line 164

Quoted 4 lines
arch/arm/plat-omap/include/plat/uncompress.h +1 -0
@@ -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);

Please, keep it sorted by mach name

Quoted 8 lines
arch/arm/plat-omap/include/plat/uncompress.h +0 -0
 		/* omap4 based boards using UART3 */
 		DEBUG_LL_OMAP4(3, omap_4430sdp);
arch/arm/tools/mach-types +0 -0
index 7ca41f0..2f0db3e 100644

arch/arm/tools/mach-types omapl138_case_a3 MACH_OMAPL138_CASE_A3 OMAPL138_CASE_A3 3280 · line 968

Quoted 8 lines
arch/arm/tools/mach-types +1 -1
@@ -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

You should contact Russell for this kind of stuff.
I don't think you should be patching it directly...
If you want to tell us that your patch should be applied with this change to mach-types, then it would be better to make a separate patch for it and describe it in your cover letter.

Signature · 2 lines
Regards,
Igor.
#3 lore raw

PATCH 1/2 Initial B&N Nook Color (encore) support.

Hello!

Quoted 7 lines · Igor Grinberg
Quoted 5 lines

Bare-bones board file, comes with serial console, gpio keys, MMC/SDCard and USB support.

---

In general, here you should write the version history of your patch...

umm, ok.
Do you think the history of the changes is important in this case, though?
I mean it's mostly the case of "kill unneeded includes, fix style, fix incorrect mux package type" and so on. Nothing of real interest to anybody.

Quoted 5 lines

arch/arm/mach-omap2/board-omap3encore.c line 344

Quoted 3 lines
arch/arm/mach-omap2/board-omap3encore.c new file +3 -0
+static void __init omap_encore_init(void)
+{
+	omap3_mux_init(board_mux, OMAP_PACKAGE_CBB);

You select CBP package in Kconfig, but pass CBB here?

Ah, indeed, thanks for catching this.

Quoted 7 lines
Quoted 5 lines
arch/arm/tools/mach-types +1 -1
-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

You should contact Russell for this kind of stuff.

Yes, I already did.
I am carrying it as part of the patch so that it's actually buildable while awaiting for the decision.

Quoted 4 lines

I don't think you should be patching it directly...
If you want to tell us that your patch should be applied with this change to mach-types, then it would be better to make a separate patch for it and describe it in your cover letter.

Hm, ok.

Thanks for the feedback.

Bye,
Oleg

#4 lore raw

PATCH 1/2 Initial B&N Nook Color (encore) support.

Quoted 7 lines · Oleg Drokin

Hello!

Quoted 3 lines · Igor Grinberg
Quoted 3 lines

Bare-bones board file, comes with serial console, gpio keys, MMC/SDCard and USB support.

Quoted 7 lines
Quoted 3 lines
Quoted 2 lines

---

In general, here you should write the version history of your patch...

umm, ok.
Do you think the history of the changes is important in this case, though?
I mean it's mostly the case of "kill unneeded includes, fix style, fix incorrect mux package type" and so on. Nothing of real interest to anybody.

It can help everybody (also yourself), for example, the fact that you already contacted Russell regarding mach-types (though the better place for it is cover letter) could help me to not wonder why do you have this stuff here.

Signature · 2 lines
Regards,
Igor.
#5 lore raw

PATCH 1/2 Initial B&N Nook Color (encore) support.

In reply to green at linuxhacker.ru

arch/arm/mach-omap2/board-omap3encore.c line 282

Quoted 5 lines · green at linuxhacker.ru
arch/arm/mach-omap2/board-omap3encore.c new file +5 -0
+	/*
+	 * link regulators to MMC adapters ... we "know" the
+	 * regulators will be set up only *after* we return.
+	 */
+	encore_vmmc1_supply.dev = mmc[1].dev;

Just specify dev_name in the supply rather than doing this.

#6 lore raw

PATCH 2/2 Add tps65921 chip

In reply to green at linuxhacker.ru

From: Oleg Drokin <[email protected]>

Very similar to TPS65920
List of differences: http://www.ti.com/litv/pdf/swcu066b

---
 drivers/mfd/twl-core.c |    2 ++
 1 files changed, 2 insertions(+), 0 deletions(-)
drivers/mfd/twl-core.c +2 -0
index 960b5be..3daebcc 100644
@@ -1107,6 +1107,8 @@ static const struct i2c_device_id twl_ids[] = {
 	{ "tps65950", 0 },		/* catalog version of twl5030 */
 	{ "tps65930", TPS_SUBSET },	/* fewer LDOs and DACs; no charger */
 	{ "tps65920", TPS_SUBSET },	/* fewer LDOs; no codec or charger */
+	{ "tps65921", TPS_SUBSET },	/* fewer LDOs; no codec, no LED
+					   and vibrator. Charger in USB module*/
 	{ "twl6030", TWL6030_CLASS },	/* "Phoenix power chip" */
 	{ /* end of list */ },
 };
Signature · 1 line
1.7.4.4