]> www.infradead.org Git - users/willy/xarray.git/commitdiff
usb: typec: mux: gpio-sbu: Allow GPIO operations to sleep
authorFrancesco Dolcini <francesco.dolcini@toradex.com>
Tue, 9 Apr 2024 19:09:10 +0000 (21:09 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 11 Apr 2024 12:26:56 +0000 (14:26 +0200)
Use gpiod_set_value_cansleep() to support gpiochips which can
sleep like, e.g. I2C GPIO expanders.

Signed-off-by: Francesco Dolcini <francesco.dolcini@toradex.com>
Reviewed-by: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Link: https://lore.kernel.org/r/20240409190910.4707-1-francesco@dolcini.it
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/usb/typec/mux/gpio-sbu-mux.c

index ad60fd4e8431e2e0db5a5b0ae92d3467a26247e7..374168482d36348f2b50dcc589d5f5ce9c45c272 100644 (file)
@@ -48,10 +48,10 @@ static int gpio_sbu_switch_set(struct typec_switch_dev *sw,
        }
 
        if (enabled != sbu_mux->enabled)
-               gpiod_set_value(sbu_mux->enable_gpio, enabled);
+               gpiod_set_value_cansleep(sbu_mux->enable_gpio, enabled);
 
        if (swapped != sbu_mux->swapped)
-               gpiod_set_value(sbu_mux->select_gpio, swapped);
+               gpiod_set_value_cansleep(sbu_mux->select_gpio, swapped);
 
        sbu_mux->enabled = enabled;
        sbu_mux->swapped = swapped;
@@ -82,7 +82,7 @@ static int gpio_sbu_mux_set(struct typec_mux_dev *mux,
                break;
        }
 
-       gpiod_set_value(sbu_mux->enable_gpio, sbu_mux->enabled);
+       gpiod_set_value_cansleep(sbu_mux->enable_gpio, sbu_mux->enabled);
 
        mutex_unlock(&sbu_mux->lock);
 
@@ -141,7 +141,7 @@ static void gpio_sbu_mux_remove(struct platform_device *pdev)
 {
        struct gpio_sbu_mux *sbu_mux = platform_get_drvdata(pdev);
 
-       gpiod_set_value(sbu_mux->enable_gpio, 0);
+       gpiod_set_value_cansleep(sbu_mux->enable_gpio, 0);
 
        typec_mux_unregister(sbu_mux->mux);
        typec_switch_unregister(sbu_mux->sw);