pl061              64 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061              66 drivers/gpio/gpio-pl061.c 	return !(readb(pl061->base + GPIODIR) & BIT(offset));
pl061              71 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061              75 drivers/gpio/gpio-pl061.c 	raw_spin_lock_irqsave(&pl061->lock, flags);
pl061              76 drivers/gpio/gpio-pl061.c 	gpiodir = readb(pl061->base + GPIODIR);
pl061              78 drivers/gpio/gpio-pl061.c 	writeb(gpiodir, pl061->base + GPIODIR);
pl061              79 drivers/gpio/gpio-pl061.c 	raw_spin_unlock_irqrestore(&pl061->lock, flags);
pl061              87 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061              91 drivers/gpio/gpio-pl061.c 	raw_spin_lock_irqsave(&pl061->lock, flags);
pl061              92 drivers/gpio/gpio-pl061.c 	writeb(!!value << offset, pl061->base + (BIT(offset + 2)));
pl061              93 drivers/gpio/gpio-pl061.c 	gpiodir = readb(pl061->base + GPIODIR);
pl061              95 drivers/gpio/gpio-pl061.c 	writeb(gpiodir, pl061->base + GPIODIR);
pl061             101 drivers/gpio/gpio-pl061.c 	writeb(!!value << offset, pl061->base + (BIT(offset + 2)));
pl061             102 drivers/gpio/gpio-pl061.c 	raw_spin_unlock_irqrestore(&pl061->lock, flags);
pl061             109 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061             111 drivers/gpio/gpio-pl061.c 	return !!readb(pl061->base + (BIT(offset + 2)));
pl061             116 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061             118 drivers/gpio/gpio-pl061.c 	writeb(!!value << offset, pl061->base + (BIT(offset + 2)));
pl061             124 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061             144 drivers/gpio/gpio-pl061.c 	raw_spin_lock_irqsave(&pl061->lock, flags);
pl061             146 drivers/gpio/gpio-pl061.c 	gpioiev = readb(pl061->base + GPIOIEV);
pl061             147 drivers/gpio/gpio-pl061.c 	gpiois = readb(pl061->base + GPIOIS);
pl061             148 drivers/gpio/gpio-pl061.c 	gpioibe = readb(pl061->base + GPIOIBE);
pl061             200 drivers/gpio/gpio-pl061.c 	writeb(gpiois, pl061->base + GPIOIS);
pl061             201 drivers/gpio/gpio-pl061.c 	writeb(gpioibe, pl061->base + GPIOIBE);
pl061             202 drivers/gpio/gpio-pl061.c 	writeb(gpioiev, pl061->base + GPIOIEV);
pl061             204 drivers/gpio/gpio-pl061.c 	raw_spin_unlock_irqrestore(&pl061->lock, flags);
pl061             214 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061             219 drivers/gpio/gpio-pl061.c 	pending = readb(pl061->base + GPIOMIS);
pl061             232 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061             236 drivers/gpio/gpio-pl061.c 	raw_spin_lock(&pl061->lock);
pl061             237 drivers/gpio/gpio-pl061.c 	gpioie = readb(pl061->base + GPIOIE) & ~mask;
pl061             238 drivers/gpio/gpio-pl061.c 	writeb(gpioie, pl061->base + GPIOIE);
pl061             239 drivers/gpio/gpio-pl061.c 	raw_spin_unlock(&pl061->lock);
pl061             245 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061             249 drivers/gpio/gpio-pl061.c 	raw_spin_lock(&pl061->lock);
pl061             250 drivers/gpio/gpio-pl061.c 	gpioie = readb(pl061->base + GPIOIE) | mask;
pl061             251 drivers/gpio/gpio-pl061.c 	writeb(gpioie, pl061->base + GPIOIE);
pl061             252 drivers/gpio/gpio-pl061.c 	raw_spin_unlock(&pl061->lock);
pl061             266 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061             269 drivers/gpio/gpio-pl061.c 	raw_spin_lock(&pl061->lock);
pl061             270 drivers/gpio/gpio-pl061.c 	writeb(mask, pl061->base + GPIOIC);
pl061             271 drivers/gpio/gpio-pl061.c 	raw_spin_unlock(&pl061->lock);
pl061             277 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = gpiochip_get_data(gc);
pl061             279 drivers/gpio/gpio-pl061.c 	return irq_set_irq_wake(pl061->parent_irq, state);
pl061             285 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061;
pl061             289 drivers/gpio/gpio-pl061.c 	pl061 = devm_kzalloc(dev, sizeof(*pl061), GFP_KERNEL);
pl061             290 drivers/gpio/gpio-pl061.c 	if (pl061 == NULL)
pl061             293 drivers/gpio/gpio-pl061.c 	pl061->base = devm_ioremap_resource(dev, &adev->res);
pl061             294 drivers/gpio/gpio-pl061.c 	if (IS_ERR(pl061->base))
pl061             295 drivers/gpio/gpio-pl061.c 		return PTR_ERR(pl061->base);
pl061             297 drivers/gpio/gpio-pl061.c 	raw_spin_lock_init(&pl061->lock);
pl061             299 drivers/gpio/gpio-pl061.c 		pl061->gc.request = gpiochip_generic_request;
pl061             300 drivers/gpio/gpio-pl061.c 		pl061->gc.free = gpiochip_generic_free;
pl061             303 drivers/gpio/gpio-pl061.c 	pl061->gc.base = -1;
pl061             304 drivers/gpio/gpio-pl061.c 	pl061->gc.get_direction = pl061_get_direction;
pl061             305 drivers/gpio/gpio-pl061.c 	pl061->gc.direction_input = pl061_direction_input;
pl061             306 drivers/gpio/gpio-pl061.c 	pl061->gc.direction_output = pl061_direction_output;
pl061             307 drivers/gpio/gpio-pl061.c 	pl061->gc.get = pl061_get_value;
pl061             308 drivers/gpio/gpio-pl061.c 	pl061->gc.set = pl061_set_value;
pl061             309 drivers/gpio/gpio-pl061.c 	pl061->gc.ngpio = PL061_GPIO_NR;
pl061             310 drivers/gpio/gpio-pl061.c 	pl061->gc.label = dev_name(dev);
pl061             311 drivers/gpio/gpio-pl061.c 	pl061->gc.parent = dev;
pl061             312 drivers/gpio/gpio-pl061.c 	pl061->gc.owner = THIS_MODULE;
pl061             317 drivers/gpio/gpio-pl061.c 	pl061->irq_chip.name = dev_name(dev);
pl061             318 drivers/gpio/gpio-pl061.c 	pl061->irq_chip.irq_ack	= pl061_irq_ack;
pl061             319 drivers/gpio/gpio-pl061.c 	pl061->irq_chip.irq_mask = pl061_irq_mask;
pl061             320 drivers/gpio/gpio-pl061.c 	pl061->irq_chip.irq_unmask = pl061_irq_unmask;
pl061             321 drivers/gpio/gpio-pl061.c 	pl061->irq_chip.irq_set_type = pl061_irq_type;
pl061             322 drivers/gpio/gpio-pl061.c 	pl061->irq_chip.irq_set_wake = pl061_irq_set_wake;
pl061             324 drivers/gpio/gpio-pl061.c 	writeb(0, pl061->base + GPIOIE); /* disable irqs */
pl061             330 drivers/gpio/gpio-pl061.c 	pl061->parent_irq = irq;
pl061             332 drivers/gpio/gpio-pl061.c 	girq = &pl061->gc.irq;
pl061             333 drivers/gpio/gpio-pl061.c 	girq->chip = &pl061->irq_chip;
pl061             344 drivers/gpio/gpio-pl061.c 	ret = devm_gpiochip_add_data(dev, &pl061->gc, pl061);
pl061             348 drivers/gpio/gpio-pl061.c 	amba_set_drvdata(adev, pl061);
pl061             357 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = dev_get_drvdata(dev);
pl061             360 drivers/gpio/gpio-pl061.c 	pl061->csave_regs.gpio_data = 0;
pl061             361 drivers/gpio/gpio-pl061.c 	pl061->csave_regs.gpio_dir = readb(pl061->base + GPIODIR);
pl061             362 drivers/gpio/gpio-pl061.c 	pl061->csave_regs.gpio_is = readb(pl061->base + GPIOIS);
pl061             363 drivers/gpio/gpio-pl061.c 	pl061->csave_regs.gpio_ibe = readb(pl061->base + GPIOIBE);
pl061             364 drivers/gpio/gpio-pl061.c 	pl061->csave_regs.gpio_iev = readb(pl061->base + GPIOIEV);
pl061             365 drivers/gpio/gpio-pl061.c 	pl061->csave_regs.gpio_ie = readb(pl061->base + GPIOIE);
pl061             368 drivers/gpio/gpio-pl061.c 		if (pl061->csave_regs.gpio_dir & (BIT(offset)))
pl061             369 drivers/gpio/gpio-pl061.c 			pl061->csave_regs.gpio_data |=
pl061             370 drivers/gpio/gpio-pl061.c 				pl061_get_value(&pl061->gc, offset) << offset;
pl061             378 drivers/gpio/gpio-pl061.c 	struct pl061 *pl061 = dev_get_drvdata(dev);
pl061             382 drivers/gpio/gpio-pl061.c 		if (pl061->csave_regs.gpio_dir & (BIT(offset)))
pl061             383 drivers/gpio/gpio-pl061.c 			pl061_direction_output(&pl061->gc, offset,
pl061             384 drivers/gpio/gpio-pl061.c 					pl061->csave_regs.gpio_data &
pl061             387 drivers/gpio/gpio-pl061.c 			pl061_direction_input(&pl061->gc, offset);
pl061             390 drivers/gpio/gpio-pl061.c 	writeb(pl061->csave_regs.gpio_is, pl061->base + GPIOIS);
pl061             391 drivers/gpio/gpio-pl061.c 	writeb(pl061->csave_regs.gpio_ibe, pl061->base + GPIOIBE);
pl061             392 drivers/gpio/gpio-pl061.c 	writeb(pl061->csave_regs.gpio_iev, pl061->base + GPIOIEV);
pl061             393 drivers/gpio/gpio-pl061.c 	writeb(pl061->csave_regs.gpio_ie, pl061->base + GPIOIE);