* [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
* 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 = ¢ro_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 = {
+ ¢ro_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(¢ro_mci_platform_data);
+
+ pxa_set_keypad_info(¢ro_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?? 'Sleep_Walker' ?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
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 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).