• Home
  • Raw
  • Download

Lines Matching +full:uniphier +full:- +full:pro4 +full:- +full:aidet

2  * Driver for UniPhier AIDET (ARM Interrupt Detector)
45 spin_lock_irqsave(&priv->lock, flags); in uniphier_aidet_reg_update()
46 tmp = readl_relaxed(priv->reg_base + reg); in uniphier_aidet_reg_update()
49 writel_relaxed(tmp, priv->reg_base + reg); in uniphier_aidet_reg_update()
50 spin_unlock_irqrestore(&priv->lock, flags); in uniphier_aidet_reg_update()
67 struct uniphier_aidet_priv *priv = data->chip_data; in uniphier_aidet_irq_set_type()
85 return -EINVAL; in uniphier_aidet_irq_set_type()
88 uniphier_aidet_detconf_update(priv, data->hwirq, val); in uniphier_aidet_irq_set_type()
94 .name = "AIDET",
107 if (WARN_ON(fwspec->param_count < 2)) in uniphier_aidet_domain_translate()
108 return -EINVAL; in uniphier_aidet_domain_translate()
110 *out_hwirq = fwspec->param[0]; in uniphier_aidet_domain_translate()
111 *out_type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in uniphier_aidet_domain_translate()
126 return -EINVAL; in uniphier_aidet_domain_alloc()
143 return -EINVAL; in uniphier_aidet_domain_alloc()
147 return -ENXIO; in uniphier_aidet_domain_alloc()
151 domain->host_data); in uniphier_aidet_domain_alloc()
156 parent_fwspec.fwnode = domain->parent->fwnode; in uniphier_aidet_domain_alloc()
173 struct device *dev = &pdev->dev; in uniphier_aidet_probe()
179 parent_np = of_irq_find_parent(dev->of_node); in uniphier_aidet_probe()
181 return -ENXIO; in uniphier_aidet_probe()
186 return -EPROBE_DEFER; in uniphier_aidet_probe()
190 return -ENOMEM; in uniphier_aidet_probe()
193 priv->reg_base = devm_ioremap_resource(dev, res); in uniphier_aidet_probe()
194 if (IS_ERR(priv->reg_base)) in uniphier_aidet_probe()
195 return PTR_ERR(priv->reg_base); in uniphier_aidet_probe()
197 spin_lock_init(&priv->lock); in uniphier_aidet_probe()
199 priv->domain = irq_domain_create_hierarchy( in uniphier_aidet_probe()
202 of_node_to_fwnode(dev->of_node), in uniphier_aidet_probe()
204 if (!priv->domain) in uniphier_aidet_probe()
205 return -ENOMEM; in uniphier_aidet_probe()
217 for (i = 0; i < ARRAY_SIZE(priv->saved_vals); i++) in uniphier_aidet_suspend()
218 priv->saved_vals[i] = readl_relaxed( in uniphier_aidet_suspend()
219 priv->reg_base + UNIPHIER_AIDET_DETCONF + i * 4); in uniphier_aidet_suspend()
229 for (i = 0; i < ARRAY_SIZE(priv->saved_vals); i++) in uniphier_aidet_resume()
230 writel_relaxed(priv->saved_vals[i], in uniphier_aidet_resume()
231 priv->reg_base + UNIPHIER_AIDET_DETCONF + i * 4); in uniphier_aidet_resume()
242 { .compatible = "socionext,uniphier-ld4-aidet" },
243 { .compatible = "socionext,uniphier-pro4-aidet" },
244 { .compatible = "socionext,uniphier-sld8-aidet" },
245 { .compatible = "socionext,uniphier-pro5-aidet" },
246 { .compatible = "socionext,uniphier-pxs2-aidet" },
247 { .compatible = "socionext,uniphier-ld11-aidet" },
248 { .compatible = "socionext,uniphier-ld20-aidet" },
249 { .compatible = "socionext,uniphier-pxs3-aidet" },
256 .name = "uniphier-aidet",