All of lore.kernel.org
 help / color / mirror / Atom feed
* update Treo680, generalise it and add Centro support - round 2
@ 2009-08-31 17:25 Tomáš Čech
  2009-08-31 17:25 ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Tomáš Čech
  0 siblings, 1 reply; 23+ messages in thread
From: Tomáš Čech @ 2009-08-31 17:25 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

this is second round of patch set updating Treo680, generalising it and adding support for Palm Centro.

Changes since last time:
 - patch set generated properly (with respect of file renames)
 - fixed name of keyboard backlight LED (now treo680:white:keybbl, centro:white:keybbl)

Thanks for your time and comments.

Best regards,

Tomas Cech

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 1/5] Treo680: pxamci simplify to use GPIO
  2009-08-31 17:25 update Treo680, generalise it and add Centro support - round 2 Tomáš Čech
@ 2009-08-31 17:25 ` Tomáš Čech
  2009-08-31 17:25   ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Tomáš Čech
  2009-08-31 17:33   ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Marek Vasut
  0 siblings, 2 replies; 23+ messages in thread
From: Tomáš Čech @ 2009-08-31 17:25 UTC (permalink / raw)
  To: linux-arm-kernel

From: Tom?? ?ech <sleep walker@suse.cz>


Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
---
 arch/arm/mach-pxa/treo680.c |   84 ++----------------------------------------
 1 files changed, 4 insertions(+), 80 deletions(-)

diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
index a06f19e..050ad8e 100644
--- a/arch/arm/mach-pxa/treo680.c
+++ b/arch/arm/mach-pxa/treo680.c
@@ -153,87 +153,11 @@ static unsigned long treo680_pin_config[] __initdata = {
 /******************************************************************************
  * SD/MMC card controller
  ******************************************************************************/
-static int treo680_mci_init(struct device *dev,
-		irq_handler_t treo680_detect_int, void *data)
-{
-	int err = 0;
-
-	/* Setup an interrupt for detecting card insert/remove events */
-	err = gpio_request(GPIO_NR_TREO680_SD_DETECT_N, "SD IRQ");
-
-	if (err)
-		goto err;
-
-	err = gpio_direction_input(GPIO_NR_TREO680_SD_DETECT_N);
-	if (err)
-		goto err2;
-
-	err = request_irq(gpio_to_irq(GPIO_NR_TREO680_SD_DETECT_N),
-			treo680_detect_int, IRQF_DISABLED | IRQF_SAMPLE_RANDOM |
-			IRQF_TRIGGER_FALLING | IRQF_TRIGGER_RISING,
-			"SD/MMC card detect", data);
-
-	if (err) {
-		dev_err(dev, "%s: cannot request SD/MMC card detect IRQ\n",
-			     __func__);
-		goto err2;
-	}
-
-	err = gpio_request(GPIO_NR_TREO680_SD_POWER, "SD_POWER");
-	if (err)
-		goto err3;
-
-	err = gpio_direction_output(GPIO_NR_TREO680_SD_POWER, 1);
-	if (err)
-		goto err4;
-
-	err = gpio_request(GPIO_NR_TREO680_SD_READONLY, "SD_READONLY");
-	if (err)
-		goto err4;
-
-	err = gpio_direction_input(GPIO_NR_TREO680_SD_READONLY);
-	if (err)
-		goto err5;
-
-	return 0;
-
-err5:
-	gpio_free(GPIO_NR_TREO680_SD_READONLY);
-err4:
-	gpio_free(GPIO_NR_TREO680_SD_POWER);
-err3:
-	free_irq(gpio_to_irq(GPIO_NR_TREO680_SD_DETECT_N), data);
-err2:
-	gpio_free(GPIO_NR_TREO680_SD_DETECT_N);
-err:
-	return err;
-}
-
-static void treo680_mci_exit(struct device *dev, void *data)
-{
-	gpio_free(GPIO_NR_TREO680_SD_READONLY);
-	gpio_free(GPIO_NR_TREO680_SD_POWER);
-	free_irq(gpio_to_irq(GPIO_NR_TREO680_SD_DETECT_N), data);
-	gpio_free(GPIO_NR_TREO680_SD_DETECT_N);
-}
-
-static void treo680_mci_power(struct device *dev, unsigned int vdd)
-{
-	struct pxamci_platform_data *p_d = dev->platform_data;
-	gpio_set_value(GPIO_NR_TREO680_SD_POWER, p_d->ocr_mask & (1 << vdd));
-}
-
-static int treo680_mci_get_ro(struct device *dev)
-{
-	return gpio_get_value(GPIO_NR_TREO680_SD_READONLY);
-}
-
 static struct pxamci_platform_data treo680_mci_platform_data = {
-	.ocr_mask	= MMC_VDD_32_33 | MMC_VDD_33_34,
-	.setpower	= treo680_mci_power,
-	.get_ro		= treo680_mci_get_ro,
-	.init 		= treo680_mci_init,
-	.exit		= treo680_mci_exit,
+	.ocr_mask		= MMC_VDD_32_33 | MMC_VDD_33_34,
+	.gpio_card_detect	= GPIO_NR_TREO680_SD_DETECT_N,
+	.gpio_card_ro		= GPIO_NR_TREO680_SD_READONLY,
+	.gpio_power		= GPIO_NR_TREO680_SD_POWER,
 };
 
 /******************************************************************************
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-08-31 17:25 ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Tomáš Čech
@ 2009-08-31 17:25   ` Tomáš Čech
  2009-08-31 17:25     ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Tomáš Čech
  2009-08-31 17:34     ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Marek Vasut
  2009-08-31 17:33   ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Marek Vasut
  1 sibling, 2 replies; 23+ messages in thread
From: Tomáš Čech @ 2009-08-31 17:25 UTC (permalink / raw)
  To: linux-arm-kernel

From: Tom?? ?ech <sleep walker@suse.cz>


Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
---
 arch/arm/mach-pxa/treo680.c |   10 +---------
 1 files changed, 1 insertions(+), 9 deletions(-)

diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
index 050ad8e..57bccc3 100644
--- a/arch/arm/mach-pxa/treo680.c
+++ b/arch/arm/mach-pxa/treo680.c
@@ -254,16 +254,9 @@ static int treo680_backlight_init(struct device *dev)
 	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
 	if (ret)
 		goto err2;
-	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
-	if (ret)
-		goto err2;
-	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
-	if (ret)
-		goto err3;
 
 	return 0;
-err3:
-	gpio_free(GPIO_NR_TREO680_LCD_POWER);
+
 err2:
 	gpio_free(GPIO_NR_TREO680_BL_POWER);
 err:
@@ -279,7 +272,6 @@ static int treo680_backlight_notify(int brightness)
 static void treo680_backlight_exit(struct device *dev)
 {
 	gpio_free(GPIO_NR_TREO680_BL_POWER);
-	gpio_free(GPIO_NR_TREO680_LCD_POWER);
 }
 
 static struct platform_pwm_backlight_data treo680_backlight_data = {
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown()
  2009-08-31 17:25   ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Tomáš Čech
@ 2009-08-31 17:25     ` Tomáš Čech
  2009-08-31 17:26       ` [PATCH 4/5] PalmGSM: generalisation of Treo680 code to PalmGSM Tomáš Čech
  2009-08-31 17:36       ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Marek Vasut
  2009-08-31 17:34     ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Marek Vasut
  1 sibling, 2 replies; 23+ messages in thread
From: Tomáš Čech @ 2009-08-31 17:25 UTC (permalink / raw)
  To: linux-arm-kernel

From: Tom?? ?ech <sleep walker@suse.cz>


Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
---
 arch/arm/mach-pxa/treo680.c |    2 +-
 1 files changed, 1 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
index 57bccc3..d88114c 100644
--- a/arch/arm/mach-pxa/treo680.c
+++ b/arch/arm/mach-pxa/treo680.c
@@ -325,7 +325,7 @@ err1:
 
 static void treo680_irda_shutdown(struct device *dev)
 {
-	gpio_free(GPIO_NR_TREO680_AMP_EN);
+	gpio_free(GPIO_NR_TREO680_IR_EN);
 }
 
 static struct pxaficp_platform_data treo680_ficp_info = {
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 4/5] PalmGSM: generalisation of Treo680 code to PalmGSM
  2009-08-31 17:25     ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Tomáš Čech
@ 2009-08-31 17:26       ` Tomáš Čech
  2009-08-31 17:26         ` [PATCH 5/5] PalmGSM: add basic Centro support Tomáš Čech
  2009-08-31 17:36       ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Marek Vasut
  1 sibling, 1 reply; 23+ messages in thread
From: Tomáš Čech @ 2009-08-31 17:26 UTC (permalink / raw)
  To: linux-arm-kernel

From: Tom?? ?ech <sleep walker@suse.cz>


Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
---
 arch/arm/mach-pxa/Kconfig                  |    5 +
 arch/arm/mach-pxa/Makefile                 |    2 +-
 arch/arm/mach-pxa/include/mach/palmgsm.h   |   60 +++++++++
 arch/arm/mach-pxa/include/mach/treo680.h   |   49 -------
 arch/arm/mach-pxa/{treo680.c => palmgsm.c} |  197 ++++++++++++++++------------
 5 files changed, 180 insertions(+), 133 deletions(-)
 create mode 100644 arch/arm/mach-pxa/include/mach/palmgsm.h
 delete mode 100644 arch/arm/mach-pxa/include/mach/treo680.h
 rename arch/arm/mach-pxa/{treo680.c => palmgsm.c} (69%)

diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 904f36a..441f1d6 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -401,12 +401,17 @@ config MACH_PALMZ72
 	  Say Y here if you intend to run this kernel on Palm Zire 72
 	  handheld computer.
 
+config PALMGSM
+	depends on ARCH_PXA_PALM
+	bool
+
 config MACH_TREO680
 	bool "Palm Treo 680"
 	default y
 	depends on ARCH_PXA_PALM
 	select PXA27x
 	select IWMMXT
+	select PALMGSM
 	help
 	  Say Y here if you intend to run this kernel on Palm Treo 680
 	  smartphone.
diff --git a/arch/arm/mach-pxa/Makefile b/arch/arm/mach-pxa/Makefile
index d4c6122..b811878 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -62,7 +62,7 @@ obj-$(CONFIG_MACH_PALMT5)	+= palmt5.o
 obj-$(CONFIG_MACH_PALMTX)	+= palmtx.o
 obj-$(CONFIG_MACH_PALMLD)	+= palmld.o
 obj-$(CONFIG_MACH_PALMZ72)	+= palmz72.o
-obj-$(CONFIG_MACH_TREO680)	+= treo680.o
+obj-$(CONFIG_PALMGSM)		+= palmgsm.o
 obj-$(CONFIG_ARCH_VIPER)	+= viper.o
 
 ifeq ($(CONFIG_MACH_ZYLONITE),y)
diff --git a/arch/arm/mach-pxa/include/mach/palmgsm.h b/arch/arm/mach-pxa/include/mach/palmgsm.h
new file mode 100644
index 0000000..8d1a3bc
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/palmgsm.h
@@ -0,0 +1,60 @@
+/*
+ * GPIOs and interrupts for Palm smartphones
+ *
+ * currently supported:
+ *     Palm Treo 680 (GSM)
+ *
+ * Author:     Tomas Cech <sleep_walker@suse.cz>
+ *
+ * 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.
+ *
+ * find more info at www.hackndev.com
+ *
+ */
+
+
+#ifndef _INCLUDE_PALMGSM_H_
+#define _INCLUDE_PALMGSM_H_
+
+/* Generic GPIOs */
+#define GPIO_NR_PALMGSM_POWER_DETECT	0
+#define GPIO_NR_PALMGSM_AMP_EN		27
+#define GPIO_NR_PALMGSM_GREEN_LED	20
+#define GPIO_NR_PALMGSM_RED_LED		79
+#define GPIO_NR_PALMGSM_SD_DETECT_N	113
+#define GPIO_NR_PALMGSM_EP_DETECT_N	116
+#define GPIO_NR_PALMGSM_USB_DETECT	1
+#define GPIO_NR_PALMGSM_USB_PULLUP	114
+#define GPIO_NR_PALMGSM_GSM_POWER	40
+#define GPIO_NR_PALMGSM_GSM_RESET	87
+#define GPIO_NR_PALMGSM_GSM_WAKE	57
+#define GPIO_NR_PALMGSM_GSM_HOST_WAKE	14
+#define GPIO_NR_PALMGSM_GSM_TRIGGER	10
+#define GPIO_NR_PALMGSM_IR_EN		115
+#define GPIO_NR_PALMGSM_IR_TXD		47
+#define GPIO_NR_PALMGSM_BL_POWER	38
+#define GPIO_NR_PALMGSM_LCD_POWER	25
+#define GPIO_NR_PALMGSM_CAM_EN		83
+
+/* Treo680 specific GPIOs */
+#define GPIO_NR_TREO680_SD_READONLY	33
+#define GPIO_NR_TREO680_SD_POWER	42
+#define GPIO_NR_TREO680_VIBRATE_EN	44
+#define GPIO_NR_TREO680_KEYB_BL		24
+#define GPIO_NR_TREO680_BT_EN		43
+
+/* Various addresses  */
+#define PALMGSM_PHYS_RAM_START	0xa0000000
+#define PALMGSM_PHYS_IO_START	0x40000000
+#define PALMGSM_STR_BASE	0xa2000000
+
+/* BACKLIGHT */
+#define PALMGSM_MAX_INTENSITY		254
+#define PALMGSM_DEFAULT_INTENSITY	160
+#define PALMGSM_LIMIT_MASK		0x7F
+#define PALMGSM_PRESCALER		63
+#define PALMGSM_PERIOD_NS		3500
+
+#endif
diff --git a/arch/arm/mach-pxa/include/mach/treo680.h b/arch/arm/mach-pxa/include/mach/treo680.h
deleted file mode 100644
index af443b2..0000000
--- a/arch/arm/mach-pxa/include/mach/treo680.h
+++ /dev/null
@@ -1,49 +0,0 @@
-/*
- * GPIOs and interrupts for Palm Treo 680 smartphone
- *
- * 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.
- *
- */
-
-#ifndef _INCLUDE_TREO680_H_
-#define _INCLUDE_TREO680_H_
-
-/* GPIOs */
-#define GPIO_NR_TREO680_POWER_DETECT	0
-#define GPIO_NR_TREO680_AMP_EN		27
-#define GPIO_NR_TREO680_KEYB_BL		24
-#define GPIO_NR_TREO680_VIBRATE_EN	44
-#define GPIO_NR_TREO680_GREEN_LED	20
-#define GPIO_NR_TREO680_RED_LED		79
-#define GPIO_NR_TREO680_SD_DETECT_N	113
-#define GPIO_NR_TREO680_SD_READONLY	33
-#define GPIO_NR_TREO680_EP_DETECT_N	116
-#define GPIO_NR_TREO680_SD_POWER	42
-#define GPIO_NR_TREO680_USB_DETECT	1
-#define GPIO_NR_TREO680_USB_PULLUP	114
-#define GPIO_NR_TREO680_GSM_POWER	40
-#define GPIO_NR_TREO680_GSM_RESET	87
-#define GPIO_NR_TREO680_GSM_WAKE	57
-#define GPIO_NR_TREO680_GSM_HOST_WAKE	14
-#define GPIO_NR_TREO680_GSM_TRIGGER	10
-#define GPIO_NR_TREO680_BT_EN		43
-#define GPIO_NR_TREO680_IR_EN		115
-#define GPIO_NR_TREO680_IR_TXD		47
-#define GPIO_NR_TREO680_BL_POWER	38
-#define GPIO_NR_TREO680_LCD_POWER	25
-
-/* Various addresses  */
-#define TREO680_PHYS_RAM_START	0xa0000000
-#define TREO680_PHYS_IO_START	0x40000000
-#define TREO680_STR_BASE	0xa2000000
-
-/* BACKLIGHT */
-#define TREO680_MAX_INTENSITY		254
-#define TREO680_DEFAULT_INTENSITY	160
-#define TREO680_LIMIT_MASK		0x7F
-#define TREO680_PRESCALER		63
-#define TREO680_PERIOD_NS		3500
-
-#endif
diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/palmgsm.c
similarity index 69%
rename from arch/arm/mach-pxa/treo680.c
rename to arch/arm/mach-pxa/palmgsm.c
index d88114c..66be426 100644
--- a/arch/arm/mach-pxa/treo680.c
+++ b/arch/arm/mach-pxa/palmgsm.c
@@ -1,5 +1,8 @@
 /*
- * Hardware definitions for Palm Treo 680
+ * Hardware definitions for Palm smartphones
+ *
+ * currently supported:
+ *     Palm Treo 680 (GSM)
  *
  * Author:     Tomas Cech <sleep_walker@suse.cz>
  *
@@ -31,7 +34,7 @@
 #include <mach/pxa27x.h>
 #include <mach/pxa27x-udc.h>
 #include <mach/audio.h>
-#include <mach/treo680.h>
+#include <mach/palmgsm.h>
 #include <mach/mmc.h>
 #include <mach/pxafb.h>
 #include <mach/irda.h>
@@ -50,7 +53,7 @@
 /******************************************************************************
  * Pin configuration
  ******************************************************************************/
-static unsigned long treo680_pin_config[] __initdata = {
+static unsigned long palmgsm_pin_config[] __initdata = {
 	/* MMC */
 	GPIO32_MMC_CLK,
 	GPIO92_MMC_DAT_0,
@@ -58,7 +61,6 @@ static unsigned long treo680_pin_config[] __initdata = {
 	GPIO110_MMC_DAT_2,
 	GPIO111_MMC_DAT_3,
 	GPIO112_MMC_CMD,
-	GPIO33_GPIO,				/* SD read only */
 	GPIO113_GPIO,				/* SD detect */
 
 	/* AC97 */
@@ -80,12 +82,10 @@ static unsigned long treo680_pin_config[] __initdata = {
 	GPIO1_GPIO | WAKEUP_ON_EDGE_BOTH,	/* usb detect */
 
 	/* MATRIX KEYPAD */
-	GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
 	GPIO101_KP_MKIN_1,
 	GPIO102_KP_MKIN_2,
 	GPIO97_KP_MKIN_3,
 	GPIO98_KP_MKIN_4,
-	GPIO99_KP_MKIN_5,
 	GPIO91_KP_MKIN_6,
 	GPIO13_KP_MKIN_7,
 	GPIO103_KP_MKOUT_0 | MFP_LPM_DRIVE_HIGH,
@@ -150,19 +150,32 @@ static unsigned long treo680_pin_config[] __initdata = {
 	GPIO11_GPIO | WAKEUP_ON_EDGE_BOTH,	/* bluetooth host wake up */
 };
 
+#ifdef CONFIG_MACH_TREO680
+static unsigned long treo680_pin_config[] __initdata = {
+	GPIO33_GPIO,    /* SD read only */
+
+	/* MATRIX KEYPAD - different wake up source */
+	GPIO100_KP_MKIN_0 | WAKEUP_ON_LEVEL_HIGH,
+	GPIO99_KP_MKIN_5,
+};
+#endif
+
 /******************************************************************************
  * SD/MMC card controller
  ******************************************************************************/
+#ifdef CONFIG_MACH_TREO680
 static struct pxamci_platform_data treo680_mci_platform_data = {
 	.ocr_mask		= MMC_VDD_32_33 | MMC_VDD_33_34,
-	.gpio_card_detect	= GPIO_NR_TREO680_SD_DETECT_N,
+	.gpio_card_detect	= GPIO_NR_PALMGSM_SD_DETECT_N,
 	.gpio_card_ro		= GPIO_NR_TREO680_SD_READONLY,
 	.gpio_power		= GPIO_NR_TREO680_SD_POWER,
 };
+#endif
 
 /******************************************************************************
  * GPIO keyboard
  ******************************************************************************/
+#ifdef CONFIG_MACH_TREO680
 static unsigned int treo680_matrix_keys[] = {
 	KEY(0, 0, KEY_F8),		/* Red/Off/Power */
 	KEY(0, 1, KEY_LEFT),
@@ -232,127 +245,130 @@ static struct pxa27x_keypad_platform_data treo680_keypad_platform_data = {
 
 	.debounce_interval	= 30,
 };
+#endif
 
 /******************************************************************************
  * aSoC audio
  ******************************************************************************/
 
-static pxa2xx_audio_ops_t treo680_ac97_pdata = {
+static pxa2xx_audio_ops_t palmgsm_ac97_pdata = {
 	.reset_gpio	= 95,
 };
 
 /******************************************************************************
  * Backlight
  ******************************************************************************/
-static int treo680_backlight_init(struct device *dev)
+static int palmgsm_backlight_init(struct device *dev)
 {
 	int ret;
 
-	ret = gpio_request(GPIO_NR_TREO680_BL_POWER, "BL POWER");
+	ret = gpio_request(GPIO_NR_PALMGSM_BL_POWER, "BL POWER");
 	if (ret)
 		goto err;
-	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
+	ret = gpio_direction_output(GPIO_NR_PALMGSM_BL_POWER, 0);
 	if (ret)
 		goto err2;
 
 	return 0;
 
 err2:
-	gpio_free(GPIO_NR_TREO680_BL_POWER);
+	gpio_free(GPIO_NR_PALMGSM_BL_POWER);
 err:
 	return ret;
 }
 
-static int treo680_backlight_notify(int brightness)
+static int palmgsm_backlight_notify(int brightness)
 {
-	gpio_set_value(GPIO_NR_TREO680_BL_POWER, brightness);
-	return TREO680_MAX_INTENSITY - brightness;
+	gpio_set_value(GPIO_NR_PALMGSM_BL_POWER, brightness);
+	return PALMGSM_MAX_INTENSITY - brightness;
 };
 
-static void treo680_backlight_exit(struct device *dev)
+static void palmgsm_backlight_exit(struct device *dev)
 {
-	gpio_free(GPIO_NR_TREO680_BL_POWER);
+	gpio_free(GPIO_NR_PALMGSM_BL_POWER);
 }
 
-static struct platform_pwm_backlight_data treo680_backlight_data = {
+static struct platform_pwm_backlight_data palmgsm_backlight_data = {
 	.pwm_id		= 0,
-	.max_brightness	= TREO680_MAX_INTENSITY,
-	.dft_brightness	= TREO680_DEFAULT_INTENSITY,
-	.pwm_period_ns	= TREO680_PERIOD_NS,
-	.init		= treo680_backlight_init,
-	.notify		= treo680_backlight_notify,
-	.exit		= treo680_backlight_exit,
+	.max_brightness	= PALMGSM_MAX_INTENSITY,
+	.dft_brightness	= PALMGSM_DEFAULT_INTENSITY,
+	.pwm_period_ns	= PALMGSM_PERIOD_NS,
+	.init		= palmgsm_backlight_init,
+	.notify		= palmgsm_backlight_notify,
+	.exit		= palmgsm_backlight_exit,
 };
 
-static struct platform_device treo680_backlight = {
+static struct platform_device palmgsm_backlight = {
 	.name	= "pwm-backlight",
 	.dev	= {
 		.parent		= &pxa27x_device_pwm0.dev,
-		.platform_data	= &treo680_backlight_data,
+		.platform_data	= &palmgsm_backlight_data,
 	},
 };
 
 /******************************************************************************
  * IrDA
  ******************************************************************************/
-static void treo680_transceiver_mode(struct device *dev, int mode)
+static void palmgsm_transceiver_mode(struct device *dev, int mode)
 {
-	gpio_set_value(GPIO_NR_TREO680_IR_EN, mode & IR_OFF);
+	gpio_set_value(GPIO_NR_PALMGSM_IR_EN, mode & IR_OFF);
 	pxa2xx_transceiver_mode(dev, mode);
 }
 
-static int treo680_irda_startup(struct device *dev)
+static int palmgsm_irda_startup(struct device *dev)
 {
 	int err;
 
-	err = gpio_request(GPIO_NR_TREO680_IR_EN, "Ir port disable");
+	err = gpio_request(GPIO_NR_PALMGSM_IR_EN, "Ir port disable");
 	if (err)
 		goto err1;
 
-	err = gpio_direction_output(GPIO_NR_TREO680_IR_EN, 1);
+	err = gpio_direction_output(GPIO_NR_PALMGSM_IR_EN, 1);
 	if (err)
 		goto err2;
 
 	return 0;
 
 err2:
-	dev_err(dev, "treo680_irda: cannot change IR gpio direction\n");
-	gpio_free(GPIO_NR_TREO680_IR_EN);
+	dev_err(dev, "palmgsm_irda: cannot change IR gpio direction\n");
+	gpio_free(GPIO_NR_PALMGSM_IR_EN);
 err1:
-	dev_err(dev, "treo680_irda: cannot allocate IR gpio\n");
+	dev_err(dev, "palmgsm_irda: cannot allocate IR gpio\n");
 	return err;
 }
 
-static void treo680_irda_shutdown(struct device *dev)
+static void palmgsm_irda_shutdown(struct device *dev)
 {
-	gpio_free(GPIO_NR_TREO680_IR_EN);
+	gpio_free(GPIO_NR_PALMGSM_IR_EN);
 }
 
-static struct pxaficp_platform_data treo680_ficp_info = {
+static struct pxaficp_platform_data palmgsm_ficp_info = {
 	.transceiver_cap  = IR_FIRMODE | IR_SIRMODE | IR_OFF,
-	.startup          = treo680_irda_startup,
-	.shutdown         = treo680_irda_shutdown,
-	.transceiver_mode = treo680_transceiver_mode,
+	.startup          = palmgsm_irda_startup,
+	.shutdown         = palmgsm_irda_shutdown,
+	.transceiver_mode = palmgsm_transceiver_mode,
 };
 
 /******************************************************************************
  * UDC
  ******************************************************************************/
-static struct pxa2xx_udc_mach_info treo680_udc_info __initdata = {
-	.gpio_vbus		= GPIO_NR_TREO680_USB_DETECT,
+static struct pxa2xx_udc_mach_info palmgsm_udc_info __initdata = {
+	.gpio_vbus		= GPIO_NR_PALMGSM_USB_DETECT,
 	.gpio_vbus_inverted	= 1,
-	.gpio_pullup		= GPIO_NR_TREO680_USB_PULLUP,
+	.gpio_pullup		= GPIO_NR_PALMGSM_USB_PULLUP,
 };
 
 
 /******************************************************************************
  * USB host
  ******************************************************************************/
+#ifdef CONFIG_MACH_TREO680
 static struct pxaohci_platform_data treo680_ohci_info = {
 	.port_mode    = PMM_PERPORT_MODE,
 	.flags        = ENABLE_PORT1 | ENABLE_PORT3,
 	.power_budget = 0,
 };
+#endif
 
 /******************************************************************************
  * Power supply
@@ -361,41 +377,41 @@ static int power_supply_init(struct device *dev)
 {
 	int ret;
 
-	ret = gpio_request(GPIO_NR_TREO680_POWER_DETECT, "CABLE_STATE_AC");
+	ret = gpio_request(GPIO_NR_PALMGSM_POWER_DETECT, "CABLE_STATE_AC");
 	if (ret)
 		goto err1;
-	ret = gpio_direction_input(GPIO_NR_TREO680_POWER_DETECT);
+	ret = gpio_direction_input(GPIO_NR_PALMGSM_POWER_DETECT);
 	if (ret)
 		goto err2;
 
 	return 0;
 
 err2:
-	gpio_free(GPIO_NR_TREO680_POWER_DETECT);
+	gpio_free(GPIO_NR_PALMGSM_POWER_DETECT);
 err1:
 	return ret;
 }
 
-static int treo680_is_ac_online(void)
+static int palmgsm_is_ac_online(void)
 {
-	return gpio_get_value(GPIO_NR_TREO680_POWER_DETECT);
+	return gpio_get_value(GPIO_NR_PALMGSM_POWER_DETECT);
 }
 
 static void power_supply_exit(struct device *dev)
 {
-	gpio_free(GPIO_NR_TREO680_POWER_DETECT);
+	gpio_free(GPIO_NR_PALMGSM_POWER_DETECT);
 }
 
-static char *treo680_supplicants[] = {
+static char *palmgsm_supplicants[] = {
 	"main-battery",
 };
 
 static struct pda_power_pdata power_supply_info = {
 	.init		 = power_supply_init,
-	.is_ac_online    = treo680_is_ac_online,
+	.is_ac_online    = palmgsm_is_ac_online,
 	.exit		 = power_supply_exit,
-	.supplied_to     = treo680_supplicants,
-	.num_supplicants = ARRAY_SIZE(treo680_supplicants),
+	.supplied_to     = palmgsm_supplicants,
+	.num_supplicants = ARRAY_SIZE(palmgsm_supplicants),
 };
 
 static struct platform_device power_supply = {
@@ -409,7 +425,8 @@ static struct platform_device power_supply = {
 /******************************************************************************
  * Vibra and LEDs
  ******************************************************************************/
-static struct gpio_led gpio_leds[] = {
+#ifdef CONFIG_MACH_TREO680
+static struct gpio_led treo680_gpio_leds[] = {
 	{
 		.name			= "treo680:vibra:vibra",
 		.default_trigger	= "none",
@@ -418,34 +435,34 @@ static struct gpio_led gpio_leds[] = {
 	{
 		.name			= "treo680:green:led",
 		.default_trigger	= "mmc0",
-		.gpio			= GPIO_NR_TREO680_GREEN_LED,
+		.gpio			= GPIO_NR_PALMGSM_GREEN_LED,
 	},
 	{
-		.name			= "treo680:keybbl:keybbl",
+		.name			= "treo680:white:keybbl",
 		.default_trigger	= "none",
 		.gpio			= GPIO_NR_TREO680_KEYB_BL,
 	},
 };
 
-static struct gpio_led_platform_data gpio_led_info = {
-	.leds		= gpio_leds,
-	.num_leds	= ARRAY_SIZE(gpio_leds),
+static struct gpio_led_platform_data treo680_gpio_led_info = {
+	.leds		= treo680_gpio_leds,
+	.num_leds	= ARRAY_SIZE(treo680_gpio_leds),
 };
 
 static struct platform_device treo680_leds = {
 	.name   = "leds-gpio",
 	.id     = -1,
 	.dev    = {
-		.platform_data  = &gpio_led_info,
+		.platform_data  = &treo680_gpio_led_info,
 	}
 };
-
+#endif
 
 /******************************************************************************
  * Framebuffer
  ******************************************************************************/
 /* TODO: add support for 324x324 */
-static struct pxafb_mode_info treo680_lcd_modes[] = {
+static struct pxafb_mode_info palmgsm_lcd_modes[] = {
 {
 	.pixclock		= 86538,
 	.xres			= 320,
@@ -462,16 +479,16 @@ static struct pxafb_mode_info treo680_lcd_modes[] = {
 },
 };
 
-static struct pxafb_mach_info treo680_lcd_screen = {
-	.modes		= treo680_lcd_modes,
-	.num_modes	= ARRAY_SIZE(treo680_lcd_modes),
+static struct pxafb_mach_info palmgsm_lcd_screen = {
+	.modes		= palmgsm_lcd_modes,
+	.num_modes	= ARRAY_SIZE(palmgsm_lcd_modes),
 	.lcd_conn	= LCD_COLOR_TFT_16BPP | LCD_PCLK_EDGE_FALL,
 };
 
 /******************************************************************************
  * Power management - standby
  ******************************************************************************/
-static void __init treo680_pm_init(void)
+static void __init palmgsm_pm_init(void)
 {
 	static u32 resume[] = {
 		0xe3a00101,	/* mov	r0,	#0x40000000 */
@@ -480,45 +497,58 @@ static void __init treo680_pm_init(void)
 	};
 
 	/* this is where the bootloader jumps */
-	memcpy(phys_to_virt(TREO680_STR_BASE), resume, sizeof(resume));
+	memcpy(phys_to_virt(PALMGSM_STR_BASE), resume, sizeof(resume));
 }
 
 /******************************************************************************
  * Machine init
  ******************************************************************************/
-static struct platform_device *devices[] __initdata = {
-	&treo680_backlight,
-	&treo680_leds,
+static struct platform_device *palmgsm_devices[] __initdata = {
+	&palmgsm_backlight,
 	&power_supply,
 };
 
+#ifdef CONFIG_MACH_TREO680
+static struct platform_device *treo680_devices[] __initdata = {
+	&treo680_leds,
+};
+#endif
+
 /* setup udc GPIOs initial state */
-static void __init treo680_udc_init(void)
+static void __init palmgsm_udc_init(void)
 {
-	if (!gpio_request(GPIO_NR_TREO680_USB_PULLUP, "UDC Vbus")) {
-		gpio_direction_output(GPIO_NR_TREO680_USB_PULLUP, 1);
-		gpio_free(GPIO_NR_TREO680_USB_PULLUP);
+	if (!gpio_request(GPIO_NR_PALMGSM_USB_PULLUP, "UDC Vbus")) {
+		gpio_direction_output(GPIO_NR_PALMGSM_USB_PULLUP, 1);
+		gpio_free(GPIO_NR_PALMGSM_USB_PULLUP);
 	}
 }
 
+static void __init palmgsm_init(void)
+{
+	palmgsm_pm_init();
+	pxa2xx_mfp_config(ARRAY_AND_SIZE(palmgsm_pin_config));
+	set_pxa_fb_info(&palmgsm_lcd_screen);
+	palmgsm_udc_init();
+	pxa_set_udc_info(&palmgsm_udc_info);
+	pxa_set_ac97_info(&palmgsm_ac97_pdata);
+	pxa_set_ficp_info(&palmgsm_ficp_info);
+
+	platform_add_devices(ARRAY_AND_SIZE(palmgsm_devices));
+}
+
+#ifdef CONFIG_MACH_TREO680
 static void __init treo680_init(void)
 {
-	treo680_pm_init();
+	palmgsm_init();
 	pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config));
 	pxa_set_keypad_info(&treo680_keypad_platform_data);
-	set_pxa_fb_info(&treo680_lcd_screen);
 	pxa_set_mci_info(&treo680_mci_platform_data);
-	treo680_udc_init();
-	pxa_set_udc_info(&treo680_udc_info);
-	pxa_set_ac97_info(&treo680_ac97_pdata);
-	pxa_set_ficp_info(&treo680_ficp_info);
 	pxa_set_ohci_info(&treo680_ohci_info);
-
-	platform_add_devices(devices, ARRAY_SIZE(devices));
+	platform_add_devices(ARRAY_AND_SIZE(treo680_devices));
 }
 
 MACHINE_START(TREO680, "Palm Treo 680")
-	.phys_io	= TREO680_PHYS_IO_START,
+	.phys_io	= PALMGSM_PHYS_IO_START,
 	.io_pg_offst	= io_p2v(0x40000000),
 	.boot_params	= 0xa0000100,
 	.map_io		= pxa_map_io,
@@ -526,3 +556,4 @@ MACHINE_START(TREO680, "Palm Treo 680")
 	.timer		= &pxa_timer,
 	.init_machine	= treo680_init,
 MACHINE_END
+#endif
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 5/5] PalmGSM: add basic Centro support
  2009-08-31 17:26       ` [PATCH 4/5] PalmGSM: generalisation of Treo680 code to PalmGSM Tomáš Čech
@ 2009-08-31 17:26         ` Tomáš Čech
  0 siblings, 0 replies; 23+ messages in thread
From: Tomáš Čech @ 2009-08-31 17:26 UTC (permalink / raw)
  To: linux-arm-kernel

From: Tom?? ?ech <sleep walker@suse.cz>


Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
---
 arch/arm/mach-pxa/Kconfig                |   11 ++
 arch/arm/mach-pxa/include/mach/palmgsm.h |    7 ++
 arch/arm/mach-pxa/palmgsm.c              |  160 ++++++++++++++++++++++++++++++
 arch/arm/mm/mmu.c                        |    2 +-
 4 files changed, 179 insertions(+), 1 deletions(-)

diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index 441f1d6..6f0232a 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -405,6 +405,17 @@ config PALMGSM
 	depends on ARCH_PXA_PALM
 	bool
 
+config MACH_CENTRO
+	bool "Palm Centro 685"
+	default y
+	depends on ARCH_PXA_PALM
+	select PXA27x
+	select IWMMXT
+	select PALMGSM
+	help
+	  Say Y here if you intend to run this kernel on Palm Centro 685
+	  smartphone.
+
 config MACH_TREO680
 	bool "Palm Treo 680"
 	default y
diff --git a/arch/arm/mach-pxa/include/mach/palmgsm.h b/arch/arm/mach-pxa/include/mach/palmgsm.h
index 8d1a3bc..6e52946 100644
--- a/arch/arm/mach-pxa/include/mach/palmgsm.h
+++ b/arch/arm/mach-pxa/include/mach/palmgsm.h
@@ -3,6 +3,7 @@
  *
  * currently supported:
  *     Palm Treo 680 (GSM)
+ *     Palm Centro 685 (GSM)
  *
  * Author:     Tomas Cech <sleep_walker@suse.cz>
  *
@@ -45,6 +46,12 @@
 #define GPIO_NR_TREO680_KEYB_BL		24
 #define GPIO_NR_TREO680_BT_EN		43
 
+/* Centro685 specific GPIOs */
+#define GPIO_NR_CENTRO_SD_POWER		21
+#define GPIO_NR_CENTRO_VIBRATE_EN	22
+#define GPIO_NR_CENTRO_KEYB_BL		33
+#define GPIO_NR_CENTRO_BT_EN		80
+
 /* Various addresses  */
 #define PALMGSM_PHYS_RAM_START	0xa0000000
 #define PALMGSM_PHYS_IO_START	0x40000000
diff --git a/arch/arm/mach-pxa/palmgsm.c b/arch/arm/mach-pxa/palmgsm.c
index 66be426..03634da 100644
--- a/arch/arm/mach-pxa/palmgsm.c
+++ b/arch/arm/mach-pxa/palmgsm.c
@@ -3,6 +3,7 @@
  *
  * currently supported:
  *     Palm Treo 680 (GSM)
+ *     Palm Centro 685 (GSM)
  *
  * Author:     Tomas Cech <sleep_walker@suse.cz>
  *
@@ -160,6 +161,21 @@ static unsigned long treo680_pin_config[] __initdata = {
 };
 #endif
 
+#ifdef CONFIG_MACH_CENTRO
+static unsigned long centro685_pin_config[] __initdata = {
+	/* Bluetooth attached to BT UART*/
+	MFP_CFG_OUT(GPIO80, AF0, DRIVE_LOW),    /* power: LOW = off */
+	GPIO42_BTUART_RXD,
+	GPIO43_BTUART_TXD,
+	GPIO44_BTUART_CTS,
+	GPIO45_BTUART_RTS,
+
+	/* MATRIX KEYPAD - different wake up source */
+	GPIO100_KP_MKIN_0,
+	GPIO99_KP_MKIN_5 | WAKEUP_ON_LEVEL_HIGH,
+};
+#endif
+
 /******************************************************************************
  * SD/MMC card controller
  ******************************************************************************/
@@ -172,6 +188,15 @@ static struct pxamci_platform_data treo680_mci_platform_data = {
 };
 #endif
 
+#ifdef CONFIG_MACH_CENTRO
+static struct pxamci_platform_data centro_mci_platform_data = {
+	.ocr_mask		= MMC_VDD_32_33 | MMC_VDD_33_34,
+	.gpio_card_detect	= GPIO_NR_PALMGSM_SD_DETECT_N,
+	.gpio_power		= GPIO_NR_TREO680_SD_POWER,
+	.gpio_power_invert	= 1,
+};
+#endif
+
 /******************************************************************************
  * GPIO keyboard
  ******************************************************************************/
@@ -247,6 +272,78 @@ static struct pxa27x_keypad_platform_data treo680_keypad_platform_data = {
 };
 #endif
 
+#ifdef CONFIG_MACH_CENTRO
+static unsigned int centro_matrix_keys[] = {
+	KEY(0, 0, KEY_F9),		/* Home */
+	KEY(0, 1, KEY_LEFT),
+	KEY(0, 2, KEY_LEFTCTRL),	/* Alternate */
+	KEY(0, 3, KEY_L),
+	KEY(0, 4, KEY_A),
+	KEY(0, 5, KEY_Q),
+	KEY(0, 6, KEY_P),
+
+	KEY(1, 0, KEY_RIGHTCTRL),	/* Menu */
+	KEY(1, 1, KEY_RIGHT),
+	KEY(1, 2, KEY_LEFTSHIFT),	/* Left shift */
+	KEY(1, 3, KEY_Z),
+	KEY(1, 4, KEY_S),
+	KEY(1, 5, KEY_W),
+
+	KEY(2, 0, KEY_F1),		/* Phone */
+	KEY(2, 1, KEY_UP),
+	KEY(2, 2, KEY_0),
+	KEY(2, 3, KEY_X),
+	KEY(2, 4, KEY_D),
+	KEY(2, 5, KEY_E),
+
+	KEY(3, 0, KEY_F10),		/* Calendar */
+	KEY(3, 1, KEY_DOWN),
+	KEY(3, 2, KEY_SPACE),
+	KEY(3, 3, KEY_C),
+	KEY(3, 4, KEY_F),
+	KEY(3, 5, KEY_R),
+
+	KEY(4, 0, KEY_F12),		/* Mail */
+	KEY(4, 1, KEY_KPENTER),
+	KEY(4, 2, KEY_RIGHTALT),	/* Alt */
+	KEY(4, 3, KEY_V),
+	KEY(4, 4, KEY_G),
+	KEY(4, 5, KEY_T),
+
+	KEY(5, 0, KEY_F8),		/* Red/Off/Power */
+	KEY(5, 1, KEY_PAGEUP),		/* Side up */
+	KEY(5, 2, KEY_DOT),
+	KEY(5, 3, KEY_B),
+	KEY(5, 4, KEY_H),
+	KEY(5, 5, KEY_Y),
+
+	KEY(6, 0, KEY_TAB),		/* Side Activate */
+	KEY(6, 1, KEY_PAGEDOWN),	/* Side down */
+	KEY(6, 2, KEY_ENTER),
+	KEY(6, 3, KEY_N),
+	KEY(6, 4, KEY_J),
+	KEY(6, 5, KEY_U),
+
+	KEY(7, 0, KEY_F6),		/* Green/Call */
+	KEY(7, 1, KEY_O),
+	KEY(7, 2, KEY_BACKSPACE),
+	KEY(7, 3, KEY_M),
+	KEY(7, 4, KEY_K),
+	KEY(7, 5, KEY_I),
+};
+
+static struct pxa27x_keypad_platform_data centro_keypad_platform_data = {
+	.matrix_key_rows	= 8,
+	.matrix_key_cols	= 7,
+	.matrix_key_map		= centro_matrix_keys,
+	.matrix_key_map_size	= ARRAY_SIZE(centro_matrix_keys),
+	.direct_key_map		= { KEY_CONNECT },
+	.direct_key_num		= 1,
+
+	.debounce_interval	= 30,
+};
+#endif
+
 /******************************************************************************
  * aSoC audio
  ******************************************************************************/
@@ -458,6 +555,40 @@ static struct platform_device treo680_leds = {
 };
 #endif
 
+#ifdef CONFIG_MACH_CENTRO
+static struct gpio_led centro_gpio_leds[] = {
+	{
+		.name			= "centro:vibra:vibra",
+		.default_trigger	= "none",
+		.gpio			= GPIO_NR_CENTRO_VIBRATE_EN,
+	},
+	{
+		.name			= "centro:green:led",
+		.default_trigger	= "mmc0",
+		.gpio			= GPIO_NR_PALMGSM_GREEN_LED,
+	},
+	{
+		.name			= "centro:white:keybbl",
+		.default_trigger	= "none",
+		.active_low		= 1,
+		.gpio			= GPIO_NR_CENTRO_KEYB_BL,
+	},
+};
+
+static struct gpio_led_platform_data centro_gpio_led_info = {
+	.leds		= centro_gpio_leds,
+	.num_leds	= ARRAY_SIZE(centro_gpio_leds),
+};
+
+static struct platform_device centro_leds = {
+	.name   = "leds-gpio",
+	.id     = -1,
+	.dev    = {
+		.platform_data  = &centro_gpio_led_info,
+	}
+};
+#endif
+
 /******************************************************************************
  * Framebuffer
  ******************************************************************************/
@@ -514,6 +645,12 @@ static struct platform_device *treo680_devices[] __initdata = {
 };
 #endif
 
+#ifdef CONFIG_MACH_CENTRO
+static struct platform_device *centro_devices[] __initdata = {
+	&centro_leds,
+};
+#endif
+
 /* setup udc GPIOs initial state */
 static void __init palmgsm_udc_init(void)
 {
@@ -557,3 +694,26 @@ MACHINE_START(TREO680, "Palm Treo 680")
 	.init_machine	= treo680_init,
 MACHINE_END
 #endif
+
+#ifdef CONFIG_MACH_CENTRO
+static void __init centro_init(void)
+{
+	palmgsm_init();
+	pxa2xx_mfp_config(ARRAY_AND_SIZE(centro685_pin_config));
+	pxa_set_mci_info(&centro_mci_platform_data);
+
+	pxa_set_keypad_info(&centro_keypad_platform_data);
+
+	platform_add_devices(ARRAY_AND_SIZE(centro_devices));
+ }
+
+MACHINE_START(CENTRO, "Palm Centro 685")
+	.phys_io        = PALMGSM_PHYS_IO_START,
+	.io_pg_offst    = io_p2v(0x40000000),
+	.boot_params    = 0xa0000100,
+	.map_io         = pxa_map_io,
+	.init_irq       = pxa27x_init_irq,
+	.timer          = &pxa_timer,
+       .init_machine   = centro_init,
+MACHINE_END
+#endif
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 4722582..4f51395 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -836,7 +836,7 @@ void __init reserve_node_zero(pg_data_t *pgdat)
 				BOOTMEM_EXCLUSIVE);
 	}
 
-	if (machine_is_treo680()) {
+	if (machine_is_treo680() || machine_is_centro()) {
 		reserve_bootmem_node(pgdat, 0xa0000000, 0x1000,
 				BOOTMEM_EXCLUSIVE);
 		reserve_bootmem_node(pgdat, 0xa2000000, 0x1000,
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 23+ messages in thread

* [PATCH 1/5] Treo680: pxamci simplify to use GPIO
  2009-08-31 17:25 ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Tomáš Čech
  2009-08-31 17:25   ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Tomáš Čech
@ 2009-08-31 17:33   ` Marek Vasut
  2009-09-01  9:36     ` Eric Miao
  1 sibling, 1 reply; 23+ messages in thread
From: Marek Vasut @ 2009-08-31 17:33 UTC (permalink / raw)
  To: linux-arm-kernel

Dne Po 31. srpna 2009 19:25:57 Tom?? ?ech napsal(a):
> From: Tom?? ?ech <sleep walker@suse.cz>
>
>
> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
> ---
>  arch/arm/mach-pxa/treo680.c |   84
> ++---------------------------------------- 1 files changed, 4
> insertions(+), 80 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
> index a06f19e..050ad8e 100644
> --- a/arch/arm/mach-pxa/treo680.c
> +++ b/arch/arm/mach-pxa/treo680.c

...

Seems OK to me

Acked-by: Marek Vasut <marek.vasut@gmail.com>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-08-31 17:25   ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Tomáš Čech
  2009-08-31 17:25     ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Tomáš Čech
@ 2009-08-31 17:34     ` Marek Vasut
  2009-08-31 18:34       ` Tomáš 'Sleep_Walker' Čech
  1 sibling, 1 reply; 23+ messages in thread
From: Marek Vasut @ 2009-08-31 17:34 UTC (permalink / raw)
  To: linux-arm-kernel

Dne Po 31. srpna 2009 19:25:58 Tom?? ?ech napsal(a):
> From: Tom?? ?ech <sleep walker@suse.cz>
>
>
> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
> ---
>  arch/arm/mach-pxa/treo680.c |   10 +---------
>  1 files changed, 1 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
> index 050ad8e..57bccc3 100644
> --- a/arch/arm/mach-pxa/treo680.c
> +++ b/arch/arm/mach-pxa/treo680.c
> @@ -254,16 +254,9 @@ static int treo680_backlight_init(struct device *dev)
>  	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
>  	if (ret)
>  		goto err2;
> -	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
> -	if (ret)
> -		goto err2;
> -	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
> -	if (ret)
> -		goto err3;
>
>  	return 0;
> -err3:
> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
> +
>  err2:
>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
>  err:
> @@ -279,7 +272,6 @@ static int treo680_backlight_notify(int brightness)
>  static void treo680_backlight_exit(struct device *dev)
>  {
>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
>  }
>
>  static struct platform_pwm_backlight_data treo680_backlight_data = {

Why was that GPIO there before then? Does this have any effect on the boot 
problems you are experiencing with Centro/T680? Otherwise seems OK to me

Acked-by: Marek Vasut <marek.vasut@gmail.com>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown()
  2009-08-31 17:25     ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Tomáš Čech
  2009-08-31 17:26       ` [PATCH 4/5] PalmGSM: generalisation of Treo680 code to PalmGSM Tomáš Čech
@ 2009-08-31 17:36       ` Marek Vasut
  2009-09-01  9:52         ` Eric Miao
  1 sibling, 1 reply; 23+ messages in thread
From: Marek Vasut @ 2009-08-31 17:36 UTC (permalink / raw)
  To: linux-arm-kernel

Dne Po 31. srpna 2009 19:25:59 Tom?? ?ech napsal(a):
> From: Tom?? ?ech <sleep walker@suse.cz>
>
>
> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
> ---
>  arch/arm/mach-pxa/treo680.c |    2 +-
>  1 files changed, 1 insertions(+), 1 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
> index 57bccc3..d88114c 100644
> --- a/arch/arm/mach-pxa/treo680.c
> +++ b/arch/arm/mach-pxa/treo680.c
> @@ -325,7 +325,7 @@ err1:
>
>  static void treo680_irda_shutdown(struct device *dev)
>  {
> -	gpio_free(GPIO_NR_TREO680_AMP_EN);
> +	gpio_free(GPIO_NR_TREO680_IR_EN);
>  }
>
>  static struct pxaficp_platform_data treo680_ficp_info = {

...

Seems OK to me, I think the first three patches can go in as is, Eric, could 
you merge them? Thanks

Acked-by: Marek Vasut <marek.vasut@gmail.com>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-08-31 17:34     ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Marek Vasut
@ 2009-08-31 18:34       ` Tomáš 'Sleep_Walker' Čech
  2009-09-01  9:49         ` Eric Miao
  0 siblings, 1 reply; 23+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-08-31 18:34 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Dne Po 31. srpna 2009 19:34:51 Marek Vasut napsal(a):
> Dne Po 31. srpna 2009 19:25:58 Tom?? ?ech napsal(a):
> > From: Tom?? ?ech <sleep walker@suse.cz>
> >
> >
> > Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
> > ---
> >  arch/arm/mach-pxa/treo680.c |   10 +---------
> >  1 files changed, 1 insertions(+), 9 deletions(-)
> >
> > diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
> > index 050ad8e..57bccc3 100644
> > --- a/arch/arm/mach-pxa/treo680.c
> > +++ b/arch/arm/mach-pxa/treo680.c
> > @@ -254,16 +254,9 @@ static int treo680_backlight_init(struct device *dev)
> >  	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
> >  	if (ret)
> >  		goto err2;
> > -	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
> > -	if (ret)
> > -		goto err2;
> > -	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
> > -	if (ret)
> > -		goto err3;
> >
> >  	return 0;
> > -err3:
> > -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
> > +
> >  err2:
> >  	gpio_free(GPIO_NR_TREO680_BL_POWER);
> >  err:
> > @@ -279,7 +272,6 @@ static int treo680_backlight_notify(int brightness)
> >  static void treo680_backlight_exit(struct device *dev)
> >  {
> >  	gpio_free(GPIO_NR_TREO680_BL_POWER);
> > -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
> >  }
> >
> >  static struct platform_pwm_backlight_data treo680_backlight_data = {
> 
> Why was that GPIO there before then? Does this have any effect on the boot 
> problems you are experiencing with Centro/T680? Otherwise seems OK to me

I used it first in brightness setting for 0 value. I found it not good idea. I removed it from function, but I wanted to keep GPIO registered and direction set. But it can work well even without that and I'd like to add some function to export some control GPIOs through /sys/class/gpio interface (bluetooth power, GSM power, GSM reset...) - this GPIO will be also exported there...

Best regards,

Tomas Cech

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 1/5] Treo680: pxamci simplify to use GPIO
  2009-08-31 17:33   ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Marek Vasut
@ 2009-09-01  9:36     ` Eric Miao
  0 siblings, 0 replies; 23+ messages in thread
From: Eric Miao @ 2009-09-01  9:36 UTC (permalink / raw)
  To: linux-arm-kernel

2009/9/1 Marek Vasut <marek.vasut@gmail.com>:
> Dne Po 31. srpna 2009 19:25:57 Tom?? ?ech napsal(a):
>> From: Tom?? ?ech <sleep walker@suse.cz>
>>
>>
>> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
>> ---
>> ?arch/arm/mach-pxa/treo680.c | ? 84
>> ++---------------------------------------- 1 files changed, 4
>> insertions(+), 80 deletions(-)
>>
>> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
>> index a06f19e..050ad8e 100644
>> --- a/arch/arm/mach-pxa/treo680.c
>> +++ b/arch/arm/mach-pxa/treo680.c
>
> ...
>
> Seems OK to me
>
> Acked-by: Marek Vasut <marek.vasut@gmail.com>
>

Applied.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-08-31 18:34       ` Tomáš 'Sleep_Walker' Čech
@ 2009-09-01  9:49         ` Eric Miao
  2009-09-01 10:56           ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 1 reply; 23+ messages in thread
From: Eric Miao @ 2009-09-01  9:49 UTC (permalink / raw)
  To: linux-arm-kernel

Tom?? 'Sleep_Walker' ?ech wrote:
> Hi,
> 
> Dne Po 31. srpna 2009 19:34:51 Marek Vasut napsal(a):
>> Dne Po 31. srpna 2009 19:25:58 Tom?? ?ech napsal(a):
>>> From: Tom?? ?ech <sleep walker@suse.cz>
>>>
>>>
>>> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
>>> ---
>>>  arch/arm/mach-pxa/treo680.c |   10 +---------
>>>  1 files changed, 1 insertions(+), 9 deletions(-)
>>>
>>> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
>>> index 050ad8e..57bccc3 100644
>>> --- a/arch/arm/mach-pxa/treo680.c
>>> +++ b/arch/arm/mach-pxa/treo680.c
>>> @@ -254,16 +254,9 @@ static int treo680_backlight_init(struct device *dev)
>>>  	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
>>>  	if (ret)
>>>  		goto err2;
>>> -	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
>>> -	if (ret)
>>> -		goto err2;
>>> -	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
>>> -	if (ret)
>>> -		goto err3;
>>>
>>>  	return 0;
>>> -err3:
>>> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
>>> +
>>>  err2:
>>>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
>>>  err:
>>> @@ -279,7 +272,6 @@ static int treo680_backlight_notify(int brightness)
>>>  static void treo680_backlight_exit(struct device *dev)
>>>  {
>>>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
>>> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
>>>  }
>>>
>>>  static struct platform_pwm_backlight_data treo680_backlight_data = {
>> Why was that GPIO there before then? Does this have any effect on the boot 
>> problems you are experiencing with Centro/T680? Otherwise seems OK to me
> 
> I used it first in brightness setting for 0 value. I found it not good idea. I removed it from function, but I wanted to keep GPIO registered and direction set. But it can work well even without that and I'd like to add some function to export some control GPIOs through /sys/class/gpio interface (bluetooth power, GSM power, GSM reset...) - this GPIO will be also exported there...
> 

The name sounds like a GPIO for the power of the LCD panel itself,
does it make sense to have this somewhere in the LCD power_{on,off}
hooks?

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown()
  2009-08-31 17:36       ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Marek Vasut
@ 2009-09-01  9:52         ` Eric Miao
  0 siblings, 0 replies; 23+ messages in thread
From: Eric Miao @ 2009-09-01  9:52 UTC (permalink / raw)
  To: linux-arm-kernel

Marek Vasut wrote:
> Dne Po 31. srpna 2009 19:25:59 Tom?? ?ech napsal(a):
>> From: Tom?? ?ech <sleep walker@suse.cz>
>>
>>
>> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
>> ---
>>  arch/arm/mach-pxa/treo680.c |    2 +-
>>  1 files changed, 1 insertions(+), 1 deletions(-)
>>
>> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
>> index 57bccc3..d88114c 100644
>> --- a/arch/arm/mach-pxa/treo680.c
>> +++ b/arch/arm/mach-pxa/treo680.c
>> @@ -325,7 +325,7 @@ err1:
>>
>>  static void treo680_irda_shutdown(struct device *dev)
>>  {
>> -	gpio_free(GPIO_NR_TREO680_AMP_EN);
>> +	gpio_free(GPIO_NR_TREO680_IR_EN);
>>  }
>>
>>  static struct pxaficp_platform_data treo680_ficp_info = {
> 
> ...
> 
> Seems OK to me, I think the first three patches can go in as is, Eric, could 
> you merge them? Thanks
> 
> Acked-by: Marek Vasut <marek.vasut@gmail.com>

This has been merged by Russell in his patch tracking system, so really
don't need to go via my tree now.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-09-01  9:49         ` Eric Miao
@ 2009-09-01 10:56           ` Tomáš 'Sleep_Walker' Čech
  2009-09-01 11:42             ` Eric Miao
  0 siblings, 1 reply; 23+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-01 10:56 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Dne ?t 1. z??? 2009 11:49:24 Eric Miao napsal(a):
> Tom?? 'Sleep_Walker' ?ech wrote:
> > Hi,
> > 
> > Dne Po 31. srpna 2009 19:34:51 Marek Vasut napsal(a):
> >> Dne Po 31. srpna 2009 19:25:58 Tom?? ?ech napsal(a):
> >>> From: Tom?? ?ech <sleep walker@suse.cz>
> >>>
> >>>
> >>> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
> >>> ---
> >>>  arch/arm/mach-pxa/treo680.c |   10 +---------
> >>>  1 files changed, 1 insertions(+), 9 deletions(-)
> >>>
> >>> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
> >>> index 050ad8e..57bccc3 100644
> >>> --- a/arch/arm/mach-pxa/treo680.c
> >>> +++ b/arch/arm/mach-pxa/treo680.c
> >>> @@ -254,16 +254,9 @@ static int treo680_backlight_init(struct device *dev)
> >>>  	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
> >>>  	if (ret)
> >>>  		goto err2;
> >>> -	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
> >>> -	if (ret)
> >>> -		goto err2;
> >>> -	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
> >>> -	if (ret)
> >>> -		goto err3;
> >>>
> >>>  	return 0;
> >>> -err3:
> >>> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
> >>> +
> >>>  err2:
> >>>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
> >>>  err:
> >>> @@ -279,7 +272,6 @@ static int treo680_backlight_notify(int brightness)
> >>>  static void treo680_backlight_exit(struct device *dev)
> >>>  {
> >>>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
> >>> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
> >>>  }
> >>>
> >>>  static struct platform_pwm_backlight_data treo680_backlight_data = {
> >> Why was that GPIO there before then? Does this have any effect on the boot 
> >> problems you are experiencing with Centro/T680? Otherwise seems OK to me
> > 
> > I used it first in brightness setting for 0 value. I found it not good idea. I removed it from function, but I wanted to keep GPIO registered and direction set. But it can work well even without that and I'd like to add some function to export some control GPIOs through /sys/class/gpio interface (bluetooth power, GSM power, GSM reset...) - this GPIO will be also exported there...
> > 
> 
> The name sounds like a GPIO for the power of the LCD panel itself,
> does it make sense to have this somewhere in the LCD power_{on,off}
> hooks?
> 

Yes, it would be much better.
I was looking for the right place - did you mean pxafb_mach_info.pxafb_lcd_power?

Thanks

Best regards,

Tomas Cech

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-09-01 10:56           ` Tomáš 'Sleep_Walker' Čech
@ 2009-09-01 11:42             ` Eric Miao
  2009-09-01 16:14               ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 1 reply; 23+ messages in thread
From: Eric Miao @ 2009-09-01 11:42 UTC (permalink / raw)
  To: linux-arm-kernel

Tom?? 'Sleep_Walker' ?ech wrote:
> Hi,
> 
> Dne ?t 1. z??? 2009 11:49:24 Eric Miao napsal(a):
>> Tom?? 'Sleep_Walker' ?ech wrote:
>>> Hi,
>>>
>>> Dne Po 31. srpna 2009 19:34:51 Marek Vasut napsal(a):
>>>> Dne Po 31. srpna 2009 19:25:58 Tom?? ?ech napsal(a):
>>>>> From: Tom?? ?ech <sleep walker@suse.cz>
>>>>>
>>>>>
>>>>> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
>>>>> ---
>>>>>  arch/arm/mach-pxa/treo680.c |   10 +---------
>>>>>  1 files changed, 1 insertions(+), 9 deletions(-)
>>>>>
>>>>> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
>>>>> index 050ad8e..57bccc3 100644
>>>>> --- a/arch/arm/mach-pxa/treo680.c
>>>>> +++ b/arch/arm/mach-pxa/treo680.c
>>>>> @@ -254,16 +254,9 @@ static int treo680_backlight_init(struct device *dev)
>>>>>  	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
>>>>>  	if (ret)
>>>>>  		goto err2;
>>>>> -	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
>>>>> -	if (ret)
>>>>> -		goto err2;
>>>>> -	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
>>>>> -	if (ret)
>>>>> -		goto err3;
>>>>>
>>>>>  	return 0;
>>>>> -err3:
>>>>> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
>>>>> +
>>>>>  err2:
>>>>>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
>>>>>  err:
>>>>> @@ -279,7 +272,6 @@ static int treo680_backlight_notify(int brightness)
>>>>>  static void treo680_backlight_exit(struct device *dev)
>>>>>  {
>>>>>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
>>>>> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
>>>>>  }
>>>>>
>>>>>  static struct platform_pwm_backlight_data treo680_backlight_data = {
>>>> Why was that GPIO there before then? Does this have any effect on the boot 
>>>> problems you are experiencing with Centro/T680? Otherwise seems OK to me
>>> I used it first in brightness setting for 0 value. I found it not good idea. I removed it from function, but I wanted to keep GPIO registered and direction set. But it can work well even without that and I'd like to add some function to export some control GPIOs through /sys/class/gpio interface (bluetooth power, GSM power, GSM reset...) - this GPIO will be also exported there...
>>>
>> The name sounds like a GPIO for the power of the LCD panel itself,
>> does it make sense to have this somewhere in the LCD power_{on,off}
>> hooks?
>>
> 
> Yes, it would be much better.
> I was looking for the right place - did you mean pxafb_mach_info.pxafb_lcd_power?
> 

I think so.

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-09-01 11:42             ` Eric Miao
@ 2009-09-01 16:14               ` Tomáš 'Sleep_Walker' Čech
       [not found]                 ` <f17812d70909012325h42a834cqad3627fb3e4fe62d@mail.gmail.com>
  0 siblings, 1 reply; 23+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-01 16:14 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Dne ?t 1. z??? 2009 13:42:14 Eric Miao napsal(a):
> Tom?? 'Sleep_Walker' ?ech wrote:
> > Hi,
> > 
> > Dne ?t 1. z??? 2009 11:49:24 Eric Miao napsal(a):
> >> Tom?? 'Sleep_Walker' ?ech wrote:
> >>> Hi,
> >>>
> >>> Dne Po 31. srpna 2009 19:34:51 Marek Vasut napsal(a):
> >>>> Dne Po 31. srpna 2009 19:25:58 Tom?? ?ech napsal(a):
> >>>>> From: Tom?? ?ech <sleep walker@suse.cz>
> >>>>>
> >>>>>
> >>>>> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
> >>>>> ---
> >>>>>  arch/arm/mach-pxa/treo680.c |   10 +---------
> >>>>>  1 files changed, 1 insertions(+), 9 deletions(-)
> >>>>>
> >>>>> diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
> >>>>> index 050ad8e..57bccc3 100644
> >>>>> --- a/arch/arm/mach-pxa/treo680.c
> >>>>> +++ b/arch/arm/mach-pxa/treo680.c
> >>>>> @@ -254,16 +254,9 @@ static int treo680_backlight_init(struct device *dev)
> >>>>>  	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
> >>>>>  	if (ret)
> >>>>>  		goto err2;
> >>>>> -	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
> >>>>> -	if (ret)
> >>>>> -		goto err2;
> >>>>> -	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
> >>>>> -	if (ret)
> >>>>> -		goto err3;
> >>>>>
> >>>>>  	return 0;
> >>>>> -err3:
> >>>>> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
> >>>>> +
> >>>>>  err2:
> >>>>>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
> >>>>>  err:
> >>>>> @@ -279,7 +272,6 @@ static int treo680_backlight_notify(int brightness)
> >>>>>  static void treo680_backlight_exit(struct device *dev)
> >>>>>  {
> >>>>>  	gpio_free(GPIO_NR_TREO680_BL_POWER);
> >>>>> -	gpio_free(GPIO_NR_TREO680_LCD_POWER);
> >>>>>  }
> >>>>>
> >>>>>  static struct platform_pwm_backlight_data treo680_backlight_data = {
> >>>> Why was that GPIO there before then? Does this have any effect on the boot 
> >>>> problems you are experiencing with Centro/T680? Otherwise seems OK to me
> >>> I used it first in brightness setting for 0 value. I found it not good idea. I removed it from function, but I wanted to keep GPIO registered and direction set. But it can work well even without that and I'd like to add some function to export some control GPIOs through /sys/class/gpio interface (bluetooth power, GSM power, GSM reset...) - this GPIO will be also exported there...
> >>>
> >> The name sounds like a GPIO for the power of the LCD panel itself,
> >> does it make sense to have this somewhere in the LCD power_{on,off}
> >> hooks?
> >>
> > 
> > Yes, it would be much better.
> > I was looking for the right place - did you mean pxafb_mach_info.pxafb_lcd_power?
> > 
> 
> I think so.
>

There can be problem with this. It's easy to create such function, but there is no place for initialization so I would need to call gpio_register() and gpio_direction_output() in machine init function or even elsewhere which I find a bit nasty. Should I try to update pxafb to support LCD power through GPIO too or go nasty way?

Thanks

Best regards,

Tomas Cech

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
       [not found]                 ` <f17812d70909012325h42a834cqad3627fb3e4fe62d@mail.gmail.com>
@ 2009-09-02  6:28                   ` Eric Miao
  2009-09-02  8:45                     ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 1 reply; 23+ messages in thread
From: Eric Miao @ 2009-09-02  6:28 UTC (permalink / raw)
  To: linux-arm-kernel

(sorry this might be html,send from my g1).
currently, I dont think gpio for pxafb is necessary, request and init in
board_init() should be just ok.

On Sep 2, 2009 12:14 AM, "Tom?? &apos;Sleep_Walker&apos; ?ech" <
sleep_walker@suse.cz> wrote:

Hi,

Dne ?t 1. z??? 2009 13:42:14 Eric Miao napsal(a):

> Tom?? 'Sleep_Walker' ?ech wrote: > > Hi, > > > > Dne ?t 1. z??? 2009
11:49:24 Eric Miao napsal(a)...
There can be problem with this. It's easy to create such function, but there
is no place for initialization so I would need to call gpio_register() and
gpio_direction_output() in machine init function or even elsewhere which I
find a bit nasty. Should I try to update pxafb to support LCD power through
GPIO too or go nasty way?

Thanks Best regards, Tomas Cech
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20090902/6d8e7e61/attachment.htm>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-09-02  6:28                   ` Eric Miao
@ 2009-09-02  8:45                     ` Tomáš 'Sleep_Walker' Čech
  2009-09-03 13:48                       ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 1 reply; 23+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-02  8:45 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,
Dne St 2. z??? 2009 08:28:51 Eric Miao napsal(a):
> (sorry this might be html,send from my g1).
> currently, I dont think gpio for pxafb is necessary, request and init in
> board_init() should be just ok.

ok then. Here goes patch.

Best regards,

Tomas Cech
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Treo680-move-LCD-power-GPIO-to-proper-place.patch
Type: text/x-patch
Size: 2734 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20090902/3286c3b4/attachment.bin>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-09-02  8:45                     ` Tomáš 'Sleep_Walker' Čech
@ 2009-09-03 13:48                       ` Tomáš 'Sleep_Walker' Čech
  2009-09-03 15:21                         ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 1 reply; 23+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-03 13:48 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

I discussed it with Marex after his kind review and I just set pxafb_lcd_power property according to GPIO initialization success.

Best regards,

Tomas Cech
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Treo680-move-LCD-power-GPIO-to-proper-place.patch
Type: text/x-patch
Size: 2488 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20090903/0ceebf05/attachment.bin>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-09-03 13:48                       ` Tomáš 'Sleep_Walker' Čech
@ 2009-09-03 15:21                         ` Tomáš 'Sleep_Walker' Čech
  2009-09-05  4:43                           ` Eric Miao
  0 siblings, 1 reply; 23+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-03 15:21 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

I discussed it with Marex again after his kind review and I created some special function for it to remain machine_init function clean. I hope this one is clean enough to be accepted.

Best regards,

Tomas Cech
-------------- next part --------------
A non-text attachment was scrubbed...
Name: 0001-Treo680-move-LCD-power-GPIO-to-proper-place.patch
Type: text/x-patch
Size: 2647 bytes
Desc: not available
URL: <http://lists.infradead.org/pipermail/linux-arm-kernel/attachments/20090903/f431fc0b/attachment.bin>

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-09-03 15:21                         ` Tomáš 'Sleep_Walker' Čech
@ 2009-09-05  4:43                           ` Eric Miao
  2009-09-06  8:27                             ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 1 reply; 23+ messages in thread
From: Eric Miao @ 2009-09-05  4:43 UTC (permalink / raw)
  To: linux-arm-kernel

On Thu, Sep 3, 2009 at 11:21 PM, Tom?? 'Sleep_Walker'
?ech<sleep_walker@suse.cz> wrote:
> Hi,
>
> I discussed it with Marex again after his kind review and I created some special function for it to remain machine_init function clean. I hope this one is clean enough to be accepted.
>

OK, applied, with printk(KERN_ERR changed to pr_err()

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-09-05  4:43                           ` Eric Miao
@ 2009-09-06  8:27                             ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 0 replies; 23+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-06  8:27 UTC (permalink / raw)
  To: linux-arm-kernel

> OK, applied, with printk(KERN_ERR changed to pr_err()
Thanks.

Tomas Cech

^ permalink raw reply	[flat|nested] 23+ messages in thread

* [PATCH 2/5] Treo680: remove unused LCD power GPIO
  2009-08-27  0:43 ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Tomáš Čech
@ 2009-08-27  0:43   ` Tomáš Čech
  0 siblings, 0 replies; 23+ messages in thread
From: Tomáš Čech @ 2009-08-27  0:43 UTC (permalink / raw)
  To: linux-arm-kernel

From: Tom?? ?ech <sleep walker@suse.cz>

---
 arch/arm/mach-pxa/treo680.c |   10 +---------
 1 files changed, 1 insertions(+), 9 deletions(-)

diff --git a/arch/arm/mach-pxa/treo680.c b/arch/arm/mach-pxa/treo680.c
index 050ad8e..57bccc3 100644
--- a/arch/arm/mach-pxa/treo680.c
+++ b/arch/arm/mach-pxa/treo680.c
@@ -254,16 +254,9 @@ static int treo680_backlight_init(struct device *dev)
 	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
 	if (ret)
 		goto err2;
-	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
-	if (ret)
-		goto err2;
-	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
-	if (ret)
-		goto err3;
 
 	return 0;
-err3:
-	gpio_free(GPIO_NR_TREO680_LCD_POWER);
+
 err2:
 	gpio_free(GPIO_NR_TREO680_BL_POWER);
 err:
@@ -279,7 +272,6 @@ static int treo680_backlight_notify(int brightness)
 static void treo680_backlight_exit(struct device *dev)
 {
 	gpio_free(GPIO_NR_TREO680_BL_POWER);
-	gpio_free(GPIO_NR_TREO680_LCD_POWER);
 }
 
 static struct platform_pwm_backlight_data treo680_backlight_data = {
-- 
1.6.3.3

^ permalink raw reply related	[flat|nested] 23+ messages in thread

end of thread, other threads:[~2009-09-06  8:27 UTC | newest]

Thread overview: 23+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2009-08-31 17:25 update Treo680, generalise it and add Centro support - round 2 Tomáš Čech
2009-08-31 17:25 ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Tomáš Čech
2009-08-31 17:25   ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Tomáš Čech
2009-08-31 17:25     ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Tomáš Čech
2009-08-31 17:26       ` [PATCH 4/5] PalmGSM: generalisation of Treo680 code to PalmGSM Tomáš Čech
2009-08-31 17:26         ` [PATCH 5/5] PalmGSM: add basic Centro support Tomáš Čech
2009-08-31 17:36       ` [PATCH 3/5] Treo680: fix freed GPIO in treo680_irda_shutdown() Marek Vasut
2009-09-01  9:52         ` Eric Miao
2009-08-31 17:34     ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Marek Vasut
2009-08-31 18:34       ` Tomáš 'Sleep_Walker' Čech
2009-09-01  9:49         ` Eric Miao
2009-09-01 10:56           ` Tomáš 'Sleep_Walker' Čech
2009-09-01 11:42             ` Eric Miao
2009-09-01 16:14               ` Tomáš 'Sleep_Walker' Čech
     [not found]                 ` <f17812d70909012325h42a834cqad3627fb3e4fe62d@mail.gmail.com>
2009-09-02  6:28                   ` Eric Miao
2009-09-02  8:45                     ` Tomáš 'Sleep_Walker' Čech
2009-09-03 13:48                       ` Tomáš 'Sleep_Walker' Čech
2009-09-03 15:21                         ` Tomáš 'Sleep_Walker' Čech
2009-09-05  4:43                           ` Eric Miao
2009-09-06  8:27                             ` Tomáš 'Sleep_Walker' Čech
2009-08-31 17:33   ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Marek Vasut
2009-09-01  9:36     ` Eric Miao
  -- strict thread matches above, loose matches on Subject: below --
2009-08-27  0:43 update Treo680, generalise it and add Centro support Tomáš Čech
2009-08-27  0:43 ` [PATCH 1/5] Treo680: pxamci simplify to use GPIO Tomáš Čech
2009-08-27  0:43   ` [PATCH 2/5] Treo680: remove unused LCD power GPIO Tomáš Čech

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.