Skip to content

Commit f3ec643

Browse files
TropicaoKalle Valo
authored andcommitted
wifi: wilc1000: revert reset line logic flip
This reverts commit fcf690b. When using a wilc1000 chip over a spi bus, users can optionally define a reset gpio and a chip enable gpio. The reset line of wilc1000 is active low, so to hold the chip in reset, a low (physical) value must be applied. The corresponding device tree binding documentation was introduced by commit f31ee3c ("wilc1000: Document enable-gpios and reset-gpios properties") and correctly indicates that the reset line is an active-low signal. The corresponding driver part, brought by commit ec031ac ("wilc1000: Add reset/enable GPIO support to SPI driver") was applying the correct logic. But commit fcf690b ("wifi: wilc1000: use correct sequence of RESET for chip Power-UP/Down") eventually flipped this logic and started misusing the gpiod APIs, applying an inverted logic when powering up/down the chip (for example, setting the reset line to a logic "1" during power up, which in fact asserts the reset line when device tree describes the reset line as GPIO_ACTIVE_LOW). As a consequence, any platform currently using the driver in SPI mode must use a faulty reset line description in device tree, or else chip will be maintained in reset and will not even allow to bring up the chip. Fix reset line usage by inverting back the gpiod APIs usage, setting the reset line to the logic value "0" when powering the chip, and the logic value "1" when powering off the chip. Fixes: fcf690b ("wifi: wilc1000: use correct sequence of RESET for chip Power-UP/Down") Signed-off-by: Alexis Lothoré <alexis.lothore@bootlin.com> Acked-by: Conor Dooley <conor.dooley@microchip.com> Acked-by: Ajay Singh <ajay.kathat@microchip.com> Signed-off-by: Kalle Valo <kvalo@kernel.org> Link: https://msgid.link/20240217-wilc_1000_reset_line-v2-1-b216f433d7d5@bootlin.com
1 parent 3216770 commit f3ec643

File tree

1 file changed

+3
-3
lines changed
  • drivers/net/wireless/microchip/wilc1000

1 file changed

+3
-3
lines changed

drivers/net/wireless/microchip/wilc1000/spi.c

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -194,11 +194,11 @@ static void wilc_wlan_power(struct wilc *wilc, bool on)
194194
/* assert ENABLE: */
195195
gpiod_set_value(gpios->enable, 1);
196196
mdelay(5);
197-
/* assert RESET: */
198-
gpiod_set_value(gpios->reset, 1);
199-
} else {
200197
/* deassert RESET: */
201198
gpiod_set_value(gpios->reset, 0);
199+
} else {
200+
/* assert RESET: */
201+
gpiod_set_value(gpios->reset, 1);
202202
/* deassert ENABLE: */
203203
gpiod_set_value(gpios->enable, 0);
204204
}

0 commit comments

Comments
 (0)