dio48egpio 58 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 62 drivers/gpio/gpio-104-dio-48e.c return !!(dio48egpio->io_state[port] & mask); dio48egpio 67 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 70 drivers/gpio/gpio-104-dio-48e.c const unsigned control_addr = dio48egpio->base + 3 + control_port*4; dio48egpio 74 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock_irqsave(&dio48egpio->lock, flags); dio48egpio 80 drivers/gpio/gpio-104-dio-48e.c dio48egpio->io_state[io_port] |= 0xF0; dio48egpio 81 drivers/gpio/gpio-104-dio-48e.c dio48egpio->control[control_port] |= BIT(3); dio48egpio 83 drivers/gpio/gpio-104-dio-48e.c dio48egpio->io_state[io_port] |= 0x0F; dio48egpio 84 drivers/gpio/gpio-104-dio-48e.c dio48egpio->control[control_port] |= BIT(0); dio48egpio 87 drivers/gpio/gpio-104-dio-48e.c dio48egpio->io_state[io_port] |= 0xFF; dio48egpio 89 drivers/gpio/gpio-104-dio-48e.c dio48egpio->control[control_port] |= BIT(4); dio48egpio 91 drivers/gpio/gpio-104-dio-48e.c dio48egpio->control[control_port] |= BIT(1); dio48egpio 94 drivers/gpio/gpio-104-dio-48e.c control = BIT(7) | dio48egpio->control[control_port]; dio48egpio 99 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock_irqrestore(&dio48egpio->lock, flags); dio48egpio 107 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 111 drivers/gpio/gpio-104-dio-48e.c const unsigned control_addr = dio48egpio->base + 3 + control_port*4; dio48egpio 116 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock_irqsave(&dio48egpio->lock, flags); dio48egpio 122 drivers/gpio/gpio-104-dio-48e.c dio48egpio->io_state[io_port] &= 0x0F; dio48egpio 123 drivers/gpio/gpio-104-dio-48e.c dio48egpio->control[control_port] &= ~BIT(3); dio48egpio 125 drivers/gpio/gpio-104-dio-48e.c dio48egpio->io_state[io_port] &= 0xF0; dio48egpio 126 drivers/gpio/gpio-104-dio-48e.c dio48egpio->control[control_port] &= ~BIT(0); dio48egpio 129 drivers/gpio/gpio-104-dio-48e.c dio48egpio->io_state[io_port] &= 0x00; dio48egpio 131 drivers/gpio/gpio-104-dio-48e.c dio48egpio->control[control_port] &= ~BIT(4); dio48egpio 133 drivers/gpio/gpio-104-dio-48e.c dio48egpio->control[control_port] &= ~BIT(1); dio48egpio 137 drivers/gpio/gpio-104-dio-48e.c dio48egpio->out_state[io_port] |= mask; dio48egpio 139 drivers/gpio/gpio-104-dio-48e.c dio48egpio->out_state[io_port] &= ~mask; dio48egpio 141 drivers/gpio/gpio-104-dio-48e.c control = BIT(7) | dio48egpio->control[control_port]; dio48egpio 144 drivers/gpio/gpio-104-dio-48e.c outb(dio48egpio->out_state[io_port], dio48egpio->base + out_port); dio48egpio 149 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock_irqrestore(&dio48egpio->lock, flags); dio48egpio 156 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 163 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock_irqsave(&dio48egpio->lock, flags); dio48egpio 166 drivers/gpio/gpio-104-dio-48e.c if (!(dio48egpio->io_state[port] & mask)) { dio48egpio 167 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock_irqrestore(&dio48egpio->lock, flags); dio48egpio 171 drivers/gpio/gpio-104-dio-48e.c port_state = inb(dio48egpio->base + in_port); dio48egpio 173 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock_irqrestore(&dio48egpio->lock, flags); dio48egpio 181 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 214 drivers/gpio/gpio-104-dio-48e.c port_state = inb(dio48egpio->base + ports[i]); dio48egpio 225 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 231 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock_irqsave(&dio48egpio->lock, flags); dio48egpio 234 drivers/gpio/gpio-104-dio-48e.c dio48egpio->out_state[port] |= mask; dio48egpio 236 drivers/gpio/gpio-104-dio-48e.c dio48egpio->out_state[port] &= ~mask; dio48egpio 238 drivers/gpio/gpio-104-dio-48e.c outb(dio48egpio->out_state[port], dio48egpio->base + out_port); dio48egpio 240 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock_irqrestore(&dio48egpio->lock, flags); dio48egpio 246 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 266 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock_irqsave(&dio48egpio->lock, flags); dio48egpio 269 drivers/gpio/gpio-104-dio-48e.c dio48egpio->out_state[port] &= ~mask[BIT_WORD(i)]; dio48egpio 270 drivers/gpio/gpio-104-dio-48e.c dio48egpio->out_state[port] |= bitmask; dio48egpio 271 drivers/gpio/gpio-104-dio-48e.c outb(dio48egpio->out_state[port], dio48egpio->base + out_port); dio48egpio 273 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock_irqrestore(&dio48egpio->lock, flags); dio48egpio 288 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 296 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock_irqsave(&dio48egpio->lock, flags); dio48egpio 299 drivers/gpio/gpio-104-dio-48e.c dio48egpio->irq_mask &= ~BIT(0); dio48egpio 301 drivers/gpio/gpio-104-dio-48e.c dio48egpio->irq_mask &= ~BIT(1); dio48egpio 303 drivers/gpio/gpio-104-dio-48e.c if (!dio48egpio->irq_mask) dio48egpio 305 drivers/gpio/gpio-104-dio-48e.c inb(dio48egpio->base + 0xB); dio48egpio 307 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock_irqrestore(&dio48egpio->lock, flags); dio48egpio 313 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = gpiochip_get_data(chip); dio48egpio 321 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock_irqsave(&dio48egpio->lock, flags); dio48egpio 323 drivers/gpio/gpio-104-dio-48e.c if (!dio48egpio->irq_mask) { dio48egpio 325 drivers/gpio/gpio-104-dio-48e.c outb(0x00, dio48egpio->base + 0xF); dio48egpio 326 drivers/gpio/gpio-104-dio-48e.c outb(0x00, dio48egpio->base + 0xB); dio48egpio 330 drivers/gpio/gpio-104-dio-48e.c dio48egpio->irq_mask |= BIT(0); dio48egpio 332 drivers/gpio/gpio-104-dio-48e.c dio48egpio->irq_mask |= BIT(1); dio48egpio 334 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock_irqrestore(&dio48egpio->lock, flags); dio48egpio 361 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *const dio48egpio = dev_id; dio48egpio 362 drivers/gpio/gpio-104-dio-48e.c struct gpio_chip *const chip = &dio48egpio->chip; dio48egpio 363 drivers/gpio/gpio-104-dio-48e.c const unsigned long irq_mask = dio48egpio->irq_mask; dio48egpio 370 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock(&dio48egpio->lock); dio48egpio 372 drivers/gpio/gpio-104-dio-48e.c outb(0x00, dio48egpio->base + 0xF); dio48egpio 374 drivers/gpio/gpio-104-dio-48e.c raw_spin_unlock(&dio48egpio->lock); dio48egpio 401 drivers/gpio/gpio-104-dio-48e.c struct dio48e_gpio *dio48egpio; dio48egpio 405 drivers/gpio/gpio-104-dio-48e.c dio48egpio = devm_kzalloc(dev, sizeof(*dio48egpio), GFP_KERNEL); dio48egpio 406 drivers/gpio/gpio-104-dio-48e.c if (!dio48egpio) dio48egpio 415 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.label = name; dio48egpio 416 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.parent = dev; dio48egpio 417 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.owner = THIS_MODULE; dio48egpio 418 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.base = -1; dio48egpio 419 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.ngpio = DIO48E_NGPIO; dio48egpio 420 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.names = dio48e_names; dio48egpio 421 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.get_direction = dio48e_gpio_get_direction; dio48egpio 422 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.direction_input = dio48e_gpio_direction_input; dio48egpio 423 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.direction_output = dio48e_gpio_direction_output; dio48egpio 424 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.get = dio48e_gpio_get; dio48egpio 425 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.get_multiple = dio48e_gpio_get_multiple; dio48egpio 426 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.set = dio48e_gpio_set; dio48egpio 427 drivers/gpio/gpio-104-dio-48e.c dio48egpio->chip.set_multiple = dio48e_gpio_set_multiple; dio48egpio 428 drivers/gpio/gpio-104-dio-48e.c dio48egpio->base = base[id]; dio48egpio 430 drivers/gpio/gpio-104-dio-48e.c raw_spin_lock_init(&dio48egpio->lock); dio48egpio 432 drivers/gpio/gpio-104-dio-48e.c err = devm_gpiochip_add_data(dev, &dio48egpio->chip, dio48egpio); dio48egpio 453 drivers/gpio/gpio-104-dio-48e.c err = gpiochip_irqchip_add(&dio48egpio->chip, &dio48e_irqchip, 0, dio48egpio 461 drivers/gpio/gpio-104-dio-48e.c dio48egpio);