+ val = (readl(®s->gpio_psr) >> gpio) & 0x01;
+
+ return val;
+}
+
+int gpio_request(unsigned gpio, const char *label)
+{
+ unsigned int port = GPIO_TO_PORT(gpio);
+ if (port >= ARRAY_SIZE(gpio_ports))
+ return -1;
+ return 0;
+}
+
+int gpio_free(unsigned gpio)
+{
+ return 0;
+}
+
+int gpio_direction_input(unsigned gpio)
+{
+ return mxc_gpio_direction(gpio, MXC_GPIO_DIRECTION_IN);
+}
+
+int gpio_direction_output(unsigned gpio, int value)
+{
+ int ret = mxc_gpio_direction(gpio, MXC_GPIO_DIRECTION_OUT);
+
+ if (ret < 0)
+ return ret;