Lines Matching refs:pmic_eic
70 struct sprd_pmic_eic *pmic_eic = gpiochip_get_data(chip);
73 regmap_update_bits(pmic_eic->map, pmic_eic->offset + reg,
80 struct sprd_pmic_eic *pmic_eic = gpiochip_get_data(chip);
84 ret = regmap_read(pmic_eic->map, pmic_eic->offset + reg, &value);
124 struct sprd_pmic_eic *pmic_eic = gpiochip_get_data(chip);
129 ret = regmap_read(pmic_eic->map, pmic_eic->offset + reg, &value);
135 return regmap_write(pmic_eic->map, pmic_eic->offset + reg, value);
153 struct sprd_pmic_eic *pmic_eic = gpiochip_get_data(chip);
155 pmic_eic->reg[REG_IE] = 0;
156 pmic_eic->reg[REG_TRIG] = 0;
162 struct sprd_pmic_eic *pmic_eic = gpiochip_get_data(chip);
164 pmic_eic->reg[REG_IE] = 1;
165 pmic_eic->reg[REG_TRIG] = 1;
172 struct sprd_pmic_eic *pmic_eic = gpiochip_get_data(chip);
176 pmic_eic->reg[REG_IEV] = 1;
179 pmic_eic->reg[REG_IEV] = 0;
199 struct sprd_pmic_eic *pmic_eic = gpiochip_get_data(chip);
201 mutex_lock(&pmic_eic->buslock);
207 struct sprd_pmic_eic *pmic_eic = gpiochip_get_data(chip);
221 pmic_eic->reg[REG_IEV]);
226 pmic_eic->reg[REG_IE]);
229 pmic_eic->reg[REG_TRIG]);
231 mutex_unlock(&pmic_eic->buslock);
265 struct sprd_pmic_eic *pmic_eic = data;
266 struct gpio_chip *chip = &pmic_eic->chip;
271 ret = regmap_read(pmic_eic->map, pmic_eic->offset + SPRD_PMIC_EIC_MIS,
298 struct sprd_pmic_eic *pmic_eic;
301 pmic_eic = devm_kzalloc(&pdev->dev, sizeof(*pmic_eic), GFP_KERNEL);
302 if (!pmic_eic)
305 mutex_init(&pmic_eic->buslock);
307 pmic_eic->irq = platform_get_irq(pdev, 0);
308 if (pmic_eic->irq < 0)
309 return pmic_eic->irq;
311 pmic_eic->map = dev_get_regmap(pdev->dev.parent, NULL);
312 if (!pmic_eic->map)
315 ret = of_property_read_u32(pdev->dev.of_node, "reg", &pmic_eic->offset);
321 ret = devm_request_threaded_irq(&pdev->dev, pmic_eic->irq, NULL,
324 dev_name(&pdev->dev), pmic_eic);
330 pmic_eic->chip.label = dev_name(&pdev->dev);
331 pmic_eic->chip.ngpio = SPRD_PMIC_EIC_NR;
332 pmic_eic->chip.base = -1;
333 pmic_eic->chip.parent = &pdev->dev;
334 pmic_eic->chip.of_node = pdev->dev.of_node;
335 pmic_eic->chip.direction_input = sprd_pmic_eic_direction_input;
336 pmic_eic->chip.request = sprd_pmic_eic_request;
337 pmic_eic->chip.free = sprd_pmic_eic_free;
338 pmic_eic->chip.set_config = sprd_pmic_eic_set_config;
339 pmic_eic->chip.set = sprd_pmic_eic_set;
340 pmic_eic->chip.get = sprd_pmic_eic_get;
341 pmic_eic->chip.can_sleep = true;
343 pmic_eic->intc.name = dev_name(&pdev->dev);
344 pmic_eic->intc.irq_mask = sprd_pmic_eic_irq_mask;
345 pmic_eic->intc.irq_unmask = sprd_pmic_eic_irq_unmask;
346 pmic_eic->intc.irq_set_type = sprd_pmic_eic_irq_set_type;
347 pmic_eic->intc.irq_bus_lock = sprd_pmic_eic_bus_lock;
348 pmic_eic->intc.irq_bus_sync_unlock = sprd_pmic_eic_bus_sync_unlock;
349 pmic_eic->intc.flags = IRQCHIP_SKIP_SET_WAKE;
351 irq = &pmic_eic->chip.irq;
352 irq->chip = &pmic_eic->intc;
355 ret = devm_gpiochip_add_data(&pdev->dev, &pmic_eic->chip, pmic_eic);
361 platform_set_drvdata(pdev, pmic_eic);