Lines Matching +full:pdc +full:- +full:ranges
1 // SPDX-License-Identifier: GPL-2.0
3 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
36 /* Notable PDC versions */
45 #define pin_to_hwirq(r, p) ((r)->parent_base + (p) - (r)->pin_base)
88 __pdc_enable_intr(d->hwirq, on); in pdc_enable_intr()
106 * active low interrupts to be handled at GIC, PDC has an inverter that inverts
128 * qcom_pdc_gic_set_type: Configure PDC for the interrupt
133 * If @type is edge triggered, forward that as Rising edge as PDC
135 * If @type is level, then forward that as level high as PDC
165 return -EINVAL; in qcom_pdc_gic_set_type()
168 old_pdc_type = pdc_reg_read(IRQ_i_CFG, d->hwirq); in qcom_pdc_gic_set_type()
170 pdc_reg_write(IRQ_i_CFG, d->hwirq, pdc_type); in qcom_pdc_gic_set_type()
177 * When we change types the PDC can give a phantom interrupt. in qcom_pdc_gic_set_type()
192 .name = "PDC",
247 return irq_domain_disconnect_hierarchy(domain->parent, virq); in qcom_pdc_alloc()
255 parent_fwspec.fwnode = domain->parent->fwnode; in qcom_pdc_alloc()
275 n = of_property_count_elems_of_size(np, "qcom,pdc-ranges", sizeof(u32)); in pdc_setup_pin_mapping()
277 return -EINVAL; in pdc_setup_pin_mapping()
283 return -ENOMEM; in pdc_setup_pin_mapping()
287 ret = of_property_read_u32_index(np, "qcom,pdc-ranges", in pdc_setup_pin_mapping()
292 ret = of_property_read_u32_index(np, "qcom,pdc-ranges", in pdc_setup_pin_mapping()
297 ret = of_property_read_u32_index(np, "qcom,pdc-ranges", in pdc_setup_pin_mapping()
319 /* compat with old sm8150 DT which had very small region for PDC */ in qcom_pdc_init()
321 return -EINVAL; in qcom_pdc_init()
329 pr_err("%pOF: unable to map PDC registers\n", node); in qcom_pdc_init()
330 return -ENXIO; in qcom_pdc_init()
337 pr_err("%pOF: unable to find PDC's parent domain\n", node); in qcom_pdc_init()
338 ret = -ENXIO; in qcom_pdc_init()
344 pr_err("%pOF: failed to init PDC pin-hwirq mapping\n", node); in qcom_pdc_init()
354 pr_err("%pOF: PDC domain add failed\n", node); in qcom_pdc_init()
355 ret = -ENOMEM; in qcom_pdc_init()
370 IRQCHIP_MATCH("qcom,pdc", qcom_pdc_init)