Commit 76e1f77f authored by Kefeng Wang's avatar Kefeng Wang Committed by Marc Zyngier

irqchip/mbigen: Introduce mbigen_of_create_domain()

Introduce mbigen_of_create_domain() to consolidate OF related
code and prepare for ACPI later, no funtional change.
Signed-off-by: default avatarKefeng Wang <wangkefeng.wang@huawei.com>
Signed-off-by: default avatarHanjun Guo <hanjun.guo@linaro.org>
Reviewed-by: default avatarMa Jun <majun258@huawei.com>
Tested-by: default avatarMing Lei <ming.lei@canonical.com>
Tested-by: default avatarWei Xu <xuwei5@hisilicon.com>
Cc: Thomas Gleixner <tglx@linutronix.de>
Signed-off-by: default avatarMarc Zyngier <marc.zyngier@arm.com>
parent 2911c6d9
......@@ -236,27 +236,15 @@ static struct irq_domain_ops mbigen_domain_ops = {
.free = irq_domain_free_irqs_common,
};
static int mbigen_device_probe(struct platform_device *pdev)
static int mbigen_of_create_domain(struct platform_device *pdev,
struct mbigen_device *mgn_chip)
{
struct mbigen_device *mgn_chip;
struct device *parent;
struct platform_device *child;
struct irq_domain *domain;
struct device_node *np;
struct device *parent;
struct resource *res;
u32 num_pins;
mgn_chip = devm_kzalloc(&pdev->dev, sizeof(*mgn_chip), GFP_KERNEL);
if (!mgn_chip)
return -ENOMEM;
mgn_chip->pdev = pdev;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
mgn_chip->base = devm_ioremap_resource(&pdev->dev, res);
if (IS_ERR(mgn_chip->base))
return PTR_ERR(mgn_chip->base);
for_each_child_of_node(pdev->dev.of_node, np) {
if (!of_property_read_bool(np, "interrupt-controller"))
continue;
......@@ -280,6 +268,31 @@ static int mbigen_device_probe(struct platform_device *pdev)
return -ENOMEM;
}
return 0;
}
static int mbigen_device_probe(struct platform_device *pdev)
{
struct mbigen_device *mgn_chip;
struct resource *res;
int err;
mgn_chip = devm_kzalloc(&pdev->dev, sizeof(*mgn_chip), GFP_KERNEL);
if (!mgn_chip)
return -ENOMEM;
mgn_chip->pdev = pdev;
res = platform_get_resource(pdev, IORESOURCE_MEM, 0);
mgn_chip->base = devm_ioremap(&pdev->dev, res->start,
resource_size(res));
if (IS_ERR(mgn_chip->base))
return PTR_ERR(mgn_chip->base);
err = mbigen_of_create_domain(pdev, mgn_chip);
if (err)
return err;
platform_set_drvdata(pdev, mgn_chip);
return 0;
}
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment