Home
last modified time | relevance | path

Searched refs:fwspec (Results 1 – 25 of 51) sorted by relevance

123

/drivers/acpi/
Dirq.c54 struct irq_fwspec fwspec; in acpi_register_gsi() local
61 fwspec.fwnode = acpi_gsi_domain_id; in acpi_register_gsi()
62 fwspec.param[0] = gsi; in acpi_register_gsi()
63 fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity); in acpi_register_gsi()
64 fwspec.param_count = 2; in acpi_register_gsi()
66 return irq_create_fwspec_mapping(&fwspec); in acpi_register_gsi()
128 struct irq_fwspec *fwspec; member
154 ctx->fwspec->fwnode = fwnode; in acpi_irq_parse_one_match()
155 ctx->fwspec->param[0] = hwirq; in acpi_irq_parse_one_match()
156 ctx->fwspec->param[1] = acpi_dev_get_irq_type(triggering, polarity); in acpi_irq_parse_one_match()
[all …]
/drivers/irqchip/
Dirq-crossbar.c77 struct irq_fwspec fwspec; in allocate_gic_irq() local
96 fwspec.fwnode = domain->parent->fwnode; in allocate_gic_irq()
97 fwspec.param_count = 3; in allocate_gic_irq()
98 fwspec.param[0] = 0; /* SPI */ in allocate_gic_irq()
99 fwspec.param[1] = i; in allocate_gic_irq()
100 fwspec.param[2] = IRQ_TYPE_LEVEL_HIGH; in allocate_gic_irq()
102 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in allocate_gic_irq()
114 struct irq_fwspec *fwspec = data; in crossbar_domain_alloc() local
118 if (fwspec->param_count != 3) in crossbar_domain_alloc()
120 if (fwspec->param[0] != 0) in crossbar_domain_alloc()
[all …]
Dirq-ixp4xx.c130 struct irq_fwspec *fwspec, in ixp4xx_irq_domain_translate() argument
135 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in ixp4xx_irq_domain_translate()
136 *hwirq = fwspec->param[0]; in ixp4xx_irq_domain_translate()
137 *type = fwspec->param[1]; in ixp4xx_irq_domain_translate()
141 if (is_fwnode_irqchip(fwspec->fwnode)) { in ixp4xx_irq_domain_translate()
142 if (fwspec->param_count != 2) in ixp4xx_irq_domain_translate()
144 *hwirq = fwspec->param[0]; in ixp4xx_irq_domain_translate()
145 *type = fwspec->param[1]; in ixp4xx_irq_domain_translate()
160 struct irq_fwspec *fwspec = data; in ixp4xx_irq_domain_alloc() local
164 ret = ixp4xx_irq_domain_translate(d, fwspec, &hwirq, &type); in ixp4xx_irq_domain_alloc()
[all …]
Dirq-ti-sci-intr.c67 struct irq_fwspec *fwspec, in ti_sci_intr_irq_domain_translate() argument
73 if (fwspec->param_count != 2) in ti_sci_intr_irq_domain_translate()
76 *hwirq = TO_HWIRQ(fwspec->param[0], fwspec->param[1]); in ti_sci_intr_irq_domain_translate()
119 struct irq_fwspec fwspec; in ti_sci_intr_alloc_gic_irq() local
131 fwspec.fwnode = domain->parent->fwnode; in ti_sci_intr_alloc_gic_irq()
132 fwspec.param_count = 3; in ti_sci_intr_alloc_gic_irq()
133 fwspec.param[0] = 0; /* SPI */ in ti_sci_intr_alloc_gic_irq()
134 fwspec.param[1] = dst_irq - 32; /* SPI offset */ in ti_sci_intr_alloc_gic_irq()
135 fwspec.param[2] = intr->type; in ti_sci_intr_alloc_gic_irq()
137 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in ti_sci_intr_alloc_gic_irq()
[all …]
Dirq-sni-exiu.c120 struct irq_fwspec *fwspec, in exiu_domain_translate() argument
126 if (is_of_node(fwspec->fwnode)) { in exiu_domain_translate()
127 if (fwspec->param_count != 3) in exiu_domain_translate()
130 if (fwspec->param[0] != GIC_SPI) in exiu_domain_translate()
133 *hwirq = fwspec->param[1] - info->spi_base; in exiu_domain_translate()
134 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in exiu_domain_translate()
136 if (fwspec->param_count != 2) in exiu_domain_translate()
138 *hwirq = fwspec->param[0]; in exiu_domain_translate()
139 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in exiu_domain_translate()
147 struct irq_fwspec *fwspec = data; in exiu_domain_alloc() local
[all …]
Dirq-meson-gpio.c261 struct irq_fwspec *fwspec, in meson_gpio_irq_domain_translate() argument
265 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in meson_gpio_irq_domain_translate()
266 *hwirq = fwspec->param[0]; in meson_gpio_irq_domain_translate()
267 *type = fwspec->param[1]; in meson_gpio_irq_domain_translate()
279 struct irq_fwspec fwspec; in meson_gpio_irq_allocate_gic_irq() local
281 fwspec.fwnode = domain->parent->fwnode; in meson_gpio_irq_allocate_gic_irq()
282 fwspec.param_count = 3; in meson_gpio_irq_allocate_gic_irq()
283 fwspec.param[0] = 0; /* SPI */ in meson_gpio_irq_allocate_gic_irq()
284 fwspec.param[1] = hwirq; in meson_gpio_irq_allocate_gic_irq()
285 fwspec.param[2] = meson_gpio_irq_type_output(type); in meson_gpio_irq_allocate_gic_irq()
[all …]
Dirq-vf610-mscm-ir.c129 struct irq_fwspec *fwspec = arg; in vf610_mscm_ir_domain_alloc() local
135 if (fwspec->param_count != 2) in vf610_mscm_ir_domain_alloc()
138 hwirq = fwspec->param[0]; in vf610_mscm_ir_domain_alloc()
148 parent_fwspec.param[0] = fwspec->param[0]; in vf610_mscm_ir_domain_alloc()
152 parent_fwspec.param[1] = fwspec->param[0]; in vf610_mscm_ir_domain_alloc()
153 parent_fwspec.param[2] = fwspec->param[1]; in vf610_mscm_ir_domain_alloc()
161 struct irq_fwspec *fwspec, in vf610_mscm_ir_domain_translate() argument
165 if (WARN_ON(fwspec->param_count < 2)) in vf610_mscm_ir_domain_translate()
167 *hwirq = fwspec->param[0]; in vf610_mscm_ir_domain_translate()
168 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in vf610_mscm_ir_domain_translate()
Dirq-mtk-cirq.c104 struct irq_fwspec *fwspec, in mtk_cirq_domain_translate() argument
108 if (is_of_node(fwspec->fwnode)) { in mtk_cirq_domain_translate()
109 if (fwspec->param_count != 3) in mtk_cirq_domain_translate()
113 if (fwspec->param[0] != 0) in mtk_cirq_domain_translate()
117 if (fwspec->param[1] < cirq_data->ext_irq_start || in mtk_cirq_domain_translate()
118 fwspec->param[1] > cirq_data->ext_irq_end) in mtk_cirq_domain_translate()
121 *hwirq = fwspec->param[1] - cirq_data->ext_irq_start; in mtk_cirq_domain_translate()
122 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_cirq_domain_translate()
135 struct irq_fwspec *fwspec = arg; in mtk_cirq_domain_alloc() local
136 struct irq_fwspec parent_fwspec = *fwspec; in mtk_cirq_domain_alloc()
[all …]
Dirq-mtk-sysirq.c71 struct irq_fwspec *fwspec, in mtk_sysirq_domain_translate() argument
75 if (is_of_node(fwspec->fwnode)) { in mtk_sysirq_domain_translate()
76 if (fwspec->param_count != 3) in mtk_sysirq_domain_translate()
80 if (fwspec->param[0] != 0) in mtk_sysirq_domain_translate()
83 *hwirq = fwspec->param[1]; in mtk_sysirq_domain_translate()
84 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_sysirq_domain_translate()
96 struct irq_fwspec *fwspec = arg; in mtk_sysirq_domain_alloc() local
97 struct irq_fwspec gic_fwspec = *fwspec; in mtk_sysirq_domain_alloc()
99 if (fwspec->param_count != 3) in mtk_sysirq_domain_alloc()
103 if (fwspec->param[0]) in mtk_sysirq_domain_alloc()
[all …]
Dirq-mbigen.c169 struct irq_fwspec *fwspec, in mbigen_domain_translate() argument
173 if (is_of_node(fwspec->fwnode) || is_acpi_device_node(fwspec->fwnode)) { in mbigen_domain_translate()
174 if (fwspec->param_count != 2) in mbigen_domain_translate()
177 if ((fwspec->param[0] > MAXIMUM_IRQ_PIN_NUM) || in mbigen_domain_translate()
178 (fwspec->param[0] < RESERVED_IRQ_PER_MBIGEN_CHIP)) in mbigen_domain_translate()
181 *hwirq = fwspec->param[0]; in mbigen_domain_translate()
184 if ((fwspec->param[1] == IRQ_TYPE_EDGE_RISING) || in mbigen_domain_translate()
185 (fwspec->param[1] == IRQ_TYPE_LEVEL_HIGH)) in mbigen_domain_translate()
186 *type = fwspec->param[1]; in mbigen_domain_translate()
200 struct irq_fwspec *fwspec = args; in mbigen_irq_domain_alloc() local
[all …]
Dirq-mvebu-icu.c151 mvebu_icu_irq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in mvebu_icu_irq_domain_translate() argument
159 if (WARN_ON(fwspec->param_count != param_count)) { in mvebu_icu_irq_domain_translate()
161 fwspec->param_count); in mvebu_icu_irq_domain_translate()
166 *hwirq = fwspec->param[1]; in mvebu_icu_irq_domain_translate()
167 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_irq_domain_translate()
168 if (fwspec->param[0] != ICU_GRP_NSR) { in mvebu_icu_irq_domain_translate()
170 fwspec->param[0]); in mvebu_icu_irq_domain_translate()
174 *hwirq = fwspec->param[0]; in mvebu_icu_irq_domain_translate()
175 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_irq_domain_translate()
201 struct irq_fwspec *fwspec = args; in mvebu_icu_irq_domain_alloc() local
[all …]
Dirq-tegra.c216 struct irq_fwspec *fwspec, in tegra_ictlr_domain_translate() argument
220 if (is_of_node(fwspec->fwnode)) { in tegra_ictlr_domain_translate()
221 if (fwspec->param_count != 3) in tegra_ictlr_domain_translate()
225 if (fwspec->param[0] != 0) in tegra_ictlr_domain_translate()
228 *hwirq = fwspec->param[1]; in tegra_ictlr_domain_translate()
229 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in tegra_ictlr_domain_translate()
240 struct irq_fwspec *fwspec = data; in tegra_ictlr_domain_alloc() local
246 if (fwspec->param_count != 3) in tegra_ictlr_domain_alloc()
248 if (fwspec->param[0] != GIC_SPI) in tegra_ictlr_domain_alloc()
251 hwirq = fwspec->param[1]; in tegra_ictlr_domain_alloc()
[all …]
Dirq-mvebu-sei.c171 struct irq_fwspec *fwspec = arg; in mvebu_sei_domain_alloc() local
174 irq_domain_set_hwirq_and_chip(domain, virq, fwspec->param[0], in mvebu_sei_domain_alloc()
198 struct irq_fwspec *fwspec, in mvebu_sei_ap_translate() argument
202 *hwirq = fwspec->param[0]; in mvebu_sei_ap_translate()
212 struct irq_fwspec fwspec; in mvebu_sei_ap_alloc() local
219 fwspec.fwnode = domain->parent->fwnode; in mvebu_sei_ap_alloc()
220 fwspec.param_count = 1; in mvebu_sei_ap_alloc()
221 fwspec.param[0] = hwirq + sei->caps->ap_range.first; in mvebu_sei_ap_alloc()
223 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in mvebu_sei_ap_alloc()
253 struct irq_fwspec fwspec; in mvebu_sei_cp_domain_alloc() local
[all …]
Dirq-imx-gpcv2.c141 struct irq_fwspec *fwspec, in imx_gpcv2_domain_translate() argument
145 if (is_of_node(fwspec->fwnode)) { in imx_gpcv2_domain_translate()
146 if (fwspec->param_count != 3) in imx_gpcv2_domain_translate()
150 if (fwspec->param[0] != 0) in imx_gpcv2_domain_translate()
153 *hwirq = fwspec->param[1]; in imx_gpcv2_domain_translate()
154 *type = fwspec->param[2]; in imx_gpcv2_domain_translate()
165 struct irq_fwspec *fwspec = data; in imx_gpcv2_domain_alloc() local
172 err = imx_gpcv2_domain_translate(domain, fwspec, &hwirq, &type); in imx_gpcv2_domain_alloc()
184 parent_fwspec = *fwspec; in imx_gpcv2_domain_alloc()
Dirq-mvebu-odmi.c82 struct irq_fwspec fwspec; in odmi_irq_domain_alloc() local
100 fwspec.fwnode = domain->parent->fwnode; in odmi_irq_domain_alloc()
101 fwspec.param_count = 3; in odmi_irq_domain_alloc()
102 fwspec.param[0] = GIC_SPI; in odmi_irq_domain_alloc()
103 fwspec.param[1] = odmi->spi_base - 32 + odmin; in odmi_irq_domain_alloc()
104 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in odmi_irq_domain_alloc()
106 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in odmi_irq_domain_alloc()
Dirq-nvic.c49 struct irq_fwspec *fwspec, in nvic_irq_domain_translate() argument
52 if (WARN_ON(fwspec->param_count < 1)) in nvic_irq_domain_translate()
54 *hwirq = fwspec->param[0]; in nvic_irq_domain_translate()
65 struct irq_fwspec *fwspec = arg; in nvic_irq_domain_alloc() local
67 ret = nvic_irq_domain_translate(domain, fwspec, &hwirq, &type); in nvic_irq_domain_alloc()
Dirq-mvebu-gicp.c84 struct irq_fwspec fwspec; in gicp_irq_domain_alloc() local
97 fwspec.fwnode = domain->parent->fwnode; in gicp_irq_domain_alloc()
98 fwspec.param_count = 3; in gicp_irq_domain_alloc()
99 fwspec.param[0] = GIC_SPI; in gicp_irq_domain_alloc()
100 fwspec.param[1] = gicp_idx_to_spi(gicp, hwirq) - 32; in gicp_irq_domain_alloc()
105 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in gicp_irq_domain_alloc()
107 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in gicp_irq_domain_alloc()
Dirq-alpine-msi.c122 struct irq_fwspec fwspec; in alpine_msix_gic_domain_alloc() local
129 fwspec.fwnode = domain->parent->fwnode; in alpine_msix_gic_domain_alloc()
130 fwspec.param_count = 3; in alpine_msix_gic_domain_alloc()
131 fwspec.param[0] = 0; in alpine_msix_gic_domain_alloc()
132 fwspec.param[1] = sgi; in alpine_msix_gic_domain_alloc()
133 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in alpine_msix_gic_domain_alloc()
135 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in alpine_msix_gic_domain_alloc()
Dqcom-pdc.c296 static int qcom_pdc_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in qcom_pdc_translate() argument
299 if (is_of_node(fwspec->fwnode)) { in qcom_pdc_translate()
300 if (fwspec->param_count != 2) in qcom_pdc_translate()
303 *hwirq = fwspec->param[0]; in qcom_pdc_translate()
304 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in qcom_pdc_translate()
314 struct irq_fwspec *fwspec = data; in qcom_pdc_alloc() local
320 ret = qcom_pdc_translate(domain, fwspec, &hwirq, &type); in qcom_pdc_alloc()
358 struct irq_fwspec *fwspec = data; in qcom_pdc_gpio_alloc() local
364 ret = qcom_pdc_translate(domain, fwspec, &hwirq, &type); in qcom_pdc_gpio_alloc()
397 struct irq_fwspec *fwspec, in qcom_pdc_gpio_domain_select() argument
Dirq-gic-v3.c1280 struct irq_fwspec *fwspec, in gic_irq_domain_translate() argument
1284 if (is_of_node(fwspec->fwnode)) { in gic_irq_domain_translate()
1285 if (fwspec->param_count < 3) in gic_irq_domain_translate()
1288 switch (fwspec->param[0]) { in gic_irq_domain_translate()
1290 *hwirq = fwspec->param[1] + 32; in gic_irq_domain_translate()
1293 *hwirq = fwspec->param[1] + 16; in gic_irq_domain_translate()
1296 *hwirq = fwspec->param[1] + ESPI_BASE_INTID; in gic_irq_domain_translate()
1299 *hwirq = fwspec->param[1] + EPPI_BASE_INTID; in gic_irq_domain_translate()
1302 *hwirq = fwspec->param[1]; in gic_irq_domain_translate()
1305 *hwirq = fwspec->param[1]; in gic_irq_domain_translate()
[all …]
Dirq-gic-v2m.c138 struct irq_fwspec fwspec; in gicv2m_irq_gic_domain_alloc() local
143 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc()
144 fwspec.param_count = 3; in gicv2m_irq_gic_domain_alloc()
145 fwspec.param[0] = 0; in gicv2m_irq_gic_domain_alloc()
146 fwspec.param[1] = hwirq - 32; in gicv2m_irq_gic_domain_alloc()
147 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in gicv2m_irq_gic_domain_alloc()
149 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc()
150 fwspec.param_count = 2; in gicv2m_irq_gic_domain_alloc()
151 fwspec.param[0] = hwirq; in gicv2m_irq_gic_domain_alloc()
152 fwspec.param[1] = IRQ_TYPE_EDGE_RISING; in gicv2m_irq_gic_domain_alloc()
[all …]
Dirq-renesas-rza1.c106 struct irq_fwspec *fwspec = arg; in rza1_irqc_alloc() local
107 unsigned int hwirq = fwspec->param[0]; in rza1_irqc_alloc()
126 struct irq_fwspec *fwspec, unsigned long *hwirq, in rza1_irqc_translate() argument
129 if (fwspec->param_count != 2 || fwspec->param[0] >= IRQC_NUM_IRQ) in rza1_irqc_translate()
132 *hwirq = fwspec->param[0]; in rza1_irqc_translate()
133 *type = fwspec->param[1]; in rza1_irqc_translate()
/drivers/iommu/
Dqcom_iommu.c77 static struct qcom_iommu_dev * to_iommu(struct iommu_fwspec *fwspec) in to_iommu() argument
79 if (!fwspec || fwspec->ops != &qcom_iommu_ops) in to_iommu()
81 return fwspec->iommu_priv; in to_iommu()
84 static struct qcom_iommu_ctx * to_ctx(struct iommu_fwspec *fwspec, unsigned asid) in to_ctx() argument
86 struct qcom_iommu_dev *qcom_iommu = to_iommu(fwspec); in to_ctx()
118 struct iommu_fwspec *fwspec = cookie; in qcom_iommu_tlb_sync() local
121 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_sync()
122 struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]); in qcom_iommu_tlb_sync()
136 struct iommu_fwspec *fwspec = cookie; in qcom_iommu_tlb_inv_context() local
139 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_inv_context()
[all …]
Dmtk_iommu_v1.c203 struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); in mtk_iommu_config() local
206 for (i = 0; i < fwspec->num_ids; ++i) { in mtk_iommu_config()
207 larbid = mt2701_m4u_to_larb(fwspec->ids[i]); in mtk_iommu_config()
208 portid = mt2701_m4u_to_port(fwspec->ids[i]); in mtk_iommu_config()
368 struct iommu_fwspec *fwspec = dev_iommu_fwspec_get(dev); in mtk_iommu_create_mapping() local
381 if (!fwspec) { in mtk_iommu_create_mapping()
385 fwspec = dev_iommu_fwspec_get(dev); in mtk_iommu_create_mapping()
390 if (!fwspec->iommu_priv) { in mtk_iommu_create_mapping()
396 fwspec->iommu_priv = platform_get_drvdata(m4updev); in mtk_iommu_create_mapping()
403 data = fwspec->iommu_priv; in mtk_iommu_create_mapping()
[all …]
/drivers/gpio/
Dgpio-xgene-sb.c116 struct irq_fwspec fwspec; in xgene_gpio_sb_to_irq() local
122 fwspec.fwnode = gc->parent->fwnode; in xgene_gpio_sb_to_irq()
123 fwspec.param_count = 2; in xgene_gpio_sb_to_irq()
124 fwspec.param[0] = GPIO_TO_HWIRQ(priv, gpio); in xgene_gpio_sb_to_irq()
125 fwspec.param[1] = IRQ_TYPE_NONE; in xgene_gpio_sb_to_irq()
126 return irq_create_fwspec_mapping(&fwspec); in xgene_gpio_sb_to_irq()
162 struct irq_fwspec *fwspec, in xgene_gpio_sb_domain_translate() argument
168 if ((fwspec->param_count != 2) || in xgene_gpio_sb_domain_translate()
169 (fwspec->param[0] >= priv->nirq)) in xgene_gpio_sb_domain_translate()
171 *hwirq = fwspec->param[0]; in xgene_gpio_sb_domain_translate()
[all …]

123