diff options
Diffstat (limited to 'packages/linux/linux-rp-2.6.23/tosa-bluetooth-r8.patch')
-rw-r--r-- | packages/linux/linux-rp-2.6.23/tosa-bluetooth-r8.patch | 194 |
1 files changed, 0 insertions, 194 deletions
diff --git a/packages/linux/linux-rp-2.6.23/tosa-bluetooth-r8.patch b/packages/linux/linux-rp-2.6.23/tosa-bluetooth-r8.patch index 9976549956..7873cffef5 100644 --- a/packages/linux/linux-rp-2.6.23/tosa-bluetooth-r8.patch +++ b/packages/linux/linux-rp-2.6.23/tosa-bluetooth-r8.patch @@ -192,197 +192,3 @@ Index: linux-2.6.17/arch/arm/mach-pxa/tosa.c }; static void tosa_poweroff(void) -Index: linux-2.6.17/arch/arm/mach-pxa/Makefile -=================================================================== ---- linux-2.6.17.orig/arch/arm/mach-pxa/Makefile 2006-06-20 11:45:51.252467944 +0200 -+++ linux-2.6.17/arch/arm/mach-pxa/Makefile 2006-06-20 11:46:33.619027248 +0200 -@@ -16,7 +16,7 @@ - obj-$(CONFIG_PXA_SHARP_Cxx00) += spitz.o corgi_ssp.o corgi_lcd.o sharpsl_pm.o spitz_pm.o - obj-$(CONFIG_MACH_AKITA) += akita-ioexp.o - obj-$(CONFIG_MACH_POODLE) += poodle.o corgi_ssp.o sharpsl_pm.o poodle_pm.o --obj-$(CONFIG_MACH_TOSA) += tosa.o sharpsl_pm.o tosa_pm.o tosa_lcd.o -+obj-$(CONFIG_MACH_TOSA) += tosa.o sharpsl_pm.o tosa_pm.o tosa_lcd.o tosa_bt.o - obj-$(CONFIG_MACH_EM_X270) += em-x270.o - obj-$(CONFIG_MACH_HX2750) += hx2750.o hx2750_test.o - -Index: linux-2.6.17/arch/arm/mach-pxa/tosa_bt.c -=================================================================== ---- /dev/null 1970-01-01 00:00:00.000000000 +0000 -+++ linux-2.6.17/arch/arm/mach-pxa/tosa_bt.c 2006-06-20 11:46:08.107905528 +0200 -@@ -0,0 +1,128 @@ -+/* -+ * Bluetooth control code for Sharp SL-6000x (tosa) -+ * -+ * Copyright (c) 2005 Dirk Opfer -+ * -+ * 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/init.h> -+#include <linux/kernel.h> -+#include <linux/sched.h> -+#include <linux/slab.h> -+#include <linux/delay.h> -+#include <linux/platform_device.h> -+#include <asm/hardware.h> -+ -+#include <asm/hardware/scoop.h> -+#include <asm/arch/tosa.h> -+#include <asm/arch/pxa-regs.h> -+ -+ -+static int tosa_bluetooth_power(int on) -+{ -+ -+ if (!on) { //off -+ -+ set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_RESET); -+ pxa_gpio_mode(GPIO42_BTRXD|GPIO_IN); -+ pxa_gpio_mode(GPIO43_BTTXD|GPIO_IN); -+ pxa_gpio_mode(GPIO44_BTCTS|GPIO_IN); -+ pxa_gpio_mode(GPIO45_BTRTS|GPIO_IN); -+ mdelay(10); // wait 10ms -+ reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_RESET); -+ reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_PWR_EN); -+ reset_scoop_gpio(&tosascoop_jc_device.dev,TOSA_SCOOP_JC_BT_LED); // turn off BT LED -+ -+ } else { // on -+ -+ reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_RESET); -+ set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_PWR_EN); -+ pxa_gpio_mode(GPIO42_HWRXD_MD); -+ pxa_gpio_mode(GPIO43_HWTXD_MD); -+ pxa_gpio_mode(GPIO44_HWCTS_MD); -+ pxa_gpio_mode(GPIO45_HWRTS_MD); -+ -+ set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_RESET); -+ mdelay(20); // wait 20ms -+ reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_RESET); -+ set_scoop_gpio(&tosascoop_jc_device.dev,TOSA_SCOOP_JC_BT_LED); // turn BT LED on -+ } -+ return 0; -+} -+ -+/* -+ * Support Routines -+ */ -+int __init tosa_bluetooth_probe(struct platform_device *dev) -+{ -+ int ret = 0; -+ pxa_gpio_mode(GPIO42_BTRXD|GPIO_IN); -+ pxa_gpio_mode(GPIO43_BTTXD|GPIO_IN); -+ pxa_gpio_mode(GPIO44_BTCTS|GPIO_IN); -+ pxa_gpio_mode(GPIO45_BTRTS|GPIO_IN); -+ set_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_PWR_EN); -+ mdelay(5); -+ -+ if ( (GPLR(GPIO42_BTRXD) & GPIO_bit(GPIO42_BTRXD))==0 && -+ (GPLR(GPIO44_BTCTS) & GPIO_bit(GPIO44_BTCTS))==0) { -+ printk(KERN_INFO "No Bluetooth Device found!\n"); -+ ret = ENODEV; // no bluetooth -+ } else { -+ printk(KERN_INFO "Tosa Bluetooth Device found on ttyS3!\n"); -+ } -+ reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_BT_PWR_EN); -+ -+ tosa_bluetooth_power(1); // Power on -+ return ret; -+} -+ -+static int tosa_bluetooth_remove(struct platform_device *dev) -+{ -+ tosa_bluetooth_power(0); // Power off -+ return 0; -+} -+ -+#ifdef CONFIG_PM -+static int tosa_bluetooth_suspend(struct platform_device *dev, pm_message_t state) -+{ -+ tosa_bluetooth_power(0); // Power off -+ return 0; -+} -+ -+static int tosa_bluetooth_resume(struct platform_device *dev) -+{ -+ tosa_bluetooth_power(1); // Power on -+ return 0; -+} -+#else -+#define tosa_bluetooth_suspend NULL -+#define tosa_bluetooth_resume NULL -+#endif -+ -+static struct platform_driver tosa_bluetooth_driver = { -+ .probe = tosa_bluetooth_probe, -+ .remove = tosa_bluetooth_remove, -+ .suspend = tosa_bluetooth_suspend, -+ .resume = tosa_bluetooth_resume, -+ .driver = { -+ .name = "tosa-bluetooth", -+ }, -+}; -+ -+int __init tosa_bluetooth_init(void) -+{ -+ return platform_driver_register(&tosa_bluetooth_driver); -+} -+ -+void __exit tosa_bluetooth_cleanup(void) -+{ -+ platform_driver_unregister(&tosa_bluetooth_driver); -+} -+ -+module_init(tosa_bluetooth_init); -+module_exit(tosa_bluetooth_cleanup); -Index: linux-2.6.17/arch/arm/mach-pxa/tosa.c -=================================================================== ---- linux-2.6.17.orig/arch/arm/mach-pxa/tosa.c 2006-06-20 11:45:51.254467640 +0200 -+++ linux-2.6.17/arch/arm/mach-pxa/tosa.c 2006-06-20 11:46:08.112904768 +0200 -@@ -288,7 +288,7 @@ - - static void tosa_tc6393_enable(struct device *dev) - { -- -+ printk("!!tosa_tc6393_enable!!\n"); - reset_scoop_gpio(&tosascoop_jc_device.dev,TOSA_SCOOP_JC_TC3693_L3V_ON); - reset_scoop_gpio(&tosascoop_jc_device.dev,TOSA_SCOOP_JC_TC6393_SUSPEND); - reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_TC6393_REST_IN); //#PCLR -@@ -303,7 +303,7 @@ - - static void tosa_tc6393_disable(struct device *dev) - { -- -+ printk("!!tosa_tc6393_disable!!\n"); - reset_scoop_gpio(&tosascoop_jc_device.dev,TOSA_SCOOP_JC_TC3693_L3V_ON); - reset_scoop_gpio(&tosascoop_jc_device.dev,TOSA_SCOOP_JC_TC6393_SUSPEND); - reset_scoop_gpio(&tosascoop_device.dev,TOSA_SCOOP_TC6393_REST_IN); //#PCLR -@@ -428,6 +428,17 @@ - }, - }; - -+/* -+ * Tosa Blueooth -+ */ -+static struct platform_device tosa_bluetooth_device = { -+ .name = "tosa-bluetooth", -+ .id = -1, -+ .dev = { -+ .parent = &tosascoop_jc_device.dev, -+ }, -+}; -+ - static struct platform_device *devices[] __initdata = { - &tosascoop_device, - &tosascoop_jc_device, -@@ -435,6 +446,7 @@ - &tosaled_device, - &tc6393_device, - &tosalcd_device, -+ &tosa_bluetooth_device, - }; - - static void tosa_poweroff(void) |