diff options
author | Linus Walleij <linus.walleij@linaro.org> | 2015-12-08 04:18:50 -0500 |
---|---|---|
committer | Linus Walleij <linus.walleij@linaro.org> | 2016-01-05 08:15:03 -0500 |
commit | 9f57f81c129f0f9456f78f00235f70ac5e21e0f5 (patch) | |
tree | acef14ad403452f4a81413eeb93d3162654546e4 | |
parent | 378596f99460ebd255dc3f5c1bc67a9ff09273f3 (diff) |
pinctrl: samsung: use gpiochip data pointer
This makes the driver use the data pointer added to the gpio_chip
to store a pointer to the state container instead of relying on
container_of().
Cc: Tomasz Figa <tomasz.figa@gmail.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
-rw-r--r-- | drivers/pinctrl/samsung/pinctrl-samsung.c | 15 |
1 files changed, 5 insertions, 10 deletions
diff --git a/drivers/pinctrl/samsung/pinctrl-samsung.c b/drivers/pinctrl/samsung/pinctrl-samsung.c index bb4db2050f19..a4fb8379f521 100644 --- a/drivers/pinctrl/samsung/pinctrl-samsung.c +++ b/drivers/pinctrl/samsung/pinctrl-samsung.c | |||
@@ -50,11 +50,6 @@ static LIST_HEAD(drvdata_list); | |||
50 | 50 | ||
51 | static unsigned int pin_base; | 51 | static unsigned int pin_base; |
52 | 52 | ||
53 | static inline struct samsung_pin_bank *gc_to_pin_bank(struct gpio_chip *gc) | ||
54 | { | ||
55 | return container_of(gc, struct samsung_pin_bank, gpio_chip); | ||
56 | } | ||
57 | |||
58 | static int samsung_get_group_count(struct pinctrl_dev *pctldev) | 53 | static int samsung_get_group_count(struct pinctrl_dev *pctldev) |
59 | { | 54 | { |
60 | struct samsung_pinctrl_drv_data *pmx = pinctrl_dev_get_drvdata(pctldev); | 55 | struct samsung_pinctrl_drv_data *pmx = pinctrl_dev_get_drvdata(pctldev); |
@@ -522,7 +517,7 @@ static const struct pinconf_ops samsung_pinconf_ops = { | |||
522 | /* gpiolib gpio_set callback function */ | 517 | /* gpiolib gpio_set callback function */ |
523 | static void samsung_gpio_set(struct gpio_chip *gc, unsigned offset, int value) | 518 | static void samsung_gpio_set(struct gpio_chip *gc, unsigned offset, int value) |
524 | { | 519 | { |
525 | struct samsung_pin_bank *bank = gc_to_pin_bank(gc); | 520 | struct samsung_pin_bank *bank = gpiochip_get_data(gc); |
526 | const struct samsung_pin_bank_type *type = bank->type; | 521 | const struct samsung_pin_bank_type *type = bank->type; |
527 | unsigned long flags; | 522 | unsigned long flags; |
528 | void __iomem *reg; | 523 | void __iomem *reg; |
@@ -546,7 +541,7 @@ static int samsung_gpio_get(struct gpio_chip *gc, unsigned offset) | |||
546 | { | 541 | { |
547 | void __iomem *reg; | 542 | void __iomem *reg; |
548 | u32 data; | 543 | u32 data; |
549 | struct samsung_pin_bank *bank = gc_to_pin_bank(gc); | 544 | struct samsung_pin_bank *bank = gpiochip_get_data(gc); |
550 | const struct samsung_pin_bank_type *type = bank->type; | 545 | const struct samsung_pin_bank_type *type = bank->type; |
551 | 546 | ||
552 | reg = bank->drvdata->virt_base + bank->pctl_offset; | 547 | reg = bank->drvdata->virt_base + bank->pctl_offset; |
@@ -571,7 +566,7 @@ static int samsung_gpio_set_direction(struct gpio_chip *gc, | |||
571 | u32 data, mask, shift; | 566 | u32 data, mask, shift; |
572 | unsigned long flags; | 567 | unsigned long flags; |
573 | 568 | ||
574 | bank = gc_to_pin_bank(gc); | 569 | bank = gpiochip_get_data(gc); |
575 | type = bank->type; | 570 | type = bank->type; |
576 | drvdata = bank->drvdata; | 571 | drvdata = bank->drvdata; |
577 | 572 | ||
@@ -619,7 +614,7 @@ static int samsung_gpio_direction_output(struct gpio_chip *gc, unsigned offset, | |||
619 | */ | 614 | */ |
620 | static int samsung_gpio_to_irq(struct gpio_chip *gc, unsigned offset) | 615 | static int samsung_gpio_to_irq(struct gpio_chip *gc, unsigned offset) |
621 | { | 616 | { |
622 | struct samsung_pin_bank *bank = gc_to_pin_bank(gc); | 617 | struct samsung_pin_bank *bank = gpiochip_get_data(gc); |
623 | unsigned int virq; | 618 | unsigned int virq; |
624 | 619 | ||
625 | if (!bank->irq_domain) | 620 | if (!bank->irq_domain) |
@@ -918,7 +913,7 @@ static int samsung_gpiolib_register(struct platform_device *pdev, | |||
918 | gc->of_node = bank->of_node; | 913 | gc->of_node = bank->of_node; |
919 | gc->label = bank->name; | 914 | gc->label = bank->name; |
920 | 915 | ||
921 | ret = gpiochip_add(gc); | 916 | ret = gpiochip_add_data(gc, bank); |
922 | if (ret) { | 917 | if (ret) { |
923 | dev_err(&pdev->dev, "failed to register gpio_chip %s, error code: %d\n", | 918 | dev_err(&pdev->dev, "failed to register gpio_chip %s, error code: %d\n", |
924 | gc->label, ret); | 919 | gc->label, ret); |