forked from Minki/linux
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: Kefeng Wang <wangkefeng.wang@huawei.com> Signed-off-by: Hanjun Guo <hanjun.guo@linaro.org> Reviewed-by: Ma Jun <majun258@huawei.com> Tested-by: Ming Lei <ming.lei@canonical.com> Tested-by: Wei Xu <xuwei5@hisilicon.com> Cc: Thomas Gleixner <tglx@linutronix.de> Signed-off-by: Marc Zyngier <marc.zyngier@arm.com>
This commit is contained in:
parent
2911c6d961
commit
76e1f77f9c
@ -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;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user