diff options
Diffstat (limited to 'target/linux/s3c24xx/patches-2.6.26/1117--neo-Every-access-to-GPIO-bank-B-has-to-go-through.patch')
-rwxr-xr-x | target/linux/s3c24xx/patches-2.6.26/1117--neo-Every-access-to-GPIO-bank-B-has-to-go-through.patch | 497 |
1 files changed, 0 insertions, 497 deletions
diff --git a/target/linux/s3c24xx/patches-2.6.26/1117--neo-Every-access-to-GPIO-bank-B-has-to-go-through.patch b/target/linux/s3c24xx/patches-2.6.26/1117--neo-Every-access-to-GPIO-bank-B-has-to-go-through.patch deleted file mode 100755 index 8754eab..0000000 --- a/target/linux/s3c24xx/patches-2.6.26/1117--neo-Every-access-to-GPIO-bank-B-has-to-go-through.patch +++ /dev/null @@ -1,497 +0,0 @@ -From 81bf1ac05c1ba0d32db8fe8fb0cd52cb6b7d8e7e Mon Sep 17 00:00:00 2001 -From: Holger Freyther <zecke@openmoko.org> -Date: Fri, 25 Jul 2008 23:06:05 +0100 -Subject: [PATCH] [neo] Every access to GPIO bank B has to go through the shadow code - - - Any setting of any PIN on bank B will undo the LED setting. - Introduce neo1973_gpb_set_pin to set the PIN in a way not losing - the LED or any other shadowed setting. - - Update users of GPBXY for gta01 and gta02. - -Signed-Off-By: Holger Freyther <zecke@openmoko.org> ---- - arch/arm/mach-s3c2410/mach-gta01.c | 9 ++-- - arch/arm/mach-s3c2440/mach-gta02.c | 10 ++-- - arch/arm/plat-s3c24xx/Makefile | 4 +- - arch/arm/plat-s3c24xx/neo1973_pm_bt.c | 15 +++--- - arch/arm/plat-s3c24xx/neo1973_pm_gps.c | 5 ++- - arch/arm/plat-s3c24xx/neo1973_pm_gsm.c | 9 ++-- - arch/arm/plat-s3c24xx/neo1973_shadow.c | 86 ++++++++++++++++++++++++++++++++ - drivers/leds/leds-neo1973-gta02.c | 12 ++-- - drivers/leds/leds-neo1973-vibrator.c | 7 ++- - drivers/video/backlight/gta01_bl.c | 9 ++-- - include/asm-arm/plat-s3c24xx/neo1973.h | 33 ++++++++++++ - 11 files changed, 165 insertions(+), 34 deletions(-) - create mode 100644 arch/arm/plat-s3c24xx/neo1973_shadow.c - create mode 100644 include/asm-arm/plat-s3c24xx/neo1973.h - -diff --git a/arch/arm/mach-s3c2410/mach-gta01.c b/arch/arm/mach-s3c2410/mach-gta01.c -index 8c1a402..a4384b6 100644 ---- a/arch/arm/mach-s3c2410/mach-gta01.c -+++ b/arch/arm/mach-s3c2410/mach-gta01.c -@@ -72,6 +72,7 @@ - #include <asm/plat-s3c24xx/cpu.h> - #include <asm/plat-s3c24xx/pm.h> - #include <asm/plat-s3c24xx/udc.h> -+#include <asm/plat-s3c24xx/neo1973.h> - - static struct map_desc gta01_iodesc[] __initdata = { - { -@@ -416,10 +417,10 @@ static void gta01_mmc_set_power(unsigned char power_mode, unsigned short vdd) - case GTA01Bv4_SYSTEM_REV: - switch (power_mode) { - case MMC_POWER_OFF: -- s3c2410_gpio_setpin(GTA01_GPIO_SDMMC_ON, 1); -+ neo1973_gpb_setpin(GTA01_GPIO_SDMMC_ON, 1); - break; - case MMC_POWER_ON: -- s3c2410_gpio_setpin(GTA01_GPIO_SDMMC_ON, 0); -+ neo1973_gpb_setpin(GTA01_GPIO_SDMMC_ON, 0); - break; - } - break; -@@ -442,10 +443,10 @@ static void gta01_udc_command(enum s3c2410_udc_cmd_e cmd) - - switch (cmd) { - case S3C2410_UDC_P_ENABLE: -- s3c2410_gpio_setpin(GTA01_GPIO_USB_PULLUP, 1); -+ neo1973_gpb_setpin(GTA01_GPIO_USB_PULLUP, 1); - break; - case S3C2410_UDC_P_DISABLE: -- s3c2410_gpio_setpin(GTA01_GPIO_USB_PULLUP, 0); -+ neo1973_gpb_setpin(GTA01_GPIO_USB_PULLUP, 0); - break; - default: - break; -diff --git a/arch/arm/mach-s3c2440/mach-gta02.c b/arch/arm/mach-s3c2440/mach-gta02.c -index f9e00d5..27babc9 100644 ---- a/arch/arm/mach-s3c2440/mach-gta02.c -+++ b/arch/arm/mach-s3c2440/mach-gta02.c -@@ -75,6 +75,7 @@ - #include <asm/plat-s3c24xx/cpu.h> - #include <asm/plat-s3c24xx/pm.h> - #include <asm/plat-s3c24xx/udc.h> -+#include <asm/plat-s3c24xx/neo1973.h> - #include <linux/jbt6k74.h> - - #include <linux/glamofb.h> -@@ -127,11 +128,11 @@ FIQ_HANDLER_ENTRY(256, 512) - - if (fiq_ipc.vib_pwm_latched || fiq_ipc.vib_pwm) { /* not idle */ - if (((u8)_fiq_count_fiqs) == fiq_ipc.vib_pwm_latched) -- s3c2410_gpio_setpin(fiq_ipc.vib_gpio_pin, 0); -+ neo1973_gpb_setpin(fiq_ipc.vib_gpio_pin, 0); - if (((u8)_fiq_count_fiqs) == 0) { - fiq_ipc.vib_pwm_latched = fiq_ipc.vib_pwm; - if (fiq_ipc.vib_pwm_latched) -- s3c2410_gpio_setpin(fiq_ipc.vib_gpio_pin, 1); -+ neo1973_gpb_setpin(fiq_ipc.vib_gpio_pin, 1); - } - divisor = FIQ_DIVISOR_VIBRATOR; - } -@@ -319,6 +320,7 @@ FIQ_HANDLER_ENTRY(256, 512) - FIQ_HANDLER_END() - - -+ - /** - * returns PCB revision information in b9,b8 and b2,b1,b0 - * Pre-GTA02 A6 returns 0x000 -@@ -763,10 +765,10 @@ static void gta02_udc_command(enum s3c2410_udc_cmd_e cmd) - - switch (cmd) { - case S3C2410_UDC_P_ENABLE: -- s3c2410_gpio_setpin(GTA02_GPIO_USB_PULLUP, 1); -+ neo1973_gpb_setpin(GTA02_GPIO_USB_PULLUP, 1); - break; - case S3C2410_UDC_P_DISABLE: -- s3c2410_gpio_setpin(GTA02_GPIO_USB_PULLUP, 0); -+ neo1973_gpb_setpin(GTA02_GPIO_USB_PULLUP, 0); - break; - case S3C2410_UDC_P_RESET: - /* FIXME! */ -diff --git a/arch/arm/plat-s3c24xx/Makefile b/arch/arm/plat-s3c24xx/Makefile -index 6b32a8a..c173f7b 100644 ---- a/arch/arm/plat-s3c24xx/Makefile -+++ b/arch/arm/plat-s3c24xx/Makefile -@@ -33,4 +33,6 @@ obj-$(CONFIG_MACH_NEO1973) += neo1973_version.o \ - neo1973_pm_host.o \ - neo1973_pm_gsm.o \ - neo1973_pm_gps.o \ -- neo1973_pm_bt.o -+ neo1973_pm_bt.o \ -+ neo1973_shadow.o -+ -diff --git a/arch/arm/plat-s3c24xx/neo1973_pm_bt.c b/arch/arm/plat-s3c24xx/neo1973_pm_bt.c -index a9694b4..dfc9ae8 100644 ---- a/arch/arm/plat-s3c24xx/neo1973_pm_bt.c -+++ b/arch/arm/plat-s3c24xx/neo1973_pm_bt.c -@@ -18,6 +18,7 @@ - - #include <asm/hardware.h> - #include <asm/mach-types.h> -+#include <asm/plat-s3c24xx/neo1973.h> - - #ifdef CONFIG_MACH_NEO1973_GTA01 - #include <asm/arch/gta01.h> -@@ -95,20 +96,20 @@ static ssize_t bt_write(struct device *dev, struct device_attribute *attr, - /* if we are powering up, assert reset, then power, - * then release reset */ - if (on) { -- s3c2410_gpio_setpin(GTA01_GPIO_BT_EN, 0); -+ neo1973_gpb_setpin(GTA01_GPIO_BT_EN, 0); - pcf50606_voltage_set(pcf50606_global, - PCF50606_REGULATOR_D1REG, - 3100); - } - pcf50606_onoff_set(pcf50606_global, - PCF50606_REGULATOR_D1REG, on); -- s3c2410_gpio_setpin(GTA01_GPIO_BT_EN, on); -+ neo1973_gpb_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); -+ neo1973_gpb_setpin(GTA02_GPIO_BT_EN, on ? 0 : 1); - if (on) - pcf50633_voltage_set(pcf50633_global, - PCF50633_REGULATOR_LDO4, 3200); -@@ -127,13 +128,13 @@ static ssize_t bt_write(struct device *dev, struct device_attribute *attr, - - #ifdef CONFIG_MACH_NEO1973_GTA01 - case MACH_TYPE_NEO1973_GTA01: -- s3c2410_gpio_setpin(GTA01_GPIO_BT_EN, on ? 0 : 1); -+ neo1973_gpb_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); -+ neo1973_gpb_setpin(GTA02_GPIO_BT_EN, on ? 0 : 1); - break; - #endif /* CONFIG_MACH_NEO1973_GTA02 */ - -@@ -192,7 +193,7 @@ static int __init gta01_bt_probe(struct platform_device *pdev) - 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); -+ neo1973_gpb_setpin(GTA01_GPIO_BT_EN, 0); - break; - #endif /* CONFIG_MACH_NEO1973_GTA01 */ - -@@ -203,7 +204,7 @@ static int __init gta01_bt_probe(struct platform_device *pdev) - 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); -+ neo1973_gpb_setpin(GTA02_GPIO_BT_EN, 0); - break; - #endif /* CONFIG_MACH_NEO1973_GTA02 */ - -diff --git a/arch/arm/plat-s3c24xx/neo1973_pm_gps.c b/arch/arm/plat-s3c24xx/neo1973_pm_gps.c -index d882f7b..d020f8d 100644 ---- a/arch/arm/plat-s3c24xx/neo1973_pm_gps.c -+++ b/arch/arm/plat-s3c24xx/neo1973_pm_gps.c -@@ -20,6 +20,9 @@ - #include <asm/hardware.h> - - #include <asm/mach-types.h> -+ -+#include <asm/plat-s3c24xx/neo1973.h> -+ - #ifdef CONFIG_MACH_NEO1973_GTA01 - #include <asm/arch/gta01.h> - #include <linux/pcf50606.h> -@@ -264,7 +267,7 @@ static void gps_pwron_set(int on) - { - #ifdef CONFIG_MACH_NEO1973_GTA01 - if (machine_is_neo1973_gta01()) -- s3c2410_gpio_setpin(GTA01_GPIO_GPS_PWRON, on); -+ neo1973_gpb_setpin(GTA01_GPIO_GPS_PWRON, on); - #endif /* CONFIG_MACH_NEO1973_GTA01 */ - - #ifdef CONFIG_MACH_NEO1973_GTA02 -diff --git a/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c b/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c -index 5ad942e..149b866 100644 ---- a/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c -+++ b/arch/arm/plat-s3c24xx/neo1973_pm_gsm.c -@@ -22,6 +22,7 @@ - #include <asm/gpio.h> - #include <asm/mach-types.h> - #include <asm/arch/gta01.h> -+#include <asm/plat-s3c24xx/neo1973.h> - - #ifdef CONFIG_MACH_NEO1973_GTA02 - #include <asm/arch/gta02.h> -@@ -109,9 +110,9 @@ static ssize_t gsm_write(struct device *dev, struct device_attribute *attr, - #endif - } - -- s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 1); -+ neo1973_gpb_setpin(GTA01_GPIO_MODEM_ON, 1); - } else { -- s3c2410_gpio_setpin(GTA01_GPIO_MODEM_ON, 0); -+ neo1973_gpb_setpin(GTA01_GPIO_MODEM_ON, 0); - - switch (system_rev) { - #ifdef CONFIG_MACH_NEO1973_GTA02 -@@ -138,9 +139,9 @@ static ssize_t gsm_write(struct device *dev, struct device_attribute *attr, - } - } else if (!strcmp(attr->attr.name, "reset")) { - if (machine_is_neo1973_gta01()) -- s3c2410_gpio_setpin(GTA01_GPIO_MODEM_RST, on); -+ neo1973_gpb_setpin(GTA01_GPIO_MODEM_RST, on); - else if (machine_is_neo1973_gta02()) -- s3c2410_gpio_setpin(GTA02_GPIO_MODEM_RST, on); -+ neo1973_gpb_setpin(GTA02_GPIO_MODEM_RST, on); - } else if (!strcmp(attr->attr.name, "download")) { - if (machine_is_neo1973_gta01()) - s3c2410_gpio_setpin(GTA01_GPIO_MODEM_DNLOAD, on); -diff --git a/arch/arm/plat-s3c24xx/neo1973_shadow.c b/arch/arm/plat-s3c24xx/neo1973_shadow.c -new file mode 100644 -index 0000000..09667da ---- /dev/null -+++ b/arch/arm/plat-s3c24xx/neo1973_shadow.c -@@ -0,0 +1,86 @@ -+/* -+ * include/asm-arm/plat-s3c24xx/neo1973.h -+ * -+ * Common utility code for GTA01 and GTA02 -+ * -+ * Copyright (C) 2008 by Openmoko, Inc. -+ * Author: Holger Hans Peter Freyther <freyther@openmoko.org> -+ * All rights reserved. -+ * -+ * 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; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ * -+ */ -+ -+#include <linux/io.h> -+#include <linux/irq.h> -+ -+#include <asm/gpio.h> -+#include <asm/plat-s3c24xx/neo1973.h> -+ -+/** -+ * Shadow GPIO bank B handling. For the LEDs we need to keep track of the state -+ * in software. The s3c2410_gpio_setpin must not be used for GPIOs on bank B -+ */ -+static unsigned long gpb_mask; -+static unsigned long gpb_state; -+ -+void neo1973_gpb_add_shadow_gpio(unsigned int gpio) -+{ -+ unsigned long offset = S3C2410_GPIO_OFFSET(gpio); -+ unsigned long flags; -+ -+ local_irq_save(flags); -+ gpb_mask |= 1L << offset; -+ local_irq_restore(flags); -+} -+EXPORT_SYMBOL(neo1973_gpb_add_shadow_gpio); -+ -+static void set_shadow_gpio(unsigned long offset, unsigned int value) -+{ -+ unsigned long state = value != 0; -+ -+ gpb_state &= ~(1L << offset); -+ gpb_state |= state << offset; -+} -+ -+void neo1973_gpb_setpin(unsigned int pin, unsigned to) -+{ -+ void __iomem *base = S3C24XX_GPIO_BASE(S3C2410_GPB0); -+ unsigned long offset = S3C2410_GPIO_OFFSET(pin); -+ unsigned long flags; -+ unsigned long dat; -+ -+ BUG_ON(base != S3C24XX_GPIO_BASE(pin)); -+ -+ local_irq_save(flags); -+ dat = __raw_readl(base + 0x04); -+ -+ /* Add the shadow values */ -+ dat &= ~gpb_mask; -+ dat |= gpb_state; -+ -+ /* Do the operation like s3c2410_gpio_setpin */ -+ dat &= ~(1L << offset); -+ dat |= to << offset; -+ -+ /* Update the shadow state */ -+ if ((1L << offset) & gpb_mask) -+ set_shadow_gpio(offset, to); -+ -+ __raw_writel(dat, base + 0x04); -+ local_irq_restore(flags); -+} -+EXPORT_SYMBOL(neo1973_gpb_setpin); -diff --git a/drivers/leds/leds-neo1973-gta02.c b/drivers/leds/leds-neo1973-gta02.c -index 343550a..952ad69 100644 ---- a/drivers/leds/leds-neo1973-gta02.c -+++ b/drivers/leds/leds-neo1973-gta02.c -@@ -20,6 +20,7 @@ - #include <asm/arch/pwm.h> - #include <asm/arch/gta02.h> - #include <asm/plat-s3c/regs-timer.h> -+#include <asm/plat-s3c24xx/neo1973.h> - - #define MAX_LEDS 3 - #define COUNTER 256 -@@ -60,14 +61,13 @@ static void gta02led_set(struct led_classdev *led_cdev, - * value == 0 -> 0% duty cycle (zero power) - */ - mutex_lock(&lp->mutex); -+ - if (lp->has_pwm) { -- s3c2410_pwm_duty_cycle(value, &lp->pwm); -+ s3c2410_pwm_duty_cycle(value, &lp->pwm); - } else { -- if (value) -- s3c2410_gpio_setpin(lp->gpio, 1); -- else -- s3c2410_gpio_setpin(lp->gpio, 0); -+ neo1973_gpb_setpin(lp->gpio, value ? 1 : 0); - } -+ - mutex_unlock(&lp->mutex); - } - -@@ -164,7 +164,7 @@ static int __init gta02led_probe(struct platform_device *pdev) - case S3C2410_GPB3: - lp->has_pwm = 0; - s3c2410_gpio_cfgpin(lp->gpio, S3C2410_GPIO_OUTPUT); -- s3c2410_gpio_setpin(lp->gpio, 0); -+ neo1973_gpb_add_shadow_gpio(lp->gpio); - break; - default: - break; -diff --git a/drivers/leds/leds-neo1973-vibrator.c b/drivers/leds/leds-neo1973-vibrator.c -index f31302d..647e860 100644 ---- a/drivers/leds/leds-neo1973-vibrator.c -+++ b/drivers/leds/leds-neo1973-vibrator.c -@@ -24,6 +24,7 @@ - #include <asm/plat-s3c/regs-timer.h> - - #include <asm/arch-s3c2410/fiq_ipc_gta02.h> -+#include <asm/plat-s3c24xx/neo1973.h> - - #define COUNTER 64 - -@@ -56,9 +57,9 @@ static void neo1973_vib_vib_set(struct led_classdev *led_cdev, - s3c2410_pwm_duty_cycle(value / 4, &vp->pwm); - else { - if (value) -- s3c2410_gpio_setpin(vp->gpio, 1); -+ neo1973_gpb_setpin(vp->gpio, 1); - else -- s3c2410_gpio_setpin(vp->gpio, 0); -+ neo1973_gpb_setpin(vp->gpio, 0); - } - - mutex_unlock(&vp->mutex); -@@ -131,7 +132,7 @@ static int __init neo1973_vib_probe(struct platform_device *pdev) - platform_set_drvdata(pdev, &neo1973_vib_led); - - if (machine_is_neo1973_gta02()) { /* use FIQ to control GPIO */ -- s3c2410_gpio_setpin(neo1973_vib_led.gpio, 0); /* off */ -+ neo1973_gpb_setpin(neo1973_vib_led.gpio, 0); /* off */ - s3c2410_gpio_cfgpin(neo1973_vib_led.gpio, S3C2410_GPIO_OUTPUT); - /* safe, kmalloc'd copy needed for FIQ ISR */ - fiq_ipc.vib_gpio_pin = neo1973_vib_led.gpio; -diff --git a/drivers/video/backlight/gta01_bl.c b/drivers/video/backlight/gta01_bl.c -index bd7d41f..301ec9c 100644 ---- a/drivers/video/backlight/gta01_bl.c -+++ b/drivers/video/backlight/gta01_bl.c -@@ -40,6 +40,7 @@ - #include <asm/arch/pwm.h> - - #include <asm/plat-s3c/regs-timer.h> -+#include <asm/plat-s3c24xx/neo1973.h> - - static struct backlight_properties gta01bl_prop; - static struct backlight_device *gta01_backlight_device; -@@ -83,12 +84,12 @@ static int gta01bl_send_intensity(struct backlight_device *bd) - mutex_lock(>a01bl.mutex); - #ifdef GTA01_BACKLIGHT_ONOFF_ONLY - if (intensity) -- s3c2410_gpio_setpin(GTA01_GPIO_BACKLIGHT, 1); -+ neo1973_gpb_setpin(GTA01_GPIO_BACKLIGHT, 1); - else -- s3c2410_gpio_setpin(GTA01_GPIO_BACKLIGHT, 0); -+ neo1973_gpb_setpin(GTA01_GPIO_BACKLIGHT, 0); - #else - if (intensity == bd->props.max_brightness) { -- s3c2410_gpio_setpin(GTA01_GPIO_BACKLIGHT, 1); -+ neo1973_gpb_setpin(GTA01_GPIO_BACKLIGHT, 1); - s3c2410_gpio_cfgpin(GTA01_GPIO_BACKLIGHT, S3C2410_GPIO_OUTPUT); - } else { - s3c2410_pwm_duty_cycle(intensity & 0xffff, >a01bl.pwm); -@@ -222,7 +223,7 @@ static int gta01bl_remove(struct platform_device *dev) - mutex_destroy(>a01bl.mutex); - - s3c2410_gpio_cfgpin(GTA01_GPIO_BACKLIGHT, S3C2410_GPIO_OUTPUT); -- s3c2410_gpio_setpin(GTA01_GPIO_BACKLIGHT, 1); -+ neo1973_gpb_setpin(GTA01_GPIO_BACKLIGHT, 1); - - return 0; - } -diff --git a/include/asm-arm/plat-s3c24xx/neo1973.h b/include/asm-arm/plat-s3c24xx/neo1973.h -new file mode 100644 -index 0000000..63297de ---- /dev/null -+++ b/include/asm-arm/plat-s3c24xx/neo1973.h -@@ -0,0 +1,33 @@ -+/* -+ * include/asm-arm/plat-s3c24xx/neo1973.h -+ * -+ * Common utility code for GTA01 and GTA02 -+ * -+ * Copyright (C) 2008 by Openmoko, Inc. -+ * Author: Holger Hans Peter Freyther <freyther@openmoko.org> -+ * All rights reserved. -+ * -+ * 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; either version 2 of -+ * the License, or (at your option) any later version. -+ * -+ * This program is distributed in the hope that it will be useful, -+ * but WITHOUT ANY WARRANTY; without even the implied warranty of -+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the -+ * GNU General Public License for more details. -+ * -+ * You should have received a copy of the GNU General Public License -+ * along with this program; if not, write to the Free Software -+ * Foundation, Inc., 59 Temple Place, Suite 330, Boston, -+ * MA 02111-1307 USA -+ * -+ */ -+ -+#ifndef NEO1973_H -+#define NEO1973_H -+ -+void neo1973_gpb_add_shadow_gpio(unsigned int gpio); -+void neo1973_gpb_setpin(unsigned int pin, unsigned to); -+ -+#endif --- -1.5.6.3 - |