diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.24/1042-gta02-bt-fixes.patch.patch')
-rw-r--r-- | target/linux/s3c24xx/patches-2.6.24/1042-gta02-bt-fixes.patch.patch | 209 |
1 files changed, 0 insertions, 209 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.24/1042-gta02-bt-fixes.patch.patch b/target/linux/s3c24xx/patches-2.6.24/1042-gta02-bt-fixes.patch.patch deleted file mode 100644 index 207b3349fc..0000000000 --- a/target/linux/s3c24xx/patches-2.6.24/1042-gta02-bt-fixes.patch.patch +++ /dev/null @@ -1,209 +0,0 @@ -From c3baf8bae35ec67edb89c07cd8367040c95cca74 Mon Sep 17 00:00:00 2001 -From: mokopatches <mokopatches@openmoko.org> -Date: Fri, 4 Apr 2008 11:36:19 +0100 -Subject: [PATCH] gta02-bt-fixes.patch - Modify GTA02 power manager for bluetooth. - -1. Default power value isn't correct. Now we set pcf50633 LDO4 to 3.2 voltage. - -2. Separate GTA01 and GTA02 source code. - -3. Add pcf50633 API for enable register. ---- - arch/arm/mach-s3c2440/mach-gta02.c | 4 +- - arch/arm/plat-s3c24xx/neo1973_pm_bt.c | 71 ++++++++++++++++++++++++++++---- - include/linux/pcf50633.h | 1 + - 3 files changed, 65 insertions(+), 11 deletions(-) - -diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c -index 3fbb131..46acede 100644 ---- a/arch/arm/mach-s3c2440/mach-gta02.c -+++ b/arch/arm/mach-s3c2440/mach-gta02.c -@@ -213,10 +213,10 @@ static struct pcf50633_platform_data gta02_pcf_pdata = { - }, - }, - [PCF50633_REGULATOR_LDO4] = { -- .name = "gl_2v5", -+ .name = "bt_3v2", - .voltage = { - .init = 2500, -- .max = 2500, -+ .max = 3300, - }, - }, - [PCF50633_REGULATOR_LDO5] = { -diff --git a/arch/arm/plat-s3c24xx/neo1973_pm_bt.c b/arch/arm/plat-s3c24xx/neo1973_pm_bt.c -index d685ef7..8f5be88 100644 ---- a/arch/arm/plat-s3c24xx/neo1973_pm_bt.c -+++ b/arch/arm/plat-s3c24xx/neo1973_pm_bt.c -@@ -16,12 +16,19 @@ - #include <linux/kernel.h> - #include <linux/platform_device.h> - --#include <linux/pcf50606.h> -- - #include <asm/hardware.h> - #include <asm/mach-types.h> -+ -+#ifdef CONFIG_MACH_NEO1973_GTA01 - #include <asm/arch/gta01.h> -+#include <linux/pcf50606.h> -+#endif -+ -+#ifdef CONFIG_MACH_NEO1973_GTA02 - #include <asm/arch/gta02.h> -+#include <linux/pcf50633.h> -+#endif -+ - - #define DRVMSG "FIC Neo1973 Bluetooth Power Management" - -@@ -30,6 +37,8 @@ static ssize_t bt_read(struct device *dev, struct device_attribute *attr, - { - if (!strcmp(attr->attr.name, "power_on")) { - switch (machine_arch_type) { -+ -+#ifdef CONFIG_MACH_NEO1973_GTA01 - case MACH_TYPE_NEO1973_GTA01: - if (pcf50606_onoff_get(pcf50606_global, - PCF50606_REGULATOR_D1REG) && -@@ -37,21 +46,33 @@ static ssize_t bt_read(struct device *dev, struct device_attribute *attr, - PCF50606_REGULATOR_D1REG) == 3100) - goto out_1; - break; -+#endif /* CONFIG_MACH_NEO1973_GTA01 */ -+ -+#ifdef CONFIG_MACH_NEO1973_GTA02 - case MACH_TYPE_NEO1973_GTA02: - if (s3c2410_gpio_getpin(GTA02_GPIO_BT_EN)) - goto out_1; - break; -+#endif /* CONFIG_MACH_NEO1973_GTA02 */ -+ - } - } else if (!strcmp(attr->attr.name, "reset")) { - switch (machine_arch_type) { -+ -+#ifdef CONFIG_MACH_NEO1973_GTA01 - case MACH_TYPE_NEO1973_GTA01: - if (s3c2410_gpio_getpin(GTA01_GPIO_BT_EN) == 0) - goto out_1; - break; -+#endif /* CONFIG_MACH_NEO1973_GTA01 */ -+ -+#ifdef CONFIG_MACH_NEO1973_GTA02 - case MACH_TYPE_NEO1973_GTA02: - if (s3c2410_gpio_getpin(GTA02_GPIO_BT_EN) == 0) - goto out_1; - break; -+#endif /* CONFIG_MACH_NEO1973_GTA02 */ -+ - } - } - -@@ -64,9 +85,12 @@ static ssize_t bt_write(struct device *dev, struct device_attribute *attr, - const char *buf, size_t count) - { - unsigned long on = simple_strtoul(buf, NULL, 10); -+ unsigned int vol; - - if (!strcmp(attr->attr.name, "power_on")) { - switch (machine_arch_type) { -+ -+#ifdef CONFIG_MACH_NEO1973_GTA01 - case MACH_TYPE_NEO1973_GTA01: - /* if we are powering up, assert reset, then power, - * then release reset */ -@@ -80,22 +104,39 @@ static ssize_t bt_write(struct device *dev, struct device_attribute *attr, - PCF50606_REGULATOR_D1REG, on); - s3c2410_gpio_setpin(GTA01_GPIO_BT_EN, on); - break; -+#endif /* CONFIG_MACH_NEO1973_GTA01 */ -+ -+#ifdef CONFIG_MACH_NEO1973_GTA02 - case MACH_TYPE_NEO1973_GTA02: -+ s3c2410_gpio_setpin(GTA02_GPIO_BT_EN, on ? 0 : 1); - if (on) -- s3c2410_gpio_setpin(GTA02_GPIO_BT_EN, 0); -- else -- s3c2410_gpio_setpin(GTA02_GPIO_BT_EN, 1); -+ pcf50633_voltage_set(pcf50633_global, -+ PCF50633_REGULATOR_LDO4, 3200); -+ pcf50633_onoff_set(pcf50633_global, -+ PCF50633_REGULATOR_LDO4, on); -+ vol = pcf50633_voltage_get(pcf50633_global, -+ PCF50633_REGULATOR_LDO4); -+ dev_info(dev, "GTA02 Set PCF50633 LDO4 = %d\n", vol); - break; -+#endif /* CONFIG_MACH_NEO1973_GTA02 */ -+ - } - } else if (!strcmp(attr->attr.name, "reset")) { - /* reset is low-active, so we need to invert */ - switch (machine_arch_type) { -+ -+#ifdef CONFIG_MACH_NEO1973_GTA01 - case MACH_TYPE_NEO1973_GTA01: - s3c2410_gpio_setpin(GTA01_GPIO_BT_EN, on ? 0 : 1); - break; -+#endif /* CONFIG_MACH_NEO1973_GTA01 */ -+ -+#ifdef CONFIG_MACH_NEO1973_GTA02 - case MACH_TYPE_NEO1973_GTA02: - s3c2410_gpio_setpin(GTA02_GPIO_BT_EN, on ? 0 : 1); - break; -+#endif /* CONFIG_MACH_NEO1973_GTA02 */ -+ - } - } - -@@ -143,18 +184,30 @@ static int __init gta01_bt_probe(struct platform_device *pdev) - dev_info(&pdev->dev, DRVMSG ": starting\n"); - - switch (machine_arch_type) { -+ -+#ifdef CONFIG_MACH_NEO1973_GTA01 - case MACH_TYPE_NEO1973_GTA01: - /* we make sure that the voltage is off */ - pcf50606_onoff_set(pcf50606_global, - PCF50606_REGULATOR_D1REG, 0); -+ /* we pull reset to low to make sure that the chip doesn't -+ * drain power through the reset line */ -+ s3c2410_gpio_setpin(GTA01_GPIO_BT_EN, 0); - break; -+#endif /* CONFIG_MACH_NEO1973_GTA01 */ -+ -+#ifdef CONFIG_MACH_NEO1973_GTA02 - case MACH_TYPE_NEO1973_GTA02: -- /* FIXME: implementation */ -+ /* we make sure that the voltage is off */ -+ pcf50633_onoff_set(pcf50633_global, -+ PCF50633_REGULATOR_LDO4, 0); -+ /* we pull reset to low to make sure that the chip doesn't -+ * drain power through the reset line */ -+ s3c2410_gpio_setpin(GTA02_GPIO_BT_EN, 0); - break; -+#endif /* CONFIG_MACH_NEO1973_GTA02 */ -+ - } -- /* we pull reset to low to make sure that the chip doesn't -- * drain power through the reset line */ -- s3c2410_gpio_setpin(GTA01_GPIO_BT_EN, 0); - - return sysfs_create_group(&pdev->dev.kobj, >a01_bt_attr_group); - } -diff --git a/include/linux/pcf50633.h b/include/linux/pcf50633.h -index bf50fe4..b6a67ee 100644 ---- a/include/linux/pcf50633.h -+++ b/include/linux/pcf50633.h -@@ -46,6 +46,7 @@ pcf50633_voltage_set(struct pcf50633_data *pcf, - extern unsigned int - pcf50633_voltage_get(struct pcf50633_data *pcf, - enum pcf50633_regulator_id reg); -+ - extern int - pcf50633_onoff_get(struct pcf50633_data *pcf, - enum pcf50633_regulator_id reg); --- -1.5.6.5 - |