On Mon, Jun 11, 2012 at 04:25:01PM +0100, Lee Jones wrote:
+ if (np) {
+ ab8500->domain = irq_domain_add_linear(
+ np, num_irqs,&ab8500_irq_ops, ab8500);
+ }
+ else {
+ ab8500->domain = irq_domain_add_legacy(
+ NULL, num_irqs, ab8500->irq_base,
+ 0,&ab8500_irq_ops, ab8500);
+ }
This is odd, why are you forcing non-DT systems to use a legacy mapping?
The more usual approach is to use a legacy mapping if and only if a base
for the legacy range has been provided, otherwise the system will
needlessly fail to initialise the device...
+ if (!(ab8500->irq_base || np)) {
+ dev_info(&pdev->dev, "couldn't find irq-base and not doing DT boot\n");
...like this. See regmap_irq for an example.