Lines Matching refs:idio24gpio

162 	struct idio_24_gpio *const idio24gpio = irq_drv_data;  in idio_24_handle_mask_sync()  local
166 raw_spin_lock(&idio24gpio->lock); in idio_24_handle_mask_sync()
169 type = (mask_buf == mask_buf_def) ? ~type_mask : idio24gpio->irq_type; in idio_24_handle_mask_sync()
171 ret = regmap_update_bits(idio24gpio->map, IDIO_24_COS_ENABLE, type_mask, type); in idio_24_handle_mask_sync()
173 raw_spin_unlock(&idio24gpio->lock); in idio_24_handle_mask_sync()
186 struct idio_24_gpio *const idio24gpio = irq_drv_data; in idio_24_set_type_config() local
205 raw_spin_lock(&idio24gpio->lock); in idio_24_set_type_config()
208 idio24gpio->irq_type = (idio24gpio->irq_type & ~mask) | (new & mask); in idio_24_set_type_config()
210 ret = regmap_read(idio24gpio->map, IDIO_24_COS_ENABLE, &cos_enable); in idio_24_set_type_config()
216 ret = regmap_update_bits(idio24gpio->map, IDIO_24_COS_ENABLE, mask, in idio_24_set_type_config()
217 idio24gpio->irq_type); in idio_24_set_type_config()
223 raw_spin_unlock(&idio24gpio->lock); in idio_24_set_type_config()
295 struct idio_24_gpio *idio24gpio; in idio_24_probe() local
327 idio24gpio = devm_kzalloc(dev, sizeof(*idio24gpio), GFP_KERNEL); in idio_24_probe()
328 if (!idio24gpio) in idio_24_probe()
331 idio24gpio->map = devm_regmap_init_mmio(dev, idio_24_regs, &idio_24_regmap_config); in idio_24_probe()
332 if (IS_ERR(idio24gpio->map)) in idio_24_probe()
333 return dev_err_probe(dev, PTR_ERR(idio24gpio->map), in idio_24_probe()
336 raw_spin_lock_init(&idio24gpio->lock); in idio_24_probe()
339 idio24gpio->irq_type = GENMASK(7, 0); in idio_24_probe()
354 chip->irq_drv_data = idio24gpio; in idio_24_probe()
357 err = regmap_write(idio24gpio->map, IDIO_24_SOFT_RESET, 0); in idio_24_probe()
368 err = devm_regmap_add_irq_chip(dev, idio24gpio->map, pdev->irq, 0, 0, chip, &chip_data); in idio_24_probe()
373 gpio_config.regmap = idio24gpio->map; in idio_24_probe()
382 gpio_config.drvdata = idio24gpio->map; in idio_24_probe()