* 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 = ¢ro_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 = { + ¢ro_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(¢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 = 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 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 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 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-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 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 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
* [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 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
* 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
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).