diff options
| author | Mark Brown <[email protected]> | 2016-02-09 18:20:39 +0000 |
|---|---|---|
| committer | Mark Brown <[email protected]> | 2016-02-09 18:20:39 +0000 |
| commit | fcdcc79628a1919bde9acf239e364f65bab6327c (patch) | |
| tree | 5499be387cf3028c90ac083b1cf866ebed7bf7e0 /drivers/gpio/gpio-ath79.c | |
| parent | 7a8d44bc89e5cddcd5c0704a11a90484d36ba6ba (diff) | |
| parent | a0a90718f18264dc904d34a580f332006f5561e9 (diff) | |
Merge branch 'topic/acpi' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi into spi-pxa2xx
Diffstat (limited to 'drivers/gpio/gpio-ath79.c')
| -rw-r--r-- | drivers/gpio/gpio-ath79.c | 22 |
1 files changed, 10 insertions, 12 deletions
diff --git a/drivers/gpio/gpio-ath79.c b/drivers/gpio/gpio-ath79.c index e5827a56ff3b..d13dd133a907 100644 --- a/drivers/gpio/gpio-ath79.c +++ b/drivers/gpio/gpio-ath79.c @@ -24,12 +24,10 @@ struct ath79_gpio_ctrl { spinlock_t lock; }; -#define to_ath79_gpio_ctrl(c) container_of(c, struct ath79_gpio_ctrl, chip) - static void ath79_gpio_set_value(struct gpio_chip *chip, unsigned gpio, int value) { - struct ath79_gpio_ctrl *ctrl = to_ath79_gpio_ctrl(chip); + struct ath79_gpio_ctrl *ctrl = gpiochip_get_data(chip); if (value) __raw_writel(BIT(gpio), ctrl->base + AR71XX_GPIO_REG_SET); @@ -39,7 +37,7 @@ static void ath79_gpio_set_value(struct gpio_chip *chip, static int ath79_gpio_get_value(struct gpio_chip *chip, unsigned gpio) { - struct ath79_gpio_ctrl *ctrl = to_ath79_gpio_ctrl(chip); + struct ath79_gpio_ctrl *ctrl = gpiochip_get_data(chip); return (__raw_readl(ctrl->base + AR71XX_GPIO_REG_IN) >> gpio) & 1; } @@ -47,7 +45,7 @@ static int ath79_gpio_get_value(struct gpio_chip *chip, unsigned gpio) static int ath79_gpio_direction_input(struct gpio_chip *chip, unsigned offset) { - struct ath79_gpio_ctrl *ctrl = to_ath79_gpio_ctrl(chip); + struct ath79_gpio_ctrl *ctrl = gpiochip_get_data(chip); unsigned long flags; spin_lock_irqsave(&ctrl->lock, flags); @@ -64,7 +62,7 @@ static int ath79_gpio_direction_input(struct gpio_chip *chip, static int ath79_gpio_direction_output(struct gpio_chip *chip, unsigned offset, int value) { - struct ath79_gpio_ctrl *ctrl = to_ath79_gpio_ctrl(chip); + struct ath79_gpio_ctrl *ctrl = gpiochip_get_data(chip); unsigned long flags; spin_lock_irqsave(&ctrl->lock, flags); @@ -85,7 +83,7 @@ static int ath79_gpio_direction_output(struct gpio_chip *chip, static int ar934x_gpio_direction_input(struct gpio_chip *chip, unsigned offset) { - struct ath79_gpio_ctrl *ctrl = to_ath79_gpio_ctrl(chip); + struct ath79_gpio_ctrl *ctrl = gpiochip_get_data(chip); unsigned long flags; spin_lock_irqsave(&ctrl->lock, flags); @@ -102,7 +100,7 @@ static int ar934x_gpio_direction_input(struct gpio_chip *chip, unsigned offset) static int ar934x_gpio_direction_output(struct gpio_chip *chip, unsigned offset, int value) { - struct ath79_gpio_ctrl *ctrl = to_ath79_gpio_ctrl(chip); + struct ath79_gpio_ctrl *ctrl = gpiochip_get_data(chip); unsigned long flags; spin_lock_irqsave(&ctrl->lock, flags); @@ -113,7 +111,7 @@ static int ar934x_gpio_direction_output(struct gpio_chip *chip, unsigned offset, __raw_writel(BIT(offset), ctrl->base + AR71XX_GPIO_REG_CLEAR); __raw_writel( - __raw_readl(ctrl->base + AR71XX_GPIO_REG_OE) & BIT(offset), + __raw_readl(ctrl->base + AR71XX_GPIO_REG_OE) & ~BIT(offset), ctrl->base + AR71XX_GPIO_REG_OE); spin_unlock_irqrestore(&ctrl->lock, flags); @@ -138,7 +136,7 @@ static const struct of_device_id ath79_gpio_of_match[] = { static int ath79_gpio_probe(struct platform_device *pdev) { - struct ath79_gpio_platform_data *pdata = pdev->dev.platform_data; + struct ath79_gpio_platform_data *pdata = dev_get_platdata(&pdev->dev); struct device_node *np = pdev->dev.of_node; struct ath79_gpio_ctrl *ctrl; struct resource *res; @@ -177,14 +175,14 @@ static int ath79_gpio_probe(struct platform_device *pdev) spin_lock_init(&ctrl->lock); memcpy(&ctrl->chip, &ath79_gpio_chip, sizeof(ctrl->chip)); - ctrl->chip.dev = &pdev->dev; + ctrl->chip.parent = &pdev->dev; ctrl->chip.ngpio = ath79_gpio_count; if (oe_inverted) { ctrl->chip.direction_input = ar934x_gpio_direction_input; ctrl->chip.direction_output = ar934x_gpio_direction_output; } - err = gpiochip_add(&ctrl->chip); + err = gpiochip_add_data(&ctrl->chip, ctrl); if (err) { dev_err(&pdev->dev, "cannot add AR71xx GPIO chip, error=%d", err); |