Lines Matching refs:mt6397

63 	struct mt6397_chip *mt6397 = irq_data_get_irq_chip_data(data);  in mt6397_irq_lock()  local
65 mutex_lock(&mt6397->irqlock); in mt6397_irq_lock()
70 struct mt6397_chip *mt6397 = irq_data_get_irq_chip_data(data); in mt6397_irq_sync_unlock() local
72 regmap_write(mt6397->regmap, MT6397_INT_CON0, mt6397->irq_masks_cur[0]); in mt6397_irq_sync_unlock()
73 regmap_write(mt6397->regmap, MT6397_INT_CON1, mt6397->irq_masks_cur[1]); in mt6397_irq_sync_unlock()
75 mutex_unlock(&mt6397->irqlock); in mt6397_irq_sync_unlock()
80 struct mt6397_chip *mt6397 = irq_data_get_irq_chip_data(data); in mt6397_irq_disable() local
84 mt6397->irq_masks_cur[reg] &= ~BIT(shift); in mt6397_irq_disable()
89 struct mt6397_chip *mt6397 = irq_data_get_irq_chip_data(data); in mt6397_irq_enable() local
93 mt6397->irq_masks_cur[reg] |= BIT(shift); in mt6397_irq_enable()
99 struct mt6397_chip *mt6397 = irq_data_get_irq_chip_data(irq_data); in mt6397_irq_set_wake() local
104 mt6397->wake_mask[reg] |= BIT(shift); in mt6397_irq_set_wake()
106 mt6397->wake_mask[reg] &= ~BIT(shift); in mt6397_irq_set_wake()
123 static void mt6397_irq_handle_reg(struct mt6397_chip *mt6397, int reg, in mt6397_irq_handle_reg() argument
129 ret = regmap_read(mt6397->regmap, reg, &status); in mt6397_irq_handle_reg()
131 dev_err(mt6397->dev, "Failed to read irq status: %d\n", ret); in mt6397_irq_handle_reg()
137 irq = irq_find_mapping(mt6397->irq_domain, irqbase + i); in mt6397_irq_handle_reg()
143 regmap_write(mt6397->regmap, reg, status); in mt6397_irq_handle_reg()
148 struct mt6397_chip *mt6397 = data; in mt6397_irq_thread() local
150 mt6397_irq_handle_reg(mt6397, MT6397_INT_STATUS0, 0); in mt6397_irq_thread()
151 mt6397_irq_handle_reg(mt6397, MT6397_INT_STATUS1, 16); in mt6397_irq_thread()
159 struct mt6397_chip *mt6397 = d->host_data; in mt6397_irq_domain_map() local
161 irq_set_chip_data(irq, mt6397); in mt6397_irq_domain_map()
173 static int mt6397_irq_init(struct mt6397_chip *mt6397) in mt6397_irq_init() argument
177 mutex_init(&mt6397->irqlock); in mt6397_irq_init()
180 regmap_write(mt6397->regmap, MT6397_INT_CON0, 0x0); in mt6397_irq_init()
181 regmap_write(mt6397->regmap, MT6397_INT_CON1, 0x0); in mt6397_irq_init()
183 mt6397->irq_domain = irq_domain_add_linear(mt6397->dev->of_node, in mt6397_irq_init()
184 MT6397_IRQ_NR, &mt6397_irq_domain_ops, mt6397); in mt6397_irq_init()
185 if (!mt6397->irq_domain) { in mt6397_irq_init()
186 dev_err(mt6397->dev, "could not create irq domain\n"); in mt6397_irq_init()
190 ret = devm_request_threaded_irq(mt6397->dev, mt6397->irq, NULL, in mt6397_irq_init()
191 mt6397_irq_thread, IRQF_ONESHOT, "mt6397-pmic", mt6397); in mt6397_irq_init()
193 dev_err(mt6397->dev, "failed to register irq=%d; err: %d\n", in mt6397_irq_init()
194 mt6397->irq, ret); in mt6397_irq_init()
233 struct mt6397_chip *mt6397; in mt6397_probe() local
235 mt6397 = devm_kzalloc(&pdev->dev, sizeof(*mt6397), GFP_KERNEL); in mt6397_probe()
236 if (!mt6397) in mt6397_probe()
239 mt6397->dev = &pdev->dev; in mt6397_probe()
244 mt6397->regmap = dev_get_regmap(pdev->dev.parent, NULL); in mt6397_probe()
245 if (!mt6397->regmap) in mt6397_probe()
248 platform_set_drvdata(pdev, mt6397); in mt6397_probe()
250 mt6397->irq = platform_get_irq(pdev, 0); in mt6397_probe()
251 if (mt6397->irq > 0) { in mt6397_probe()
252 ret = mt6397_irq_init(mt6397); in mt6397_probe()