ws16c48gpio 55 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 59 drivers/gpio/gpio-ws16c48.c return !!(ws16c48gpio->io_state[port] & mask); ws16c48gpio 64 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 69 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 71 drivers/gpio/gpio-ws16c48.c ws16c48gpio->io_state[port] |= mask; ws16c48gpio 72 drivers/gpio/gpio-ws16c48.c ws16c48gpio->out_state[port] &= ~mask; ws16c48gpio 73 drivers/gpio/gpio-ws16c48.c outb(ws16c48gpio->out_state[port], ws16c48gpio->base + port); ws16c48gpio 75 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 83 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 88 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 90 drivers/gpio/gpio-ws16c48.c ws16c48gpio->io_state[port] &= ~mask; ws16c48gpio 92 drivers/gpio/gpio-ws16c48.c ws16c48gpio->out_state[port] |= mask; ws16c48gpio 94 drivers/gpio/gpio-ws16c48.c ws16c48gpio->out_state[port] &= ~mask; ws16c48gpio 95 drivers/gpio/gpio-ws16c48.c outb(ws16c48gpio->out_state[port], ws16c48gpio->base + port); ws16c48gpio 97 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 104 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 110 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 113 drivers/gpio/gpio-ws16c48.c if (!(ws16c48gpio->io_state[port] & mask)) { ws16c48gpio 114 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 118 drivers/gpio/gpio-ws16c48.c port_state = inb(ws16c48gpio->base + port); ws16c48gpio 120 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 128 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 161 drivers/gpio/gpio-ws16c48.c port_state = inb(ws16c48gpio->base + i); ws16c48gpio 172 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 177 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 180 drivers/gpio/gpio-ws16c48.c if (ws16c48gpio->io_state[port] & mask) { ws16c48gpio 181 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 186 drivers/gpio/gpio-ws16c48.c ws16c48gpio->out_state[port] |= mask; ws16c48gpio 188 drivers/gpio/gpio-ws16c48.c ws16c48gpio->out_state[port] &= ~mask; ws16c48gpio 189 drivers/gpio/gpio-ws16c48.c outb(ws16c48gpio->out_state[port], ws16c48gpio->base + port); ws16c48gpio 191 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 197 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 216 drivers/gpio/gpio-ws16c48.c iomask = mask[BIT_WORD(i)] & ~ws16c48gpio->io_state[port]; ws16c48gpio 219 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 222 drivers/gpio/gpio-ws16c48.c ws16c48gpio->out_state[port] &= ~iomask; ws16c48gpio 223 drivers/gpio/gpio-ws16c48.c ws16c48gpio->out_state[port] |= bitmask; ws16c48gpio 224 drivers/gpio/gpio-ws16c48.c outb(ws16c48gpio->out_state[port], ws16c48gpio->base + port); ws16c48gpio 226 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 237 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 248 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 250 drivers/gpio/gpio-ws16c48.c port_state = ws16c48gpio->irq_mask >> (8*port); ws16c48gpio 252 drivers/gpio/gpio-ws16c48.c outb(0x80, ws16c48gpio->base + 7); ws16c48gpio 253 drivers/gpio/gpio-ws16c48.c outb(port_state & ~mask, ws16c48gpio->base + 8 + port); ws16c48gpio 254 drivers/gpio/gpio-ws16c48.c outb(port_state | mask, ws16c48gpio->base + 8 + port); ws16c48gpio 255 drivers/gpio/gpio-ws16c48.c outb(0xC0, ws16c48gpio->base + 7); ws16c48gpio 257 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 263 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 273 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 275 drivers/gpio/gpio-ws16c48.c ws16c48gpio->irq_mask &= ~mask; ws16c48gpio 277 drivers/gpio/gpio-ws16c48.c outb(0x80, ws16c48gpio->base + 7); ws16c48gpio 278 drivers/gpio/gpio-ws16c48.c outb(ws16c48gpio->irq_mask >> (8*port), ws16c48gpio->base + 8 + port); ws16c48gpio 279 drivers/gpio/gpio-ws16c48.c outb(0xC0, ws16c48gpio->base + 7); ws16c48gpio 281 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 287 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 297 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 299 drivers/gpio/gpio-ws16c48.c ws16c48gpio->irq_mask |= mask; ws16c48gpio 301 drivers/gpio/gpio-ws16c48.c outb(0x80, ws16c48gpio->base + 7); ws16c48gpio 302 drivers/gpio/gpio-ws16c48.c outb(ws16c48gpio->irq_mask >> (8*port), ws16c48gpio->base + 8 + port); ws16c48gpio 303 drivers/gpio/gpio-ws16c48.c outb(0xC0, ws16c48gpio->base + 7); ws16c48gpio 305 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 311 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = gpiochip_get_data(chip); ws16c48gpio 321 drivers/gpio/gpio-ws16c48.c raw_spin_lock_irqsave(&ws16c48gpio->lock, flags); ws16c48gpio 327 drivers/gpio/gpio-ws16c48.c ws16c48gpio->flow_mask |= mask; ws16c48gpio 330 drivers/gpio/gpio-ws16c48.c ws16c48gpio->flow_mask &= ~mask; ws16c48gpio 333 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 337 drivers/gpio/gpio-ws16c48.c outb(0x40, ws16c48gpio->base + 7); ws16c48gpio 338 drivers/gpio/gpio-ws16c48.c outb(ws16c48gpio->flow_mask >> (8*port), ws16c48gpio->base + 8 + port); ws16c48gpio 339 drivers/gpio/gpio-ws16c48.c outb(0xC0, ws16c48gpio->base + 7); ws16c48gpio 341 drivers/gpio/gpio-ws16c48.c raw_spin_unlock_irqrestore(&ws16c48gpio->lock, flags); ws16c48gpio 356 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *const ws16c48gpio = dev_id; ws16c48gpio 357 drivers/gpio/gpio-ws16c48.c struct gpio_chip *const chip = &ws16c48gpio->chip; ws16c48gpio 363 drivers/gpio/gpio-ws16c48.c int_pending = inb(ws16c48gpio->base + 6) & 0x7; ws16c48gpio 370 drivers/gpio/gpio-ws16c48.c int_id = inb(ws16c48gpio->base + 8 + port); ws16c48gpio 376 drivers/gpio/gpio-ws16c48.c int_pending = inb(ws16c48gpio->base + 6) & 0x7; ws16c48gpio 400 drivers/gpio/gpio-ws16c48.c struct ws16c48_gpio *ws16c48gpio; ws16c48gpio 404 drivers/gpio/gpio-ws16c48.c ws16c48gpio = devm_kzalloc(dev, sizeof(*ws16c48gpio), GFP_KERNEL); ws16c48gpio 405 drivers/gpio/gpio-ws16c48.c if (!ws16c48gpio) ws16c48gpio 414 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.label = name; ws16c48gpio 415 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.parent = dev; ws16c48gpio 416 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.owner = THIS_MODULE; ws16c48gpio 417 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.base = -1; ws16c48gpio 418 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.ngpio = WS16C48_NGPIO; ws16c48gpio 419 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.names = ws16c48_names; ws16c48gpio 420 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.get_direction = ws16c48_gpio_get_direction; ws16c48gpio 421 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.direction_input = ws16c48_gpio_direction_input; ws16c48gpio 422 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.direction_output = ws16c48_gpio_direction_output; ws16c48gpio 423 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.get = ws16c48_gpio_get; ws16c48gpio 424 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.get_multiple = ws16c48_gpio_get_multiple; ws16c48gpio 425 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.set = ws16c48_gpio_set; ws16c48gpio 426 drivers/gpio/gpio-ws16c48.c ws16c48gpio->chip.set_multiple = ws16c48_gpio_set_multiple; ws16c48gpio 427 drivers/gpio/gpio-ws16c48.c ws16c48gpio->base = base[id]; ws16c48gpio 429 drivers/gpio/gpio-ws16c48.c raw_spin_lock_init(&ws16c48gpio->lock); ws16c48gpio 431 drivers/gpio/gpio-ws16c48.c err = devm_gpiochip_add_data(dev, &ws16c48gpio->chip, ws16c48gpio); ws16c48gpio 444 drivers/gpio/gpio-ws16c48.c err = gpiochip_irqchip_add(&ws16c48gpio->chip, &ws16c48_irqchip, 0, ws16c48gpio 452 drivers/gpio/gpio-ws16c48.c name, ws16c48gpio);