linux-arm-kernel.lists.infradead.org archive mirror
 help / color / mirror / Atom feed
* generalise Treo680 code and add support for Palm Centro - round 3
@ 2009-09-11 11:57 Tomáš Čech
  2009-09-11 11:57 ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš Čech
  2009-09-17 21:08 ` generalise Treo680 code and add support for Palm Centro - round 3 Tomáš 'Sleep_Walker' Čech
  0 siblings, 2 replies; 15+ messages in thread
From: Tomáš Čech @ 2009-09-11 11:57 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

this is round 3 of generalisation Treo680 code and consequential add Palm Centro 685 support.

Changes since last round:
	- filename is now palmtreo.c to remain Palm devices consistency
	- generic functions are now beginning with treo_ (instead of previous palmgsm_)
	- pxamci_platform_data now contains also '.gpio_card_ro		= -1,'
	- added MAINTAINERS entry
	- reduced patchset (patches preceding these are already applied)

Thanks for your time.

Round 3 - fight!

Best regards,

Tomas Cech

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

* [PATCH 1/2] PalmTreo: generalisation of Treo680 code
  2009-09-11 11:57 generalise Treo680 code and add support for Palm Centro - round 3 Tomáš Čech
@ 2009-09-11 11:57 ` Tomáš Čech
  2009-09-11 11:57   ` [PATCH 2/2] PalmTreo: add Palm Centro 685 support Tomáš Čech
                     ` (2 more replies)
  2009-09-17 21:08 ` generalise Treo680 code and add support for Palm Centro - round 3 Tomáš 'Sleep_Walker' Čech
  1 sibling, 3 replies; 15+ messages in thread
From: Tomáš Čech @ 2009-09-11 11:57 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/palmtreo.h   |   60 ++++++++
 arch/arm/mach-pxa/include/mach/treo680.h    |   49 -------
 arch/arm/mach-pxa/{treo680.c => palmtreo.c} |  202 ++++++++++++++++-----------
 5 files changed, 183 insertions(+), 135 deletions(-)
 create mode 100644 arch/arm/mach-pxa/include/mach/palmtreo.h
 delete mode 100644 arch/arm/mach-pxa/include/mach/treo680.h
 rename arch/arm/mach-pxa/{treo680.c => palmtreo.c} (69%)

diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index a6f8eab..ce6519c 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -421,12 +421,17 @@ config MACH_PALMZ72
 	  Say Y here if you intend to run this kernel on Palm Zire 72
 	  handheld computer.
 
+config PALM_TREO
+	bool
+	depends on ARCH_PXA_PALM
+
 config MACH_TREO680
 	bool "Palm Treo 680"
 	default y
 	depends on ARCH_PXA_PALM
 	select PXA27x
 	select IWMMXT
+	select PALM_TREO
 	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 f10e152..e5d450c 100644
--- a/arch/arm/mach-pxa/Makefile
+++ b/arch/arm/mach-pxa/Makefile
@@ -64,7 +64,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_PALM_TREO)		+= palmtreo.o
 obj-$(CONFIG_ARCH_VIPER)	+= viper.o
 
 ifeq ($(CONFIG_MACH_ZYLONITE),y)
diff --git a/arch/arm/mach-pxa/include/mach/palmtreo.h b/arch/arm/mach-pxa/include/mach/palmtreo.h
new file mode 100644
index 0000000..8cb0bca
--- /dev/null
+++ b/arch/arm/mach-pxa/include/mach/palmtreo.h
@@ -0,0 +1,60 @@
+/*
+ * GPIOs and interrupts for Palm Treo 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_TREO_H_
+#define _INCLUDE_TREO_H_
+
+/* GPIOs */
+#define GPIO_NR_TREO_POWER_DETECT	0
+#define GPIO_NR_TREO_AMP_EN		27
+#define GPIO_NR_TREO_GREEN_LED	20
+#define GPIO_NR_TREO_RED_LED		79
+#define GPIO_NR_TREO_SD_DETECT_N	113
+#define GPIO_NR_TREO_EP_DETECT_N	116
+#define GPIO_NR_TREO_USB_DETECT	1
+#define GPIO_NR_TREO_USB_PULLUP	114
+#define GPIO_NR_TREO_GSM_POWER	40
+#define GPIO_NR_TREO_GSM_RESET	87
+#define GPIO_NR_TREO_GSM_WAKE	57
+#define GPIO_NR_TREO_GSM_HOST_WAKE	14
+#define GPIO_NR_TREO_GSM_TRIGGER	10
+#define GPIO_NR_TREO_IR_EN		115
+#define GPIO_NR_TREO_IR_TXD		47
+#define GPIO_NR_TREO_BL_POWER	38
+#define GPIO_NR_TREO_LCD_POWER	25
+
+/* Treo680 specific GPIOs */
+#ifdef CONFIG_MACH_TREO680
+#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
+#endif /* CONFIG_MACH_TREO680 */
+
+/* Various addresses  */
+#define TREO_PHYS_RAM_START	0xa0000000
+#define TREO_PHYS_IO_START	0x40000000
+#define TREO_STR_BASE	0xa2000000
+
+/* BACKLIGHT */
+#define TREO_MAX_INTENSITY		254
+#define TREO_DEFAULT_INTENSITY	160
+#define TREO_LIMIT_MASK		0x7F
+#define TREO_PRESCALER		63
+#define TREO_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/palmtreo.c
similarity index 69%
rename from arch/arm/mach-pxa/treo680.c
rename to arch/arm/mach-pxa/palmtreo.c
index fe08507..5e66028 100644
--- a/arch/arm/mach-pxa/treo680.c
+++ b/arch/arm/mach-pxa/palmtreo.c
@@ -1,5 +1,8 @@
 /*
- * Hardware definitions for Palm Treo 680
+ * Hardware definitions for Palm Treo 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/palmtreo.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 treo_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 /* CONFIG_MACH_TREO680 */
+
 /******************************************************************************
  * 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_TREO_SD_DETECT_N,
 	.gpio_card_ro		= GPIO_NR_TREO680_SD_READONLY,
 	.gpio_power		= GPIO_NR_TREO680_SD_POWER,
 };
+#endif /* CONFIG_MACH_TREO680 */
 
 /******************************************************************************
  * 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,92 +245,95 @@ static struct pxa27x_keypad_platform_data treo680_keypad_platform_data = {
 
 	.debounce_interval	= 30,
 };
+#endif /* CONFIG_MACH_TREO680 */
 
 /******************************************************************************
  * aSoC audio
  ******************************************************************************/
 
-static pxa2xx_audio_ops_t treo680_ac97_pdata = {
+static pxa2xx_audio_ops_t treo_ac97_pdata = {
 	.reset_gpio	= 95,
 };
 
 /******************************************************************************
  * Backlight
  ******************************************************************************/
-static int treo680_backlight_init(struct device *dev)
+static int treo_backlight_init(struct device *dev)
 {
 	int ret;
 
-	ret = gpio_request(GPIO_NR_TREO680_BL_POWER, "BL POWER");
+	ret = gpio_request(GPIO_NR_TREO_BL_POWER, "BL POWER");
 	if (ret)
 		goto err;
-	ret = gpio_direction_output(GPIO_NR_TREO680_BL_POWER, 0);
+	ret = gpio_direction_output(GPIO_NR_TREO_BL_POWER, 0);
 	if (ret)
 		goto err2;
 
 	return 0;
 
 err2:
-	gpio_free(GPIO_NR_TREO680_BL_POWER);
+	gpio_free(GPIO_NR_TREO_BL_POWER);
 err:
 	return ret;
 }
 
-static int treo680_backlight_notify(int brightness)
+static int treo_backlight_notify(int brightness)
 {
-	gpio_set_value(GPIO_NR_TREO680_BL_POWER, brightness);
-	return TREO680_MAX_INTENSITY - brightness;
+	gpio_set_value(GPIO_NR_TREO_BL_POWER, brightness);
+	return TREO_MAX_INTENSITY - brightness;
 };
 
-static void treo680_backlight_exit(struct device *dev)
+static void treo_backlight_exit(struct device *dev)
 {
-	gpio_free(GPIO_NR_TREO680_BL_POWER);
+	gpio_free(GPIO_NR_TREO_BL_POWER);
 }
 
-static struct platform_pwm_backlight_data treo680_backlight_data = {
+static struct platform_pwm_backlight_data treo_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	= TREO_MAX_INTENSITY,
+	.dft_brightness	= TREO_DEFAULT_INTENSITY,
+	.pwm_period_ns	= TREO_PERIOD_NS,
+	.init		= treo_backlight_init,
+	.notify		= treo_backlight_notify,
+	.exit		= treo_backlight_exit,
 };
 
-static struct platform_device treo680_backlight = {
+static struct platform_device treo_backlight = {
 	.name	= "pwm-backlight",
 	.dev	= {
 		.parent		= &pxa27x_device_pwm0.dev,
-		.platform_data	= &treo680_backlight_data,
+		.platform_data	= &treo_backlight_data,
 	},
 };
 
 /******************************************************************************
  * IrDA
  ******************************************************************************/
-static struct pxaficp_platform_data treo680_ficp_info = {
-	.gpio_pwdown		= GPIO_NR_TREO680_IR_EN,
+static struct pxaficp_platform_data treo_ficp_info = {
+	.gpio_pwdown		= GPIO_NR_TREO_IR_EN,
 	.transceiver_cap	= IR_SIRMODE | IR_OFF,
 };
 
 /******************************************************************************
  * UDC
  ******************************************************************************/
-static struct pxa2xx_udc_mach_info treo680_udc_info __initdata = {
-	.gpio_vbus		= GPIO_NR_TREO680_USB_DETECT,
+static struct pxa2xx_udc_mach_info treo_udc_info __initdata = {
+	.gpio_vbus		= GPIO_NR_TREO_USB_DETECT,
 	.gpio_vbus_inverted	= 1,
-	.gpio_pullup		= GPIO_NR_TREO680_USB_PULLUP,
+	.gpio_pullup		= GPIO_NR_TREO_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 /* CONFIG_MACH_TREO680 */
 
 /******************************************************************************
  * Power supply
@@ -326,41 +342,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_TREO_POWER_DETECT, "CABLE_STATE_AC");
 	if (ret)
 		goto err1;
-	ret = gpio_direction_input(GPIO_NR_TREO680_POWER_DETECT);
+	ret = gpio_direction_input(GPIO_NR_TREO_POWER_DETECT);
 	if (ret)
 		goto err2;
 
 	return 0;
 
 err2:
-	gpio_free(GPIO_NR_TREO680_POWER_DETECT);
+	gpio_free(GPIO_NR_TREO_POWER_DETECT);
 err1:
 	return ret;
 }
 
-static int treo680_is_ac_online(void)
+static int treo_is_ac_online(void)
 {
-	return gpio_get_value(GPIO_NR_TREO680_POWER_DETECT);
+	return gpio_get_value(GPIO_NR_TREO_POWER_DETECT);
 }
 
 static void power_supply_exit(struct device *dev)
 {
-	gpio_free(GPIO_NR_TREO680_POWER_DETECT);
+	gpio_free(GPIO_NR_TREO_POWER_DETECT);
 }
 
-static char *treo680_supplicants[] = {
+static char *treo_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    = treo_is_ac_online,
 	.exit		 = power_supply_exit,
-	.supplied_to     = treo680_supplicants,
-	.num_supplicants = ARRAY_SIZE(treo680_supplicants),
+	.supplied_to     = treo_supplicants,
+	.num_supplicants = ARRAY_SIZE(treo_supplicants),
 };
 
 static struct platform_device power_supply = {
@@ -374,7 +390,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",
@@ -383,34 +400,34 @@ static struct gpio_led gpio_leds[] = {
 	{
 		.name			= "treo680:green:led",
 		.default_trigger	= "mmc0",
-		.gpio			= GPIO_NR_TREO680_GREEN_LED,
+		.gpio			= GPIO_NR_TREO_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 /* CONFIG_MACH_TREO680 */
 
 /******************************************************************************
  * Framebuffer
  ******************************************************************************/
 /* TODO: add support for 324x324 */
-static struct pxafb_mode_info treo680_lcd_modes[] = {
+static struct pxafb_mode_info treo_lcd_modes[] = {
 {
 	.pixclock		= 86538,
 	.xres			= 320,
@@ -427,21 +444,21 @@ static struct pxafb_mode_info treo680_lcd_modes[] = {
 },
 };
 
-static void treo680_lcd_power(int on, struct fb_var_screeninfo *info)
+static void treo_lcd_power(int on, struct fb_var_screeninfo *info)
 {
-	gpio_set_value(GPIO_NR_TREO680_BL_POWER, on);
+	gpio_set_value(GPIO_NR_TREO_BL_POWER, on);
 }
 
-static struct pxafb_mach_info treo680_lcd_screen = {
-	.modes		= treo680_lcd_modes,
-	.num_modes	= ARRAY_SIZE(treo680_lcd_modes),
+static struct pxafb_mach_info treo_lcd_screen = {
+	.modes		= treo_lcd_modes,
+	.num_modes	= ARRAY_SIZE(treo_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 treo_pm_init(void)
 {
 	static u32 resume[] = {
 		0xe3a00101,	/* mov	r0,	#0x40000000 */
@@ -450,70 +467,85 @@ 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(TREO_STR_BASE), resume, sizeof(resume));
 }
 
 /******************************************************************************
  * Machine init
  ******************************************************************************/
-static struct platform_device *devices[] __initdata = {
-	&treo680_backlight,
-	&treo680_leds,
+static struct platform_device *treo_devices[] __initdata = {
+	&treo_backlight,
 	&power_supply,
 };
 
+#ifdef CONFIG_MACH_TREO680
+static struct platform_device *treo680_devices[] __initdata = {
+	&treo680_leds,
+};
+#endif /* CONFIG_MACH_TREO680 */
+
 /* setup udc GPIOs initial state */
-static void __init treo680_udc_init(void)
+static void __init treo_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_TREO_USB_PULLUP, "UDC Vbus")) {
+		gpio_direction_output(GPIO_NR_TREO_USB_PULLUP, 1);
+		gpio_free(GPIO_NR_TREO_USB_PULLUP);
 	}
 }
 
-static void __init treo680_lcd_power_init(void)
+static void __init treo_lcd_power_init(void)
 {
 	int ret;
 
-	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
+	ret = gpio_request(GPIO_NR_TREO_LCD_POWER, "LCD POWER");
 	if (ret) {
 		pr_err("Treo680: LCD power GPIO request failed!\n");
 		return;
 	}
 
-	ret = gpio_direction_output(GPIO_NR_TREO680_LCD_POWER, 0);
+	ret = gpio_direction_output(GPIO_NR_TREO_LCD_POWER, 0);
 	if (ret) {
 		pr_err("Treo680: setting LCD power GPIO direction failed!\n");
-		gpio_free(GPIO_NR_TREO680_LCD_POWER);
+		gpio_free(GPIO_NR_TREO_LCD_POWER);
 		return;
 	}
 
-	treo680_lcd_screen.pxafb_lcd_power = treo680_lcd_power;
+	treo_lcd_screen.pxafb_lcd_power = treo_lcd_power;
 }
 
+static void __init treo_init(void)
+{
+	treo_pm_init();
+	pxa2xx_mfp_config(ARRAY_AND_SIZE(treo_pin_config));
+	treo_lcd_power_init();
+	set_pxa_fb_info(&treo_lcd_screen);
+	treo_udc_init();
+	pxa_set_udc_info(&treo_udc_info);
+	pxa_set_ac97_info(&treo_ac97_pdata);
+	pxa_set_ficp_info(&treo_ficp_info);
+
+	platform_add_devices(ARRAY_AND_SIZE(treo_devices));
+}
+
+#ifdef CONFIG_MACH_TREO680
 static void __init treo680_init(void)
 {
-	treo680_pm_init();
+	treo_init();
 	pxa2xx_mfp_config(ARRAY_AND_SIZE(treo680_pin_config));
-	pxa_set_keypad_info(&treo680_keypad_platform_data);
-	treo680_lcd_power_init();
-	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_keypad_info(&treo680_keypad_platform_data);
 	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,
-	.io_pg_offst	= io_p2v(0x40000000),
-	.boot_params	= 0xa0000100,
-	.map_io		= pxa_map_io,
-	.init_irq	= pxa27x_init_irq,
-	.timer		= &pxa_timer,
-	.init_machine	= treo680_init,
+	.phys_io        = TREO_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   = treo680_init,
 MACHINE_END
+#endif /* CONFIG_MACH_TREO680 */
-- 
1.6.4.2

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

* [PATCH 2/2] PalmTreo: add Palm Centro 685 support
  2009-09-11 11:57 ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš Čech
@ 2009-09-11 11:57   ` Tomáš Čech
  2009-09-12 19:31     ` Marek Vasut
  2009-09-11 12:02   ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš 'Sleep_Walker' Čech
  2009-09-12 19:29   ` Marek Vasut
  2 siblings, 1 reply; 15+ messages in thread
From: Tomáš Čech @ 2009-09-11 11:57 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                 |   13 ++-
 arch/arm/mach-pxa/include/mach/palmtreo.h |    7 ++
 arch/arm/mach-pxa/palmtreo.c              |  161 +++++++++++++++++++++++++++++
 arch/arm/mm/mmu.c                         |    2 +-
 4 files changed, 181 insertions(+), 2 deletions(-)

diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
index ce6519c..57eceb8 100644
--- a/arch/arm/mach-pxa/Kconfig
+++ b/arch/arm/mach-pxa/Kconfig
@@ -425,6 +425,17 @@ config PALM_TREO
 	bool
 	depends on ARCH_PXA_PALM
 
+config MACH_CENTRO
+	bool "Palm Centro 685 (GSM)"
+	default y
+	depends on ARCH_PXA_PALM
+	select PXA27x
+	select IWMMXT
+	select PALM_TREO
+	help
+	  Say Y here if you intend to run this kernel on Palm Centro 685 (GSM)
+	  smartphone.
+
 config MACH_TREO680
 	bool "Palm Treo 680"
 	default y
@@ -433,7 +444,7 @@ config MACH_TREO680
 	select IWMMXT
 	select PALM_TREO
 	help
-	  Say Y here if you intend to run this kernel on Palm Treo 680
+	  Say Y here if you intend to run this kernel on Palm Treo 680 (GSM)
 	  smartphone.
 
 config MACH_PALMLD
diff --git a/arch/arm/mach-pxa/include/mach/palmtreo.h b/arch/arm/mach-pxa/include/mach/palmtreo.h
index 8cb0bca..2d3f14e 100644
--- a/arch/arm/mach-pxa/include/mach/palmtreo.h
+++ b/arch/arm/mach-pxa/include/mach/palmtreo.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_BT_EN		43
 #endif /* CONFIG_MACH_TREO680 */
 
+/* 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 TREO_PHYS_RAM_START	0xa0000000
 #define TREO_PHYS_IO_START	0x40000000
diff --git a/arch/arm/mach-pxa/palmtreo.c b/arch/arm/mach-pxa/palmtreo.c
index 5e66028..c071b60 100644
--- a/arch/arm/mach-pxa/palmtreo.c
+++ b/arch/arm/mach-pxa/palmtreo.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 /* CONFIG_MACH_TREO680 */
 
+#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 /* CONFIG_MACH_CENTRO */
+
 /******************************************************************************
  * SD/MMC card controller
  ******************************************************************************/
@@ -172,6 +188,16 @@ static struct pxamci_platform_data treo680_mci_platform_data = {
 };
 #endif /* CONFIG_MACH_TREO680 */
 
+#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_TREO_SD_DETECT_N,
+	.gpio_card_ro		= -1,
+	.gpio_power		= GPIO_NR_CENTRO_SD_POWER,
+	.gpio_power_invert	= 1,
+};
+#endif /* CONFIG_MACH_CENTRO */
+
 /******************************************************************************
  * GPIO keyboard
  ******************************************************************************/
@@ -247,6 +273,78 @@ static struct pxa27x_keypad_platform_data treo680_keypad_platform_data = {
 };
 #endif /* CONFIG_MACH_TREO680 */
 
+#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 /* CONFIG_MACH_CENTRO */
+
 /******************************************************************************
  * aSoC audio
  ******************************************************************************/
@@ -423,6 +521,40 @@ static struct platform_device treo680_leds = {
 };
 #endif /* CONFIG_MACH_TREO680 */
 
+#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_TREO_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 /* CONFIG_MACH_CENTRO */
+
 /******************************************************************************
  * Framebuffer
  ******************************************************************************/
@@ -484,6 +616,12 @@ static struct platform_device *treo680_devices[] __initdata = {
 };
 #endif /* CONFIG_MACH_TREO680 */
 
+#ifdef CONFIG_MACH_CENTRO
+static struct platform_device *centro_devices[] __initdata = {
+	&centro_leds,
+};
+#endif /* CONFIG_MACH_CENTRO */
+
 /* setup udc GPIOs initial state */
 static void __init treo_udc_init(void)
 {
@@ -549,3 +687,26 @@ MACHINE_START(TREO680, "Palm Treo 680")
 	.init_machine   = treo680_init,
 MACHINE_END
 #endif /* CONFIG_MACH_TREO680 */
+
+#ifdef CONFIG_MACH_CENTRO
+static void __init centro_init(void)
+{
+	treo_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        = TREO_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 /* CONFIG_MACH_CENTRO */
diff --git a/arch/arm/mm/mmu.c b/arch/arm/mm/mmu.c
index 4426ee6..92b27ab 100644
--- a/arch/arm/mm/mmu.c
+++ b/arch/arm/mm/mmu.c
@@ -843,7 +843,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.4.2

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

* [PATCH 1/2] PalmTreo: generalisation of Treo680 code
  2009-09-11 11:57 ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš Čech
  2009-09-11 11:57   ` [PATCH 2/2] PalmTreo: add Palm Centro 685 support Tomáš Čech
@ 2009-09-11 12:02   ` Tomáš 'Sleep_Walker' Čech
  2009-09-12 19:29   ` Marek Vasut
  2 siblings, 0 replies; 15+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-11 12:02 UTC (permalink / raw)
  To: linux-arm-kernel

Dne P? 11. z??? 2009 13:57:01 Tom?? ?ech napsal(a):
> From: Tom?? ?ech <sleep walker@suse.cz>
Geez, here is problem again... There should be '<sleep_walker@suse.cz>' of course.

Tomas Cech

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

* [PATCH 1/2] PalmTreo: generalisation of Treo680 code
  2009-09-11 11:57 ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš Čech
  2009-09-11 11:57   ` [PATCH 2/2] PalmTreo: add Palm Centro 685 support Tomáš Čech
  2009-09-11 12:02   ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš 'Sleep_Walker' Čech
@ 2009-09-12 19:29   ` Marek Vasut
  2009-09-13  9:03     ` Tomáš 'Sleep_Walker' Čech
  2 siblings, 1 reply; 15+ messages in thread
From: Marek Vasut @ 2009-09-12 19:29 UTC (permalink / raw)
  To: linux-arm-kernel

Dne P? 11. z??? 2009 13:57:01 Tom?? ?ech napsal(a):
> 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/palmtreo.h   |   60 ++++++++
>  arch/arm/mach-pxa/include/mach/treo680.h    |   49 -------
>  arch/arm/mach-pxa/{treo680.c => palmtreo.c} |  202
> ++++++++++++++++----------- 5 files changed, 183 insertions(+), 135
> deletions(-)
>  create mode 100644 arch/arm/mach-pxa/include/mach/palmtreo.h
>  delete mode 100644 arch/arm/mach-pxa/include/mach/treo680.h
>  rename arch/arm/mach-pxa/{treo680.c => palmtreo.c} (69%)
>
...
> -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),
>  };

Be careful so you dont run into symbol redefinition here (gpio_led_info) in case 
the kernel supports more than this one device ...
>
>  static struct platform_device treo680_leds = {
>  	.name   = "leds-gpio",
>  	.id     = -1,
>  	.dev    = {
> -		.platform_data  = &gpio_led_info,
> +		.platform_data  = &treo680_gpio_led_info,
>  	}
>  };
...
> +#endif /* CONFIG_MACH_TREO680 */
> +
>  /* setup udc GPIOs initial state */
> -static void __init treo680_udc_init(void)
> +static void __init treo_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_TREO_USB_PULLUP, "UDC Vbus")) {
> +		gpio_direction_output(GPIO_NR_TREO_USB_PULLUP, 1);
> +		gpio_free(GPIO_NR_TREO_USB_PULLUP);
>  	}
>  }
>

Is this really needed or is it just a copy-paste from other Palm device?

> -static void __init treo680_lcd_power_init(void)
> +static void __init treo_lcd_power_init(void)
>  {
>  	int ret;
>
> -	ret = gpio_request(GPIO_NR_TREO680_LCD_POWER, "LCD POWER");
> +	ret = gpio_request(GPIO_NR_TREO_LCD_POWER, "LCD POWER");
>  	if (ret) {
>  		pr_err("Treo680: LCD power GPIO request failed!\n");
>  		return;
>  	}
...

Cheers!

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

* [PATCH 2/2] PalmTreo: add Palm Centro 685 support
  2009-09-11 11:57   ` [PATCH 2/2] PalmTreo: add Palm Centro 685 support Tomáš Čech
@ 2009-09-12 19:31     ` Marek Vasut
  2009-09-13  9:06       ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 1 reply; 15+ messages in thread
From: Marek Vasut @ 2009-09-12 19:31 UTC (permalink / raw)
  To: linux-arm-kernel

Dne P? 11. z??? 2009 13:57:02 Tom?? ?ech napsal(a):
> From: Tom?? ?ech <sleep walker@suse.cz>
>
>
> Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
> ---
>  arch/arm/mach-pxa/Kconfig                 |   13 ++-
>  arch/arm/mach-pxa/include/mach/palmtreo.h |    7 ++
>  arch/arm/mach-pxa/palmtreo.c              |  161
> +++++++++++++++++++++++++++++ arch/arm/mm/mmu.c                         |  
>  2 +-
>  4 files changed, 181 insertions(+), 2 deletions(-)
>
> diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
> index ce6519c..57eceb8 100644
> --- a/arch/arm/mach-pxa/Kconfig
> +++ b/arch/arm/mach-pxa/Kconfig
> @@ -425,6 +425,17 @@ config PALM_TREO
>  	bool
>  	depends on ARCH_PXA_PALM
>
> +config MACH_CENTRO
> +	bool "Palm Centro 685 (GSM)"
> +	default y
> +	depends on ARCH_PXA_PALM
> +	select PXA27x
> +	select IWMMXT
> +	select PALM_TREO
> +	help
> +	  Say Y here if you intend to run this kernel on Palm Centro 685 (GSM)
> +	  smartphone.
> +
>  config MACH_TREO680
>  	bool "Palm Treo 680"
>  	default y
> @@ -433,7 +444,7 @@ config MACH_TREO680
>  	select IWMMXT
>  	select PALM_TREO
>  	help
> -	  Say Y here if you intend to run this kernel on Palm Treo 680
> +	  Say Y here if you intend to run this kernel on Palm Treo 680 (GSM)

This change certainly should not be in this patch, maybe in previous one ?

>  	  smartphone.
>
>  config MACH_PALMLD
...
Cheers!

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

* [PATCH 1/2] PalmTreo: generalisation of Treo680 code
  2009-09-12 19:29   ` Marek Vasut
@ 2009-09-13  9:03     ` Tomáš 'Sleep_Walker' Čech
  2009-09-13  9:27       ` Marek Vasut
  0 siblings, 1 reply; 15+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-13  9:03 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

thanks for reading my patch!

Dne So 12. z??? 2009 21:29:06 Marek Vasut napsal(a):
> ...
> > -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),
> >  };
> 
> Be careful so you dont run into symbol redefinition here (gpio_led_info) in case 
> the kernel supports more than this one device ...

That's why I change the name. It's called now 'treo680_gpio_led_info' as you can see.

> ...
> > +#endif /* CONFIG_MACH_TREO680 */
> > +
> >  /* setup udc GPIOs initial state */
> > -static void __init treo680_udc_init(void)
> > +static void __init treo_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_TREO_USB_PULLUP, "UDC Vbus")) {
> > +		gpio_direction_output(GPIO_NR_TREO_USB_PULLUP, 1);
> > +		gpio_free(GPIO_NR_TREO_USB_PULLUP);
> >  	}
> >  }
> >
> 
> Is this really needed or is it just a copy-paste from other Palm device?
Unfortunately yes. There is no copy-paste in this code which wasn't checked and tested. It doesn't work correctly without that.

Best regards,

Tomas Cech

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

* [PATCH 2/2] PalmTreo: add Palm Centro 685 support
  2009-09-12 19:31     ` Marek Vasut
@ 2009-09-13  9:06       ` Tomáš 'Sleep_Walker' Čech
  2009-10-10 14:13         ` Eric Miao
  0 siblings, 1 reply; 15+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-13  9:06 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,

Dne So 12. z??? 2009 21:31:15 Marek Vasut napsal(a):
> Dne P? 11. z??? 2009 13:57:02 Tom?? ?ech napsal(a):
> > From: Tom?? ?ech <sleep walker@suse.cz>
> >
> >
> > Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
> > ---
> >  arch/arm/mach-pxa/Kconfig                 |   13 ++-
> >  arch/arm/mach-pxa/include/mach/palmtreo.h |    7 ++
> >  arch/arm/mach-pxa/palmtreo.c              |  161
> > +++++++++++++++++++++++++++++ arch/arm/mm/mmu.c                         |  
> >  2 +-
> >  4 files changed, 181 insertions(+), 2 deletions(-)
> >
> > diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
> > index ce6519c..57eceb8 100644
> > --- a/arch/arm/mach-pxa/Kconfig
> > +++ b/arch/arm/mach-pxa/Kconfig
> > @@ -425,6 +425,17 @@ config PALM_TREO
> >  	bool
> >  	depends on ARCH_PXA_PALM
> >
> > +config MACH_CENTRO
> > +	bool "Palm Centro 685 (GSM)"
> > +	default y
> > +	depends on ARCH_PXA_PALM
> > +	select PXA27x
> > +	select IWMMXT
> > +	select PALM_TREO
> > +	help
> > +	  Say Y here if you intend to run this kernel on Palm Centro 685 (GSM)
> > +	  smartphone.
> > +
> >  config MACH_TREO680
> >  	bool "Palm Treo 680"
> >  	default y
> > @@ -433,7 +444,7 @@ config MACH_TREO680
> >  	select IWMMXT
> >  	select PALM_TREO
> >  	help
> > -	  Say Y here if you intend to run this kernel on Palm Treo 680
> > +	  Say Y here if you intend to run this kernel on Palm Treo 680 (GSM)
> 
> This change certainly should not be in this patch, maybe in previous one ?

Ah, right. I'll change it in next round, but I think I'll wait until someone have a look to code not to flood ML much.

Best regards,

Tomas Cech

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

* [PATCH 1/2] PalmTreo: generalisation of Treo680 code
  2009-09-13  9:03     ` Tomáš 'Sleep_Walker' Čech
@ 2009-09-13  9:27       ` Marek Vasut
  2009-10-10 14:06         ` Eric Miao
  0 siblings, 1 reply; 15+ messages in thread
From: Marek Vasut @ 2009-09-13  9:27 UTC (permalink / raw)
  To: linux-arm-kernel

Dne Ne 13. z??? 2009 11:03:37 Tom?? 'Sleep_Walker' ?ech napsal(a):
> Hi,
> 
> thanks for reading my patch!
> 
> Dne So 12. z??? 2009 21:29:06 Marek Vasut napsal(a):
> > ...
> >
> > > -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),
> > >  };
> >
> > Be careful so you dont run into symbol redefinition here (gpio_led_info)
> > in case the kernel supports more than this one device ...
> 
> That's why I change the name. It's called now 'treo680_gpio_led_info' as
>  you can see.
> 
> > ...
> >
> > > +#endif /* CONFIG_MACH_TREO680 */
> > > +
> > >  /* setup udc GPIOs initial state */
> > > -static void __init treo680_udc_init(void)
> > > +static void __init treo_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_TREO_USB_PULLUP, "UDC Vbus")) {
> > > +		gpio_direction_output(GPIO_NR_TREO_USB_PULLUP, 1);
> > > +		gpio_free(GPIO_NR_TREO_USB_PULLUP);
> > >  	}
> > >  }
> >
> > Is this really needed or is it just a copy-paste from other Palm device?
> 
> Unfortunately yes. There is no copy-paste in this code which wasn't checked
>  and tested. It doesn't work correctly without that.
> 
> Best regards,
> 
> Tomas Cech
> 

Oh ok, you have my Ack on both then.

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

* generalise Treo680 code and add support for Palm Centro - round 3
  2009-09-11 11:57 generalise Treo680 code and add support for Palm Centro - round 3 Tomáš Čech
  2009-09-11 11:57 ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš Čech
@ 2009-09-17 21:08 ` Tomáš 'Sleep_Walker' Čech
  2009-09-18  1:05   ` Marek Vasut
  1 sibling, 1 reply; 15+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-09-17 21:08 UTC (permalink / raw)
  To: linux-arm-kernel

Hi,
Dne P? 11. z??? 2009 13:57:00 Tom?? ?ech napsal(a):
> Hi,
> 
> this is round 3 of generalisation Treo680 code and consequential add Palm Centro 685 support.
> 
> Changes since last round:
> 	- filename is now palmtreo.c to remain Palm devices consistency
> 	- generic functions are now beginning with treo_ (instead of previous palmgsm_)
> 	- pxamci_platform_data now contains also '.gpio_card_ro		= -1,'
> 	- added MAINTAINERS entry
> 	- reduced patchset (patches preceding these are already applied)
> 
> Thanks for your time.
> 
> Round 3 - fight!
Any progress here?

Thanks.

Best regards,

Tomas Cech

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

* generalise Treo680 code and add support for Palm Centro - round 3
  2009-09-17 21:08 ` generalise Treo680 code and add support for Palm Centro - round 3 Tomáš 'Sleep_Walker' Čech
@ 2009-09-18  1:05   ` Marek Vasut
  2009-09-18  6:06     ` Eric Miao
  0 siblings, 1 reply; 15+ messages in thread
From: Marek Vasut @ 2009-09-18  1:05 UTC (permalink / raw)
  To: linux-arm-kernel

Dne ?t 17. z??? 2009 23:08:40 Tom?? 'Sleep_Walker' ?ech napsal(a):
> Hi,
> 
> Dne P? 11. z??? 2009 13:57:00 Tom?? ?ech napsal(a):
> > Hi,
> >
> > this is round 3 of generalisation Treo680 code and consequential add Palm
> > Centro 685 support.
> >
> > Changes since last round:
> > 	- filename is now palmtreo.c to remain Palm devices consistency
> > 	- generic functions are now beginning with treo_ (instead of previous
> > palmgsm_) - pxamci_platform_data now contains also '.gpio_card_ro		= -1,'
> > - added MAINTAINERS entry
> > 	- reduced patchset (patches preceding these are already applied)
> >
> > Thanks for your time.
> >
> > Round 3 - fight!
> 
> Any progress here?

No, stop reopening! (people familiar with glibc will understand here ;-) )

Eric, could you merge this with my ack then ?

Thanks
> 
> Thanks.
> 
> Best regards,
> 
> Tomas Cech
> 

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

* generalise Treo680 code and add support for Palm Centro - round 3
  2009-09-18  1:05   ` Marek Vasut
@ 2009-09-18  6:06     ` Eric Miao
  0 siblings, 0 replies; 15+ messages in thread
From: Eric Miao @ 2009-09-18  6:06 UTC (permalink / raw)
  To: linux-arm-kernel

On Fri, Sep 18, 2009 at 9:05 AM, Marek Vasut <marek.vasut@gmail.com> wrote:
> Dne ?t 17. z??? 2009 23:08:40 Tom?? 'Sleep_Walker' ?ech napsal(a):
>> Hi,
>>
>> Dne P? 11. z??? 2009 13:57:00 Tom?? ?ech napsal(a):
>> > Hi,
>> >
>> > this is round 3 of generalisation Treo680 code and consequential add Palm
>> > Centro 685 support.
>> >
>> > Changes since last round:
>> > ? ? - filename is now palmtreo.c to remain Palm devices consistency
>> > ? ? - generic functions are now beginning with treo_ (instead of previous
>> > palmgsm_) - pxamci_platform_data now contains also '.gpio_card_ro ? ? ? ? ? = -1,'
>> > - added MAINTAINERS entry
>> > ? ? - reduced patchset (patches preceding these are already applied)
>> >
>> > Thanks for your time.
>> >
>> > Round 3 - fight!
>>
>> Any progress here?
>
> No, stop reopening! (people familiar with glibc will understand here ;-) )
>
> Eric, could you merge this with my ack then ?
>

Not this merge window, so I guess have to postpone this a little bit.

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

* [PATCH 1/2] PalmTreo: generalisation of Treo680 code
  2009-09-13  9:27       ` Marek Vasut
@ 2009-10-10 14:06         ` Eric Miao
  2009-10-12 18:45           ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 1 reply; 15+ messages in thread
From: Eric Miao @ 2009-10-10 14:06 UTC (permalink / raw)
  To: linux-arm-kernel

Sorry for late response. Applied to 'devel'.

On Sun, Sep 13, 2009 at 5:27 PM, Marek Vasut <marek.vasut@gmail.com> wrote:
> Dne Ne 13. z??? 2009 11:03:37 Tom?? 'Sleep_Walker' ?ech napsal(a):
>> Hi,
>>
>> thanks for reading my patch!
>>
>> Dne So 12. z??? 2009 21:29:06 Marek Vasut napsal(a):
>> > ...
>> >
>> > > -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),
>> > > ?};
>> >
>> > Be careful so you dont run into symbol redefinition here (gpio_led_info)
>> > in case the kernel supports more than this one device ...
>>
>> That's why I change the name. It's called now 'treo680_gpio_led_info' as
>> ?you can see.
>>
>> > ...
>> >
>> > > +#endif /* CONFIG_MACH_TREO680 */
>> > > +
>> > > ?/* setup udc GPIOs initial state */
>> > > -static void __init treo680_udc_init(void)
>> > > +static void __init treo_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_TREO_USB_PULLUP, "UDC Vbus")) {
>> > > + ? ? ? ? gpio_direction_output(GPIO_NR_TREO_USB_PULLUP, 1);
>> > > + ? ? ? ? gpio_free(GPIO_NR_TREO_USB_PULLUP);
>> > > ? }
>> > > ?}
>> >
>> > Is this really needed or is it just a copy-paste from other Palm device?
>>
>> Unfortunately yes. There is no copy-paste in this code which wasn't checked
>> ?and tested. It doesn't work correctly without that.
>>
>> Best regards,
>>
>> Tomas Cech
>>
>
> Oh ok, you have my Ack on both then.
>

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

* [PATCH 2/2] PalmTreo: add Palm Centro 685 support
  2009-09-13  9:06       ` Tomáš 'Sleep_Walker' Čech
@ 2009-10-10 14:13         ` Eric Miao
  0 siblings, 0 replies; 15+ messages in thread
From: Eric Miao @ 2009-10-10 14:13 UTC (permalink / raw)
  To: linux-arm-kernel

On Sun, Sep 13, 2009 at 5:06 PM, Tom?? 'Sleep_Walker' ?ech
<sleep_walker@suse.cz> wrote:
> Hi,
>
> Dne So 12. z??? 2009 21:31:15 Marek Vasut napsal(a):
>> Dne P? 11. z??? 2009 13:57:02 Tom?? ?ech napsal(a):
>> > From: Tom?? ?ech <sleep walker@suse.cz>
>> >
>> >
>> > Signed-off-by: Tom?? ?ech <sleep_walker@suse.cz>
>> > ---
>> > ?arch/arm/mach-pxa/Kconfig ? ? ? ? ? ? ? ? | ? 13 ++-
>> > ?arch/arm/mach-pxa/include/mach/palmtreo.h | ? ?7 ++
>> > ?arch/arm/mach-pxa/palmtreo.c ? ? ? ? ? ? ?| ?161
>> > +++++++++++++++++++++++++++++ arch/arm/mm/mmu.c ? ? ? ? ? ? ? ? ? ? ? ? |
>> > ?2 +-
>> > ?4 files changed, 181 insertions(+), 2 deletions(-)
>> >
>> > diff --git a/arch/arm/mach-pxa/Kconfig b/arch/arm/mach-pxa/Kconfig
>> > index ce6519c..57eceb8 100644
>> > --- a/arch/arm/mach-pxa/Kconfig
>> > +++ b/arch/arm/mach-pxa/Kconfig
>> > @@ -425,6 +425,17 @@ config PALM_TREO
>> > ? ? bool
>> > ? ? depends on ARCH_PXA_PALM
>> >
>> > +config MACH_CENTRO
>> > + ? bool "Palm Centro 685 (GSM)"
>> > + ? default y
>> > + ? depends on ARCH_PXA_PALM
>> > + ? select PXA27x
>> > + ? select IWMMXT
>> > + ? select PALM_TREO
>> > + ? help
>> > + ? ? Say Y here if you intend to run this kernel on Palm Centro 685 (GSM)
>> > + ? ? smartphone.
>> > +
>> > ?config MACH_TREO680
>> > ? ? bool "Palm Treo 680"
>> > ? ? default y
>> > @@ -433,7 +444,7 @@ config MACH_TREO680
>> > ? ? select IWMMXT
>> > ? ? select PALM_TREO
>> > ? ? help
>> > - ? ? Say Y here if you intend to run this kernel on Palm Treo 680
>> > + ? ? Say Y here if you intend to run this kernel on Palm Treo 680 (GSM)
>>
>> This change certainly should not be in this patch, maybe in previous one ?
>
> Ah, right. I'll change it in next round, but I think I'll wait until someone have a look to code not to flood ML much.
>

Applied to 'devel' without this change - file another one if this
is necessary. Thanks.

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

* [PATCH 1/2] PalmTreo: generalisation of Treo680 code
  2009-10-10 14:06         ` Eric Miao
@ 2009-10-12 18:45           ` Tomáš 'Sleep_Walker' Čech
  0 siblings, 0 replies; 15+ messages in thread
From: Tomáš 'Sleep_Walker' Čech @ 2009-10-12 18:45 UTC (permalink / raw)
  To: linux-arm-kernel

Dne So 10. ??jna 2009 16:06:59 Eric Miao napsal(a):
> Sorry for late response. Applied to 'devel'.

Thanks.

Best regards,

Tomas Cech

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

end of thread, other threads:[~2009-10-12 18:45 UTC | newest]

Thread overview: 15+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2009-09-11 11:57 generalise Treo680 code and add support for Palm Centro - round 3 Tomáš Čech
2009-09-11 11:57 ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš Čech
2009-09-11 11:57   ` [PATCH 2/2] PalmTreo: add Palm Centro 685 support Tomáš Čech
2009-09-12 19:31     ` Marek Vasut
2009-09-13  9:06       ` Tomáš 'Sleep_Walker' Čech
2009-10-10 14:13         ` Eric Miao
2009-09-11 12:02   ` [PATCH 1/2] PalmTreo: generalisation of Treo680 code Tomáš 'Sleep_Walker' Čech
2009-09-12 19:29   ` Marek Vasut
2009-09-13  9:03     ` Tomáš 'Sleep_Walker' Čech
2009-09-13  9:27       ` Marek Vasut
2009-10-10 14:06         ` Eric Miao
2009-10-12 18:45           ` Tomáš 'Sleep_Walker' Čech
2009-09-17 21:08 ` generalise Treo680 code and add support for Palm Centro - round 3 Tomáš 'Sleep_Walker' Čech
2009-09-18  1:05   ` Marek Vasut
2009-09-18  6:06     ` Eric Miao

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).