From patchwork Wed Oct 4 14:56:25 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Duje_Mihanovi=C4=87?= X-Patchwork-Id: 729410 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id AA849E7C4DD for ; Wed, 4 Oct 2023 14:57:05 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243248AbjJDO5H (ORCPT ); Wed, 4 Oct 2023 10:57:07 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60296 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243120AbjJDO4v (ORCPT ); Wed, 4 Oct 2023 10:56:51 -0400 Received: from mx.skole.hr (mx1.hosting.skole.hr [161.53.165.185]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 127AE116; Wed, 4 Oct 2023 07:56:46 -0700 (PDT) Received: from mx1.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id 531B184CC2; Wed, 4 Oct 2023 16:56:45 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Wed, 04 Oct 2023 16:56:25 +0200 Subject: [PATCH RFC v5 1/6] ARM: pxa: Convert Spitz OHCI to GPIO descriptors MIME-Version: 1.0 Message-Id: <20231004-pxa-gpio-v5-1-d99ae6fceea8@skole.hr> References: <20231004-pxa-gpio-v5-0-d99ae6fceea8@skole.hr> In-Reply-To: <20231004-pxa-gpio-v5-0-d99ae6fceea8@skole.hr> To: Daniel Mack , Haojian Zhuang , Robert Jarzmik , Russell King , Alan Stern , Greg Kroah-Hartman , Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Dmitry Torokhov , Mark Brown Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, linux-gpio@vger.kernel.org, linux-input@vger.kernel.org, linux-spi@vger.kernel.org, =?utf-8?q?Duje_Miha?= =?utf-8?q?novi=C4=87?= X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2820; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=IagpUfl05KzWJgAFQ7XITp57I+E1tyGy7fQDYzzbJ2k=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlHX0kG/DC4k30yZXnE7oaivDMozeLKHED8Qu3Q mjJqmvQ/gaJAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZR19JAAKCRCaEZ6wQi2W 4YubD/4gfvj8cdP8yests4zu+KCODZKOjEqvIwkuQfz0lQPokL7xOQ6EMElDljMK/mAPtya0IhG /3RBq5vS6GCr6oUNwye3Lwh2S4AwypeEbb3i5Gfa2mEQZNHDIoBeFYPuoOy8u+e3S1Hbad0ficb fuE3KNLEoyOtwtE/WfvEsfarDlA5Iwk+7t1qXsADTgLGpnHcr6dTOCCyPsXxTX7Dd0c/nrmCJ2A 2wVMLT0IGhEc5fJl/7AVJBbDAS3L6QrppWIJNG5hYHPDCW7alJElTe6uRxDP0CvBOg8SFo6+DI/ VjusHA6jCS4qyey6RV74w9XxyiD6pmUSj3gI/6V5sCg9reVSvMlF/QGCkjGgDIQLHsIIODvQggl DvofcFkGKTphh1V4hTX6LCPcfhgB3DvlQlEO6O14EOKjTuMDBIE0TuPrLBg6nJczTyCRvlwBegA ysnxGp6JQ8/SWj8LfGLVnft4Cq4iqUlhP6BXASdq7Buij3VaNPHflHoJxDpDeB4FsjoAgzyMpLd dl4cGyhJsjVirx6l18Hi9Q1mz386kafNCJj8dEC7rwxmEDMZoDjWlG2QSoGoyCHFaK7HQGIHo9h huDdzbiHQ3rgJq3vCW0lqCPR1pX8dIJiSAwHKMgpuGpnrAQOpSbKF+ExHLMEM4jnXs+nXrvEwJ+ CaBT9JL511yjeAQ== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Sharp's Spitz board still uses the legacy GPIO interface for controlling a GPIO pin related to the USB host controller. Convert this function to use the new GPIO descriptor interface. Reviewed-by: Linus Walleij Signed-off-by: Duje Mihanović --- arch/arm/mach-pxa/spitz.c | 13 ++++++------- drivers/usb/host/ohci-pxa27x.c | 7 +++++++ 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index cc691b199429..535e2b2e997b 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -649,23 +649,22 @@ static inline void spitz_mmc_init(void) {} * USB Host ******************************************************************************/ #if defined(CONFIG_USB_OHCI_HCD) || defined(CONFIG_USB_OHCI_HCD_MODULE) +GPIO_LOOKUP_SINGLE(spitz_usb_host_gpio_table, "pxa27x-ohci", "gpio-pxa", + SPITZ_GPIO_USB_HOST, "usb-host", GPIO_ACTIVE_LOW); + static int spitz_ohci_init(struct device *dev) { - int err; - - err = gpio_request(SPITZ_GPIO_USB_HOST, "USB_HOST"); - if (err) - return err; + gpiod_add_lookup_table(&spitz_usb_host_gpio_table); /* Only Port 2 is connected, setup USB Port 2 Output Control Register */ UP2OCR = UP2OCR_HXS | UP2OCR_HXOE | UP2OCR_DPPDE | UP2OCR_DMPDE; - return gpio_direction_output(SPITZ_GPIO_USB_HOST, 1); + return 0; } static void spitz_ohci_exit(struct device *dev) { - gpio_free(SPITZ_GPIO_USB_HOST); + gpiod_remove_lookup_table(&spitz_usb_host_gpio_table); } static struct pxaohci_platform_data spitz_ohci_platform_data = { diff --git a/drivers/usb/host/ohci-pxa27x.c b/drivers/usb/host/ohci-pxa27x.c index 357d9aee38a3..876842b940c0 100644 --- a/drivers/usb/host/ohci-pxa27x.c +++ b/drivers/usb/host/ohci-pxa27x.c @@ -121,6 +121,7 @@ struct pxa27x_ohci { void __iomem *mmio_base; struct regulator *vbus[3]; bool vbus_enabled[3]; + struct gpio_desc *usb_host; }; #define to_pxa27x_ohci(hcd) (struct pxa27x_ohci *)(hcd_to_ohci(hcd)->priv) @@ -447,6 +448,10 @@ static int ohci_hcd_pxa27x_probe(struct platform_device *pdev) pxa_ohci = to_pxa27x_ohci(hcd); pxa_ohci->clk = usb_clk; pxa_ohci->mmio_base = (void __iomem *)hcd->regs; + pxa_ohci->usb_host = gpiod_get_optional(&pdev->dev, "usb-host", GPIOD_OUT_LOW); + if (IS_ERR(pxa_ohci->usb_host)) + return dev_err_probe(&pdev->dev, PTR_ERR(pxa_ohci->usb_host), + "failed to get USB host GPIO\n"); for (i = 0; i < 3; ++i) { char name[6]; @@ -512,6 +517,8 @@ static void ohci_hcd_pxa27x_remove(struct platform_device *pdev) for (i = 0; i < 3; ++i) pxa27x_ohci_set_vbus_power(pxa_ohci, i, false); + gpiod_put(pxa_ohci->usb_host); + usb_put_hcd(hcd); } From patchwork Wed Oct 4 14:56:27 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Duje_Mihanovi=C4=87?= X-Patchwork-Id: 729412 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id 59F21E7C4CD for ; Wed, 4 Oct 2023 14:57:01 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243200AbjJDO5C (ORCPT ); Wed, 4 Oct 2023 10:57:02 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60308 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243121AbjJDO4v (ORCPT ); Wed, 4 Oct 2023 10:56:51 -0400 Received: from mx.skole.hr (mx1.hosting.skole.hr [161.53.165.185]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 124B1114; Wed, 4 Oct 2023 07:56:46 -0700 (PDT) Received: from mx1.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id 4820184CB4; Wed, 4 Oct 2023 16:56:45 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Wed, 04 Oct 2023 16:56:27 +0200 Subject: [PATCH RFC v5 3/6] ARM: pxa: Convert Spitz CF power control to GPIO descriptors MIME-Version: 1.0 Message-Id: <20231004-pxa-gpio-v5-3-d99ae6fceea8@skole.hr> References: <20231004-pxa-gpio-v5-0-d99ae6fceea8@skole.hr> In-Reply-To: <20231004-pxa-gpio-v5-0-d99ae6fceea8@skole.hr> To: Daniel Mack , Haojian Zhuang , Robert Jarzmik , Russell King , Alan Stern , Greg Kroah-Hartman , Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Dmitry Torokhov , Mark Brown Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, linux-gpio@vger.kernel.org, linux-input@vger.kernel.org, linux-spi@vger.kernel.org, =?utf-8?q?Duje_Miha?= =?utf-8?q?novi=C4=87?= X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2214; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=KS0wJeQAKLB5dKzgUIGP98I3G2fGCey57KOguPJsj3Y=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlHX0k0eLl93XWJ77A4HcpvvnTW6rw5IUEBVaZK 9G4+btriQmJAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZR19JAAKCRCaEZ6wQi2W 4al3D/9nKmO5AkDvEj4Dgn62yLO4LY2q11bFkySNthbUGi079W8qdL5XjpM4hcehCzuWt9+lHJX ojMd3uCWUDkH0TV+3/IHseAqc45tyqUW+3NuQmQg8w+Lz57z10XbQ+fW6cL2gxtAFK82IJ6XyE/ i8AvmwKFtKIn7Ep4I1wH5q634InRqBZ1iAJqnKd4v9QJTz9yiUNYxQkTybIrPlknUl8325rvpvI y9ZsfIId1Cqw/eTMHocDabeCEaX0sUX4RA2HGnlAReo7vCD+O0inZlg8HgP+qFEp13Tt2De+osJ aC5b+tUDxloW0X0ElXa+GHqqyG/eySgrTTl1Jl3A85BWpLY8eZnEGa9wedRFyAcohXorI/FktAt jT5tpeHTAIp3bsVKzVID7NmDaqpB8bwDFVVY1AO9l6YKnLev+/H19T8rmb6QAQe4PnUdKW07yrk 0FMMig70Z4OVtpUVBOqXeZEgd8/XkOMXpfydjhHhP3w8dvdus8DuihfmLq/aA6/blYGaog9bwgE LWvYMwKLILD2ztenOD5GCtV13nZyH7D4u8g/aI3dl/hhUCOZZDzfG1cZsY3DvF6t3Da12Za5Str z2CDNRKEmWBEZgzKM+GX6m1MIBxaxB1TYeP995KTO+bub5sr+/VRXMUiysxlO5MW/3KLzjymK0I 5pV4u+cS4Gvsg9A== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Sharp's Spitz board still uses the legacy GPIO interface for controlling the power supply to its CF and SD card slots. Convert it to use the GPIO descriptor interface. Acked-by: Linus Walleij Signed-off-by: Duje Mihanović --- arch/arm/mach-pxa/spitz.c | 20 ++++++++++++++++++-- 1 file changed, 18 insertions(+), 2 deletions(-) diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index b6a4085e9fb0..965354e64c68 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -133,6 +133,10 @@ static unsigned long spitz_pin_config[] __initdata = { * Scoop GPIO expander ******************************************************************************/ #if defined(CONFIG_SHARP_SCOOP) || defined(CONFIG_SHARP_SCOOP_MODULE) +GPIO_LOOKUP_SINGLE(spitz_card_pwr_ctrl_gpio_table, "pxa2xx-mci.0", + "sharp-scoop", SPITZ_GPIO_CF_POWER, "cf_power", + GPIO_ACTIVE_HIGH); + /* SCOOP Device #1 */ static struct resource spitz_scoop_1_resources[] = { [0] = { @@ -190,6 +194,7 @@ struct platform_device spitz_scoop_2_device = { static void __init spitz_scoop_init(void) { platform_device_register(&spitz_scoop_1_device); + gpiod_add_lookup_table(&spitz_card_pwr_ctrl_gpio_table); /* Akita doesn't have the second SCOOP chip */ if (!machine_is_akita()) @@ -201,9 +206,18 @@ static void __maybe_unused spitz_card_pwr_ctrl(uint8_t enable, uint8_t new_cpr) { unsigned short cpr; unsigned long flags; + struct gpio_desc *cf_power; + + cf_power = gpiod_get(&pxa_device_mci.dev, "cf_power", GPIOD_ASIS); + if (IS_ERR(cf_power)) { + dev_err(&pxa_device_mci.dev, + "failed to get power control GPIO with %ld\n", + PTR_ERR(cf_power)); + return; + } if (new_cpr & 0x7) { - gpio_set_value(SPITZ_GPIO_CF_POWER, 1); + gpiod_direction_output(cf_power, 1); mdelay(5); } @@ -222,8 +236,10 @@ static void __maybe_unused spitz_card_pwr_ctrl(uint8_t enable, uint8_t new_cpr) if (!(cpr & 0x7)) { mdelay(1); - gpio_set_value(SPITZ_GPIO_CF_POWER, 0); + gpiod_direction_output(cf_power, 0); } + + gpiod_put(cf_power); } #else From patchwork Wed Oct 4 14:56:29 2023 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Duje_Mihanovi=C4=87?= X-Patchwork-Id: 729411 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by smtp.lore.kernel.org (Postfix) with ESMTP id CE5E6E7C4D5 for ; Wed, 4 Oct 2023 14:57:04 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S243225AbjJDO5F (ORCPT ); Wed, 4 Oct 2023 10:57:05 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:60350 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S243128AbjJDO4w (ORCPT ); Wed, 4 Oct 2023 10:56:52 -0400 Received: from mx.skole.hr (mx1.hosting.skole.hr [161.53.165.185]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 8F88011D; Wed, 4 Oct 2023 07:56:48 -0700 (PDT) Received: from mx1.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id 0B30484AF1; Wed, 4 Oct 2023 16:56:47 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Wed, 04 Oct 2023 16:56:29 +0200 Subject: [PATCH RFC v5 5/6] ARM: pxa: Convert gumstix Bluetooth to GPIO descriptors MIME-Version: 1.0 Message-Id: <20231004-pxa-gpio-v5-5-d99ae6fceea8@skole.hr> References: <20231004-pxa-gpio-v5-0-d99ae6fceea8@skole.hr> In-Reply-To: <20231004-pxa-gpio-v5-0-d99ae6fceea8@skole.hr> To: Daniel Mack , Haojian Zhuang , Robert Jarzmik , Russell King , Alan Stern , Greg Kroah-Hartman , Linus Walleij , Bartosz Golaszewski , Andy Shevchenko , Dmitry Torokhov , Mark Brown Cc: linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, linux-usb@vger.kernel.org, linux-gpio@vger.kernel.org, linux-input@vger.kernel.org, linux-spi@vger.kernel.org, =?utf-8?q?Duje_Miha?= =?utf-8?q?novi=C4=87?= X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2122; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=Gv06Li3m6ZDEu/OZu0Z3JoESggoJqQsy9aW/skUnF5Q=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlHX0kwdV5y4zhyP8/zjJd45730lYLJamKkxfxQ N1m4W6WYpqJAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZR19JAAKCRCaEZ6wQi2W 4bPsEACkCTkjzk3My/bY4JjnK+trV4GkYqLU8o+sqYfXF95p47zJVS8JbvlEGoCLk8ecB7eMSlj nKfICObaWgIvM8yNgwRiS0t2lKU4QAe37ocphg88uuUNqrT6kgHsLd8JbMXTmwknOvdYRm29E5m eAt/qZkg5rjvIihytRicEj/uayoEuS9IV6e3sQ8rBJQ1i3HmIbZoC14PtQPNn5/ENC0DYWXxYHy 8vEqTWNAOGc5py8ESsa8c908J8MUKCGHo62wn9f2CoUUYtK9GmpAcWThwgZD2Cu4wQb5aGcOgeO VpbaKuz/7g9KrYbYG7UH7z6aZNcSlFgiMlnGfoj33aFV4h0N92iJkX+tVKKDelQmpiLby9BfEfe uhcX+OerBofGMdZGrKyKAfaMsuSmpYM7K+YLkmXnCqPswDCaxMB3mwXuyidvs3EXlOJB44xSD96 f8tDsCyEVCyjTVloL1hI7nTtazouZBc3xSld3ew0fvB7EbDHyqGNgJ26BErXj29MsTv80GYQw8O xNseAyu1mW6Uf+ThqwgjpEfhjTqSlbgpLBX8JZ5Wh+HlSIF72AcC8Ce7rrhGZJYhBqM76FQHUKv 40NvFuMQay9T9MQIA15heVEOisMi1YqDxcyEzcZW82cQTuFezLLHZ2hCpkdnP0sM8G10ZYbmo22 uyF836IrqKgCk6g== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 Precedence: bulk List-ID: X-Mailing-List: linux-input@vger.kernel.org Gumstix still uses the legacy GPIO interface for resetting the Bluetooth device. Convert it to use the GPIO descriptor interface. Reviewed-by: Linus Walleij Signed-off-by: Duje Mihanović --- arch/arm/mach-pxa/gumstix.c | 22 +++++++++++----------- 1 file changed, 11 insertions(+), 11 deletions(-) diff --git a/arch/arm/mach-pxa/gumstix.c b/arch/arm/mach-pxa/gumstix.c index c9f0f62187bd..0bca6e2c80a9 100644 --- a/arch/arm/mach-pxa/gumstix.c +++ b/arch/arm/mach-pxa/gumstix.c @@ -20,8 +20,8 @@ #include #include #include +#include #include -#include #include #include @@ -129,6 +129,11 @@ static void gumstix_udc_init(void) #endif #ifdef CONFIG_BT +GPIO_LOOKUP_SINGLE(gumstix_bt_gpio_table, "pxa2xx-uart.1", "pxa-gpio", + GPIO_GUMSTIX_BTRESET, "BTRST", GPIO_ACTIVE_LOW); + +static struct gpio_desc *bt_reset; + /* Normally, the bootloader would have enabled this 32kHz clock but many ** boards still have u-boot 1.1.4 so we check if it has been turned on and ** if not, we turn it on with a warning message. */ @@ -153,24 +158,19 @@ static void gumstix_setup_bt_clock(void) static void __init gumstix_bluetooth_init(void) { - int err; + gpiod_add_lookup_table(&gumstix_bt_gpio_table); gumstix_setup_bt_clock(); - err = gpio_request(GPIO_GUMSTIX_BTRESET, "BTRST"); - if (err) { + bt_reset = gpiod_get(&pxa_device_btuart.dev, "BTRST", GPIOD_OUT_HIGH); + if (IS_ERR(bt_reset)) { pr_err("gumstix: failed request gpio for bluetooth reset\n"); return; } - err = gpio_direction_output(GPIO_GUMSTIX_BTRESET, 1); - if (err) { - pr_err("gumstix: can't reset bluetooth\n"); - return; - } - gpio_set_value(GPIO_GUMSTIX_BTRESET, 0); + gpiod_set_value(bt_reset, 1); udelay(100); - gpio_set_value(GPIO_GUMSTIX_BTRESET, 1); + gpiod_set_value(bt_reset, 0); } #else static void gumstix_bluetooth_init(void)