Home
last modified time | relevance | path

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

1234

/linux/drivers/irqchip/
H A 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 …]
H A Dirq-ti-sci-intr.c58 struct irq_fwspec *fwspec, in ti_sci_intr_irq_domain_translate() argument
64 if (fwspec->param_count != 1) in ti_sci_intr_irq_domain_translate()
67 *hwirq = fwspec->param[0]; in ti_sci_intr_irq_domain_translate()
139 struct irq_fwspec fwspec; in ti_sci_intr_alloc_parent_irq() local
152 fwspec.fwnode = of_fwnode_handle(parent_node); in ti_sci_intr_alloc_parent_irq()
156 fwspec.param_count = 3; in ti_sci_intr_alloc_parent_irq()
157 fwspec.param[0] = 0; /* SPI */ in ti_sci_intr_alloc_parent_irq()
158 fwspec.param[1] = p_hwirq - 32; /* SPI offset */ in ti_sci_intr_alloc_parent_irq()
159 fwspec.param[2] = intr->type; in ti_sci_intr_alloc_parent_irq()
162 fwspec.param_count = 1; in ti_sci_intr_alloc_parent_irq()
[all …]
H A Dirq-sni-exiu.c139 struct irq_fwspec *fwspec, in exiu_domain_translate() argument
145 if (is_of_node(fwspec->fwnode)) { in exiu_domain_translate()
146 if (fwspec->param_count != 3) in exiu_domain_translate()
149 if (fwspec->param[0] != GIC_SPI) in exiu_domain_translate()
152 *hwirq = fwspec->param[1] - info->spi_base; in exiu_domain_translate()
153 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in exiu_domain_translate()
155 if (fwspec->param_count != 2) in exiu_domain_translate()
157 *hwirq = fwspec->param[0]; in exiu_domain_translate()
158 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in exiu_domain_translate()
166 struct irq_fwspec *fwspec = data; in exiu_domain_alloc() local
[all …]
H A Dirq-ixp4xx.c129 struct irq_fwspec *fwspec, in ixp4xx_irq_domain_translate() argument
134 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in ixp4xx_irq_domain_translate()
135 *hwirq = fwspec->param[0]; in ixp4xx_irq_domain_translate()
136 *type = fwspec->param[1]; in ixp4xx_irq_domain_translate()
140 if (is_fwnode_irqchip(fwspec->fwnode)) { in ixp4xx_irq_domain_translate()
141 if (fwspec->param_count != 2) in ixp4xx_irq_domain_translate()
143 *hwirq = fwspec->param[0]; in ixp4xx_irq_domain_translate()
144 *type = fwspec->param[1]; in ixp4xx_irq_domain_translate()
159 struct irq_fwspec *fwspec = data; in ixp4xx_irq_domain_alloc() local
163 ret = ixp4xx_irq_domain_translate(d, fwspec, &hwirq, &type); in ixp4xx_irq_domain_alloc()
H A Dirq-mst-intc.c181 struct irq_fwspec *fwspec, in mst_intc_domain_translate() argument
187 if (is_of_node(fwspec->fwnode)) { in mst_intc_domain_translate()
188 if (fwspec->param_count != 3) in mst_intc_domain_translate()
192 if (fwspec->param[0] != 0) in mst_intc_domain_translate()
195 if (fwspec->param[1] >= cd->nr_irqs) in mst_intc_domain_translate()
198 *hwirq = fwspec->param[1]; in mst_intc_domain_translate()
199 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mst_intc_domain_translate()
211 struct irq_fwspec parent_fwspec, *fwspec = data; in mst_intc_domain_alloc() local
215 if (fwspec->param_count != 3) in mst_intc_domain_alloc()
219 if (fwspec->param[0]) in mst_intc_domain_alloc()
[all …]
H A 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()
H A Dirq-mtk-sysirq.c72 struct irq_fwspec *fwspec, in mtk_sysirq_domain_translate() argument
76 if (is_of_node(fwspec->fwnode)) { in mtk_sysirq_domain_translate()
77 if (fwspec->param_count != 3) in mtk_sysirq_domain_translate()
81 if (fwspec->param[0] != 0) in mtk_sysirq_domain_translate()
84 *hwirq = fwspec->param[1]; in mtk_sysirq_domain_translate()
85 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_sysirq_domain_translate()
97 struct irq_fwspec *fwspec = arg; in mtk_sysirq_domain_alloc() local
98 struct irq_fwspec gic_fwspec = *fwspec; in mtk_sysirq_domain_alloc()
100 if (fwspec->param_count != 3) in mtk_sysirq_domain_alloc()
104 if (fwspec->param[0]) in mtk_sysirq_domain_alloc()
[all …]
H A Dirq-mtk-cirq.c145 struct irq_fwspec *fwspec, in mtk_cirq_domain_translate() argument
149 if (is_of_node(fwspec->fwnode)) { in mtk_cirq_domain_translate()
150 if (fwspec->param_count != 3) in mtk_cirq_domain_translate()
154 if (fwspec->param[0] != 0) in mtk_cirq_domain_translate()
158 if (fwspec->param[1] < cirq_data->ext_irq_start || in mtk_cirq_domain_translate()
159 fwspec->param[1] > cirq_data->ext_irq_end) in mtk_cirq_domain_translate()
162 *hwirq = fwspec->param[1] - cirq_data->ext_irq_start; in mtk_cirq_domain_translate()
163 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_cirq_domain_translate()
176 struct irq_fwspec *fwspec = arg; in mtk_cirq_domain_alloc() local
177 struct irq_fwspec parent_fwspec = *fwspec; in mtk_cirq_domain_alloc()
[all …]
H A Dirq-tegra.c220 struct irq_fwspec *fwspec, in tegra_ictlr_domain_translate() argument
224 if (is_of_node(fwspec->fwnode)) { in tegra_ictlr_domain_translate()
225 if (fwspec->param_count != 3) in tegra_ictlr_domain_translate()
229 if (fwspec->param[0] != 0) in tegra_ictlr_domain_translate()
232 *hwirq = fwspec->param[1]; in tegra_ictlr_domain_translate()
233 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in tegra_ictlr_domain_translate()
244 struct irq_fwspec *fwspec = data; in tegra_ictlr_domain_alloc() local
250 if (fwspec->param_count != 3) in tegra_ictlr_domain_alloc()
252 if (fwspec->param[0] != GIC_SPI) in tegra_ictlr_domain_alloc()
255 hwirq = fwspec->param[1]; in tegra_ictlr_domain_alloc()
[all …]
H A Dirq-mbigen.c170 static int mbigen_domain_translate(struct irq_domain *d, 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()
H A Dirq-sun6i-r.c199 struct irq_fwspec *fwspec, in sun6i_r_intc_domain_translate() argument
204 if (fwspec->param_count == 2 && fwspec->param[0] == 0) { in sun6i_r_intc_domain_translate()
206 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in sun6i_r_intc_domain_translate()
211 if (fwspec->param_count < 3) in sun6i_r_intc_domain_translate()
213 if (fwspec->param[0] != GIC_SPI) in sun6i_r_intc_domain_translate()
216 *hwirq = fwspec->param[1]; in sun6i_r_intc_domain_translate()
217 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in sun6i_r_intc_domain_translate()
226 struct irq_fwspec *fwspec = arg; in sun6i_r_intc_domain_alloc() local
232 ret = sun6i_r_intc_domain_translate(domain, fwspec, &hwirq, &type); in sun6i_r_intc_domain_alloc()
H A Dirq-imx-gpcv2.c145 struct irq_fwspec *fwspec, in imx_gpcv2_domain_translate() argument
149 if (is_of_node(fwspec->fwnode)) { in imx_gpcv2_domain_translate()
150 if (fwspec->param_count != 3) in imx_gpcv2_domain_translate()
154 if (fwspec->param[0] != 0) in imx_gpcv2_domain_translate()
157 *hwirq = fwspec->param[1]; in imx_gpcv2_domain_translate()
158 *type = fwspec->param[2]; in imx_gpcv2_domain_translate()
169 struct irq_fwspec *fwspec = data; in imx_gpcv2_domain_alloc() local
176 err = imx_gpcv2_domain_translate(domain, fwspec, &hwirq, &type); in imx_gpcv2_domain_alloc()
188 parent_fwspec = *fwspec; in imx_gpcv2_domain_alloc()
H A Dirq-mvebu-sei.c173 struct irq_fwspec *fwspec = arg; in mvebu_sei_domain_alloc() local
176 irq_domain_set_hwirq_and_chip(domain, virq, fwspec->param[0], in mvebu_sei_domain_alloc()
200 struct irq_fwspec *fwspec, in mvebu_sei_ap_translate() argument
204 *hwirq = fwspec->param[0]; in mvebu_sei_ap_translate()
214 struct irq_fwspec fwspec; in mvebu_sei_ap_alloc() local
221 fwspec.fwnode = domain->parent->fwnode; in mvebu_sei_ap_alloc()
222 fwspec.param_count = 1; in mvebu_sei_ap_alloc()
223 fwspec.param[0] = hwirq + sei->caps->ap_range.first; in mvebu_sei_ap_alloc()
225 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in mvebu_sei_ap_alloc()
255 struct irq_fwspec fwspec; in mvebu_sei_cp_domain_alloc() local
[all …]
H A Dirq-mvebu-odmi.c85 struct irq_fwspec fwspec; in odmi_irq_domain_alloc() local
103 fwspec.fwnode = domain->parent->fwnode; in odmi_irq_domain_alloc()
104 fwspec.param_count = 3; in odmi_irq_domain_alloc()
105 fwspec.param[0] = GIC_SPI; in odmi_irq_domain_alloc()
106 fwspec.param[1] = odmi->spi_base - 32 + odmin; in odmi_irq_domain_alloc()
107 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in odmi_irq_domain_alloc()
109 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in odmi_irq_domain_alloc()
H A Dirq-mvebu-icu.c67 static int mvebu_icu_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in mvebu_icu_translate() argument
76 if (WARN_ON(fwspec->param_count != param_count)) { in mvebu_icu_translate()
78 fwspec->param_count); in mvebu_icu_translate()
83 *hwirq = fwspec->param[1]; in mvebu_icu_translate()
84 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_translate()
85 if (fwspec->param[0] != ICU_GRP_NSR) { in mvebu_icu_translate()
87 fwspec->param[0]); in mvebu_icu_translate()
91 *hwirq = fwspec->param[0]; in mvebu_icu_translate()
92 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_translate()
H A Dirq-alpine-msi.c83 struct irq_fwspec fwspec; in alpine_msix_gic_domain_alloc() local
90 fwspec.fwnode = domain->parent->fwnode; in alpine_msix_gic_domain_alloc()
91 fwspec.param_count = 3; in alpine_msix_gic_domain_alloc()
92 fwspec.param[0] = 0; in alpine_msix_gic_domain_alloc()
93 fwspec.param[1] = sgi; in alpine_msix_gic_domain_alloc()
94 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in alpine_msix_gic_domain_alloc()
96 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in alpine_msix_gic_domain_alloc()
H A Dirq-owl-sirq.c212 struct irq_fwspec *fwspec, in owl_sirq_domain_translate() argument
216 if (!is_of_node(fwspec->fwnode)) in owl_sirq_domain_translate()
219 if (fwspec->param_count != 2 || fwspec->param[0] >= NUM_SIRQ) in owl_sirq_domain_translate()
222 *hwirq = fwspec->param[0]; in owl_sirq_domain_translate()
223 *type = fwspec->param[1]; in owl_sirq_domain_translate()
232 struct irq_fwspec *fwspec = data; in owl_sirq_domain_alloc() local
241 ret = owl_sirq_domain_translate(domain, fwspec, &hwirq, &type); in owl_sirq_domain_alloc()
H A 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()
H A Dirq-mvebu-gicp.c86 struct irq_fwspec fwspec; in gicp_irq_domain_alloc() local
99 fwspec.fwnode = domain->parent->fwnode; in gicp_irq_domain_alloc()
100 fwspec.param_count = 3; in gicp_irq_domain_alloc()
101 fwspec.param[0] = GIC_SPI; in gicp_irq_domain_alloc()
102 fwspec.param[1] = gicp_idx_to_spi(gicp, hwirq) - 32; in gicp_irq_domain_alloc()
107 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in gicp_irq_domain_alloc()
109 ret = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in gicp_irq_domain_alloc()
H A Dirq-gic-v2m.c113 struct irq_fwspec fwspec; in gicv2m_irq_gic_domain_alloc() local
118 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc()
119 fwspec.param_count = 3; in gicv2m_irq_gic_domain_alloc()
120 fwspec.param[0] = 0; in gicv2m_irq_gic_domain_alloc()
121 fwspec.param[1] = hwirq - 32; in gicv2m_irq_gic_domain_alloc()
122 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in gicv2m_irq_gic_domain_alloc()
124 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc()
125 fwspec.param_count = 2; in gicv2m_irq_gic_domain_alloc()
126 fwspec.param[0] = hwirq; in gicv2m_irq_gic_domain_alloc()
127 fwspec.param[1] = IRQ_TYPE_EDGE_RISING; in gicv2m_irq_gic_domain_alloc()
[all …]
/linux/arch/arm/mach-imx/
H A Dgpc.c173 struct irq_fwspec *fwspec, in imx_gpc_domain_translate() argument
177 if (is_of_node(fwspec->fwnode)) { in imx_gpc_domain_translate()
178 if (fwspec->param_count != 3) in imx_gpc_domain_translate()
182 if (fwspec->param[0] != 0) in imx_gpc_domain_translate()
185 *hwirq = fwspec->param[1]; in imx_gpc_domain_translate()
186 *type = fwspec->param[2]; in imx_gpc_domain_translate()
197 struct irq_fwspec *fwspec = data; in imx_gpc_domain_alloc() local
202 if (fwspec->param_count != 3) in imx_gpc_domain_alloc()
204 if (fwspec->param[0] != 0) in imx_gpc_domain_alloc()
207 hwirq = fwspec->param[1]; in imx_gpc_domain_alloc()
[all …]
/linux/drivers/iommu/arm/arm-smmu/
H A Dqcom_iommu.c72 struct iommu_fwspec *fwspec; member
117 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_sync() local
120 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_sync()
121 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_sync()
136 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_context() local
139 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_inv_context()
140 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_inv_context()
151 struct iommu_fwspec *fwspec = qcom_domain->fwspec; in qcom_iommu_tlb_inv_range_nosync() local
156 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_inv_range_nosync()
157 struct qcom_iommu_ctx *ctx = to_ctx(qcom_domain, fwspec->ids[i]); in qcom_iommu_tlb_inv_range_nosync()
[all …]
/linux/include/linux/
H A Dirqdomain.h66 unsigned int count, struct irq_fwspec *fwspec);
102 int (*select)(struct irq_domain *d, struct irq_fwspec *fwspec,
117 int (*translate)(struct irq_domain *d, struct irq_fwspec *fwspec,
119 int (*get_fwspec_info)(struct irq_fwspec *fwspec, struct irq_fwspec_info *info);
348 struct irq_domain *irq_find_matching_fwspec(struct irq_fwspec *fwspec,
367 struct irq_fwspec fwspec = { in irq_find_matching_fwnode() local
371 return irq_find_matching_fwspec(&fwspec, bus_token); in irq_find_matching_fwnode()
461 unsigned int irq_create_fwspec_mapping(struct irq_fwspec *fwspec);
532 int irq_domain_translate_onecell(struct irq_domain *d, struct irq_fwspec *fwspec,
534 int irq_domain_translate_twocell(struct irq_domain *d, struct irq_fwspec *fwspec,
[all …]
/linux/arch/arm/mach-omap2/
H A Domap-wakeupgen.c489 struct irq_fwspec *fwspec, in wakeupgen_domain_translate() argument
493 if (is_of_node(fwspec->fwnode)) { in wakeupgen_domain_translate()
494 if (fwspec->param_count != 3) in wakeupgen_domain_translate()
498 if (fwspec->param[0] != 0) in wakeupgen_domain_translate()
501 *hwirq = fwspec->param[1]; in wakeupgen_domain_translate()
502 *type = fwspec->param[2]; in wakeupgen_domain_translate()
513 struct irq_fwspec *fwspec = data; in wakeupgen_domain_alloc() local
518 if (fwspec->param_count != 3) in wakeupgen_domain_alloc()
520 if (fwspec->param[0] != 0) in wakeupgen_domain_alloc()
523 hwirq = fwspec->param[1]; in wakeupgen_domain_alloc()
[all …]
/linux/arch/arm/mach-exynos/
H A Dsuspend.c137 struct irq_fwspec *fwspec, in exynos_pmu_domain_translate() argument
141 if (is_of_node(fwspec->fwnode)) { in exynos_pmu_domain_translate()
142 if (fwspec->param_count != 3) in exynos_pmu_domain_translate()
146 if (fwspec->param[0] != 0) in exynos_pmu_domain_translate()
149 *hwirq = fwspec->param[1]; in exynos_pmu_domain_translate()
150 *type = fwspec->param[2]; in exynos_pmu_domain_translate()
161 struct irq_fwspec *fwspec = data; in exynos_pmu_domain_alloc() local
166 if (fwspec->param_count != 3) in exynos_pmu_domain_alloc()
168 if (fwspec->param[0] != 0) in exynos_pmu_domain_alloc()
171 hwirq = fwspec->param[1]; in exynos_pmu_domain_alloc()
[all …]

1234