Lines Matching refs:data
83 struct intmux_data *data = container_of(irqchip_data, struct intmux_data,
89 raw_spin_lock_irqsave(&data->lock, flags);
90 reg = data->regs + CHANIER(idx);
95 raw_spin_unlock_irqrestore(&data->lock, flags);
102 struct intmux_data *data = container_of(irqchip_data, struct intmux_data,
108 raw_spin_lock_irqsave(&data->lock, flags);
109 reg = data->regs + CHANIER(idx);
114 raw_spin_unlock_irqrestore(&data->lock, flags);
126 struct intmux_irqchip_data *data = h->host_data;
128 irq_set_chip_data(irq, data);
140 struct intmux_data *data = container_of(irqchip_data, struct intmux_data,
151 if (WARN_ON(intspec[1] >= data->channum))
182 struct intmux_data *data = container_of(irqchip_data, struct intmux_data,
190 irqstat = readl_relaxed(data->regs + CHANIPR(idx));
202 struct intmux_data *data;
215 data = devm_kzalloc(&pdev->dev, struct_size(data, irqchip_data, channum), GFP_KERNEL);
216 if (!data)
219 data->regs = devm_platform_ioremap_resource(pdev, 0);
220 if (IS_ERR(data->regs)) {
222 return PTR_ERR(data->regs);
225 data->ipg_clk = devm_clk_get(&pdev->dev, "ipg");
226 if (IS_ERR(data->ipg_clk))
227 return dev_err_probe(&pdev->dev, PTR_ERR(data->ipg_clk),
230 data->channum = channum;
231 raw_spin_lock_init(&data->lock);
237 ret = clk_prepare_enable(data->ipg_clk);
244 data->irqchip_data[i].chanidx = i;
246 data->irqchip_data[i].irq = irq_of_parse_and_map(np, i);
247 if (data->irqchip_data[i].irq <= 0) {
254 &data->irqchip_data[i]);
260 data->irqchip_data[i].domain = domain;
264 writel_relaxed(0, data->regs + CHANIER(i));
266 irq_set_chained_handler_and_data(data->irqchip_data[i].irq,
268 &data->irqchip_data[i]);
271 platform_set_drvdata(pdev, data);
281 clk_disable_unprepare(data->ipg_clk);
287 struct intmux_data *data = platform_get_drvdata(pdev);
290 for (i = 0; i < data->channum; i++) {
292 writel_relaxed(0, data->regs + CHANIER(i));
294 irq_set_chained_handler_and_data(data->irqchip_data[i].irq,
297 irq_domain_remove(data->irqchip_data[i].domain);
308 struct intmux_data *data = dev_get_drvdata(dev);
312 for (i = 0; i < data->channum; i++) {
313 irqchip_data = &data->irqchip_data[i];
314 irqchip_data->saved_reg = readl_relaxed(data->regs + CHANIER(i));
317 clk_disable_unprepare(data->ipg_clk);
324 struct intmux_data *data = dev_get_drvdata(dev);
328 ret = clk_prepare_enable(data->ipg_clk);
334 for (i = 0; i < data->channum; i++) {
335 irqchip_data = &data->irqchip_data[i];
336 writel_relaxed(irqchip_data->saved_reg, data->regs + CHANIER(i));