Home
last modified time | relevance | path

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

12

/Linux-v4.19/drivers/acpi/
Dirq.c57 struct irq_fwspec fwspec; in acpi_register_gsi() local
64 fwspec.fwnode = acpi_gsi_domain_id; in acpi_register_gsi()
65 fwspec.param[0] = gsi; in acpi_register_gsi()
66 fwspec.param[1] = acpi_dev_get_irq_type(trigger, polarity); in acpi_register_gsi()
67 fwspec.param_count = 2; in acpi_register_gsi()
69 return irq_create_fwspec_mapping(&fwspec); in acpi_register_gsi()
131 struct irq_fwspec *fwspec; member
157 ctx->fwspec->fwnode = fwnode; in acpi_irq_parse_one_match()
158 ctx->fwspec->param[0] = hwirq; in acpi_irq_parse_one_match()
159 ctx->fwspec->param[1] = acpi_dev_get_irq_type(triggering, polarity); in acpi_irq_parse_one_match()
[all …]
/Linux-v4.19/drivers/irqchip/
Dirq-crossbar.c81 struct irq_fwspec fwspec; in allocate_gic_irq() local
100 fwspec.fwnode = domain->parent->fwnode; in allocate_gic_irq()
101 fwspec.param_count = 3; in allocate_gic_irq()
102 fwspec.param[0] = 0; /* SPI */ in allocate_gic_irq()
103 fwspec.param[1] = i; in allocate_gic_irq()
104 fwspec.param[2] = IRQ_TYPE_LEVEL_HIGH; in allocate_gic_irq()
106 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in allocate_gic_irq()
118 struct irq_fwspec *fwspec = data; in crossbar_domain_alloc() local
122 if (fwspec->param_count != 3) in crossbar_domain_alloc()
124 if (fwspec->param[0] != 0) in crossbar_domain_alloc()
[all …]
Dirq-sni-exiu.c122 struct irq_fwspec *fwspec, in exiu_domain_translate() argument
128 if (is_of_node(fwspec->fwnode)) { in exiu_domain_translate()
129 if (fwspec->param_count != 3) in exiu_domain_translate()
132 if (fwspec->param[0] != GIC_SPI) in exiu_domain_translate()
135 *hwirq = fwspec->param[1] - info->spi_base; in exiu_domain_translate()
136 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in exiu_domain_translate()
145 struct irq_fwspec *fwspec = data; in exiu_domain_alloc() local
150 if (fwspec->param_count != 3) in exiu_domain_alloc()
152 if (fwspec->param[0] != GIC_SPI) in exiu_domain_alloc()
156 hwirq = fwspec->param[1] - info->spi_base; in exiu_domain_alloc()
[all …]
Dirq-meson-gpio.c248 struct irq_fwspec *fwspec, in meson_gpio_irq_domain_translate() argument
252 if (is_of_node(fwspec->fwnode) && fwspec->param_count == 2) { in meson_gpio_irq_domain_translate()
253 *hwirq = fwspec->param[0]; in meson_gpio_irq_domain_translate()
254 *type = fwspec->param[1]; in meson_gpio_irq_domain_translate()
266 struct irq_fwspec fwspec; in meson_gpio_irq_allocate_gic_irq() local
268 fwspec.fwnode = domain->parent->fwnode; in meson_gpio_irq_allocate_gic_irq()
269 fwspec.param_count = 3; in meson_gpio_irq_allocate_gic_irq()
270 fwspec.param[0] = 0; /* SPI */ in meson_gpio_irq_allocate_gic_irq()
271 fwspec.param[1] = hwirq; in meson_gpio_irq_allocate_gic_irq()
272 fwspec.param[2] = meson_gpio_irq_type_output(type); in meson_gpio_irq_allocate_gic_irq()
[all …]
Dirq-vf610-mscm-ir.c133 struct irq_fwspec *fwspec = arg; in vf610_mscm_ir_domain_alloc() local
139 if (fwspec->param_count != 2) in vf610_mscm_ir_domain_alloc()
142 hwirq = fwspec->param[0]; in vf610_mscm_ir_domain_alloc()
152 parent_fwspec.param[0] = fwspec->param[0]; in vf610_mscm_ir_domain_alloc()
156 parent_fwspec.param[1] = fwspec->param[0]; in vf610_mscm_ir_domain_alloc()
157 parent_fwspec.param[2] = fwspec->param[1]; in vf610_mscm_ir_domain_alloc()
165 struct irq_fwspec *fwspec, in vf610_mscm_ir_domain_translate() argument
169 if (WARN_ON(fwspec->param_count < 2)) in vf610_mscm_ir_domain_translate()
171 *hwirq = fwspec->param[0]; in vf610_mscm_ir_domain_translate()
172 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in vf610_mscm_ir_domain_translate()
Dirq-mtk-cirq.c112 struct irq_fwspec *fwspec, in mtk_cirq_domain_translate() argument
116 if (is_of_node(fwspec->fwnode)) { in mtk_cirq_domain_translate()
117 if (fwspec->param_count != 3) in mtk_cirq_domain_translate()
121 if (fwspec->param[0] != 0) in mtk_cirq_domain_translate()
125 if (fwspec->param[1] < cirq_data->ext_irq_start || in mtk_cirq_domain_translate()
126 fwspec->param[1] > cirq_data->ext_irq_end) in mtk_cirq_domain_translate()
129 *hwirq = fwspec->param[1] - cirq_data->ext_irq_start; in mtk_cirq_domain_translate()
130 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_cirq_domain_translate()
143 struct irq_fwspec *fwspec = arg; in mtk_cirq_domain_alloc() local
144 struct irq_fwspec parent_fwspec = *fwspec; in mtk_cirq_domain_alloc()
[all …]
Dirq-mtk-sysirq.c79 struct irq_fwspec *fwspec, in mtk_sysirq_domain_translate() argument
83 if (is_of_node(fwspec->fwnode)) { in mtk_sysirq_domain_translate()
84 if (fwspec->param_count != 3) in mtk_sysirq_domain_translate()
88 if (fwspec->param[0] != 0) in mtk_sysirq_domain_translate()
91 *hwirq = fwspec->param[1]; in mtk_sysirq_domain_translate()
92 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mtk_sysirq_domain_translate()
104 struct irq_fwspec *fwspec = arg; in mtk_sysirq_domain_alloc() local
105 struct irq_fwspec gic_fwspec = *fwspec; in mtk_sysirq_domain_alloc()
107 if (fwspec->param_count != 3) in mtk_sysirq_domain_alloc()
111 if (fwspec->param[0]) in mtk_sysirq_domain_alloc()
[all …]
Dirq-mbigen.c177 struct irq_fwspec *fwspec, in mbigen_domain_translate() argument
181 if (is_of_node(fwspec->fwnode) || is_acpi_device_node(fwspec->fwnode)) { in mbigen_domain_translate()
182 if (fwspec->param_count != 2) in mbigen_domain_translate()
185 if ((fwspec->param[0] > MAXIMUM_IRQ_PIN_NUM) || in mbigen_domain_translate()
186 (fwspec->param[0] < RESERVED_IRQ_PER_MBIGEN_CHIP)) in mbigen_domain_translate()
189 *hwirq = fwspec->param[0]; in mbigen_domain_translate()
192 if ((fwspec->param[1] == IRQ_TYPE_EDGE_RISING) || in mbigen_domain_translate()
193 (fwspec->param[1] == IRQ_TYPE_LEVEL_HIGH)) in mbigen_domain_translate()
194 *type = fwspec->param[1]; in mbigen_domain_translate()
208 struct irq_fwspec *fwspec = args; in mbigen_irq_domain_alloc() local
[all …]
Dirq-tegra.c225 struct irq_fwspec *fwspec, in tegra_ictlr_domain_translate() argument
229 if (is_of_node(fwspec->fwnode)) { in tegra_ictlr_domain_translate()
230 if (fwspec->param_count != 3) in tegra_ictlr_domain_translate()
234 if (fwspec->param[0] != 0) in tegra_ictlr_domain_translate()
237 *hwirq = fwspec->param[1]; in tegra_ictlr_domain_translate()
238 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in tegra_ictlr_domain_translate()
249 struct irq_fwspec *fwspec = data; in tegra_ictlr_domain_alloc() local
255 if (fwspec->param_count != 3) in tegra_ictlr_domain_alloc()
257 if (fwspec->param[0] != GIC_SPI) in tegra_ictlr_domain_alloc()
260 hwirq = fwspec->param[1]; in tegra_ictlr_domain_alloc()
[all …]
Dirq-imx-gpcv2.c140 struct irq_fwspec *fwspec, in imx_gpcv2_domain_translate() argument
144 if (is_of_node(fwspec->fwnode)) { in imx_gpcv2_domain_translate()
145 if (fwspec->param_count != 3) in imx_gpcv2_domain_translate()
149 if (fwspec->param[0] != 0) in imx_gpcv2_domain_translate()
152 *hwirq = fwspec->param[1]; in imx_gpcv2_domain_translate()
153 *type = fwspec->param[2]; in imx_gpcv2_domain_translate()
164 struct irq_fwspec *fwspec = data; in imx_gpcv2_domain_alloc() local
171 err = imx_gpcv2_domain_translate(domain, fwspec, &hwirq, &type); in imx_gpcv2_domain_alloc()
183 parent_fwspec = *fwspec; in imx_gpcv2_domain_alloc()
Dirq-mvebu-icu.c105 mvebu_icu_irq_domain_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in mvebu_icu_irq_domain_translate() argument
112 if (WARN_ON(fwspec->param_count < 3)) { in mvebu_icu_irq_domain_translate()
114 fwspec->param_count); in mvebu_icu_irq_domain_translate()
119 icu_group = fwspec->param[0]; in mvebu_icu_irq_domain_translate()
126 *hwirq = fwspec->param[1]; in mvebu_icu_irq_domain_translate()
133 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in mvebu_icu_irq_domain_translate()
144 struct irq_fwspec *fwspec = args; in mvebu_icu_irq_domain_alloc() local
152 err = mvebu_icu_irq_domain_translate(domain, fwspec, &hwirq, in mvebu_icu_irq_domain_alloc()
159 icu_irqd->icu_group = fwspec->param[0]; in mvebu_icu_irq_domain_alloc()
Dirq-nvic.c52 struct irq_fwspec *fwspec, in nvic_irq_domain_translate() argument
55 if (WARN_ON(fwspec->param_count < 1)) in nvic_irq_domain_translate()
57 *hwirq = fwspec->param[0]; in nvic_irq_domain_translate()
68 struct irq_fwspec *fwspec = arg; in nvic_irq_domain_alloc() local
70 ret = nvic_irq_domain_translate(domain, fwspec, &hwirq, &type); in nvic_irq_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-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()
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()
Dqcom-pdc.c175 static int qcom_pdc_translate(struct irq_domain *d, struct irq_fwspec *fwspec, in qcom_pdc_translate() argument
178 if (is_of_node(fwspec->fwnode)) { in qcom_pdc_translate()
179 if (fwspec->param_count != 2) in qcom_pdc_translate()
182 *hwirq = fwspec->param[0]; in qcom_pdc_translate()
183 *type = fwspec->param[1] & IRQ_TYPE_SENSE_MASK; in qcom_pdc_translate()
193 struct irq_fwspec *fwspec = data; in qcom_pdc_alloc() local
199 ret = qcom_pdc_translate(domain, fwspec, &hwirq, &type); in qcom_pdc_alloc()
Dirq-gic-v2m.c129 struct irq_fwspec fwspec; in gicv2m_irq_gic_domain_alloc() local
134 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc()
135 fwspec.param_count = 3; in gicv2m_irq_gic_domain_alloc()
136 fwspec.param[0] = 0; in gicv2m_irq_gic_domain_alloc()
137 fwspec.param[1] = hwirq - 32; in gicv2m_irq_gic_domain_alloc()
138 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in gicv2m_irq_gic_domain_alloc()
140 fwspec.fwnode = domain->parent->fwnode; in gicv2m_irq_gic_domain_alloc()
141 fwspec.param_count = 2; in gicv2m_irq_gic_domain_alloc()
142 fwspec.param[0] = hwirq; in gicv2m_irq_gic_domain_alloc()
143 fwspec.param[1] = IRQ_TYPE_EDGE_RISING; in gicv2m_irq_gic_domain_alloc()
[all …]
Dirq-gic-v3.c932 struct irq_fwspec *fwspec, in gic_irq_domain_translate() argument
936 if (is_of_node(fwspec->fwnode)) { in gic_irq_domain_translate()
937 if (fwspec->param_count < 3) in gic_irq_domain_translate()
940 switch (fwspec->param[0]) { in gic_irq_domain_translate()
942 *hwirq = fwspec->param[1] + 32; in gic_irq_domain_translate()
946 *hwirq = fwspec->param[1] + 16; in gic_irq_domain_translate()
949 *hwirq = fwspec->param[1]; in gic_irq_domain_translate()
955 *type = fwspec->param[2] & IRQ_TYPE_SENSE_MASK; in gic_irq_domain_translate()
962 fwspec->param[0] != GIC_IRQ_TYPE_PARTITION); in gic_irq_domain_translate()
966 if (is_fwnode_irqchip(fwspec->fwnode)) { in gic_irq_domain_translate()
[all …]
Dirq-gic-v3-mbi.c45 struct irq_fwspec fwspec; in mbi_irq_gic_domain_alloc() local
61 fwspec.fwnode = domain->parent->fwnode; in mbi_irq_gic_domain_alloc()
62 fwspec.param_count = 3; in mbi_irq_gic_domain_alloc()
63 fwspec.param[0] = 0; in mbi_irq_gic_domain_alloc()
64 fwspec.param[1] = hwirq - 32; in mbi_irq_gic_domain_alloc()
65 fwspec.param[2] = IRQ_TYPE_EDGE_RISING; in mbi_irq_gic_domain_alloc()
67 err = irq_domain_alloc_irqs_parent(domain, virq, 1, &fwspec); in mbi_irq_gic_domain_alloc()
/Linux-v4.19/drivers/gpio/
Dgpio-xgene-sb.c127 struct irq_fwspec fwspec; in xgene_gpio_sb_to_irq() local
133 fwspec.fwnode = gc->parent->fwnode; in xgene_gpio_sb_to_irq()
134 fwspec.param_count = 2; in xgene_gpio_sb_to_irq()
135 fwspec.param[0] = GPIO_TO_HWIRQ(priv, gpio); in xgene_gpio_sb_to_irq()
136 fwspec.param[1] = IRQ_TYPE_NONE; in xgene_gpio_sb_to_irq()
137 return irq_create_fwspec_mapping(&fwspec); in xgene_gpio_sb_to_irq()
173 struct irq_fwspec *fwspec, in xgene_gpio_sb_domain_translate() argument
179 if ((fwspec->param_count != 2) || in xgene_gpio_sb_domain_translate()
180 (fwspec->param[0] >= priv->nirq)) in xgene_gpio_sb_domain_translate()
182 *hwirq = fwspec->param[0]; in xgene_gpio_sb_domain_translate()
[all …]
/Linux-v4.19/arch/arm/mach-imx/
Dgpc.c180 struct irq_fwspec *fwspec, in imx_gpc_domain_translate() argument
184 if (is_of_node(fwspec->fwnode)) { in imx_gpc_domain_translate()
185 if (fwspec->param_count != 3) in imx_gpc_domain_translate()
189 if (fwspec->param[0] != 0) in imx_gpc_domain_translate()
192 *hwirq = fwspec->param[1]; in imx_gpc_domain_translate()
193 *type = fwspec->param[2]; in imx_gpc_domain_translate()
204 struct irq_fwspec *fwspec = data; in imx_gpc_domain_alloc() local
209 if (fwspec->param_count != 3) in imx_gpc_domain_alloc()
211 if (fwspec->param[0] != 0) in imx_gpc_domain_alloc()
214 hwirq = fwspec->param[1]; in imx_gpc_domain_alloc()
[all …]
/Linux-v4.19/drivers/iommu/
Dqcom_iommu.c87 static struct qcom_iommu_dev * to_iommu(struct iommu_fwspec *fwspec) in to_iommu() argument
89 if (!fwspec || fwspec->ops != &qcom_iommu_ops) in to_iommu()
91 return fwspec->iommu_priv; in to_iommu()
94 static struct qcom_iommu_ctx * to_ctx(struct iommu_fwspec *fwspec, unsigned asid) in to_ctx() argument
96 struct qcom_iommu_dev *qcom_iommu = to_iommu(fwspec); in to_ctx()
128 struct iommu_fwspec *fwspec = cookie; in qcom_iommu_tlb_sync() local
131 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_sync()
132 struct qcom_iommu_ctx *ctx = to_ctx(fwspec, fwspec->ids[i]); in qcom_iommu_tlb_sync()
146 struct iommu_fwspec *fwspec = cookie; in qcom_iommu_tlb_inv_context() local
149 for (i = 0; i < fwspec->num_ids; i++) { in qcom_iommu_tlb_inv_context()
[all …]
/Linux-v4.19/arch/arm/mach-exynos/
Dsuspend.c126 struct irq_fwspec *fwspec, in exynos_pmu_domain_translate() argument
130 if (is_of_node(fwspec->fwnode)) { in exynos_pmu_domain_translate()
131 if (fwspec->param_count != 3) in exynos_pmu_domain_translate()
135 if (fwspec->param[0] != 0) in exynos_pmu_domain_translate()
138 *hwirq = fwspec->param[1]; in exynos_pmu_domain_translate()
139 *type = fwspec->param[2]; in exynos_pmu_domain_translate()
150 struct irq_fwspec *fwspec = data; in exynos_pmu_domain_alloc() local
155 if (fwspec->param_count != 3) in exynos_pmu_domain_alloc()
157 if (fwspec->param[0] != 0) in exynos_pmu_domain_alloc()
160 hwirq = fwspec->param[1]; in exynos_pmu_domain_alloc()
[all …]
/Linux-v4.19/arch/arm/mach-omap2/
Domap-wakeupgen.c457 struct irq_fwspec *fwspec, in wakeupgen_domain_translate() argument
461 if (is_of_node(fwspec->fwnode)) { in wakeupgen_domain_translate()
462 if (fwspec->param_count != 3) in wakeupgen_domain_translate()
466 if (fwspec->param[0] != 0) in wakeupgen_domain_translate()
469 *hwirq = fwspec->param[1]; in wakeupgen_domain_translate()
470 *type = fwspec->param[2]; in wakeupgen_domain_translate()
481 struct irq_fwspec *fwspec = data; in wakeupgen_domain_alloc() local
486 if (fwspec->param_count != 3) in wakeupgen_domain_alloc()
488 if (fwspec->param[0] != 0) in wakeupgen_domain_alloc()
491 hwirq = fwspec->param[1]; in wakeupgen_domain_alloc()
[all …]
/Linux-v4.19/kernel/irq/
Dirqdomain.c382 struct irq_domain *irq_find_matching_fwspec(struct irq_fwspec *fwspec, in irq_find_matching_fwspec() argument
386 struct fwnode_handle *fwnode = fwspec->fwnode; in irq_find_matching_fwspec()
400 if (h->ops->select && fwspec->param_count) in irq_find_matching_fwspec()
401 rc = h->ops->select(h, fwspec, bus_token); in irq_find_matching_fwspec()
715 struct irq_fwspec *fwspec, in irq_domain_translate() argument
720 return d->ops->translate(d, fwspec, hwirq, type); in irq_domain_translate()
723 return d->ops->xlate(d, to_of_node(fwspec->fwnode), in irq_domain_translate()
724 fwspec->param, fwspec->param_count, in irq_domain_translate()
728 *hwirq = fwspec->param[0]; in irq_domain_translate()
733 struct irq_fwspec *fwspec) in of_phandle_args_to_fwspec() argument
[all …]

12