soc: fsl: qe: request pins non-exclusively
authorDmitry Torokhov <dmitry.torokhov@gmail.com>
Sun, 4 Dec 2022 23:59:29 +0000 (15:59 -0800)
committerArnd Bergmann <arnd@arndb.de>
Mon, 5 Dec 2022 17:19:34 +0000 (18:19 +0100)
commit66310b5a0fc1ccdce9a3a5e6c6a12c08e4e0b7b1
tree7254b2bdc7937c3c56a8fd111530070e553fe155
parente348b4014c31041e13ff370669ba3348c4d385e3
soc: fsl: qe: request pins non-exclusively

Commit 84582f9ed090 ("soc: fsl: qe: Avoid using gpio_to_desc()") changed
qe_pin_request() to request and hold GPIO corresponding to a given pin.
Unfortunately this does not work, as fhci-hcd requests these GPIOs
first, befor calling qe_pin_request() (see
drivers/usb/host/fhci-hcd.c::of_fhci_probe()).
To fix it change qe_pin_request() to request GPIOs non-exclusively, and
free them once the code determines GPIO controller and offset for each
GPIO/pin.

Also reaching deep into gpiolib implementation is not the best idea. We
should either export gpio_chip_hwgpio() or keep converting to the global
gpio numbers space until we fix the driver to implement proper pin
control.

Fixes: 84582f9ed090 ("soc: fsl: qe: Avoid using gpio_to_desc()")
Signed-off-by: Dmitry Torokhov <dmitry.torokhov@gmail.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Link: https://lore.kernel.org/r/Y400YXnWBdz1e/L5@google.com
Signed-off-by: Arnd Bergmann <arnd@arndb.de>
drivers/soc/fsl/qe/gpio.c
drivers/usb/host/fhci-hcd.c
include/soc/fsl/qe/qe.h