[PATCH 0/2] leds: pca955x: Expose GPIOs for all pins

Cédric Le Goater clg at kaod.org
Fri Sep 24 16:41:21 AEST 2021


On 9/21/21 06:39, Andrew Jeffery wrote:
> Hello,
> 
> This is a rework of a Rube Goldberg-inspired RFC I posted previously:
> 
> https://lore.kernel.org/lkml/20210723075858.376378-1-andrew@aj.id.au/
> 
> This time around there's a lot less Rube - the series:
> 
> 1. Contains no (ab)use of pinctrl
> 2. Always exposes all pins as GPIOs
> 3. Internally tracks the active pins
> 
> Without these patches the driver limits the number of pins exposed on
> the gpiochip to the number of pins specified as GPIO in the devicetree,
> but doesn't map between the GPIO and pin number spaces. The result is
> that specifying offset or interleaved GPIOs in the devicetree gives
> unexpected behaviour in userspace.
> 
> By always exposing all pins as GPIOs the patches resolve the lack of
> mapping between GPIO offsets and pins on the package in the driver by
> ensuring we always have a 1-to-1 mapping.
> 
> The issue is primarily addressed by patch 1/2. Patch 2/2 makes it
> possible to not expose any pins as LEDs (and therefore make them all
> accessible as GPIOs). This has a follow-on effect of allowing the driver
> to bind to a device instantiated at runtime without requiring a
> description in the devicetree.
> 
> I've tested the series under qemu to inspect the various interactions
> between LEDs vs GPIOs as well as conflicting GPIO requests.

I was wondering what kind of tests you did.

Did you cold plug 'pca995x' devices in a QEMU Aspeed EVB* machine running
with a custom DTB adding different layouts of the pca955x ?

> Please review!

This is simpler than the 'ngpio' business we had before.

Reviewed-by: Cédric Le Goater <clg at kaod.org>

Thanks,

C.


> Andrew
> 
> Andrew Jeffery (2):
>    leds: pca955x: Make the gpiochip always expose all pins
>    leds: pca955x: Allow zero LEDs to be specified
> 
>   drivers/leds/leds-pca955x.c | 65 +++++++++++++++++++------------------
>   1 file changed, 34 insertions(+), 31 deletions(-)
> 
> 
> base-commit: 239f32b4f161c1584cd4b386d6ab8766432a6ede
> 



More information about the Linux-aspeed mailing list