tb10x_gpio 48 drivers/gpio/gpio-tb10x.c static inline u32 tb10x_reg_read(struct tb10x_gpio *gpio, unsigned int offs) tb10x_gpio 53 drivers/gpio/gpio-tb10x.c static inline void tb10x_reg_write(struct tb10x_gpio *gpio, unsigned int offs, tb10x_gpio 59 drivers/gpio/gpio-tb10x.c static inline void tb10x_set_bits(struct tb10x_gpio *gpio, unsigned int offs, tb10x_gpio 77 drivers/gpio/gpio-tb10x.c struct tb10x_gpio *tb10x_gpio = gpiochip_get_data(chip); tb10x_gpio 79 drivers/gpio/gpio-tb10x.c return irq_create_mapping(tb10x_gpio->domain, offset); tb10x_gpio 96 drivers/gpio/gpio-tb10x.c struct tb10x_gpio *tb10x_gpio = data; tb10x_gpio 97 drivers/gpio/gpio-tb10x.c u32 r = tb10x_reg_read(tb10x_gpio, OFFSET_TO_REG_CHANGE); tb10x_gpio 98 drivers/gpio/gpio-tb10x.c u32 m = tb10x_reg_read(tb10x_gpio, OFFSET_TO_REG_INT_EN); tb10x_gpio 103 drivers/gpio/gpio-tb10x.c generic_handle_irq(irq_find_mapping(tb10x_gpio->domain, i)); tb10x_gpio 110 drivers/gpio/gpio-tb10x.c struct tb10x_gpio *tb10x_gpio; tb10x_gpio 122 drivers/gpio/gpio-tb10x.c tb10x_gpio = devm_kzalloc(dev, sizeof(*tb10x_gpio), GFP_KERNEL); tb10x_gpio 123 drivers/gpio/gpio-tb10x.c if (tb10x_gpio == NULL) tb10x_gpio 126 drivers/gpio/gpio-tb10x.c tb10x_gpio->base = devm_platform_ioremap_resource(pdev, 0); tb10x_gpio 127 drivers/gpio/gpio-tb10x.c if (IS_ERR(tb10x_gpio->base)) tb10x_gpio 128 drivers/gpio/gpio-tb10x.c return PTR_ERR(tb10x_gpio->base); tb10x_gpio 130 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.label = tb10x_gpio 132 drivers/gpio/gpio-tb10x.c if (!tb10x_gpio->gc.label) tb10x_gpio 140 drivers/gpio/gpio-tb10x.c ret = bgpio_init(&tb10x_gpio->gc, dev, 4, tb10x_gpio 141 drivers/gpio/gpio-tb10x.c tb10x_gpio->base + OFFSET_TO_REG_DATA, tb10x_gpio 144 drivers/gpio/gpio-tb10x.c tb10x_gpio->base + OFFSET_TO_REG_DDR, tb10x_gpio 151 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.base = -1; tb10x_gpio 152 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.parent = dev; tb10x_gpio 153 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.owner = THIS_MODULE; tb10x_gpio 158 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.ngpio = ngpio; tb10x_gpio 159 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.request = gpiochip_generic_request; tb10x_gpio 160 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.free = gpiochip_generic_free; tb10x_gpio 162 drivers/gpio/gpio-tb10x.c ret = devm_gpiochip_add_data(dev, &tb10x_gpio->gc, tb10x_gpio); tb10x_gpio 168 drivers/gpio/gpio-tb10x.c platform_set_drvdata(pdev, tb10x_gpio); tb10x_gpio 177 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.to_irq = tb10x_gpio_to_irq; tb10x_gpio 178 drivers/gpio/gpio-tb10x.c tb10x_gpio->irq = ret; tb10x_gpio 182 drivers/gpio/gpio-tb10x.c dev_name(dev), tb10x_gpio); tb10x_gpio 186 drivers/gpio/gpio-tb10x.c tb10x_gpio->domain = irq_domain_add_linear(np, tb10x_gpio 187 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.ngpio, tb10x_gpio 189 drivers/gpio/gpio-tb10x.c if (!tb10x_gpio->domain) { tb10x_gpio 193 drivers/gpio/gpio-tb10x.c ret = irq_alloc_domain_generic_chips(tb10x_gpio->domain, tb10x_gpio 194 drivers/gpio/gpio-tb10x.c tb10x_gpio->gc.ngpio, 1, tb10x_gpio->gc.label, tb10x_gpio 200 drivers/gpio/gpio-tb10x.c gc = tb10x_gpio->domain->gc->gc[0]; tb10x_gpio 201 drivers/gpio/gpio-tb10x.c gc->reg_base = tb10x_gpio->base; tb10x_gpio 216 drivers/gpio/gpio-tb10x.c struct tb10x_gpio *tb10x_gpio = platform_get_drvdata(pdev); tb10x_gpio 218 drivers/gpio/gpio-tb10x.c if (tb10x_gpio->gc.to_irq) { tb10x_gpio 219 drivers/gpio/gpio-tb10x.c irq_remove_generic_chip(tb10x_gpio->domain->gc->gc[0], tb10x_gpio 220 drivers/gpio/gpio-tb10x.c BIT(tb10x_gpio->gc.ngpio) - 1, 0, 0); tb10x_gpio 221 drivers/gpio/gpio-tb10x.c kfree(tb10x_gpio->domain->gc); tb10x_gpio 222 drivers/gpio/gpio-tb10x.c irq_domain_remove(tb10x_gpio->domain);