qcom-pdc.c (c95baf12f5077419db01313ab61c2aac007d40cd) qcom-pdc.c (95bf9305d2e38b6d47eb91abfdc7472f05e0f5bd)
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
4 */
5
6#include <linux/err.h>
7#include <linux/init.h>
8#include <linux/interrupt.h>
9#include <linux/irq.h>
10#include <linux/irqchip.h>
11#include <linux/irqdomain.h>
12#include <linux/io.h>
13#include <linux/kernel.h>
1// SPDX-License-Identifier: GPL-2.0
2/*
3 * Copyright (c) 2017-2019, The Linux Foundation. All rights reserved.
4 */
5
6#include <linux/err.h>
7#include <linux/init.h>
8#include <linux/interrupt.h>
9#include <linux/irq.h>
10#include <linux/irqchip.h>
11#include <linux/irqdomain.h>
12#include <linux/io.h>
13#include <linux/kernel.h>
14#include <linux/module.h>
14#include <linux/of.h>
15#include <linux/of_address.h>
16#include <linux/of_device.h>
15#include <linux/of.h>
16#include <linux/of_address.h>
17#include <linux/of_device.h>
18#include <linux/of_irq.h>
17#include <linux/soc/qcom/irq.h>
18#include <linux/spinlock.h>
19#include <linux/slab.h>
20#include <linux/types.h>
21
22#define PDC_MAX_IRQS 168
23#define PDC_MAX_GPIO_IRQS 256
24

--- 400 unchanged lines hidden (view full) ---

425remove:
426 irq_domain_remove(pdc_domain);
427fail:
428 kfree(pdc_region);
429 iounmap(pdc_base);
430 return ret;
431}
432
19#include <linux/soc/qcom/irq.h>
20#include <linux/spinlock.h>
21#include <linux/slab.h>
22#include <linux/types.h>
23
24#define PDC_MAX_IRQS 168
25#define PDC_MAX_GPIO_IRQS 256
26

--- 400 unchanged lines hidden (view full) ---

427remove:
428 irq_domain_remove(pdc_domain);
429fail:
430 kfree(pdc_region);
431 iounmap(pdc_base);
432 return ret;
433}
434
433IRQCHIP_DECLARE(qcom_pdc, "qcom,pdc", qcom_pdc_init);
435static int qcom_pdc_probe(struct platform_device *pdev)
436{
437 struct device_node *np = pdev->dev.of_node;
438 struct device_node *parent = of_irq_find_parent(np);
439
440 return qcom_pdc_init(np, parent);
441}
442
443static const struct of_device_id qcom_pdc_match_table[] = {
444 { .compatible = "qcom,pdc" },
445 {}
446};
447MODULE_DEVICE_TABLE(of, qcom_pdc_match_table);
448
449static struct platform_driver qcom_pdc_driver = {
450 .probe = qcom_pdc_probe,
451 .driver = {
452 .name = "qcom-pdc",
453 .of_match_table = qcom_pdc_match_table,
454 .suppress_bind_attrs = true,
455 },
456};
457module_platform_driver(qcom_pdc_driver);
458MODULE_DESCRIPTION("Qualcomm Technologies, Inc. Power Domain Controller");
459MODULE_LICENSE("GPL v2");