hsmmc_init(mmc);
 
        /* turn off secondary LCD backlight */
-       omap_set_gpio_direction(SECONDARY_LCD_GPIO, 0);
-       gpio_set_value(SECONDARY_LCD_GPIO, 0);
+       gpio_direction_output(SECONDARY_LCD_GPIO, 0);
 }
 
 static void __init omap_2430sdp_map_io(void)
 
                return;
        }
 
-       gpio_set_value(N800_CAM_SENSOR_RESET_GPIO, 0);
-       omap_set_gpio_direction(N800_CAM_SENSOR_RESET_GPIO, 0);
+       gpio_direction_output(N800_CAM_SENSOR_RESET_GPIO, 0);
 
        sensor_okay = 1;
 }
 
 
        if (omap_request_gpio(slot_switch_gpio) < 0)
                BUG();
-       gpio_set_value(slot_switch_gpio, 0);
-       omap_set_gpio_direction(slot_switch_gpio, 0);
+       gpio_direction_output(slot_switch_gpio, 0);
 
        if (machine_is_nokia_n810()) {
                if (omap_request_gpio(n810_slot2_pw_vddf) < 0)
                        BUG();
-               gpio_set_value(n810_slot2_pw_vddf, 0);
-               omap_set_gpio_direction(n810_slot2_pw_vddf, 0);
+               gpio_direction_output(n810_slot2_pw_vddf, 0);
 
                if (omap_request_gpio(n810_slot2_pw_vdd) < 0)
                        BUG();
-               gpio_set_value(n810_slot2_pw_vdd, 0);
-               omap_set_gpio_direction(n810_slot2_pw_vdd, 0);
+               gpio_direction_output(n810_slot2_pw_vdd, 0);
        }
 
        mmc_data[0] = &mmc1_data;
 
                       GPIO_TUSB_ENABLE);
                return;
        }
-       omap_set_gpio_direction(GPIO_TUSB_ENABLE, 0);
+       gpio_direction_output(GPIO_TUSB_ENABLE, 0);
 
        tusb_set_power(0);
 
 
                return;
        }
 
-       omap_set_gpio_direction(N800_STI_GPIO, 0);
-       gpio_set_value(N800_STI_GPIO, 0);
+       gpio_direction_output(N800_STI_GPIO, 0);
 #endif
 }
 
        r = omap_request_gpio(N800_BLIZZARD_POWERDOWN_GPIO);
        if (r < 0)
                return;
-       omap_set_gpio_direction(N800_BLIZZARD_POWERDOWN_GPIO, 0);
-       gpio_set_value(N800_BLIZZARD_POWERDOWN_GPIO, 1);
+       gpio_direction_output(N800_BLIZZARD_POWERDOWN_GPIO, 1);
 
        blizzard_get_clocks();
        omapfb_set_ctrl_platform_data(&n800_blizzard_data);
                        return -ENODEV;
                }
 
-               omap_set_gpio_direction(enable_gpio, 0);
+               gpio_direction_output(enable_gpio, 0);
                udelay(50);
                gpio_set_value(enable_gpio, 1);
        }
 
                return err;
        }
 
-       omap_set_gpio_direction(info->btinfo->reset_gpio, 0);
-       omap_set_gpio_direction(info->btinfo->bt_wakeup_gpio, 0);
+       gpio_direction_output(info->btinfo->reset_gpio, 0);
+       gpio_direction_output(info->btinfo->bt_wakeup_gpio, 0);
        gpio_direction_input(info->btinfo->host_wakeup_gpio);
        set_irq_type(OMAP_GPIO_IRQ(info->btinfo->host_wakeup_gpio), IRQ_TYPE_NONE);
 
 
                goto cleanup;
        }
 
-       omap_set_gpio_direction(info->reset_gpio, 0);
-       omap_set_gpio_direction(info->bt_wakeup_gpio, 0);
+       gpio_direction_output(info->reset_gpio, 0);
+       gpio_direction_output(info->bt_wakeup_gpio, 0);
        gpio_direction_input(info->host_wakeup_gpio);
 
        switch (bt_config->bt_uart) {
 
        return ret;
 }
 
+#define cbus_output(base, gpio, val)   cbus_set_gpio_direction(base, gpio, 0)
+
 #else
 
-#define cbus_set_gpio_direction(base, gpio, is_input) omap_set_gpio_direction(gpio, is_input)
+#define cbus_output(base, gpio, val)   gpio_direction_output(gpio, val)
 #define cbus_set_gpio_dataout(base, gpio, enable) gpio_set_value(gpio, enable)
 #define cbus_get_gpio_datain(base, int, gpio) gpio_get_value(gpio)
 
        cbus_set_gpio_dataout(base, host->sel_gpio, 0);
 
        /* Set the DAT pin to output */
-       cbus_set_gpio_direction(base, host->dat_gpio, 0);
+       cbus_output(base, host->dat_gpio, 1);
 
        /* Send the device address */
        for (i = 3; i > 0; i--)
        if ((ret = omap_request_gpio(chost->sel_gpio)) < 0)
                goto exit3;
 
-       gpio_set_value(chost->clk_gpio, 0);
-       gpio_set_value(chost->sel_gpio, 1);
-
-       omap_set_gpio_direction(chost->clk_gpio, 0);
+       gpio_direction_output(chost->clk_gpio, 0);
        gpio_direction_input(chost->dat_gpio);
-       omap_set_gpio_direction(chost->sel_gpio, 0);
+       gpio_direction_output(chost->sel_gpio, 1);
 
        gpio_set_value(chost->clk_gpio, 1);
        gpio_set_value(chost->clk_gpio, 0);
 
                printk(KERN_ERR "Failed to request GPIO%d for LEDs\n", gpio);
                return;
        }
-       omap_set_gpio_direction(gpio, 0);       /* OUT */
+       gpio_direction_output(gpio, 0);
 }
 
 static int omap_led_probe(struct platform_device *dev)
 
                r = omap_request_gpio(tsc->reset_gpio);
                if (r < 0)
                        goto err1;
-               gpio_set_value(tsc->reset_gpio, 1);
-               omap_set_gpio_direction(tsc->reset_gpio, 0);
+               gpio_direction_output(tsc->reset_gpio, 1);
                mdelay(1);
                gpio_set_value(tsc->reset_gpio, 0);
 #endif
 
 #ifdef EXTERNAL_PHY_RESET
        /* Refer: ISSUE1 */
        omap_request_gpio(EXT_PHY_RESET_GPIO_PORT1);
-       omap_set_gpio_direction(EXT_PHY_RESET_GPIO_PORT1, 0);
+       gpio_direction_output(EXT_PHY_RESET_GPIO_PORT1, 0);
        omap_request_gpio(EXT_PHY_RESET_GPIO_PORT2);
-       omap_set_gpio_direction(EXT_PHY_RESET_GPIO_PORT2, 0);
-       gpio_set_value(EXT_PHY_RESET_GPIO_PORT1, 0);
-       gpio_set_value(EXT_PHY_RESET_GPIO_PORT2, 0);
+       gpio_direction_output(EXT_PHY_RESET_GPIO_PORT2, 0);
        /* Hold the PHY in RESET for enough time till DIR is high */
        udelay(EXT_PHY_RESET_DELAY);
 #endif
 
 
        omap_request_gpio(enable_gpio);                 /* LCD panel */
        omap_request_gpio(backlight_gpio);              /* LCD backlight */
-       omap_set_gpio_direction(enable_gpio, 0);        /* output */
-       omap_set_gpio_direction(backlight_gpio, 0);     /* output */
+       gpio_direction_output(enable_gpio, 0);
+       gpio_direction_output(backlight_gpio, 0);
 
        return 0;
 }
 
        omap_request_gpio(LCD_PANEL_QVGA);
        omap_request_gpio(LCD_PANEL_RESB);
 
-       omap_set_gpio_direction(LCD_PANEL_ENABLE_GPIO, 0);
-       omap_set_gpio_direction(LCD_PANEL_LR, 0);
-       omap_set_gpio_direction(LCD_PANEL_UD, 0);
-       omap_set_gpio_direction(LCD_PANEL_INI, 0);
-       omap_set_gpio_direction(LCD_PANEL_QVGA, 0);
-       omap_set_gpio_direction(LCD_PANEL_RESB, 0);
-
-       gpio_set_value(LCD_PANEL_RESB, 1);
-       gpio_set_value(LCD_PANEL_INI, 1);
-       gpio_set_value(LCD_PANEL_QVGA, 0);
-       gpio_set_value(LCD_PANEL_LR, 1);
-       gpio_set_value(LCD_PANEL_UD, 1);
+       gpio_direction_output(LCD_PANEL_ENABLE_GPIO, 1);
+       gpio_direction_output(LCD_PANEL_RESB, 1);
+       gpio_direction_output(LCD_PANEL_INI, 1);
+       gpio_direction_output(LCD_PANEL_QVGA, 0);
+       gpio_direction_output(LCD_PANEL_LR, 1);
+       gpio_direction_output(LCD_PANEL_UD, 1);
 
        twl4030_i2c_write_u8(TWL4030_MODULE_LED, 0x11, TWL_LED_LEDEN);
        twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, 0x01, TWL_PWMA_PWMAON);
 
        omap_request_gpio(LCD_PANEL_RESB);
        omap_request_gpio(LCD_PANEL_QVGA);
 
-       omap_set_gpio_direction(LCD_PANEL_LR, 0);
-       omap_set_gpio_direction(LCD_PANEL_UD, 0);
-       omap_set_gpio_direction(LCD_PANEL_INI, 0);
-       omap_set_gpio_direction(LCD_PANEL_RESB, 0);
-       omap_set_gpio_direction(LCD_PANEL_QVGA, 0);
+       gpio_direction_output(LCD_PANEL_RESB, 1);
+       gpio_direction_output(LCD_PANEL_INI, 1);
+       gpio_direction_output(LCD_PANEL_QVGA, 0);
+       gpio_direction_output(LCD_PANEL_LR, 1);
+       gpio_direction_output(LCD_PANEL_UD, 1);
 
        twl4030_i2c_write_u8(TWL4030_MODULE_LED, 0x11, TWL_LED_LEDEN);
        twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, 0x01, TWL_PWMA_PWMAON);
        twl4030_i2c_write_u8(TWL4030_MODULE_PWMA, 0x02, TWL_PWMA_PWMAOFF);
        bklight_level = 100;
 
-       gpio_set_value(LCD_PANEL_RESB, 1);
-       gpio_set_value(LCD_PANEL_INI, 1);
-       gpio_set_value(LCD_PANEL_QVGA, 0);
-       gpio_set_value(LCD_PANEL_LR, 1);
-       gpio_set_value(LCD_PANEL_UD, 1);
-
        return 0;
 }
 
 
        unsigned long value;
 
                /* thwack the reset line */
-       omap_set_gpio_direction(19, 0);
-       gpio_set_value(19, 0);
+       gpio_direction_output(19, 0);
        mdelay(2);
        gpio_set_value(19, 1);
 
        omap_uwire_data_transfer(LCD_UWIRE_CS, LCD_DISON, 9, 0,NULL,1);
 
        /* enable backlight */
-       omap_set_gpio_direction(134, 0);
-       gpio_set_value(134, 1);
+       gpio_direction_output(134, 1);
 
        return 0;
 }