• Thomas Petazzoni's avatar
    gpio: pca953x: use a per instance irq_chip structure · 5c4fee63
    Thomas Petazzoni authored
    When a system has two PCA953x GPIO expanders, the kernel complains with:
    
    gpio gpiochip2: (0-0021): detected irqchip that is shared with multiple gpiochips: please fix the driver.
    
    Indeed, there is a single instance of "struct irq_chip" that gets
    re-used for both PCA953x instance. This commit moves the "struct
    irq_chip" to be part of the "struct pca953x_chip", so that we have one
    "struct irq_chip" per PCA953X instance.
    
    As part of this, the name of the irq_chip is also made different on a
    per-instance basis, now using the dev_name() of the I2C device. This
    changes what is visible in /proc/interrupts.
    
    Before:
    
     47:          0          0   pca953x  10 Edge      e0100000.sdhci cd
     48:          0          0   pca953x   6 Edge      e0101000.sdhci cd
    
    After:
    
     47:          0          0    0-0020  10 Edge      e0100000.sdhci cd
     48:          2          0    0-0020   6 Edge      e0101000.sdhci cd
    Signed-off-by: default avatarThomas Petazzoni <thomas.petazzoni@bootlin.com>
    Signed-off-by: default avatarLinus Walleij <linus.walleij@linaro.org>
    5c4fee63
gpio-pca953x.c 29.8 KB