Lines Matching refs:mg
153 struct msic_gpio *mg = irq_data_get_irq_chip_data(data); in msic_irq_type() local
154 u32 gpio = data->irq - mg->irq_base; in msic_irq_type()
156 if (gpio >= mg->chip.ngpio) in msic_irq_type()
160 mg->trig_change_mask |= (1 << gpio); in msic_irq_type()
161 mg->trig_type = type; in msic_irq_type()
168 struct msic_gpio *mg = gpiochip_get_data(chip); in msic_gpio_to_irq() local
169 return mg->irq_base + offset; in msic_gpio_to_irq()
174 struct msic_gpio *mg = irq_data_get_irq_chip_data(data); in msic_bus_lock() local
175 mutex_lock(&mg->buslock); in msic_bus_lock()
180 struct msic_gpio *mg = irq_data_get_irq_chip_data(data); in msic_bus_sync_unlock() local
188 if (mg->trig_change_mask) { in msic_bus_sync_unlock()
189 offset = __ffs(mg->trig_change_mask); in msic_bus_sync_unlock()
195 if (mg->trig_type & IRQ_TYPE_EDGE_RISING) in msic_bus_sync_unlock()
197 if (mg->trig_type & IRQ_TYPE_EDGE_FALLING) in msic_bus_sync_unlock()
201 mg->trig_change_mask = 0; in msic_bus_sync_unlock()
204 mutex_unlock(&mg->buslock); in msic_bus_sync_unlock()
224 struct msic_gpio *mg = irq_data_get_irq_handler_data(data); in msic_gpio_irq_handler() local
226 struct intel_msic *msic = pdev_to_intel_msic(mg->pdev); in msic_gpio_irq_handler()
232 for (i = 0; i < (mg->chip.ngpio / BITS_PER_BYTE); i++) { in msic_gpio_irq_handler()
237 generic_handle_irq(mg->irq_base + i * BITS_PER_BYTE + bitnr); in msic_gpio_irq_handler()
246 struct msic_gpio *mg; in platform_msic_gpio_probe() local
261 mg = kzalloc(sizeof(*mg), GFP_KERNEL); in platform_msic_gpio_probe()
262 if (!mg) in platform_msic_gpio_probe()
265 dev_set_drvdata(dev, mg); in platform_msic_gpio_probe()
267 mg->pdev = pdev; in platform_msic_gpio_probe()
268 mg->irq = irq; in platform_msic_gpio_probe()
269 mg->irq_base = pdata->gpio_base + MSIC_GPIO_IRQ_OFFSET; in platform_msic_gpio_probe()
270 mg->chip.label = "msic_gpio"; in platform_msic_gpio_probe()
271 mg->chip.direction_input = msic_gpio_direction_input; in platform_msic_gpio_probe()
272 mg->chip.direction_output = msic_gpio_direction_output; in platform_msic_gpio_probe()
273 mg->chip.get = msic_gpio_get; in platform_msic_gpio_probe()
274 mg->chip.set = msic_gpio_set; in platform_msic_gpio_probe()
275 mg->chip.to_irq = msic_gpio_to_irq; in platform_msic_gpio_probe()
276 mg->chip.base = pdata->gpio_base; in platform_msic_gpio_probe()
277 mg->chip.ngpio = MSIC_NUM_GPIO; in platform_msic_gpio_probe()
278 mg->chip.can_sleep = true; in platform_msic_gpio_probe()
279 mg->chip.parent = dev; in platform_msic_gpio_probe()
281 mutex_init(&mg->buslock); in platform_msic_gpio_probe()
283 retval = gpiochip_add_data(&mg->chip, mg); in platform_msic_gpio_probe()
289 for (i = 0; i < mg->chip.ngpio; i++) { in platform_msic_gpio_probe()
290 irq_set_chip_data(i + mg->irq_base, mg); in platform_msic_gpio_probe()
291 irq_set_chip_and_handler(i + mg->irq_base, in platform_msic_gpio_probe()
295 irq_set_chained_handler_and_data(mg->irq, msic_gpio_irq_handler, mg); in platform_msic_gpio_probe()
299 kfree(mg); in platform_msic_gpio_probe()