#include <linux/timer.h>
 #include <linux/clk.h>
 #include <linux/platform_device.h>
+#include <linux/gpio.h>
 
 #include <mach/hardware.h>
-#include <mach/gpio.h>
 #include <mach/board.h>
 #include <mach/irqs.h>
 
        NBT_DBG("Uart: %d\n", info->btinfo->bt_uart);
        NBT_DBG("sysclk: %d\n", info->btinfo->bt_sysclk);
 
-       err = omap_request_gpio(info->btinfo->reset_gpio);
+       err = gpio_request(info->btinfo->reset_gpio, "BT reset");
        if (err < 0)
        {
                printk(KERN_WARNING "Cannot get GPIO line %d", 
                return err;
        }
 
-       err = omap_request_gpio(info->btinfo->bt_wakeup_gpio);
+       err = gpio_request(info->btinfo->bt_wakeup_gpio, "BT wakeup");
        if (err < 0)
        {
                printk(KERN_WARNING "Cannot get GPIO line 0x%d",
                       info->btinfo->bt_wakeup_gpio);
-               omap_free_gpio(info->btinfo->reset_gpio);
+               gpio_free(info->btinfo->reset_gpio);
                kfree(info);
                return err;
        }
 
-       err = omap_request_gpio(info->btinfo->host_wakeup_gpio);
+       err = gpio_request(info->btinfo->host_wakeup_gpio, "BT host wakeup");
        if (err < 0)
        {
                printk(KERN_WARNING "Cannot get GPIO line %d",
                       info->btinfo->host_wakeup_gpio);
-               omap_free_gpio(info->btinfo->reset_gpio);
-               omap_free_gpio(info->btinfo->bt_wakeup_gpio);
+               gpio_free(info->btinfo->reset_gpio);
+               gpio_free(info->btinfo->bt_wakeup_gpio);
                kfree(info);
                return err;
        }
        free_irq(irq, (void *)info);
        free_irq(gpio_to_irq(info->btinfo->host_wakeup_gpio), (void *)info);
 cleanup:
-       omap_free_gpio(info->btinfo->reset_gpio);
-       omap_free_gpio(info->btinfo->bt_wakeup_gpio);
-       omap_free_gpio(info->btinfo->host_wakeup_gpio);
+       gpio_free(info->btinfo->reset_gpio);
+       gpio_free(info->btinfo->bt_wakeup_gpio);
+       gpio_free(info->btinfo->host_wakeup_gpio);
        kfree(info);
 
        return err;
 {
        brf6150_hci_close(exit_info->hdev);
        hci_free_dev(exit_info->hdev);
-       omap_free_gpio(exit_info->btinfo->reset_gpio);
-       omap_free_gpio(exit_info->btinfo->bt_wakeup_gpio);
-       omap_free_gpio(exit_info->btinfo->host_wakeup_gpio);
+       gpio_free(exit_info->btinfo->reset_gpio);
+       gpio_free(exit_info->btinfo->bt_wakeup_gpio);
+       gpio_free(exit_info->btinfo->host_wakeup_gpio);
        free_irq(exit_info->irq, (void *)exit_info);
        free_irq(gpio_to_irq(exit_info->btinfo->host_wakeup_gpio), (void *)exit_info);
        kfree(exit_info);
 
 #include <linux/device.h>
 #include <linux/platform_device.h>
 #include <linux/clk.h>
+#include <linux/gpio.h>
 
 #include <mach/hardware.h>
-#include <mach/gpio.h>
 #include <mach/board.h>
 #include <mach/irqs.h>
 #include <mach/pm.h>
        NBT_DBG("Uart: %d\n", bt_config->bt_uart);
        NBT_DBG("sysclk: %d\n", info->bt_sysclk);
 
-       err = omap_request_gpio(info->reset_gpio);
+       err = gpio_request(info->reset_gpio, "BT reset");
        if (err < 0) {
                dev_err(&pdev->dev, "Cannot get GPIO line %d\n",
                        info->reset_gpio);
                goto cleanup;
        }
 
-       err = omap_request_gpio(info->bt_wakeup_gpio);
+       err = gpio_request(info->bt_wakeup_gpio, "BT wakeup");
        if (err < 0)
        {
                dev_err(info->dev, "Cannot get GPIO line 0x%d",
                        info->bt_wakeup_gpio);
-               omap_free_gpio(info->reset_gpio);
+               gpio_free(info->reset_gpio);
                kfree(info);
                goto cleanup;
        }
 
-       err = omap_request_gpio(info->host_wakeup_gpio);
+       err = gpio_request(info->host_wakeup_gpio, "BT host wakeup");
        if (err < 0)
        {
                dev_err(info->dev, "Cannot get GPIO line %d",
                       info->host_wakeup_gpio);
-               omap_free_gpio(info->reset_gpio);
-               omap_free_gpio(info->bt_wakeup_gpio);
+               gpio_free(info->reset_gpio);
+               gpio_free(info->bt_wakeup_gpio);
                kfree(info);
                goto cleanup;
        }
        free_irq(gpio_to_irq(info->host_wakeup_gpio), (void *)info);
 cleanup:
        gpio_set_value(info->reset_gpio, 0);
-       omap_free_gpio(info->reset_gpio);
-       omap_free_gpio(info->bt_wakeup_gpio);
-       omap_free_gpio(info->host_wakeup_gpio);
+       gpio_free(info->reset_gpio);
+       gpio_free(info->bt_wakeup_gpio);
+       gpio_free(info->host_wakeup_gpio);
        kfree(info);
 
        return err;
        hci_h4p_hci_close(info->hdev);
        free_irq(gpio_to_irq(info->host_wakeup_gpio), (void *) info);
        hci_free_dev(info->hdev);
-       omap_free_gpio(info->reset_gpio);
-       omap_free_gpio(info->bt_wakeup_gpio);
-       omap_free_gpio(info->host_wakeup_gpio);
+       gpio_free(info->reset_gpio);
+       gpio_free(info->bt_wakeup_gpio);
+       gpio_free(info->host_wakeup_gpio);
        free_irq(info->irq, (void *) info);
        kfree(info);