Lines Matching refs:dio48egpio

125 static void dio48e_regmap_lock(void *lock_arg) __acquires(&dio48egpio->lock)  in dio48e_regmap_lock()
127 struct dio48e_gpio *const dio48egpio = lock_arg; in dio48e_regmap_lock() local
130 raw_spin_lock_irqsave(&dio48egpio->lock, flags); in dio48e_regmap_lock()
131 dio48egpio->flags = flags; in dio48e_regmap_lock()
134 static void dio48e_regmap_unlock(void *lock_arg) __releases(&dio48egpio->lock) in dio48e_regmap_unlock()
136 struct dio48e_gpio *const dio48egpio = lock_arg; in dio48e_regmap_unlock() local
138 raw_spin_unlock_irqrestore(&dio48egpio->lock, dio48egpio->flags); in dio48e_regmap_unlock()
141 static void pit_regmap_lock(void *lock_arg) __acquires(&dio48egpio->lock) in pit_regmap_lock()
143 struct dio48e_gpio *const dio48egpio = lock_arg; in pit_regmap_lock() local
146 raw_spin_lock_irqsave(&dio48egpio->lock, flags); in pit_regmap_lock()
147 dio48egpio->flags = flags; in pit_regmap_lock()
149 iowrite8(0x00, dio48egpio->regs + DIO48E_ENABLE_COUNTER_TIMER_ADDRESSING); in pit_regmap_lock()
152 static void pit_regmap_unlock(void *lock_arg) __releases(&dio48egpio->lock) in pit_regmap_unlock()
154 struct dio48e_gpio *const dio48egpio = lock_arg; in pit_regmap_unlock() local
156 ioread8(dio48egpio->regs + DIO48E_DISABLE_COUNTER_TIMER_ADDRESSING); in pit_regmap_unlock()
158 raw_spin_unlock_irqrestore(&dio48egpio->lock, dio48egpio->flags); in pit_regmap_unlock()
166 struct dio48e_gpio *const dio48egpio = irq_drv_data; in dio48e_handle_mask_sync() local
167 const unsigned int prev_mask = dio48egpio->irq_mask; in dio48e_handle_mask_sync()
176 dio48egpio->irq_mask = mask_buf; in dio48e_handle_mask_sync()
180 err = regmap_write(dio48egpio->map, DIO48E_CLEAR_INTERRUPT, 0x00); in dio48e_handle_mask_sync()
183 return regmap_write(dio48egpio->map, DIO48E_ENABLE_INTERRUPT, 0x00); in dio48e_handle_mask_sync()
188 return regmap_read(dio48egpio->map, DIO48E_DISABLE_INTERRUPT, &val); in dio48e_handle_mask_sync()
232 struct dio48e_gpio *dio48egpio; in dio48e_probe() local
241 dio48egpio = devm_kzalloc(dev, sizeof(*dio48egpio), GFP_KERNEL); in dio48e_probe()
242 if (!dio48egpio) in dio48e_probe()
249 dio48egpio->regs = regs; in dio48e_probe()
251 raw_spin_lock_init(&dio48egpio->lock); in dio48e_probe()
259 .lock_arg = dio48egpio, in dio48e_probe()
273 dio48egpio->map = map; in dio48e_probe()
282 .lock_arg = dio48egpio, in dio48e_probe()
305 chip->irq_drv_data = dio48egpio; in dio48e_probe()