Commit e9023d22 authored by Greg Kroah-Hartman's avatar Greg Kroah-Hartman

greybus: gpio-gb.c: it now builds properly

parent c16854c3
...@@ -10,11 +10,13 @@ ...@@ -10,11 +10,13 @@
#include <linux/module.h> #include <linux/module.h>
#include <linux/slab.h> #include <linux/slab.h>
#include <linux/gpio.h> #include <linux/gpio.h>
#include <linux/gpio/driver.h>
#include "greybus.h" #include "greybus.h"
struct gb_gpio { struct gb_gpio {
struct gpio_chip chip; struct gpio_chip chip;
struct greybus_device *gdev; struct greybus_device *gdev;
struct gpio_chip *gpio;
// FIXME - some lock? // FIXME - some lock?
}; };
...@@ -25,7 +27,7 @@ static const struct greybus_device_id id_table[] = { ...@@ -25,7 +27,7 @@ static const struct greybus_device_id id_table[] = {
static int direction_input(struct gpio_chip *gpio, unsigned nr) static int direction_input(struct gpio_chip *gpio, unsigned nr)
{ {
struct gp_gpio *gp_gpio = container_of(gpio, struct gp_gpio, chip); // struct gb_gpio *gb_gpio = container_of(gpio, struct gb_gpio, chip);
// FIXME - do something there // FIXME - do something there
return 0; return 0;
...@@ -43,24 +45,25 @@ static int gpio_get(struct gpio_chip *gpio, unsigned nr) ...@@ -43,24 +45,25 @@ static int gpio_get(struct gpio_chip *gpio, unsigned nr)
return 0; return 0;
} }
static int gpio_set(struct gpio_chip *gpio, unsigned nr, int val) static void gpio_set(struct gpio_chip *gpio, unsigned nr, int val)
{ {
// FIXME - do something there // FIXME - do something there
return 0; return;
} }
static int gpio_gb_probe(struct greybus_device *gdev, const struct greybus_device_id *id) static int gpio_gb_probe(struct greybus_device *gdev, const struct greybus_device_id *id)
{ {
struct gp_gpio *gp_gpio; struct gb_gpio *gb_gpio;
struct gpio_chip *gpio; struct gpio_chip *gpio;
struct device *dev = &gdev->dev; struct device *dev = &gdev->dev;
int retval;
gp_gpio = devm_kzalloc(dev, sizeof(*gp_gpio), GFP_KERNEL); gb_gpio = devm_kzalloc(dev, sizeof(*gb_gpio), GFP_KERNEL);
if (!gp_gpio) if (!gb_gpio)
return -ENOMEM; return -ENOMEM;
gp_gpio->gdev = gdev; gb_gpio->gdev = gdev;
gpio = &gp_gpio->gpio; gpio = &gb_gpio->chip;
gpio->label = "greybus_gpio"; gpio->label = "greybus_gpio";
gpio->owner = THIS_MODULE; gpio->owner = THIS_MODULE;
...@@ -73,9 +76,9 @@ static int gpio_gb_probe(struct greybus_device *gdev, const struct greybus_devic ...@@ -73,9 +76,9 @@ static int gpio_gb_probe(struct greybus_device *gdev, const struct greybus_devic
gpio->ngpio = 42; // FIXME!!! gpio->ngpio = 42; // FIXME!!!
gpio->can_sleep = false; // FIXME!!! gpio->can_sleep = false; // FIXME!!!
greybus_set_drvdata(gdev, gp_gpio); greybus_set_drvdata(gdev, gb_gpio);
retval = gpio_chip_add(gpio); retval = gpiochip_add(gpio);
if (retval) { if (retval) {
dev_err(dev, "Failed to register GPIO\n"); dev_err(dev, "Failed to register GPIO\n");
return retval; return retval;
...@@ -86,14 +89,11 @@ static int gpio_gb_probe(struct greybus_device *gdev, const struct greybus_devic ...@@ -86,14 +89,11 @@ static int gpio_gb_probe(struct greybus_device *gdev, const struct greybus_devic
static void gpio_gb_disconnect(struct greybus_device *gdev) static void gpio_gb_disconnect(struct greybus_device *gdev)
{ {
struct mmc_host *mmc; struct gb_gpio *gb_gpio;
struct sd_gb_host *host;
host = greybus_get_drvdata(gdev); gb_gpio = greybus_get_drvdata(gdev);
mmc = host->mmc;
mmc_remove_host(mmc); gpiochip_remove(&gb_gpio->chip);
mmc_free_host(mmc);
} }
static struct greybus_driver gpio_gb_driver = { static struct greybus_driver gpio_gb_driver = {
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment