diff options
Diffstat (limited to 'drivers/gpio/gpio-vf610.c')
| -rw-r--r-- | drivers/gpio/gpio-vf610.c | 25 | 
1 files changed, 10 insertions, 15 deletions
diff --git a/drivers/gpio/gpio-vf610.c b/drivers/gpio/gpio-vf610.c index 87b950cec6ec..6284bdbe1e0c 100644 --- a/drivers/gpio/gpio-vf610.c +++ b/drivers/gpio/gpio-vf610.c @@ -62,11 +62,6 @@ struct vf610_gpio_port {  static struct irq_chip vf610_gpio_irq_chip; -static struct vf610_gpio_port *to_vf610_gp(struct gpio_chip *gc) -{ -	return container_of(gc, struct vf610_gpio_port, gc); -} -  static const struct of_device_id vf610_gpio_dt_ids[] = {  	{ .compatible = "fsl,vf610-gpio" },  	{ /* sentinel */ } @@ -84,14 +79,14 @@ static inline u32 vf610_gpio_readl(void __iomem *reg)  static int vf610_gpio_get(struct gpio_chip *gc, unsigned int gpio)  { -	struct vf610_gpio_port *port = to_vf610_gp(gc); +	struct vf610_gpio_port *port = gpiochip_get_data(gc);  	return !!(vf610_gpio_readl(port->gpio_base + GPIO_PDIR) & BIT(gpio));  }  static void vf610_gpio_set(struct gpio_chip *gc, unsigned int gpio, int val)  { -	struct vf610_gpio_port *port = to_vf610_gp(gc); +	struct vf610_gpio_port *port = gpiochip_get_data(gc);  	unsigned long mask = BIT(gpio);  	if (val) @@ -116,7 +111,7 @@ static int vf610_gpio_direction_output(struct gpio_chip *chip, unsigned gpio,  static void vf610_gpio_irq_handler(struct irq_desc *desc)  {  	struct vf610_gpio_port *port = -		to_vf610_gp(irq_desc_get_handler_data(desc)); +		gpiochip_get_data(irq_desc_get_handler_data(desc));  	struct irq_chip *chip = irq_desc_get_chip(desc);  	int pin;  	unsigned long irq_isfr; @@ -137,7 +132,7 @@ static void vf610_gpio_irq_handler(struct irq_desc *desc)  static void vf610_gpio_irq_ack(struct irq_data *d)  {  	struct vf610_gpio_port *port = -		to_vf610_gp(irq_data_get_irq_chip_data(d)); +		gpiochip_get_data(irq_data_get_irq_chip_data(d));  	int gpio = d->hwirq;  	vf610_gpio_writel(BIT(gpio), port->base + PORT_ISFR); @@ -146,7 +141,7 @@ static void vf610_gpio_irq_ack(struct irq_data *d)  static int vf610_gpio_irq_set_type(struct irq_data *d, u32 type)  {  	struct vf610_gpio_port *port = -		to_vf610_gp(irq_data_get_irq_chip_data(d)); +		gpiochip_get_data(irq_data_get_irq_chip_data(d));  	u8 irqc;  	switch (type) { @@ -182,7 +177,7 @@ static int vf610_gpio_irq_set_type(struct irq_data *d, u32 type)  static void vf610_gpio_irq_mask(struct irq_data *d)  {  	struct vf610_gpio_port *port = -		to_vf610_gp(irq_data_get_irq_chip_data(d)); +		gpiochip_get_data(irq_data_get_irq_chip_data(d));  	void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);  	vf610_gpio_writel(0, pcr_base); @@ -191,7 +186,7 @@ static void vf610_gpio_irq_mask(struct irq_data *d)  static void vf610_gpio_irq_unmask(struct irq_data *d)  {  	struct vf610_gpio_port *port = -		to_vf610_gp(irq_data_get_irq_chip_data(d)); +		gpiochip_get_data(irq_data_get_irq_chip_data(d));  	void __iomem *pcr_base = port->base + PORT_PCR(d->hwirq);  	vf610_gpio_writel(port->irqc[d->hwirq] << PORT_PCR_IRQC_OFFSET, @@ -201,7 +196,7 @@ static void vf610_gpio_irq_unmask(struct irq_data *d)  static int vf610_gpio_irq_set_wake(struct irq_data *d, u32 enable)  {  	struct vf610_gpio_port *port = -		to_vf610_gp(irq_data_get_irq_chip_data(d)); +		gpiochip_get_data(irq_data_get_irq_chip_data(d));  	if (enable)  		enable_irq_wake(port->irq); @@ -249,7 +244,7 @@ static int vf610_gpio_probe(struct platform_device *pdev)  	gc = &port->gc;  	gc->of_node = np; -	gc->dev = dev; +	gc->parent = dev;  	gc->label = "vf610-gpio";  	gc->ngpio = VF610_GPIO_PER_PORT;  	gc->base = of_alias_get_id(np, "gpio") * VF610_GPIO_PER_PORT; @@ -261,7 +256,7 @@ static int vf610_gpio_probe(struct platform_device *pdev)  	gc->direction_output = vf610_gpio_direction_output;  	gc->set = vf610_gpio_set; -	ret = gpiochip_add(gc); +	ret = gpiochip_add_data(gc, port);  	if (ret < 0)  		return ret;  | 
