]> www.infradead.org Git - users/jedix/linux-maple.git/commit
gpio: pcf857x: add support for reset-gpios on (most) PCA967x
authorQuentin Schulz <quentin.schulz@cherry.de>
Mon, 24 Feb 2025 10:03:22 +0000 (11:03 +0100)
committerBartosz Golaszewski <bartosz.golaszewski@linaro.org>
Wed, 26 Feb 2025 10:25:30 +0000 (11:25 +0100)
commit087f8a6b8ce93d582e0b84af538da13d735e2444
treecb3f194d805f17d087e37816efe62129fb0060e1
parentb28037d4f375ed36ce8abbbd31107b991792db72
gpio: pcf857x: add support for reset-gpios on (most) PCA967x

The PCA9670, PCA9671, PCA9672 and PCA9673 all have a RESETN input pin
that is used to reset the I2C GPIO expander.

One needs to hold this pin low for at least 4us and the reset should be
finished after about 100us according to the datasheet[1]. Once the reset
is done, the "registers and I2C-bus state machine will be held in their
default state until the RESET input is once again HIGH.".

Because the logic is reset, the latch values eventually provided in the
Device Tree via lines-initial-states property are inapplicable so they
are simply ignored if a reset GPIO is provided.

[1] https://www.nxp.com/docs/en/data-sheet/PCA9670.pdf 8.5 and fig 22.

Tested-by: Heiko Stuebner <heiko@sntech.de> # RK3588 Tiger Haikou Video Demo
Reviewed-by: Heiko Stuebner <heiko@sntech.de>
Signed-off-by: Quentin Schulz <quentin.schulz@cherry.de>
Link: https://lore.kernel.org/r/20250224-pca976x-reset-driver-v3-2-58370ef405be@cherry.de
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org>
drivers/gpio/gpio-pcf857x.c