Commit 059e3972 authored by Linus Walleij's avatar Linus Walleij
Browse files

gpio: tz1090-pdc: 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: James Hogan <james.hogan@imgtec.com>
Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
parent 231a8680
Loading
Loading
Loading
Loading
+6 −7
Original line number Diff line number Diff line
@@ -49,7 +49,6 @@ struct tz1090_pdc_gpio {
	void __iomem *reg;
	int irq[GPIO_PDC_NIRQ];
};
#define to_pdc(c)	container_of(c, struct tz1090_pdc_gpio, chip)

/* Register accesses into the PDC MMIO area */

@@ -70,7 +69,7 @@ static inline unsigned int pdc_read(struct tz1090_pdc_gpio *priv,
static int tz1090_pdc_gpio_direction_input(struct gpio_chip *chip,
					   unsigned int offset)
{
	struct tz1090_pdc_gpio *priv = to_pdc(chip);
	struct tz1090_pdc_gpio *priv = gpiochip_get_data(chip);
	u32 value;
	int lstat;

@@ -87,7 +86,7 @@ static int tz1090_pdc_gpio_direction_output(struct gpio_chip *chip,
					    unsigned int offset,
					    int output_value)
{
	struct tz1090_pdc_gpio *priv = to_pdc(chip);
	struct tz1090_pdc_gpio *priv = gpiochip_get_data(chip);
	u32 value;
	int lstat;

@@ -112,14 +111,14 @@ static int tz1090_pdc_gpio_direction_output(struct gpio_chip *chip,

static int tz1090_pdc_gpio_get(struct gpio_chip *chip, unsigned int offset)
{
	struct tz1090_pdc_gpio *priv = to_pdc(chip);
	struct tz1090_pdc_gpio *priv = gpiochip_get_data(chip);
	return !!(pdc_read(priv, REG_SOC_GPIO_STATUS) & BIT(offset));
}

static void tz1090_pdc_gpio_set(struct gpio_chip *chip, unsigned int offset,
				int output_value)
{
	struct tz1090_pdc_gpio *priv = to_pdc(chip);
	struct tz1090_pdc_gpio *priv = gpiochip_get_data(chip);
	u32 value;
	int lstat;

@@ -139,7 +138,7 @@ static void tz1090_pdc_gpio_set(struct gpio_chip *chip, unsigned int offset,

static int tz1090_pdc_gpio_to_irq(struct gpio_chip *chip, unsigned int offset)
{
	struct tz1090_pdc_gpio *priv = to_pdc(chip);
	struct tz1090_pdc_gpio *priv = gpiochip_get_data(chip);
	unsigned int syswake = offset - GPIO_PDC_IRQ_FIRST;
	int irq;

@@ -207,7 +206,7 @@ static int tz1090_pdc_gpio_probe(struct platform_device *pdev)
		priv->irq[i] = irq_of_parse_and_map(np, i);

	/* Add the GPIO bank */
	gpiochip_add(&priv->chip);
	gpiochip_add_data(&priv->chip, priv);

	return 0;
}