You can subscribe to this list here.
2006 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
(26) |
Sep
(22) |
Oct
(55) |
Nov
(24) |
Dec
(30) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2007 |
Jan
(68) |
Feb
(85) |
Mar
(54) |
Apr
(12) |
May
(52) |
Jun
(75) |
Jul
(116) |
Aug
(71) |
Sep
(54) |
Oct
|
Nov
(2) |
Dec
|
From: <bob...@us...> - 2007-08-03 07:35:33
|
Revision: 1221 http://hackndev.svn.sourceforge.net/hackndev/?rev=1221&view=rev Author: bobofdoom Date: 2007-08-03 00:35:28 -0700 (Fri, 03 Aug 2007) Log Message: ----------- PalmT650: Auto-select SND_SOC_WM9712 when Treo 650 SoC audio driver is chosen. Modified Paths: -------------- linux4palm/linux/trunk/sound/soc/pxa/Kconfig Modified: linux4palm/linux/trunk/sound/soc/pxa/Kconfig =================================================================== --- linux4palm/linux/trunk/sound/soc/pxa/Kconfig 2007-08-02 23:36:28 UTC (rev 1220) +++ linux4palm/linux/trunk/sound/soc/pxa/Kconfig 2007-08-03 07:35:28 UTC (rev 1221) @@ -172,6 +172,7 @@ tristate "SoC Audio support for Palm Treo 650" depends on SND_PXA2XX_SOC && MACH_XSCALE_PALMTREO650 select SND_PXA2XX_SOC_AC97 + select SND_SOC_WM9712 help Say Y if you want to add support for SoC audio on the Palm Treo 650. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-08-02 23:36:35
|
Revision: 1220 http://hackndev.svn.sourceforge.net/hackndev/?rev=1220&view=rev Author: bobofdoom Date: 2007-08-02 16:36:28 -0700 (Thu, 02 Aug 2007) Log Message: ----------- PalmT650: Removed erroneous __initdata tag from pxafb_mode_info. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-31 09:02:48 UTC (rev 1219) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-08-02 23:36:28 UTC (rev 1220) @@ -326,7 +326,7 @@ * LCD *********************************************************/ -static struct pxafb_mode_info palmt650_lcd_mode __initdata = { +static struct pxafb_mode_info palmt650_lcd_mode = { /* pixclock is set by lccr3 below */ .pixclock = 0, .xres = 320, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-31 09:02:53
|
Revision: 1219 http://hackndev.svn.sourceforge.net/hackndev/?rev=1219&view=rev Author: bobofdoom Date: 2007-07-31 02:02:48 -0700 (Tue, 31 Jul 2007) Log Message: ----------- PalmT650: Initial SoC audio driver. - Just enough to make the audio routing via alasamixer work. Does not yet do anything clever like responding to headphone jack events, silent switch or powering up and down the ringtone speaker via GPIO 116. Modified Paths: -------------- linux4palm/linux/trunk/sound/soc/pxa/Kconfig linux4palm/linux/trunk/sound/soc/pxa/Makefile Added Paths: ----------- linux4palm/linux/trunk/sound/soc/pxa/palmt650.c Modified: linux4palm/linux/trunk/sound/soc/pxa/Kconfig =================================================================== --- linux4palm/linux/trunk/sound/soc/pxa/Kconfig 2007-07-29 17:32:54 UTC (rev 1218) +++ linux4palm/linux/trunk/sound/soc/pxa/Kconfig 2007-07-31 09:02:48 UTC (rev 1219) @@ -167,4 +167,14 @@ help Say Y if you want to add support for SoC audio on the H5000 iPAQs. + +config SND_PXA2XX_SOC_PALMT650 + tristate "SoC Audio support for Palm Treo 650" + depends on SND_PXA2XX_SOC && MACH_XSCALE_PALMTREO650 + select SND_PXA2XX_SOC_AC97 + help + Say Y if you want to add support for SoC audio on + the Palm Treo 650. + + endmenu Modified: linux4palm/linux/trunk/sound/soc/pxa/Makefile =================================================================== --- linux4palm/linux/trunk/sound/soc/pxa/Makefile 2007-07-29 17:32:54 UTC (rev 1218) +++ linux4palm/linux/trunk/sound/soc/pxa/Makefile 2007-07-31 09:02:48 UTC (rev 1219) @@ -26,6 +26,7 @@ snd-soc-amesom-tlv320-objs := amesom_tlv320.o snd-soc-blueangel-objs := blueangel.o snd-soc-h5000-objs := h5000.o +snd-soc-palmt650-objs := palmt650.o obj-$(CONFIG_SND_PXA2XX_SOC_CORGI) += snd-soc-corgi.o obj-$(CONFIG_SND_PXA2XX_SOC_MAINSTONE_WM8731) += snd-soc-mainstone-wm8731.o @@ -43,4 +44,5 @@ obj-$(CONFIG_SND_PXA2XX_SOC_AMESOM_TLV320) += snd-soc-amesom-tlv320.o obj-$(CONFIG_SND_PXA2XX_SOC_BLUEANGEL) += snd-soc-blueangel.o obj-$(CONFIG_SND_PXA2XX_SOC_H5000) += snd-soc-h5000.o +obj-$(CONFIG_SND_PXA2XX_SOC_PALMT650) += snd-soc-palmt650.o Added: linux4palm/linux/trunk/sound/soc/pxa/palmt650.c =================================================================== --- linux4palm/linux/trunk/sound/soc/pxa/palmt650.c (rev 0) +++ linux4palm/linux/trunk/sound/soc/pxa/palmt650.c 2007-07-31 09:02:48 UTC (rev 1219) @@ -0,0 +1,120 @@ +/* + * palmt650.c -- SoC audio for Palm Treo 650 + * + * Based on tosa.c + * + * Copyright 2007 (C) Alex Osborne <bob...@gm...> + * + * This program is free software; you can redistribute it and/or modify it + * under the terms of the GNU General Public License as published by the + * Free Software Foundation; version 2 ONLY. + * + * Revision history + * 31 Jul 2007 Initial version. + * + */ + +#include <linux/module.h> +#include <linux/moduleparam.h> +#include <linux/device.h> + +#include <sound/driver.h> +#include <sound/core.h> +#include <sound/pcm.h> +#include <sound/soc.h> +#include <sound/soc-dapm.h> + +#include <asm/mach-types.h> +#include <asm/arch/pxa-regs.h> +#include <asm/arch/hardware.h> +#include <asm/arch/audio.h> + +#include "../codecs/wm9712.h" +#include "pxa2xx-pcm.h" +#include "pxa2xx-ac97.h" + +static struct snd_soc_machine palmt650; + +static int palmt650_startup(struct snd_pcm_substream *substream) +{ + struct snd_soc_pcm_runtime *rtd = substream->private_data; + struct snd_soc_codec *codec = rtd->socdev->codec; + + /* TODO */ + return 0; +} + +static struct snd_soc_ops palmt650_ops = { + .startup = palmt650_startup, +}; + +static int palmt650_ac97_init(struct snd_soc_codec *codec) +{ + /* TODO */ + return 0; +} + +static struct snd_soc_dai_link palmt650_dai[] = { +{ + .name = "AC97", + .stream_name = "AC97 HiFi", + .cpu_dai = &pxa_ac97_dai[PXA2XX_DAI_AC97_HIFI], + .codec_dai = &wm9712_dai[WM9712_DAI_AC97_HIFI], + .init = palmt650_ac97_init, + .ops = &palmt650_ops, +}, +{ + .name = "AC97 Aux", + .stream_name = "AC97 Aux", + .cpu_dai = &pxa_ac97_dai[PXA2XX_DAI_AC97_AUX], + .codec_dai = &wm9712_dai[WM9712_DAI_AC97_AUX], + .ops = &palmt650_ops, +}, +}; + +static struct snd_soc_machine palmt650 = { + .name = "Palm Treo 650", + .dai_link = palmt650_dai, + .num_links = ARRAY_SIZE(palmt650_dai), +}; + +static struct snd_soc_device palmt650_snd_devdata = { + .machine = &palmt650, + .platform = &pxa2xx_soc_platform, + .codec_dev = &soc_codec_dev_wm9712, +}; + +static struct platform_device *palmt650_snd_device; + +static int __init palmt650_soc_init(void) +{ + int ret; + + if (!machine_is_xscale_treo650()) + return -ENODEV; + + palmt650_snd_device = platform_device_alloc("soc-audio", -1); + if (!palmt650_snd_device) + return -ENOMEM; + + platform_set_drvdata(palmt650_snd_device, &palmt650_snd_devdata); + palmt650_snd_devdata.dev = &palmt650_snd_device->dev; + ret = platform_device_add(palmt650_snd_device); + + if (ret) + platform_device_put(palmt650_snd_device); + + return ret; +} + +static void __exit palmt650_soc_exit(void) +{ + platform_device_unregister(palmt650_snd_device); +} + +module_init(palmt650_soc_init); +module_exit(palmt650_soc_exit); + +MODULE_AUTHOR("Alex Osborne <bob...@gm...>"); +MODULE_DESCRIPTION("ALSA SoC driver for Palm Treo 650"); +MODULE_LICENSE("GPL"); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2007-07-29 17:32:57
|
Revision: 1218 http://hackndev.svn.sourceforge.net/hackndev/?rev=1218&view=rev Author: marex_z71 Date: 2007-07-29 10:32:54 -0700 (Sun, 29 Jul 2007) Log Message: ----------- PalmLD: new defconfig Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig Modified: linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2007-07-29 13:28:36 UTC (rev 1217) +++ linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2007-07-29 17:32:54 UTC (rev 1218) @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit -# Linux kernel version: 2.6.21-hnd2 -# Mon Jul 23 09:02:42 2007 +# Linux kernel version: 2.6.21-hnd3 +# Sun Jul 29 19:30:58 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -192,6 +192,7 @@ CONFIG_GPIOEDNG=m # CONFIG_MACH_GHI270HG is not set # CONFIG_MACH_GHI270 is not set +# CONFIG_MACH_LOOXC550 is not set # CONFIG_PXA_SHARPSL is not set # CONFIG_MACH_TRIZEPS4 is not set CONFIG_PXA27x=y @@ -922,11 +923,22 @@ # CONFIG_ADC is not set # +# Compaq/iPAQ Drivers +# + +# +# Compaq/HP iPAQ Drivers +# +# CONFIG_IPAQ_SLEEVE is not set +# CONFIG_SLEEVE_DEBUG is not set + +# # Multifunction device drivers # # CONFIG_MFD_SM501 is not set # CONFIG_HTC_ASIC2 is not set # CONFIG_HTC_ASIC3 is not set +# CONFIG_HTC_PASIC3 is not set # CONFIG_HTC_EGPIO is not set # CONFIG_HTC_ASIC3_DS1WM is not set # CONFIG_SOC_SAMCOP is not set @@ -956,6 +968,7 @@ CONFIG_LEDS_TRIGGER_HWTIMER=m CONFIG_LEDS_TRIGGER_IDE_DISK=y CONFIG_LEDS_TRIGGER_MMC_CARD=y +# CONFIG_LEDS_TRIGGER_BACKLIGHT is not set CONFIG_LEDS_TRIGGER_HEARTBEAT=m # CONFIG_LEDS_TRIGGER_SHARED is not set This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <ke...@us...> - 2007-07-29 13:28:41
|
Revision: 1217 http://hackndev.svn.sourceforge.net/hackndev/?rev=1217&view=rev Author: keddar Date: 2007-07-29 06:28:36 -0700 (Sun, 29 Jul 2007) Log Message: ----------- palmtt3: small fix's after UPDATE to 2.6.21-hnd3 Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3.c linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3_battery.c linux4palm/linux/trunk/include/linux/mfd/tsc2101.h Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/Kconfig 2007-07-29 01:22:46 UTC (rev 1216) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/Kconfig 2007-07-29 13:28:36 UTC (rev 1217) @@ -8,7 +8,8 @@ bool "Disable display border" depends on MACH_T3XSCALE help - Some displays can disable white border. This could allow it. This makes screen bigger for 4 pixels in both directions. + Some displays can disable white border. This could allow it. + This makes screen bigger for 4 pixels in both directions. config PALMTT3_BUTTONS tristate "Buttons support" Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3.c 2007-07-29 01:22:46 UTC (rev 1216) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3.c 2007-07-29 13:28:36 UTC (rev 1217) @@ -39,7 +39,7 @@ #include <asm/arch/serial.h> #include <linux/input.h> -#include <linux/soc/tsc2101.h> +#include <linux/mfd/tsc2101.h> #include <asm/arch/pxa-pm_ll.h> #include <asm/arch/palmtt3-gpio.h> #include <asm/arch/palmtt3-init.h> Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3_battery.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3_battery.c 2007-07-29 01:22:46 UTC (rev 1216) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtt3/palmtt3_battery.c 2007-07-29 13:28:36 UTC (rev 1217) @@ -31,7 +31,7 @@ #include <asm/arch/hardware.h> #include <asm/arch/pxa-regs.h> -#include <linux/soc/tsc2101.h> +#include <linux/mfd/tsc2101.h> #include <asm/arch/tps65010.h> #include <asm/arch/palmtt3-gpio.h> Modified: linux4palm/linux/trunk/include/linux/mfd/tsc2101.h =================================================================== --- linux4palm/linux/trunk/include/linux/mfd/tsc2101.h 2007-07-29 01:22:46 UTC (rev 1216) +++ linux4palm/linux/trunk/include/linux/mfd/tsc2101.h 2007-07-29 13:28:36 UTC (rev 1217) @@ -29,7 +29,7 @@ spinlock_t lock; int pendown; struct tsc2101_platform_info *platform; - struct input_dev inputdevice; + struct input_dev *inputdevice; struct timer_list ts_timer; struct timer_list misc_timer; struct tsc2101_misc_data miscdata; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-29 01:23:01
|
Revision: 1216 http://hackndev.svn.sourceforge.net/hackndev/?rev=1216&view=rev Author: bobofdoom Date: 2007-07-28 18:22:46 -0700 (Sat, 28 Jul 2007) Log Message: ----------- Cocoboot: Improved instruction decoding on traceparse.py by Sergey Lapin. Modified Paths: -------------- cocoboot/trunk/tools/traceparse.py Modified: cocoboot/trunk/tools/traceparse.py =================================================================== --- cocoboot/trunk/tools/traceparse.py 2007-07-29 00:47:07 UTC (rev 1215) +++ cocoboot/trunk/tools/traceparse.py 2007-07-29 01:22:46 UTC (rev 1216) @@ -16,7 +16,8 @@ tmpf.write(struct.pack('<I', instr)) tmpf.flush() - out = subprocess.Popen([OBJDUMP_CMD, "-D", "-bbinary", "-marm", tmpf.name], stdout=subprocess.PIPE).communicate()[0] + out = subprocess.Popen([OBJDUMP_CMD, "-D", "-bbinary", "-marm", "-Mreg-names-raw", tmpf.name], stdout=subprocess.PIPE).communicate()[0] + out = out.split('\n')[6] print out @@ -26,17 +27,40 @@ if not data: break words = struct.unpack('<16I', data) - for i, w in zip(range(len(words)), words): - s = str(struct.pack('<I', w)) - if i == 0: - reg = ' ' - elif i == 14: - reg = 'PC ' - elif i == 15: - reg = ' ' - decode_instr(w) - else: - reg = 'r%-2d' % (i-1) - print '%s = %08x %-10d %s' % (reg, w,w, repr(s)) - print '-' * 20 - print + if (words[15] & 0xffffff00) == 0xe580c000: + print '0x%08x = 0x%08x' % (words[1]+(words[15] & 0xff), words[13]) + elif (words[15] & 0xffffff00) == 0xe5810000: + print '0x%08x = 0x%08x' % (words[2]+(words[15] & 0xff), words[1]) + elif (words[15] & 0xffffff00) == 0xe5812000: + print '0x%08x = 0x%08x' % (words[2]+(words[15] & 0xff), words[3]) + elif (words[15] & 0xffffff00) == 0xe5801000: + print '0x%08x = 0x%08x' % (words[1]+(words[15] & 0xff), words[2]) +# elif (words[15] & 0xffffff00) == 0xe583e000: +# print '%08x = %08x' % (words[2]+(words[15] & 0xff), words[4]) + elif (words[15] & 0xffffff00) == 0xe5813000: + print '0x%08x = 0x%08x' % (words[2]+(words[15] & 0xff), words[4]) + elif (words[15] & 0xffffff00) == 0xe5821000: + print '0x%08x = 0x%08x' % (words[3]+(words[15] & 0xff), words[2]) + elif (words[15] & 0xffffff00) == 0xe5900000: + print 'ldr r0, [r0, #%d] => 0x%08x' % ((words[15] & 0xff), words[1]) + elif (words[15] & 0xffffff00) == 0xe5911000: + print 'ldr r1, [r1, #%d] => 0x%08x' % ((words[15] & 0xff), words[2]) + elif (words[15] & 0xffffff00) == 0xe59ee000: + print 'ldr r14, [r14, #%d] => ???' % ((words[15] & 0xff)) + elif (words[15] & 0xffffff00) == 0xe591e000: + print '0x%08x => r14' % (words[2]+(words[15] & 0xff)) + else: + for i, w in zip(range(len(words)), words): + s = str(struct.pack('<I', w)) + if i == 0: + reg = ' ' + elif i == 14: + reg = 'PC ' + elif i == 15: + reg = ' ' + decode_instr(w) + else: + reg = 'r%-2d' % (i-1) + print '%s = %08x %-10d %s' % (reg, w,w, repr(s)) + print '-' * 20 + print This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-28 07:36:04
|
Revision: 1214 http://hackndev.svn.sourceforge.net/hackndev/?rev=1214&view=rev Author: bobofdoom Date: 2007-07-28 00:36:00 -0700 (Sat, 28 Jul 2007) Log Message: ----------- PalmT650: Added GPIO definitions for GSM wake signals. Modified Paths: -------------- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h 2007-07-28 07:35:11 UTC (rev 1213) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h 2007-07-28 07:36:00 UTC (rev 1214) @@ -66,6 +66,8 @@ #define GPIO_NR_PALMT650_LCD_POWER 20 #define GPIO_NR_PALMT650_LCD_FADEOUT 77 /* switching this GPIO makes LCD fade out */ #define GPIO_NR_PALMT650_USB_PULLUP 114 +#define GPIO_NR_PALMT650_GSM_HOST_WAKE 11 +#define GPIO_NR_PALMT650_GSM_WAKE 57 #define GPIO_NR_PALMT650_KP_MKIN0 100 #define GPIO_NR_PALMT650_KP_MKIN1 101 @@ -95,6 +97,8 @@ #define IRQ_GPIO_PALMT650_SD_DETECT_N IRQ_GPIO(GPIO_NR_PALMT650_SD_DETECT_N) #define IRQ_GPIO_PALMT650_WM9712_IRQ IRQ_GPIO(GPIO_NR_PALMT650_WM9712_IRQ) +#define IRQ_GPIO_PALMT650_GSM_HOST_WAKE IRQ_GPIO(GPIO_NR_PALMT650_GSM_HOST_WAKE) +#define IRQ_GPIO_PALMT650_GSM_WAKE IRQ_GPIO(GPIO_NR_PALMT650_GSM_WAKE) #define GPIO_NR_PALMT650_KP_MKIN0_MD (GPIO_NR_PALMT650_KP_MKIN0 | GPIO_ALT_FN_1_IN) #define GPIO_NR_PALMT650_KP_MKIN1_MD (GPIO_NR_PALMT650_KP_MKIN1 | GPIO_ALT_FN_1_IN) @@ -113,7 +117,9 @@ #define GPIO_NR_PALMT650_KP_MKOUT5_MD (GPIO_NR_PALMT650_KP_MKOUT5 | GPIO_ALT_FN_2_OUT) #define GPIO_NR_PALMT650_KP_MKOUT6_MD (GPIO_NR_PALMT650_KP_MKOUT6 | GPIO_ALT_FN_1_OUT) -#define GPIO_NR_PALMT650_USB_PULLUP_MD (GPIO_NR_PALMT650_USB_PULLUP | GPIO_OUT) +#define GPIO_NR_PALMT650_USB_PULLUP_MD (GPIO_NR_PALMT650_USB_PULLUP | GPIO_OUT) +#define GPIO_NR_PALMT650_GSM_HOST_WAKE_MD (GPIO_NR_PALMT650_GSM_HOST_WAKE | GPIO_IN) +#define GPIO_NR_PALMT650_GSM_WAKE_MD (GPIO_NR_PALMT650_GSM_WAKE | GPIO_OUT) /* Utility macros */ #define GET_PALMT650_GPIO(gpio) \ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-28 07:35:18
|
Revision: 1213 http://hackndev.svn.sourceforge.net/hackndev/?rev=1213&view=rev Author: bobofdoom Date: 2007-07-28 00:35:11 -0700 (Sat, 28 Jul 2007) Log Message: ----------- PalmT650: GSM driver is now usuable. * Power is now automatically applied when ttyS0 is opened/closed, no need to fiddle in /sys to control power. * The wake and host wake signals are now implemented. The driver will automatically wake up the GSM module before transmitting and after no transmits for 1 second will let it go back to its sleep mode. * minicom now survives suspend/resume although wake CPU on call etc is not yet implemented, need to find out how gsmd or whatever expects this to work. * Radio still needs to have been turned on in Palm OS beforehand, I guess there's still something in the ASIC that I need to configure. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c 2007-07-28 01:28:12 UTC (rev 1212) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c 2007-07-28 07:35:11 UTC (rev 1213) @@ -9,16 +9,26 @@ #include <linux/module.h> #include <linux/kernel.h> #include <linux/platform_device.h> +#include <linux/irq.h> +#include <linux/interrupt.h> +#include <linux/sched.h> +#include <linux/delay.h> #include <asm/arch/hardware.h> #include <asm/arch/palmt650-gpio.h> +#include <asm/arch/serial.h> +static DECLARE_WAIT_QUEUE_HEAD (host_wake_queue); +static int suspending; +static struct timer_list wake_timer; +static int wake_timer_running; + static ssize_t gsm_power_on_write(struct device *dev, struct device_attribute *attr, const char *buf, size_t count) { unsigned long on = simple_strtoul(buf, NULL, 10); SET_ASIC6_GPIO(GSM_POWER, on); - printk("Setting GSM power to %ld\n", on); + printk(KERN_INFO "palmt650_gsm: Setting GSM power to %ld\n", on); return count; } @@ -26,14 +36,32 @@ struct device_attribute *attr, char *buf) { - printk("GPLR is %d\n", ASIC6_GPLR); return strlcpy(buf, GET_ASIC6_GPIO(GSM_POWER) ? "1\n" : "0\n", 3); } +static ssize_t gsm_wake_write(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + unsigned long on = simple_strtoul(buf, NULL, 10); + SET_PALMT650_GPIO(GSM_WAKE, on); + printk(KERN_INFO "palmt650_gsm: Setting GSM wake to %ld\n", on); + return count; +} + +static ssize_t gsm_wake_read(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + return strlcpy(buf, GET_PALMT650_GPIO(GSM_WAKE) ? "1\n" : "0\n", 3); +} + + static DEVICE_ATTR(power_on, 0644, gsm_power_on_read, gsm_power_on_write); +static DEVICE_ATTR(wake, 0644, gsm_wake_read, gsm_wake_write); static struct attribute *palmt650_gsm_attrs[] = { &dev_attr_power_on.attr, + &dev_attr_wake.attr, NULL }; @@ -42,19 +70,143 @@ .attrs = palmt650_gsm_attrs, }; +static void palmt650_gsm_configure(int state) +{ + /* we want to keep the GSM module powered during sleep so ignore + * configure requests if the system is going into suspend. + */ + if (suspending) return; + + switch (state) { + case PXA_UART_CFG_PRE_STARTUP: + printk(KERN_NOTICE "palmt650_gsm_configure: power on\n"); + SET_ASIC6_GPIO(GSM_POWER, 1); + if (!sleep_on_timeout(&host_wake_queue, HZ)) { + printk(KERN_ERR "%s: timeout waiting for host wake\n", + __FUNCTION__); + } + break; + case PXA_UART_CFG_POST_SHUTDOWN: + printk(KERN_NOTICE "palmt650_gsm_configure: power off\n"); + SET_ASIC6_GPIO(GSM_POWER, 0); + break; + } +} + +static void palmt650_gsm_set_txrx(int txrx) +{ + int old_wake = GET_PALMT650_GPIO(GSM_WAKE) ? 1 : 0; + int new_wake = (txrx & PXA_SERIAL_TX) ? 1 : 0; + int tmout; + + /* the timer will deassert wake, so we only need to worry about + * TX on events. + */ + if (!new_wake) + return; + + if (new_wake != old_wake) { + SET_PALMT650_GPIO(GSM_WAKE, new_wake); + + /* give the modem time to wakeup. Ideally we'd wait on a + * host_wake interrupt but serial_core has interrupts disabled + * so we try watching GEDR manually + */ + tmout = 500000; + while (--tmout && !(GEDR(GPIO_NR_PALMT650_GSM_HOST_WAKE) + & GPIO_bit(GPIO_NR_PALMT650_GSM_HOST_WAKE))) { + udelay(1); + } + if (!tmout) { + printk(KERN_ERR "%s: timed out waiting for host wake\n", + __FUNCTION__); + } + } + + /* if there's no transmits for 1 second put the modem back to sleep */ + mod_timer(&wake_timer, jiffies + HZ); +} + +static int palmt650_gsm_get_txrx(void) +{ + return PXA_SERIAL_RX | (GET_PALMT650_GPIO(GSM_WAKE) ? PXA_SERIAL_TX : 0); +} + +static int +palmt650_gsm_uart_suspend(struct platform_device *dev, pm_message_t state) +{ + suspending = 1; + /* TODO: ensure RTS is deasserted during sleep to queue messages + * and setup waking upon GSM event. + */ + return 0; +} + +static int palmt650_gsm_uart_resume(struct platform_device *dev) +{ + suspending = 0; + return 0; +} + +static struct platform_pxa_serial_funcs palmt650_gsm_ffuart_funcs = { + .configure = palmt650_gsm_configure, + .set_txrx = palmt650_gsm_set_txrx, + .get_txrx = palmt650_gsm_get_txrx, + .suspend = palmt650_gsm_uart_suspend, + .resume = palmt650_gsm_uart_resume, +}; + +static irqreturn_t palmt650_gsm_host_wake_int(int irq, void *data) +{ + wake_up(&host_wake_queue); + return IRQ_HANDLED; +} + +void palmt650_gsm_wake_timeout(unsigned long data) +{ + SET_PALMT650_GPIO(GSM_WAKE, 0); +} + static int __init palmt650_gsm_probe(struct platform_device *pdev) { + int err; + /* configure FFUART gpios */ pxa_gpio_mode(GPIO34_FFRXD_MD); pxa_gpio_mode(GPIO35_FFCTS_MD); pxa_gpio_mode(GPIO39_FFTXD_MD); pxa_gpio_mode(GPIO41_FFRTS_MD); + /* extra signals */ + pxa_gpio_mode(GPIO_NR_PALMT650_GSM_HOST_WAKE_MD); + pxa_gpio_mode(GPIO_NR_PALMT650_GSM_WAKE_MD); + SET_PALMT650_GPIO(GSM_WAKE, 0); + SET_ASIC6_GPIO(GSM_POWER, 0); + + /* setup an interrupt for detecting host wake events */ + set_irq_type(IRQ_GPIO_PALMT650_GSM_HOST_WAKE, IRQT_RISING); + err = request_irq(IRQ_GPIO_PALMT650_GSM_HOST_WAKE, palmt650_gsm_host_wake_int, + SA_INTERRUPT, "GSM host wake", pdev); + if(err) { + printk(KERN_ERR "palmt650_gsm: can't get GSM host wake IRQ\n"); + return err; + } + + /* register our callbacks with the PXA serial driver */ + pxa_set_ffuart_info(&palmt650_gsm_ffuart_funcs); + + suspending = 0; + init_timer(&wake_timer); + wake_timer.function = palmt650_gsm_wake_timeout; + wake_timer.data = 0; + wake_timer_running = 0; + return sysfs_create_group(&pdev->dev.kobj, &palmt650_gsm_attr_group); } static int palmt650_gsm_remove(struct platform_device *pdev) { + pxa_set_ffuart_info(NULL); sysfs_remove_group(&pdev->dev.kobj, &palmt650_gsm_attr_group); return 0; } @@ -62,8 +214,6 @@ static struct platform_driver palmt650_gsm_driver = { .probe = palmt650_gsm_probe, .remove = palmt650_gsm_remove, - .suspend = NULL, /* not needed? */ - .resume = NULL, .driver = { .name = "palmt650-gsm", } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-28 01:28:15
|
Revision: 1212 http://hackndev.svn.sourceforge.net/hackndev/?rev=1212&view=rev Author: bobofdoom Date: 2007-07-27 18:28:12 -0700 (Fri, 27 Jul 2007) Log Message: ----------- Cocoboot: traceparse.py: added instruction decoding via objdump. Modified Paths: -------------- cocoboot/trunk/tools/traceparse.py Modified: cocoboot/trunk/tools/traceparse.py =================================================================== --- cocoboot/trunk/tools/traceparse.py 2007-07-28 00:38:08 UTC (rev 1211) +++ cocoboot/trunk/tools/traceparse.py 2007-07-28 01:28:12 UTC (rev 1212) @@ -1,11 +1,25 @@ #!/usr/bin/env python import struct import sys +import subprocess +import tempfile + +OBJDUMP_CMD = "arm-softfloat-linux-gnueabi-objdump" + if len(sys.argv) < 2: print 'Usage: %s cocoboot.trc' % sys.argv[0] print 'Decodes a raw cocoboot trace dump file' sys.exit(-1) +def decode_instr(instr): + tmpf = tempfile.NamedTemporaryFile() + tmpf.write(struct.pack('<I', instr)) + tmpf.flush() + + out = subprocess.Popen([OBJDUMP_CMD, "-D", "-bbinary", "-marm", tmpf.name], stdout=subprocess.PIPE).communicate()[0] + print out + + f = file(sys.argv[1], 'rb') while 1: data = f.read(16*4) @@ -20,6 +34,7 @@ reg = 'PC ' elif i == 15: reg = ' ' + decode_instr(w) else: reg = 'r%-2d' % (i-1) print '%s = %08x %-10d %s' % (reg, w,w, repr(s)) This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-28 00:38:15
|
Revision: 1211 http://hackndev.svn.sourceforge.net/hackndev/?rev=1211&view=rev Author: bobofdoom Date: 2007-07-27 17:38:08 -0700 (Fri, 27 Jul 2007) Log Message: ----------- Cocoboot: Added serial trace parsing script. Added Paths: ----------- cocoboot/trunk/tools/traceserial.py Added: cocoboot/trunk/tools/traceserial.py =================================================================== --- cocoboot/trunk/tools/traceserial.py (rev 0) +++ cocoboot/trunk/tools/traceserial.py 2007-07-28 00:38:08 UTC (rev 1211) @@ -0,0 +1,62 @@ +#!/usr/bin/env python +import struct +import sys +import string + +if len(sys.argv) < 2: + print 'Usage: %s cocoboot.trc' % sys.argv[0] + print 'Decodes a raw cocoboot trace dump file to serial' + sys.exit(-1) + +write_pc = 0x730b5256 +read_pc = 0x730b4bb6 + +olddir = '' +f = file(sys.argv[1], 'rb') +while 1: + data = f.read(16*4) + if not data: break + + words = struct.unpack('<16I', data) + pc = words[14] + + if pc == read_pc: + dir = 'Read ' + val = words[2] + elif pc == write_pc: + dir = 'Write' + val = words[1] + else: + dir = 'Unkn' + val = words[1] + + if dir != olddir: + sys.stdout.write('\n' + dir + ': ') + olddir = dir + + s = struct.pack('<I', val) + out = [] + for c in s: + if c == '\r': continue + if c not in string.printable: + out.append('.') + else: + out.append(c) + + sys.stdout.write(''.join(out)) + + """ + for i, w in zip(range(len(words)), words): + s = str(struct.pack('<I', w)) + if i == 0: + reg = ' ' + elif i == 14: + reg = 'PC ' + elif i == 15: + reg = ' ' + else: + reg = 'r%-2d' % (i-1) + print '%s = %08x %-10d %s' % (reg, w,w, repr(s)) + """ + #print '-' * 20 + #print Property changes on: cocoboot/trunk/tools/traceserial.py ___________________________________________________________________ Name: svn:executable + * This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2007-07-27 23:38:29
|
Revision: 1210 http://hackndev.svn.sourceforge.net/hackndev/?rev=1210&view=rev Author: happy-slapin Date: 2007-07-27 16:38:07 -0700 (Fri, 27 Jul 2007) Log Message: ----------- palmz72: Cleanup, added comments. Closes: 45 Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c 2007-07-27 23:13:41 UTC (rev 1209) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c 2007-07-27 23:38:07 UTC (rev 1210) @@ -93,6 +93,18 @@ #define palmz72_resume NULL #endif +/* We have some black magic here + * PalmOS ROM on recover expects special struct phys address + * to be transferred via PSPR. Using this struct PalmOS restores + * its state after sleep. As for Linux, we need to setup it the + * same way. More than that, PalmOS ROM changes some values in memory. + * For now only one location is found, which needs special treatment. + * Thanks to Alex Osborne, Andrzej Zaborowski, and lots of other people + * for reading backtraces for me :) + */ + +#define PALMZ72_SAVE_DWORD ((unsigned long *)0xc0000050) + static struct { u32 magic0; /* 0x0 */ u32 magic1; /* 0x4 */ @@ -127,14 +139,15 @@ /* setup the resume_info struct for the original bootloader */ palmz72_resume_info.resume_addr = resume_addr; printk(KERN_INFO "PSPR=%lu\n", virt_to_phys(&palmz72_resume_info)); - store_ptr = *((unsigned long *)0xc0000050); + /* Storing memory touched by ROM */ + store_ptr = *PALMZ72_SAVE_DWORD; PSPR = virt_to_phys(&palmz72_resume_info); } static void palmz72_pxa_ll_pm_resume(void) { - *((unsigned long *)0xc0000050) = store_ptr; - /* For future */ + /* Restoring memory touched by ROM */ + *PALMZ72_SAVE_DWORD = store_ptr; } struct pxa_ll_pm_ops palmz72_ll_pm_ops = { This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <hap...@us...> - 2007-07-27 23:13:43
|
Revision: 1209 http://hackndev.svn.sourceforge.net/hackndev/?rev=1209&view=rev Author: happy-slapin Date: 2007-07-27 16:13:41 -0700 (Fri, 27 Jul 2007) Log Message: ----------- z72: some smoked code: * Sleep mode works now! Requires proper testing though. * Recovering 1 location which broke kernel task wakeup handling because PalmOS bl overwrite it. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c 2007-07-24 17:44:21 UTC (rev 1208) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmz72/palmz72_pm.c 2007-07-27 23:13:41 UTC (rev 1209) @@ -52,8 +52,16 @@ /* Turn off USB power */ SET_PALMZ72_GPIO(USB_POWER,0); + /* hold current GPIO levels for now + * TODO: find out what we can disable. + */ + PGSR0 = GPLR0; + PGSR1 = GPLR1; + PGSR2 = GPLR2; + PGSR3 = GPLR3; /* disable GPIO reset - DO NOT REMOVE! */ + /* not it, but we can't sleep otherwise */ PCFR &= PCFR_GPR_EN; return 0; @@ -107,7 +115,7 @@ .domain_access = 0, .process_id = 0, }; - +static unsigned long store_ptr; static void palmz72_pxa_ll_pm_suspend(unsigned long resume_addr) { /* hold current GPIO levels on outputs */ @@ -118,11 +126,14 @@ /* setup the resume_info struct for the original bootloader */ palmz72_resume_info.resume_addr = resume_addr; + printk(KERN_INFO "PSPR=%lu\n", virt_to_phys(&palmz72_resume_info)); + store_ptr = *((unsigned long *)0xc0000050); PSPR = virt_to_phys(&palmz72_resume_info); } static void palmz72_pxa_ll_pm_resume(void) { + *((unsigned long *)0xc0000050) = store_ptr; /* For future */ } Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c 2007-07-24 17:44:21 UTC (rev 1208) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/pxa27x.c 2007-07-27 23:13:41 UTC (rev 1209) @@ -153,7 +153,7 @@ break; case PM_SUSPEND_MEM: if(machine_is_xscale_palmld() || machine_is_xscale_palmtx() || - machine_is_palmz72() || machine_is_xscale_palmtt5()) { + machine_is_xscale_palmtt5()) { /* For safety. suspend_mem puts the device in an unresetable * state. * On TX one needs to desolder the battery to get out of it. This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2007-07-24 17:44:33
|
Revision: 1208 http://svn.sourceforge.net/hackndev/?rev=1208&view=rev Author: marex_z71 Date: 2007-07-24 10:44:21 -0700 (Tue, 24 Jul 2007) Log Message: ----------- QEMU: implement ICPR and ICPR2 register writes to make palmos happy Modified Paths: -------------- qemu/trunk/hw/pxa2xx_pic.c Modified: qemu/trunk/hw/pxa2xx_pic.c =================================================================== --- qemu/trunk/hw/pxa2xx_pic.c 2007-07-24 05:14:04 UTC (rev 1207) +++ qemu/trunk/hw/pxa2xx_pic.c 2007-07-24 17:44:21 UTC (rev 1208) @@ -175,6 +175,10 @@ case ICCR: /* Idle mask */ s->int_idle = (value & 1) ? 0 : ~0; break; + case ICPR: /* Pending register */ + s->int_pending[0] = value; + case ICPR2: /* Pending register 2 */ + s->int_pending[1] = value; case IPR0 ... IPR31: s->priority[0 + ((offset - IPR0 ) >> 2)] = value & 0x8000003f; break; This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-24 05:14:10
|
Revision: 1207 http://svn.sourceforge.net/hackndev/?rev=1207&view=rev Author: bobofdoom Date: 2007-07-23 22:14:04 -0700 (Mon, 23 Jul 2007) Log Message: ----------- QEMU: Fixed bug where PXA270 internal RAM was given ROM flag. Modified Paths: -------------- qemu/trunk/hw/palm.c Modified: qemu/trunk/hw/palm.c =================================================================== --- qemu/trunk/hw/palm.c 2007-07-23 23:02:05 UTC (rev 1206) +++ qemu/trunk/hw/palm.c 2007-07-24 05:14:04 UTC (rev 1207) @@ -949,7 +949,7 @@ cpu_register_physical_memory(0, rom_size, ram_size | IO_MEM_ROM); if (ram_onchip_size) cpu_register_physical_memory(0x5c000000, ram_onchip_size, - (rom_size + ram_size) | IO_MEM_ROM); + (rom_size + ram_size) | IO_MEM_RAM); int iomemtype = cpu_register_io_memory(0, ac97_readfn, ac97_writefn, NULL); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mis...@us...> - 2007-07-23 23:02:10
|
Revision: 1206 http://svn.sourceforge.net/hackndev/?rev=1206&view=rev Author: miska_tx Date: 2007-07-23 16:02:05 -0700 (Mon, 23 Jul 2007) Log Message: ----------- PalmTX: Better corgi_bl integration (now we use corgi_bl suspend to turn off display) Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx.c linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_pm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx.c 2007-07-23 12:47:37 UTC (rev 1205) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx.c 2007-07-23 23:02:05 UTC (rev 1206) @@ -157,10 +157,13 @@ static void palmtx_bl_power(int on) { - SET_PALMTX_GPIO(BL_POWER, on); - pxa_set_cken(CKEN0_PWM0, on); - pxa_set_cken(CKEN1_PWM1, on); - mdelay(50); + if(GET_PALMTX_GPIO(BL_POWER)!=on) { + SET_PALMTX_GPIO(LCD_POWER, on); + SET_PALMTX_GPIO(BL_POWER, on); + pxa_set_cken(CKEN0_PWM0, on); + pxa_set_cken(CKEN1_PWM1, on); + mdelay(50); + } } static void palmtx_set_bl_intensity(int intensity) Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_pm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_pm.c 2007-07-23 12:47:37 UTC (rev 1205) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmtx/palmtx_pm.c 2007-07-23 23:02:05 UTC (rev 1206) @@ -47,10 +47,6 @@ while(!(OSCC & OSCC_OOK)) {} - /* Turn off LCD power */ - SET_PALMTX_GPIO(LCD_POWER,0); - /* Turn screen off */ - SET_PALMTX_GPIO(BL_POWER,0); /* Turn off USB power */ SET_PALMTX_GPIO(USB_POWER,0); @@ -73,10 +69,6 @@ /* Here are all of special to resume Palm TX */ - /* Turn on LCD power */ - SET_PALMTX_GPIO(LCD_POWER,1); - /* Turn screen on */ - SET_PALMTX_GPIO(BL_POWER,1); /* Turn on USB power */ SET_PALMTX_GPIO(USB_POWER,1); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-23 12:47:40
|
Revision: 1205 http://svn.sourceforge.net/hackndev/?rev=1205&view=rev Author: bobofdoom Date: 2007-07-23 05:47:37 -0700 (Mon, 23 Jul 2007) Log Message: ----------- QEMU: Assign to PSSR and RCSR don't OR them. Otherwise we will have multiple reset flags incorrectly set when there can only be one. Modified Paths: -------------- qemu/trunk/hw/pxa2xx.c Modified: qemu/trunk/hw/pxa2xx.c =================================================================== --- qemu/trunk/hw/pxa2xx.c 2007-07-23 12:07:58 UTC (rev 1204) +++ qemu/trunk/hw/pxa2xx.c 2007-07-23 12:47:37 UTC (rev 1205) @@ -261,8 +261,8 @@ { struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque; cpu_reset(s->env); - s->pm_regs[PSSR >> 2] |= 0x1; /* Set SSS */ - s->pm_regs[RCSR >> 2] |= 0x4; /* Set SMR */ + s->pm_regs[PSSR >> 2] = 0x1; /* Set SSS */ + s->pm_regs[RCSR >> 2] = 0x4; /* Set SMR */ s->pm_regs[PEDR >> 2] = 0x0; //s->pm_regs[PSPR >> 2] |= 0x4; printf("reset PC=%x PSPR=%x\n", s->env->regs[15], s->pm_regs[PSPR>>2]); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-23 12:08:03
|
Revision: 1204 http://svn.sourceforge.net/hackndev/?rev=1204&view=rev Author: bobofdoom Date: 2007-07-23 05:07:58 -0700 (Mon, 23 Jul 2007) Log Message: ----------- QEMU: Fix invalid instruction on cp14 access after sleep. cp_io handler needs to be re-registered after reset. Modified Paths: -------------- qemu/trunk/hw/pxa2xx.c Modified: qemu/trunk/hw/pxa2xx.c =================================================================== --- qemu/trunk/hw/pxa2xx.c 2007-07-23 11:04:08 UTC (rev 1203) +++ qemu/trunk/hw/pxa2xx.c 2007-07-23 12:07:58 UTC (rev 1204) @@ -254,6 +254,9 @@ return 0; } +static void pxa2xx_cp14_write(void *opaque, int op2, int reg, int crm, + uint32_t value); +static uint32_t pxa2xx_cp14_read(void *opaque, int op2, int reg, int crm); static void pxa2xx_sleep_reset(void *opaque) { struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque; @@ -264,6 +267,7 @@ //s->pm_regs[PSPR >> 2] |= 0x4; printf("reset PC=%x PSPR=%x\n", s->env->regs[15], s->pm_regs[PSPR>>2]); //s->env->regs[15] = s->pm_regs[PSPR >> 2]; + cpu_arm_set_cp_io(s->env, 14, pxa2xx_cp14_read, pxa2xx_cp14_write, s); } static void pxa2xx_clkpwr_write(void *opaque, int op2, int reg, int crm, This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-23 11:04:25
|
Revision: 1203 http://svn.sourceforge.net/hackndev/?rev=1203&view=rev Author: bobofdoom Date: 2007-07-23 04:04:08 -0700 (Mon, 23 Jul 2007) Log Message: ----------- PalmT650: palmt650_gsm: Fix stupid typo. Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c 2007-07-23 10:27:32 UTC (rev 1202) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c 2007-07-23 11:04:08 UTC (rev 1203) @@ -27,7 +27,7 @@ char *buf) { printk("GPLR is %d\n", ASIC6_GPLR); - return strlcpy(GET_ASIC6_GPIO(GSM_POWER) ? "1\n" : "0\n"); + return strlcpy(buf, GET_ASIC6_GPIO(GSM_POWER) ? "1\n" : "0\n", 3); } static DEVICE_ATTR(power_on, 0644, gsm_power_on_read, gsm_power_on_write); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-23 10:27:36
|
Revision: 1202 http://svn.sourceforge.net/hackndev/?rev=1202&view=rev Author: bobofdoom Date: 2007-07-23 03:27:32 -0700 (Mon, 23 Jul 2007) Log Message: ----------- PalmT650: palmt650_gsm: Configure FFUART GPIOs in probe(). Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c 2007-07-23 07:07:23 UTC (rev 1201) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c 2007-07-23 10:27:32 UTC (rev 1202) @@ -27,11 +27,7 @@ char *buf) { printk("GPLR is %d\n", ASIC6_GPLR); - if (GET_ASIC6_GPIO(GSM_POWER)) { - return strlcpy(buf, "1\n", 3); - } else { - return strlcpy(buf, "0\n", 3); - } + return strlcpy(GET_ASIC6_GPIO(GSM_POWER) ? "1\n" : "0\n"); } static DEVICE_ATTR(power_on, 0644, gsm_power_on_read, gsm_power_on_write); @@ -48,6 +44,12 @@ static int __init palmt650_gsm_probe(struct platform_device *pdev) { + /* configure FFUART gpios */ + pxa_gpio_mode(GPIO34_FFRXD_MD); + pxa_gpio_mode(GPIO35_FFCTS_MD); + pxa_gpio_mode(GPIO39_FFTXD_MD); + pxa_gpio_mode(GPIO41_FFRTS_MD); + return sysfs_create_group(&pdev->dev.kobj, &palmt650_gsm_attr_group); } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2007-07-23 07:07:25
|
Revision: 1201 http://svn.sourceforge.net/hackndev/?rev=1201&view=rev Author: marex_z71 Date: 2007-07-23 00:07:23 -0700 (Mon, 23 Jul 2007) Log Message: ----------- PalmLD: add hippie-border defconfig Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig Modified: linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2007-07-22 20:40:59 UTC (rev 1200) +++ linux4palm/linux/trunk/arch/arm/configs/palmld_defconfig 2007-07-23 07:07:23 UTC (rev 1201) @@ -1,7 +1,7 @@ # # Automatically generated make config: don't edit # Linux kernel version: 2.6.21-hnd2 -# Tue Jul 17 05:31:54 2007 +# Mon Jul 23 09:02:42 2007 # CONFIG_ARM=y CONFIG_SYS_SUPPORTS_APM_EMULATION=y @@ -177,6 +177,7 @@ CONFIG_PALMLD_IDE=m CONFIG_PALMLD_BATTERY=m CONFIG_PALMLD_PM=y +CONFIG_PALMLD_BORDER=m # CONFIG_MACH_XSCALE_PALMTREO650 is not set # CONFIG_MACH_XSCALE_TREO680 is not set # CONFIG_MACH_T700WX is not set This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <mar...@us...> - 2007-07-22 20:41:02
|
Revision: 1200 http://svn.sourceforge.net/hackndev/?rev=1200&view=rev Author: marex_z71 Date: 2007-07-22 13:40:59 -0700 (Sun, 22 Jul 2007) Log Message: ----------- PalmLD: add display border handling driver Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmld-gpio.h Added Paths: ----------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_border.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig 2007-07-22 13:53:01 UTC (rev 1199) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Kconfig 2007-07-22 20:40:59 UTC (rev 1200) @@ -37,4 +37,9 @@ default y if MACH_XSCALE_PALMLD help Enable support for suspend/resume the PalmOne LifeDrive PDA. - \ No newline at end of file + +config PALMLD_BORDER + tristate "Palm LifeDrive Display border switch" + depends on MACH_XSCALE_PALMLD + help + Enable support for turning LCD border on/off Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile 2007-07-22 13:53:01 UTC (rev 1199) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/Makefile 2007-07-22 20:40:59 UTC (rev 1200) @@ -8,4 +8,4 @@ obj-$(CONFIG_PALMLD_IDE) += palmld_ide.o obj-$(CONFIG_PALMLD_PM) += palmld_pm.o obj-$(CONFIG_PALMLD_BATTERY) += palmld_battery.o - +obj-$(CONFIG_PALMLD_BORDER) += palmld_border.o Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2007-07-22 13:53:01 UTC (rev 1199) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld.c 2007-07-22 20:40:59 UTC (rev 1200) @@ -44,9 +44,9 @@ #include "../generic.h" -/** +/********************************************************* * SD/MMC card controller - */ + *********************************************************/ static int palmld_mci_init(struct device *dev, irqreturn_t (*palmld_detect_int)(int, void *), void *data) { @@ -91,7 +91,9 @@ }; -/* Bluetooth */ +/********************************************************* + * Bluetooth + *********************************************************/ void bcm2035_bt_reset(int on) { @@ -139,9 +141,9 @@ }, }; -/** +/********************************************************* * AC97 audio controller - */ + *********************************************************/ static pxa2xx_audio_ops_t palmld_audio_ops = { /* @@ -158,9 +160,9 @@ .dev = { .platform_data = &palmld_audio_ops }, }; -/** +/********************************************************* * IRDA - */ + *********************************************************/ static void palmld_irda_transceiver_mode(struct device *dev, int mode) { @@ -195,19 +197,17 @@ .transceiver_mode = palmld_irda_transceiver_mode, }; -/* platform */ - -/* +/********************************************************* * LEDs - */ + *********************************************************/ static struct platform_device palmldled_device = { .name = "palmld-led", .id = -1, }; -/* +/********************************************************* * Cypress EZUSB SX2 USB2.0 Controller - */ + *********************************************************/ static struct sx2_udc_mach_info palmldusb2_platform_data = { .virt_base = PALMLD_USB_VIRT, @@ -229,9 +229,21 @@ }, }; -/** +/********************************************************* + * LCD Border + *********************************************************/ + +struct platform_device palmld_border = { + .name = "palmld-border", + .id = -1, + .dev = { + .platform_data = NULL, + }, +}; + +/********************************************************* * Backlight - */ + *********************************************************/ static void palmld_bl_power(int on) { @@ -316,9 +328,9 @@ }, }; -/******************************** +/********************************************************* * GPIO Key - Voice Memo Button * - ********************************/ + *********************************************************/ #ifdef CONFIG_KEYBOARD_GPIO static struct gpio_keys_button palmld_pxa_buttons[] = { {KEY_F8, GPIO_NR_PALMLD_POWER_SWITCH, 0, "Power switch" }, @@ -338,9 +350,9 @@ }; #endif -/******************** +/********************************************************* * Power Management * - ********************/ + *********************************************************/ struct platform_device palmld_pm = { .name = "palmld-pm", @@ -372,6 +384,7 @@ &palmldusb2_device, &palmld_pm, &bcm2035_bt, + &palmld_border, }; /********************************************************* @@ -388,9 +401,6 @@ .hsync_len = 4, .vsync_len = 1, - /* fixme: these are the margins PalmOS has set, - * they seem to work but could be better. - */ .left_margin = 32, .right_margin = 1, .upper_margin = 7, //5, Added: linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_border.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_border.c (rev 0) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmld/palmld_border.c 2007-07-22 20:40:59 UTC (rev 1200) @@ -0,0 +1,100 @@ +/* + * Palm LifeDrive LCD Border switch + * + * Copyright (C) 2007 Marek Vasut <mar...@gm...> + * + * 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. + */ + +#include <linux/module.h> +#include <linux/kernel.h> +#include <linux/platform_device.h> +#include <linux/delay.h> + +#include <asm/arch/hardware.h> +#include <asm/arch/palmld-gpio.h> + +static ssize_t palmld_border_write(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + signed long state = simple_strtol(buf, NULL, 10); + + if ( state >= 1 ) + SET_PALMLD_GPIO(BORDER_SELECT, 1); + else + SET_PALMLD_GPIO(BORDER_SELECT, 0); + + msleep(50); + SET_PALMLD_GPIO(BORDER_SWITCH, 1); + + if ((state == 1) || (state == 0)) /* default - switch border on/off */ + msleep(200); + else { /* hidden functionality - colored border */ + if (state >= 0) + msleep(state); + else + msleep(-state); + } + + SET_PALMLD_GPIO(BORDER_SWITCH, 0); + + return count; +} + +static ssize_t palmld_border_read(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + return strlcpy(buf, GET_PALMLD_GPIO(BORDER_SELECT) ? "1\n" : "0\n", 3); +} + +static DEVICE_ATTR(border_power, 0644, palmld_border_read, palmld_border_write); + +static struct attribute *palmld_border_attrs[] = { + &dev_attr_border_power.attr, + NULL +}; + +static struct attribute_group palmld_border_attr_group = { + .attrs = palmld_border_attrs, +}; + +static int __devinit palmld_border_probe(struct platform_device *pdev) +{ + return sysfs_create_group(&pdev->dev.kobj, &palmld_border_attr_group); +} + +static int palmld_border_remove(struct platform_device *pdev) +{ + sysfs_remove_group(&pdev->dev.kobj, &palmld_border_attr_group); + return 0; +} + +static struct platform_driver palmld_border_driver = { + .probe = palmld_border_probe, + .remove = palmld_border_remove, + .suspend = NULL, + .resume = NULL, + .driver = { + .name = "palmld-border", + } +}; + +static int __init palmld_border_init(void) +{ + return platform_driver_register(&palmld_border_driver); +} + +static void palmld_border_exit(void) +{ + platform_driver_unregister(&palmld_border_driver); +} + +module_init(palmld_border_init); +module_exit(palmld_border_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Marek Vasut <mar...@gm...>"); +MODULE_DESCRIPTION("Palm LifeDrive Border switch"); Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmld-gpio.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmld-gpio.h 2007-07-22 13:53:01 UTC (rev 1199) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmld-gpio.h 2007-07-22 20:40:59 UTC (rev 1200) @@ -30,6 +30,9 @@ #define GPIO_NR_PALMLD_LOCK_SWITCH 15 /* keypad lock */ #define GPIO_NR_PALMLD_SCREEN 19 +#define GPIO_NR_PALMLD_BORDER_SWITCH 21 +#define GPIO_NR_PALMLD_BORDER_SELECT 22 + #define GPIO_NR_PALMLD_WM9712_IRQ 27 #define GPIO_NR_PALMLD_IR_DISABLE 40 /* IRDA */ This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-22 13:53:06
|
Revision: 1199 http://svn.sourceforge.net/hackndev/?rev=1199&view=rev Author: bobofdoom Date: 2007-07-22 06:53:01 -0700 (Sun, 22 Jul 2007) Log Message: ----------- PalmT650: Added GSM module management driver. - Currently can just be used to power on/off the modem. To use juat echo 1 or 0 into /sys/devices/platform/palmt650-gsm/power_on Modified Paths: -------------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Kconfig linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Makefile linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h Added Paths: ----------- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Kconfig =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Kconfig 2007-07-22 10:51:55 UTC (rev 1198) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Kconfig 2007-07-22 13:53:01 UTC (rev 1199) @@ -1,7 +1,17 @@ menuconfig MACH_XSCALE_PALMTREO650 bool "Palm Treo 650" select PXA27x + select KEYBOARD_PXA27x help Say Y here if you intend to run this kernel on a Palm Treo 650. Currently there is only basic support for this PDA. + +config PALMT650_GSM + tristate "Palm Treo 650 GSM baseband processor" + depends on MACH_XSCALE_PALMTREO650 + default y + help + This module provides support for controlling power to + the GSM baseband processor in the Treo 650. Say Y here + if you are unsure. Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Makefile =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Makefile 2007-07-22 10:51:55 UTC (rev 1198) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/Makefile 2007-07-22 13:53:01 UTC (rev 1199) @@ -3,3 +3,4 @@ # obj-$(CONFIG_MACH_XSCALE_PALMTREO650) += palmt650.o palmt650_pm.o +obj-$(CONFIG_PALMT650_GSM) += palmt650_gsm.o Modified: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-22 10:51:55 UTC (rev 1198) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650.c 2007-07-22 13:53:01 UTC (rev 1199) @@ -164,6 +164,17 @@ }; /********************************************************* + * GSM Baseband Processor + *********************************************************/ +struct platform_device palmt650_gsm = { + .name = "palmt650-gsm", + .id = -1, + .dev = { + .platform_data = NULL, + }, +}; + +/********************************************************* * USB Device Controller *********************************************************/ @@ -308,6 +319,7 @@ &palmt650_kbd, &palmt650_backlight, &palmt650_led, + &palmt650_gsm, }; /********************************************************* Added: linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c =================================================================== --- linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c (rev 0) +++ linux4palm/linux/trunk/arch/arm/mach-pxa/palmt650/palmt650_gsm.c 2007-07-22 13:53:01 UTC (rev 1199) @@ -0,0 +1,85 @@ +/* + * Palm Treo 650 GSM Management + * + * Copyright (C) 2007 Alex Osborne + * + * This code is available under the GNU GPL version 2 or later. + */ + +#include <linux/module.h> +#include <linux/kernel.h> +#include <linux/platform_device.h> + +#include <asm/arch/hardware.h> +#include <asm/arch/palmt650-gpio.h> + +static ssize_t gsm_power_on_write(struct device *dev, struct device_attribute *attr, + const char *buf, size_t count) +{ + unsigned long on = simple_strtoul(buf, NULL, 10); + SET_ASIC6_GPIO(GSM_POWER, on); + printk("Setting GSM power to %ld\n", on); + return count; +} + +static ssize_t gsm_power_on_read(struct device *dev, + struct device_attribute *attr, + char *buf) +{ + printk("GPLR is %d\n", ASIC6_GPLR); + if (GET_ASIC6_GPIO(GSM_POWER)) { + return strlcpy(buf, "1\n", 3); + } else { + return strlcpy(buf, "0\n", 3); + } +} + +static DEVICE_ATTR(power_on, 0644, gsm_power_on_read, gsm_power_on_write); + +static struct attribute *palmt650_gsm_attrs[] = { + &dev_attr_power_on.attr, + NULL +}; + +static struct attribute_group palmt650_gsm_attr_group = { + .name = NULL, + .attrs = palmt650_gsm_attrs, +}; + +static int __init palmt650_gsm_probe(struct platform_device *pdev) +{ + return sysfs_create_group(&pdev->dev.kobj, &palmt650_gsm_attr_group); +} + +static int palmt650_gsm_remove(struct platform_device *pdev) +{ + sysfs_remove_group(&pdev->dev.kobj, &palmt650_gsm_attr_group); + return 0; +} + +static struct platform_driver palmt650_gsm_driver = { + .probe = palmt650_gsm_probe, + .remove = palmt650_gsm_remove, + .suspend = NULL, /* not needed? */ + .resume = NULL, + .driver = { + .name = "palmt650-gsm", + } +}; + +static int __devinit palmt650_gsm_init(void) +{ + return platform_driver_register(&palmt650_gsm_driver); +} + +static void palmt650_gsm_exit(void) +{ + platform_driver_unregister(&palmt650_gsm_driver); +} + +module_init(palmt650_gsm_init); +module_exit(palmt650_gsm_exit); + +MODULE_LICENSE("GPL"); +MODULE_AUTHOR("Alex Osborne <bob...@gm...>"); +MODULE_DESCRIPTION("Palm Treo 650 GSM management"); Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h 2007-07-22 10:51:55 UTC (rev 1198) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h 2007-07-22 13:53:01 UTC (rev 1199) @@ -17,23 +17,45 @@ #define PALMT650_ASIC6_SIZE (0x00100000) /* ASIC 6 registers */ +/* Note: the naming and purpose of these registers is just a guess. */ -#define __REG16(x) (*((volatile u16 *)io_p2v(x))) -#define ASIC6_LED0_TBS __REG16(0x08000080) -#define ASIC6_LED0_U1 __REG16(0x08000082) /* unknown=0 */ -#define ASIC6_LED0_PERIOD __REG16(0x08000084) -#define ASIC6_LED0_U2 __REG16(0x08000086) /* unknown=3 */ -#define ASIC6_LED0_DUTY __REG16(0x08000088) -#define ASIC6_LED0_AUTOSTOP __REG16(0x0800008a) -#define ASIC6_LED1_TBS __REG16(0x08000090) -#define ASIC6_LED1_PERIOD __REG16(0x08000094) -#define ASIC6_LED1_DUTY __REG16(0x08000098) -#define ASIC6_LED1_AUTOSTOP __REG16(0x0800009a) -#define ASIC6_LED2_TBS __REG16(0x080000a0) -#define ASIC6_LED2_PERIOD __REG16(0x080000a4) -#define ASIC6_LED2_DUTY __REG16(0x080000a8) -#define ASIC6_LED2_AUTOSTOP __REG16(0x080000aa) +#define __REG16(x) (*((volatile u16 *)(x))) +#define __ASIC6_REG(x) __REG16(PALMT650_ASIC6_VIRT + (x)) +#define ASIC6_LED0_TBS __REG(0x80) +#define ASIC6_LED0_U1 __ASIC6_REG(0x82) /* unknown=0 */ +#define ASIC6_LED0_PERIOD __ASIC6_REG(0x84) +#define ASIC6_LED0_U2 __ASIC6_REG(0x86) /* unknown=3 */ +#define ASIC6_LED0_DUTY __ASIC6_REG(0x88) +#define ASIC6_LED0_AUTOSTOP __ASIC6_REG(0x8a) +#define ASIC6_LED1_TBS __ASIC6_REG(0x90) +#define ASIC6_LED1_PERIOD __ASIC6_REG(0x94) +#define ASIC6_LED1_DUTY __ASIC6_REG(0x98) +#define ASIC6_LED1_AUTOSTOP __ASIC6_REG(0x9a) +#define ASIC6_LED2_TBS __ASIC6_REG(0xa0) +#define ASIC6_LED2_PERIOD __ASIC6_REG(0xa4) +#define ASIC6_LED2_DUTY __ASIC6_REG(0xa8) +#define ASIC6_LED2_AUTOSTOP __ASIC6_REG(0xaa) + +#define ASIC6_GPLR __ASIC6_REG(0x48) +#define ASIC6_GPLR_GSM_POWER (1<<6) +/* one of these will be reset the other power, not sure which is which */ +#define ASIC6_GPLR_BT_PW1 (1<<4) +#define ASIC6_GPLR_BT_PW2 (1<<5) + +#define SET_ASIC6_GPIO(gpio, setp) \ +do { \ +if (setp) \ + ASIC6_GPLR |= ASIC6_GPLR_ ## gpio; \ +else \ + ASIC6_GPLR &= ~ASIC6_GPLR_ ## gpio; \ +} while (0) + +#define GET_ASIC6_GPIO(gpio) \ + (ASIC6_GPLR & ASIC6_GPLR_ ## gpio) + + + /* Palm Treo 650 GPIOs */ #define GPIO_NR_PALMT650_POWER_DETECT 0 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-22 10:51:58
|
Revision: 1198 http://svn.sourceforge.net/hackndev/?rev=1198&view=rev Author: bobofdoom Date: 2007-07-22 03:51:55 -0700 (Sun, 22 Jul 2007) Log Message: ----------- QEMU: Hacky suspend/resume handling. Modified Paths: -------------- qemu/trunk/hw/pxa2xx.c Modified: qemu/trunk/hw/pxa2xx.c =================================================================== --- qemu/trunk/hw/pxa2xx.c 2007-07-22 06:54:01 UTC (rev 1197) +++ qemu/trunk/hw/pxa2xx.c 2007-07-22 10:51:55 UTC (rev 1198) @@ -163,7 +163,7 @@ case CCCR: case CKEN: case OSCC: - return s->cm_regs[addr >> 2]; + return s->cm_regs[addr >> 2] | 1; case CCSR: return s->cm_regs[CCCR >> 2] | (3 << 28); @@ -254,6 +254,18 @@ return 0; } +static void pxa2xx_sleep_reset(void *opaque) +{ + struct pxa2xx_state_s *s = (struct pxa2xx_state_s *) opaque; + cpu_reset(s->env); + s->pm_regs[PSSR >> 2] |= 0x1; /* Set SSS */ + s->pm_regs[RCSR >> 2] |= 0x4; /* Set SMR */ + s->pm_regs[PEDR >> 2] = 0x0; + //s->pm_regs[PSPR >> 2] |= 0x4; + printf("reset PC=%x PSPR=%x\n", s->env->regs[15], s->pm_regs[PSPR>>2]); + //s->env->regs[15] = s->pm_regs[PSPR >> 2]; +} + static void pxa2xx_clkpwr_write(void *opaque, int op2, int reg, int crm, uint32_t value) { @@ -293,6 +305,8 @@ goto message; case 3: + case 4: + case 7: s->env->uncached_cpsr = ARM_CPU_MODE_SVC | CPSR_A | CPSR_F | CPSR_I; s->env->cp15.c1_sys = 0; @@ -319,8 +333,8 @@ #endif /* Suspend */ - cpu_interrupt(cpu_single_env, CPU_INTERRUPT_HALT); - + qemu_register_reset(pxa2xx_sleep_reset, s); + qemu_system_reset_request(); goto message; default: @@ -2116,7 +2130,7 @@ s->i2c[1] = pxa2xx_i2c_init(0x40f00100, s->pic[PXA2XX_PIC_PWRI2C], 0xff); s->i2s = pxa2xx_i2s_init(0x40400000, s->pic[PXA2XX_PIC_I2S], s->dma); - + /* GPIO1 resets the processor */ /* The handler can be overriden by board-specific code */ pxa2xx_gpio_handler_set(s->gpio, 1, pxa2xx_reset, s); @@ -2225,7 +2239,7 @@ s->i2c[1] = pxa2xx_i2c_init(0x40f00100, s->pic[PXA2XX_PIC_PWRI2C], 0xff); s->i2s = pxa2xx_i2s_init(0x40400000, s->pic[PXA2XX_PIC_I2S], s->dma); - + /* GPIO1 resets the processor */ /* The handler can be overriden by board-specific code */ pxa2xx_gpio_handler_set(s->gpio, 1, pxa2xx_reset, s); This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-22 06:54:04
|
Revision: 1197 http://svn.sourceforge.net/hackndev/?rev=1197&view=rev Author: bobofdoom Date: 2007-07-21 23:54:01 -0700 (Sat, 21 Jul 2007) Log Message: ----------- Cocoboot: Added GSM unlock code dumping to info menu. * Note: This does NOT allow you to unlock a locked Treo. It only shows the code from an already unlocked phone. Modified Paths: -------------- cocoboot/trunk/Changelog cocoboot/trunk/include/cocoboot.rcp cocoboot/trunk/include/cocoboot_r.h cocoboot/trunk/m68k/mainform.c Modified: cocoboot/trunk/Changelog =================================================================== --- cocoboot/trunk/Changelog 2007-07-22 02:50:44 UTC (rev 1196) +++ cocoboot/trunk/Changelog 2007-07-22 06:54:01 UTC (rev 1197) @@ -1,3 +1,6 @@ + - Added GSM unlock code to info menu (unlocked GSM Treos only). + - Added basic memory tracing. + version 0.4: - Fixed 'c01d' error introduced in 0.3 on LD, TX etc. - Added reading of a config file. Modified: cocoboot/trunk/include/cocoboot.rcp =================================================================== --- cocoboot/trunk/include/cocoboot.rcp 2007-07-22 02:50:44 UTC (rev 1196) +++ cocoboot/trunk/include/cocoboot.rcp 2007-07-22 06:54:01 UTC (rev 1197) @@ -26,6 +26,7 @@ MENUITEM "LCD registers (PXA only)" MenuItemLCD MENUITEM "LCD test (PXA only)" MenuItemLCDTest MENUITEM "Dump MMU" MenuItemDumpMMU + MENUITEM "GSM Unlock Code" MenuItemGsmCode END PULLDOWN "Tools" BEGIN Modified: cocoboot/trunk/include/cocoboot_r.h =================================================================== --- cocoboot/trunk/include/cocoboot_r.h 2007-07-22 02:50:44 UTC (rev 1196) +++ cocoboot/trunk/include/cocoboot_r.h 2007-07-22 06:54:01 UTC (rev 1197) @@ -18,6 +18,7 @@ #define MenuItemConsole 1006 #define MenuItemStartIrqTrace 1007 #define MenuItemDumpTraceLog 1008 +#define MenuItemGsmCode 1009 #define ErrorAlert 1000 #define InfoAlert 1001 Modified: cocoboot/trunk/m68k/mainform.c =================================================================== --- cocoboot/trunk/m68k/mainform.c 2007-07-22 02:50:44 UTC (rev 1196) +++ cocoboot/trunk/m68k/mainform.c 2007-07-22 06:54:01 UTC (rev 1197) @@ -264,6 +264,24 @@ FrmCustomAlert(InfoAlert, "Error writing to /cocoboot.memtrace.", " ", " "); } +void show_gsm_code(void) +{ + char *buf = 0; + UInt16 len; + char buf2[256]; + int i; + SysGetROMToken(0, 'GoUc', &buf, &len); + if (!buf || len == 0xffff) { + FrmCustomAlert(InfoAlert, "Code not found.", "This option only works on unlocked GSM phones. It does not allow you to unlock a locked phone.", " "); + return; + } + strncpy(buf2, buf, len < 256 ? len : 256); + buf2[len] = 0; + for (i=0; i<len; i++) + buf2[i] -= 13; + FrmCustomAlert(InfoAlert, "GSM unlock code:", buf2, " "); +} + UInt32 load_parts(int n, char *name, void **image) { /* more ugly code... */ @@ -402,7 +420,11 @@ return true; case MenuItemDumpTraceLog: dump_trace_log(); + return true; + case MenuItemGsmCode: + show_gsm_code(); return true; + } return false; } This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |
From: <bob...@us...> - 2007-07-22 02:50:46
|
Revision: 1196 http://svn.sourceforge.net/hackndev/?rev=1196&view=rev Author: bobofdoom Date: 2007-07-21 19:50:44 -0700 (Sat, 21 Jul 2007) Log Message: ----------- PalmT650: Added PKWR_MKIN constants. Modified Paths: -------------- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h Modified: linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h =================================================================== --- linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h 2007-07-22 02:48:49 UTC (rev 1195) +++ linux4palm/linux/trunk/include/asm-arm/arch-pxa/palmt650-gpio.h 2007-07-22 02:50:44 UTC (rev 1196) @@ -54,6 +54,15 @@ #define GPIO_NR_PALMT650_KP_MKIN6 17 #define GPIO_NR_PALMT650_KP_MKIN7 13 +#define PKWR_MKIN0 (1<<17) +#define PKWR_MKIN1 (1<<18) +#define PKWR_MKIN2 (1<<19) +#define PKWR_MKIN3 (1<<14) +#define PKWR_MKIN4 (1<<15) +#define PKWR_MKIN5 (1<<16) +#define PKWR_MKIN6 (1<<2) +#define PKWR_MKIN7 (1<<0) + #define GPIO_NR_PALMT650_KP_MKOUT0 103 #define GPIO_NR_PALMT650_KP_MKOUT1 104 #define GPIO_NR_PALMT650_KP_MKOUT2 105 This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site. |