From patchwork Mon Oct 9 18:33:58 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: 150255 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp2053079vqo; Mon, 9 Oct 2023 11:34:27 -0700 (PDT) X-Google-Smtp-Source: AGHT+IEh1zIj54GRJ0sdwJWU5dSfp9c5pxag1p/isFd5bHdJzEGYkdwZSmW1iZUS2/e/KDp6dlSs X-Received: by 2002:a17:90a:ad87:b0:277:7969:6bf2 with SMTP id s7-20020a17090aad8700b0027779696bf2mr15231963pjq.47.1696876467092; Mon, 09 Oct 2023 11:34:27 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696876467; cv=none; d=google.com; s=arc-20160816; b=kniXcj/YOJO2W5cVC6ifxyt6tA5V7tHuHWUIr2/gywMAvmgFwvH5T9sin8ADY4zQec K4zrc4mszPUykeul7kyakuPQ9EPBFifSFweXG/R93+SDqvWsQhkUE3JEp86PEwl2FtKZ inXbWth0M0I5jzw8DMdei2kB6WkD70HNvSX2Ce3ZrTokmFpjQl9Val13q/BommInGrSg 3mJZarHQCcU5G9ZBy+XSmhkGFRLdw1ArRFnL0uyMfjfcYDdZVW/9JBRFZCf8oyjDydfU CDUWI7943r6yYx2fgNam7dJuqRYIENW/g11jjH6uQxCdcDeQbc/LQXw1oWIsvKbtbdHr q0WA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=ZiKQVDHj3fhjnjMgnYDckTfo5vzgZeG+ovb0CAupbXE=; fh=H4D8raVEE9ToK4xcGS9/Pnvmhs2QUzCYuQTuaKubzik=; b=wzRd6S6pcTWwGAhmH/yp2SojEoRjDmPJfuh5RwosOCUE1axNoqAdM6wrpUY8eOLntF eTNZdjfLiWT1YuhvCBmRUGIbihKoGkIO+eBqxNXTcIq29+1VNT0MgXKJjmJui14ZFalF Mc5VJ1sHAe4W8OdktyIHNd34aw9pwDgMVfxj+jdKfyRynAM9VIg3qUrz+Xxjjh/woOfy YXahGuuvgl0N0KN2HBgZ4TojcpBW0tPMkowX63vhnDH1+2z8cL0Tn1k+slkNKlHntXRs Lus/wrFMp32bh7t/4rxxivRGf6k3a216gvQsWucluwv1pnMw8c4dRV324Ub1452h54W1 OUaA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id pg2-20020a17090b1e0200b0026d4adee541si12100453pjb.150.2023.10.09.11.34.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Oct 2023 11:34:27 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 551E4801B926; Mon, 9 Oct 2023 11:34:26 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378064AbjJISeV (ORCPT + 18 others); Mon, 9 Oct 2023 14:34:21 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37696 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377192AbjJISeS (ORCPT ); Mon, 9 Oct 2023 14:34:18 -0400 Received: from mx.skole.hr (mx2.hosting.skole.hr [161.53.165.186]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ED0F6A6; Mon, 9 Oct 2023 11:34:16 -0700 (PDT) Received: from mx2.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id C4A6C84B0E; Mon, 9 Oct 2023 20:34:14 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Mon, 09 Oct 2023 20:33:58 +0200 Subject: [PATCH RFT v7 1/6] ARM: pxa: Convert Spitz OHCI to GPIO descriptors MIME-Version: 1.0 Message-Id: <20231009-pxa-gpio-v7-1-c8f5f403e856@skole.hr> References: <20231009-pxa-gpio-v7-0-c8f5f403e856@skole.hr> In-Reply-To: <20231009-pxa-gpio-v7-0-c8f5f403e856@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=2590; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=jWL4QZTf4q1nSMZnAZbdL0TeeJev2PtE9jP/v9y0QG0=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlJEeb8Mqi/WmO31Qsudy2XA1+EdKJJ3bTZShCD t2TKOe26fCJAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZSRHmwAKCRCaEZ6wQi2W 4frUEACRzelN55l+SDUpHL2V1saJ44bio5LAoX1GqGdfFcaFFylwFMlveGz+74W6Y0P1xwux5sd cJavRQ1pXjInkkdDOAz2EPr8QndBM70OrsoungTdJa1RcPOtuMVHZvfM6NiWMsnuN82vqx2Nbud FTAddUtNYCV0GmYSwACnqmXc1RyMr6o0uMaHMPZoS39PIyTHjlaVyGHGQ/Z9QGTnjWs62PiXbHm yZaHWD2B4ftnugptVIcac5p3pIwz8rXC3OrUE+StJYhHn4LTlNThdh/6dHue0jc8ojVqpAMhfvM fGXvGqR9O5U2bRmKoE1VGekv5f3WA/8o14hfF6PFXi0n9jn+bBB4Qj1ON8pdGdJpfYMSahIG8La 03kx7e5GAeI2bC6XKUF4UcfVd0JSWJtpYIHveYYK46bluBKGXBds8w4zxuwvpILP/uMkTx+U3xk PA4DeC0onSvOpvhbExX1KbRR0jP1LyR5v8UdulPQnl9L4kdoIVP/f8axQB8YTczS2KtYgE8ZBh8 Yzxl2tYAO7xtcXSaEAOp+NV9zbTIARoxYCW7ru8WG8Uz/D+tnt/chHpTrFMsfAHgGIpvpfhA1Mx SfHfpD12ZjdWwegn8hXHRR/TSTTnuCZ5cjsdLeloHMNU/vNccL0NjhHMoqYIbdPrNjCa+e6v0Uk /H1V4k86R6eLW4g== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 09 Oct 2023 11:34:26 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779303937954997595 X-GMAIL-MSGID: 1779303937954997595 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ć Reviewed-by: Bartosz Golaszewski --- arch/arm/mach-pxa/spitz.c | 13 ++++++------- drivers/usb/host/ohci-pxa27x.c | 5 +++++ 2 files changed, 11 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..a809ba0bb25e 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 = devm_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]; From patchwork Mon Oct 9 18:33:59 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: 150256 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp2053094vqo; Mon, 9 Oct 2023 11:34:29 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFzK3DTim/n1XTm1tDMfcexpYjqypn7DoKg8A3a5Seh/DIZG5Es+EvZGXGIKY701Rnk1nix X-Received: by 2002:a05:6a21:788f:b0:161:a795:2322 with SMTP id bf15-20020a056a21788f00b00161a7952322mr20286982pzc.18.1696876469057; Mon, 09 Oct 2023 11:34:29 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696876469; cv=none; d=google.com; s=arc-20160816; b=RgXcQA/WXMDdC4CkX3uX4BYq7oIs3bQDBqLHNJBYEvkZB8tZXUFiV6v8w25pxT9paO L+XXrJ7YOOfI2zUpwNldx6QCsvE64vrM/k+DPNirmLh6en2UpZNvj5ta6ouJWG8oDwGb /FyrLJTKyj6f6Vflx5V3GLLNuUWoqTnDJEUGwxo7J3nSb2eNdnGuXC4CIde0ycM2U/xE VdcN7MFIEKhYoYsBbq14L4EdcgOu0fGr/opKD3EjYYy0rfFVmqDJPUJlRLE4Gkp5DmBz d4UW2qxhi43N8XuLZ27ZJx8YLNZyDjWDVDVXAMj3ADlk1gOAj+He/eaf6r1jqpjSXNFA nP7w== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=fFXERX5Mjw9o8ODRscxnc+LYIBlMljYnODp9ya817nk=; fh=H4D8raVEE9ToK4xcGS9/Pnvmhs2QUzCYuQTuaKubzik=; b=IBSW2ovREfUZhy6XSd4mZ4/wAM6jCaMFSKSk9OZu2tOjFT4Xd9AMiXEpg7MCT2sBcn h5mjyVkhnSH/fffjBGWS3TBqOgAhhjCbjKFi4DeJRoMODvMhHX0hx2S2mie6qr8n7j7l RIiawFy+A9a7SIRuQvYITfRRM4zOyR3Iy2fdVs0U8AujzjyyhUtkCxorNSsxho8JnpNo jCNdI1UwR0Z7U1QZOrSNMVAugunP04NlDiZZeUTsV05ZD1f/8YFgNBvdhZ+TR9MiJVY/ 0gagIvU8OOB7+RF5IMs73UF5UraMJ5DbASE+xqe6VTBQt68YqY3ElYQlh5iAKYXfxb3R pplA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [2620:137:e000::3:7]) by mx.google.com with ESMTPS id q7-20020a170902eb8700b001c3886b091asi9799321plg.127.2023.10.09.11.34.28 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Oct 2023 11:34:29 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) client-ip=2620:137:e000::3:7; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:7 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 42933801B6C2; Mon, 9 Oct 2023 11:34:28 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378088AbjJISeY (ORCPT + 18 others); Mon, 9 Oct 2023 14:34:24 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37690 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377501AbjJISeS (ORCPT ); Mon, 9 Oct 2023 14:34:18 -0400 Received: from mx.skole.hr (mx2.hosting.skole.hr [161.53.165.186]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id ECFA6A3; Mon, 9 Oct 2023 11:34:16 -0700 (PDT) Received: from mx2.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id 369F084A5E; Mon, 9 Oct 2023 20:34:15 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Mon, 09 Oct 2023 20:33:59 +0200 Subject: [PATCH RFT v7 2/6] ARM: pxa: Convert Spitz LEDs to GPIO descriptors MIME-Version: 1.0 Message-Id: <20231009-pxa-gpio-v7-2-c8f5f403e856@skole.hr> References: <20231009-pxa-gpio-v7-0-c8f5f403e856@skole.hr> In-Reply-To: <20231009-pxa-gpio-v7-0-c8f5f403e856@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=1901; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=1yohBJVEfo/Ind1Hy9PsJ4oqUarD4e31qtGoJ3pSoVs=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlJEebN4SaAkwbFMrouTWoLrPxDXVIwqGRBrDWP T7+X4lCGGSJAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZSRHmwAKCRCaEZ6wQi2W 4YnTD/9TbKA78usjrLVWzYn9dLTIC4KdDQgikMTjRVQOAVbRYlss86P3CeKlsB5ZFqC0/TJHPrr fEWfYLaxdi2WeaDUqyVQRMxkAH2LB0NY6vdZD7qXi+gFhEhV5hhmAI0ePxcloR+iUXi75dM65W4 XR7TqoDRK8VWqOr4CEr/6SUnlzie2FgjMhWHZv8l8JwcZrWEVCEt0qpPh5//TGcbzcUT5MKrmaJ z4kS+/hSiY/vXVuZ2YfYA+jxk2kQ/u8sOZ8Dg+37uVYRJJaevxXWmT6jHIJng6BEkqp/VQnatfr kD5q/+dRRpxVDqkt09i13ejeCkG4IHv/VidcpJbccv2FKqdd8SMywmVxgLMrlstOxFuodl19vaX 3xahrJ/po+rZO87FFR7uC6H5mPOUSPRKZziGZZPx+RXv0RIy7hWgzVv6MKBf8rsdWngEm2LLkHx nNAF4IcXUoQXiYt2a8H2EGTaA37ccrKH6ZlpjfpnG0MDkQ9cTP+TvuifoveZ+32Yhh7AYTuSha+ /ZxRixBZUV49nvkwfJ8KyD7FLRaqqJNDZG1b5Sis2N9DhExqnWoKpZxzaKkIrJdN1nkQeTfiSKZ GfYYS256QOkH48AS0O9Fr+9YpTmOUthr9Pz/+GZO7zhYbMCCIw9ING02edmdxEWrh1dLNUV5khg zXFzN58cPTKJ36Q== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 09 Oct 2023 11:34:28 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779303940380984706 X-GMAIL-MSGID: 1779303940380984706 Sharp's Spitz board still uses the legacy GPIO interface for configuring its two onboard LEDs. Convert them to use the GPIO descriptor interface. Reviewed-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 535e2b2e997b..29907abc4513 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -452,16 +452,25 @@ static inline void spitz_keys_init(void) {} * LEDs ******************************************************************************/ #if defined(CONFIG_LEDS_GPIO) || defined(CONFIG_LEDS_GPIO_MODULE) +static struct gpiod_lookup_table spitz_led_gpio_table = { + .dev_id = "leds-gpio", + .table = { + GPIO_LOOKUP_IDX("pxa-gpio", SPITZ_GPIO_LED_ORANGE, NULL, 0, + GPIO_ACTIVE_HIGH), + GPIO_LOOKUP_IDX("pxa-gpio", SPITZ_GPIO_LED_GREEN, NULL, 1, + GPIO_ACTIVE_HIGH), + { } + } +}; + static struct gpio_led spitz_gpio_leds[] = { { .name = "spitz:amber:charge", .default_trigger = "sharpsl-charge", - .gpio = SPITZ_GPIO_LED_ORANGE, }, { .name = "spitz:green:hddactivity", .default_trigger = "disk-activity", - .gpio = SPITZ_GPIO_LED_GREEN, }, }; @@ -478,9 +487,16 @@ static struct platform_device spitz_led_device = { }, }; +static struct gpio_descs *leds; + static void __init spitz_leds_init(void) { + gpiod_add_lookup_table(&spitz_led_gpio_table); platform_device_register(&spitz_led_device); + leds = gpiod_get_array_optional(&spitz_led_device.dev, + NULL, GPIOD_ASIS); + spitz_gpio_leds[0].gpiod = leds->desc[0]; + spitz_gpio_leds[1].gpiod = leds->desc[1]; } #else static inline void spitz_leds_init(void) {} From patchwork Mon Oct 9 18:34:00 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: 150261 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp2054101vqo; Mon, 9 Oct 2023 11:36:26 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFchjFT1KmoQE4CN6965v7Bbjdv/6nCUajtR06vEIto1exJloj1jFHfww3B4jwsQp95M7RQ X-Received: by 2002:a17:903:120f:b0:1c7:5f03:8562 with SMTP id l15-20020a170903120f00b001c75f038562mr19116994plh.30.1696876586432; Mon, 09 Oct 2023 11:36:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696876586; cv=none; d=google.com; s=arc-20160816; b=sMG6LsJP/KY7x8sNUnkXVKwqM7wMjJAQ6PRu2s39KtwIzLq+8NvhU4aH/DeisZOorV TbAngmQYBvtR4AFr/PeM9a9tn4ZHrlGQHqBubsfaF/bFju4AFAshnAUxqn34ZqKtojgz 7Q9Ya7Wrk8UX4jJ1c8Syq5wmt5NiGH7cZ3IYgM2aMyKzUSVhn5EtNrFPWS5+8ERNOgn/ 4nrPrF397cUy2diOSuc62m21yRfcUbrVcxIx3wStrDzMTCKpfVmKeX2W8sJIF4jCs0nM wLolGh6Y0QfGK7+PwjZ84GMJdZJXoyKFpFjHQ1Zk1e3lqGLsxCq1QI83XtAxGVroDi2L 15EQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=OaQSvzd2cLH5u+iPsGjOUOA/UjDp7S1IQGKQzhNxyis=; fh=1i6b6fQBnaiq0xRa3ncF4yVLO4LQ/VVJhygl9h24PAo=; b=0QHMEKyvJe75mCC6BTZsn7OJpNj9DhiBJKhHkatc+LGW+5NWicqR9mSGT8C+N5hg2r wu9YntBE3KVDmDu6awia4aXJQmXRkWghxcEj22VKrAAriaw/s6oKUKMe0yDAMn9iMZDp 0rmO6UEoy2tsnqEH/SD26DM1fgQbL6HFmBM0g1DjE9SSjze4V09NalUauT7N0ZeY/pFz OsxY+nespAA43Q+CoqY0kUxcpOyZ3XBE4vbJ/NCqpPFFLXg/2fzyM9UYyA4D1tdxxnhC gwgDQZpGgDax3hawt+vM9JXbtcHhlOBzkHS4NQ65FDxV9duutT8nWON1hTTPOVWnh4qL jCcQ== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from pete.vger.email (pete.vger.email. [23.128.96.36]) by mx.google.com with ESMTPS id y14-20020a17090322ce00b001c60c5bbff2si10875000plg.201.2023.10.09.11.36.26 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Oct 2023 11:36:26 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) client-ip=23.128.96.36; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.36 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by pete.vger.email (Postfix) with ESMTP id 5C24C8029A39; Mon, 9 Oct 2023 11:35:07 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at pete.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378095AbjJISe3 (ORCPT + 18 others); Mon, 9 Oct 2023 14:34:29 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37720 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1377721AbjJISeT (ORCPT ); Mon, 9 Oct 2023 14:34:19 -0400 Received: from mx.skole.hr (mx1.hosting.skole.hr [161.53.165.185]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 4438FAF; Mon, 9 Oct 2023 11:34:17 -0700 (PDT) Received: from mx1.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id D927D84C3E; Mon, 9 Oct 2023 20:34:15 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Mon, 09 Oct 2023 20:34:00 +0200 Subject: [PATCH RFT v7 3/6] ARM: pxa: Convert Spitz CF power control to GPIO descriptors MIME-Version: 1.0 Message-Id: <20231009-pxa-gpio-v7-3-c8f5f403e856@skole.hr> References: <20231009-pxa-gpio-v7-0-c8f5f403e856@skole.hr> In-Reply-To: <20231009-pxa-gpio-v7-0-c8f5f403e856@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?= , Bartosz Golaszewski X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2281; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=+fxcsarubc2tXSSH1K644VHfXQAJtw0ZRrtO0ziZod4=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlJEebBzCQ8D7a6o2IA9iJM6L4IKQvEJLF/EMXP D8/dTCglt+JAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZSRHmwAKCRCaEZ6wQi2W 4W7nD/oDYI8OQRD1Xb/8LN/F2NAL5p3w4cjcV3gKEe69yyhOfsWRfhWuScix3/DvzARzdyQGoN4 7pLtVaz+giD3aR+FRcQzL5Wh2petHAporVzUTsKk3MxGx4wAZui7UnUAgwb0mF/Lie3xpeNkC3j K5nxi2Q5Xw9FDDN7AUuSAdCrEkUDzbRjX3ZBzad35xbYZ9+T83rm3Xo2TJMa07lkPYB06bFo49/ p9IdsgwYjevs8TWQxI4tHkuTQ0dgoVCqynJtR1w28S0TgYMQE9g1puhBjwqgkI9tg9RZtdv5CsQ nKMVlg4juTc7xfawDkPtexGwtU0OA09wXkxYTambLcXVcVnf2Cvzc/mcqYVE9vpXwENTCpFclYt uYjQ8ufCg7TQsmdokaVG01ZbxxcfjESE+Xp5GSrGn8uduC4ZCYIY3OtrUuuodLz1LN+ftYTVJlN gZYl5lrhe8RgOaAYLri+cp+VG7u6z8bPAEbOhMHheG0LKF4/mmbIJOuMnNNcmYn2nLNYH898UMb NwGnwR6g0CgnYSreN6kil9/SZ94KgP975Tya9dNXdapiSljTl2tkPdvzBfa+cffRIyXd7tDfwyw AqHp5gqMz4hr+lgM6RgM3xkI8+pNZ3VLPBkZ42Ly9Xve3RKbFBoB7Du8xpSNsmfDFL8KvXk9M1e Zh+8jJaWR9Q0dRQ== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 X-Spam-Status: No, score=2.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on pete.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (pete.vger.email [0.0.0.0]); Mon, 09 Oct 2023 11:35:07 -0700 (PDT) X-Spam-Level: ** X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779304063397308135 X-GMAIL-MSGID: 1779304063397308135 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 Reviewed-by: Bartosz Golaszewski 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 29907abc4513..c8fc333c2017 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 Mon Oct 9 18:34:01 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: 150257 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp2053233vqo; Mon, 9 Oct 2023 11:34:43 -0700 (PDT) X-Google-Smtp-Source: AGHT+IFrahslTmQXWg+OqV1Xs3iPyFWjAhvRvO2ifnTXk8J1x+6JyikwIQtUs+FgzYF6fark/Nxw X-Received: by 2002:a05:6a00:21cc:b0:68e:351b:15b9 with SMTP id t12-20020a056a0021cc00b0068e351b15b9mr20603565pfj.4.1696876483452; Mon, 09 Oct 2023 11:34:43 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696876483; cv=none; d=google.com; s=arc-20160816; b=p+ydkG76vIB6T6qRo5cjoUfMm15qZhRstUrcFVVggjAfyeZFmbsG0i2b7gbMs4MIhs LwXQzRBVjbTH0LnxE5tQycgAtmVvmu6SJVr92y560aGCXAP4WBVGb/F2x0bkmdktTvDs XNJNqk7jj5z0ko/NUoGvuESnYdi/MCI8e/1C+PLJ55WqLoyvQUhim5rmqTYWfSLvcNvx 2wpcecyqOnmjq2jZ+WRCLw1AQiRtJ3X0zqpJv5EsoXd6CGOQD955k3OS32yIeoFxx4Se eX9WL/Adveye2djvnX4hirP2tVJyxftUxx1nOn9po0Wcj/KhjY0IRqNk6uM1eC1Grsx7 CYQA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=s5FFc1/4dXCN6R/H8UnHq5+vBEfZ+QUakv1AxkZMA08=; fh=1i6b6fQBnaiq0xRa3ncF4yVLO4LQ/VVJhygl9h24PAo=; b=GG9NNJLrz/XNUlZN3/Ym3gAkyBFLABzLWoPmXgWHL2ujsz8F2zBkpYjqHn89/hi6q/ uQ/roboBcOc7TdfJk6vbnySAm4xGIk35B1AAa+ODxTq3pPbjpnm+sfjSjuC7IIOg3NFi S8UE6EYv1E8dvPiCXQEQwf1Q2Ql3cIkbadC5YQFlAcrE5LA96Co6n/ZrBmV5zKk8/gaS d5Xcz+/KLWNE3qg+5wckanVM0Ev5Ie4bMCuO1OycD/iRg7N5YS9AJe6AByXXDZRzcInC TwsMhBtur5LSQ+OpWHDauRAeHTKx+sFs5KPgmEbJbeMbsPoEd76t3YTt/6qnbi3ldZA5 JioA== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id g19-20020a63f413000000b005859f850b2csi9570143pgi.38.2023.10.09.11.34.43 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Oct 2023 11:34:43 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id A97CC801B6E0; Mon, 9 Oct 2023 11:34:42 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378115AbjJISed (ORCPT + 18 others); Mon, 9 Oct 2023 14:34:33 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37750 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378047AbjJISeT (ORCPT ); Mon, 9 Oct 2023 14:34:19 -0400 Received: from mx.skole.hr (mx2.hosting.skole.hr [161.53.165.186]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 56BDAB0; Mon, 9 Oct 2023 11:34:18 -0700 (PDT) Received: from mx2.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id F13CA847A9; Mon, 9 Oct 2023 20:34:16 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Mon, 09 Oct 2023 20:34:01 +0200 Subject: [PATCH RFT v7 4/6] ARM: pxa: Convert reset driver to GPIO descriptors MIME-Version: 1.0 Message-Id: <20231009-pxa-gpio-v7-4-c8f5f403e856@skole.hr> References: <20231009-pxa-gpio-v7-0-c8f5f403e856@skole.hr> In-Reply-To: <20231009-pxa-gpio-v7-0-c8f5f403e856@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?= , Bartosz Golaszewski X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=3701; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=stluTKvWGcn2p+ML66gGYIi7wxf5yhB+y1zfCDDsHxI=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlJEebdthvaI93nFyuC3BXNj3wC7ieEASNxuH5Q hluepmUOWKJAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZSRHmwAKCRCaEZ6wQi2W 4YbpD/9ICgWdk5Y2uakCChcrwU6WQkdCxY2ra3+j/0zeqz+vD18zzGpzzV2oftFuWmoi/R0aJ8x aSwfHyzE38Z/TNyjgAjAnHM8QnaJvo1pXNcPGedpXXpGe6IzymumX8WEQ80YJ33wTHgfIhxj6Bg xZh8JikEwalRMM9+fzo2CNQQ4587pz3YKcTXy+5U0C5pMW4tn8o1Rc3OJuC1SYOJ5vu7gb4m5u+ YU80eV1WJvVmqaB8pLxA16R0RdWcpx15XZS1JEACMAGgPuqdFkAi7s0B5f4Tfsm3lhlZEsMKexP 0M9+d7MQFj4r0gL5rQnPwyE0K99TG9yKav92P1FEoZbW/VnGbopgBU+RqZqD9X6e6+ZlE8+8z17 hmmlh8CtJkYeQbbhaAsiGd15P3e83UlYVMUCnfiqzRZ66L/9pYUemihJamiUOoRh3Up85SWa/cA CY4ZJV6Fh2npZBWz8jENdLLeW0feHgTHANTqJR5Q+yhKZaLoHf0gJNRLskx6Efd0AD3sKXDQ7LP KXPsysopdaoN8qA1Nv9ISiPzSOntthw+Zm81/0QLStRvDXkP/Crxf150N5tgbJPh5nC+h/QWk2a lOoQ3sHEDuOeXu30oJUZqzl7GflbMDUNpWADY40G4129n3nZzWdajCMFWY2EqzMhmn2ZE0/3dxJ ZlntmePUshKqVwQ== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 09 Oct 2023 11:34:42 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779303955151554973 X-GMAIL-MSGID: 1779303955151554973 The PXA reset driver still uses the legacy GPIO interface for configuring and asserting the reset pin. Convert it to use the GPIO descriptor interface. Acked-by: Linus Walleij Reviewed-by: Bartosz Golaszewski Signed-off-by: Duje Mihanović --- arch/arm/mach-pxa/reset.c | 39 +++++++++++++-------------------------- arch/arm/mach-pxa/reset.h | 3 +-- arch/arm/mach-pxa/spitz.c | 6 +++++- 3 files changed, 19 insertions(+), 29 deletions(-) diff --git a/arch/arm/mach-pxa/reset.c b/arch/arm/mach-pxa/reset.c index 27293549f8ad..08bc104b9411 100644 --- a/arch/arm/mach-pxa/reset.c +++ b/arch/arm/mach-pxa/reset.c @@ -2,7 +2,7 @@ #include #include #include -#include +#include #include #include #include @@ -14,33 +14,20 @@ static void do_hw_reset(void); -static int reset_gpio = -1; +static struct gpio_desc *reset_gpio; -int init_gpio_reset(int gpio, int output, int level) +int init_gpio_reset(int output, int level) { - int rc; - - rc = gpio_request(gpio, "reset generator"); - if (rc) { - printk(KERN_ERR "Can't request reset_gpio\n"); - goto out; + reset_gpio = gpiod_get(NULL, "reset", GPIOD_ASIS); + if (IS_ERR(reset_gpio)) { + pr_err("Can't request reset_gpio: %pe\n", reset_gpio); + return PTR_ERR(reset_gpio); } if (output) - rc = gpio_direction_output(gpio, level); + return gpiod_direction_output(reset_gpio, level); else - rc = gpio_direction_input(gpio); - if (rc) { - printk(KERN_ERR "Can't configure reset_gpio\n"); - gpio_free(gpio); - goto out; - } - -out: - if (!rc) - reset_gpio = gpio; - - return rc; + return gpiod_direction_input(reset_gpio); } /* @@ -50,16 +37,16 @@ int init_gpio_reset(int gpio, int output, int level) */ static void do_gpio_reset(void) { - BUG_ON(reset_gpio == -1); + BUG_ON(IS_ERR(reset_gpio)); /* drive it low */ - gpio_direction_output(reset_gpio, 0); + gpiod_direction_output(reset_gpio, 0); mdelay(2); /* rising edge or drive high */ - gpio_set_value(reset_gpio, 1); + gpiod_set_value(reset_gpio, 1); mdelay(2); /* falling edge */ - gpio_set_value(reset_gpio, 0); + gpiod_set_value(reset_gpio, 0); /* give it some time */ mdelay(10); diff --git a/arch/arm/mach-pxa/reset.h b/arch/arm/mach-pxa/reset.h index 963dd190bc13..5864f61a0e94 100644 --- a/arch/arm/mach-pxa/reset.h +++ b/arch/arm/mach-pxa/reset.h @@ -13,10 +13,9 @@ extern void pxa_register_wdt(unsigned int reset_status); /** * init_gpio_reset() - register GPIO as reset generator - * @gpio: gpio nr * @output: set gpio as output instead of input during normal work * @level: output level */ -extern int init_gpio_reset(int gpio, int output, int level); +extern int init_gpio_reset(int output, int level); #endif /* __ASM_ARCH_RESET_H */ diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index c8fc333c2017..4b6360821396 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -1026,9 +1026,13 @@ static void spitz_restart(enum reboot_mode mode, const char *cmd) spitz_poweroff(); } +GPIO_LOOKUP_SINGLE(spitz_reset_gpio_table, NULL, "pxa-gpio", + SPITZ_GPIO_ON_RESET, "reset", GPIO_ACTIVE_HIGH); + static void __init spitz_init(void) { - init_gpio_reset(SPITZ_GPIO_ON_RESET, 1, 0); + gpiod_add_lookup_table(&spitz_reset_gpio_table); + init_gpio_reset(1, 0); pm_power_off = spitz_poweroff; PMCR = 0x00; From patchwork Mon Oct 9 18:34:02 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: 150260 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp2053925vqo; Mon, 9 Oct 2023 11:36:05 -0700 (PDT) X-Google-Smtp-Source: AGHT+IG7hpOeBeiYcYfAosWLb5FDNkHf7GkbPuuB1ZqyTvC7U2QWKemtdxvSOEkgLmwMDmafP4S3 X-Received: by 2002:a17:903:41c1:b0:1c4:1cd3:8068 with SMTP id u1-20020a17090341c100b001c41cd38068mr19975475ple.5.1696876565736; Mon, 09 Oct 2023 11:36:05 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696876565; cv=none; d=google.com; s=arc-20160816; b=x8TB/IXJ70EymSzcLL6VjhLP8k0oIz1Opa5uP9x9N/CdbrBhEkzDrJy44hdvv4nkLY ptQQshmRpl2Of4E/lKUnejo4UxQzqMVYgcEVMUc2coGetyXc124pEhgsBoB8LGJkwvpf +jkPYJU1clg6obKFZ5jxaWqzVSIvqoCJybGzb0iJo4BMI3EuL84lMJ6v4LSy9NOC3BPj PRB1eCpTffxO6qwnXEhCdyqRCMoX5AawJXNAvrDRMPqpa86JRwt4OQSvo2//ZxhAN4Xz IAExdRBQGmN9EwNNi/miHqfX7floNfYNbCyCthw6yCy6kQOixF8ciXuU+zbNhrFpgSEM QJaQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=fsBStHUAO/eDQMx8DeBhHt+MVhIMwdxnB6WbI4kEheg=; fh=1i6b6fQBnaiq0xRa3ncF4yVLO4LQ/VVJhygl9h24PAo=; b=YUgRSLTxUqs9wWYYV7ysqglaqK2dmaSgOx0Za5JdQl/CI2CICS0zGv2D0GpkrlFEtw mXllWaNC1uRaHZZTUOWAPWlgTGUL7RfZsCWOof8je9JVTfFGeRnbfKo9OLdSHXzfDLxx rrY0Wgq4WroRAycWUCX4TwGcA96Se06sWMRh+FnqVqtqFIEtTQQKz+B+RsQ9rTGefLmF vjtBns/LsvqribKNJsd+gy5OeXXlF7+u7A0zB1w5ISENDI3QzqdYd0+8hXCl/gjZYURS eWylGaDcFmvxOvW/YoL3GOx4T/qjn9Oso5LD1FGribzb4Hr9zVaknzwJgGy8ymY155S0 CYnw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from groat.vger.email (groat.vger.email. [2620:137:e000::3:5]) by mx.google.com with ESMTPS id t16-20020a63f350000000b0056a36f9eb0esi10375618pgj.15.2023.10.09.11.36.05 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Oct 2023 11:36:05 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) client-ip=2620:137:e000::3:5; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::3:5 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by groat.vger.email (Postfix) with ESMTP id 3C14E8078C86; Mon, 9 Oct 2023 11:35:13 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at groat.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1378081AbjJISeh (ORCPT + 18 others); Mon, 9 Oct 2023 14:34:37 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37778 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378066AbjJISeV (ORCPT ); Mon, 9 Oct 2023 14:34:21 -0400 Received: from mx.skole.hr (mx2.hosting.skole.hr [161.53.165.186]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C1B569C; Mon, 9 Oct 2023 11:34:20 -0700 (PDT) Received: from mx2.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id 65A1684FA3; Mon, 9 Oct 2023 20:34:19 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Mon, 09 Oct 2023 20:34:02 +0200 Subject: [PATCH RFT v7 5/6] ARM: pxa: Convert gumstix Bluetooth to GPIO descriptors MIME-Version: 1.0 Message-Id: <20231009-pxa-gpio-v7-5-c8f5f403e856@skole.hr> References: <20231009-pxa-gpio-v7-0-c8f5f403e856@skole.hr> In-Reply-To: <20231009-pxa-gpio-v7-0-c8f5f403e856@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?= , Bartosz Golaszewski X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=2189; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=Dr351d93QVsgkRcO0eJVhSNl8Av1yPt3sqc414h6Tbk=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlJEebBj0U6dcvkKZYfji6sgff0OT7/oLgt/Db9 seRjnSmcYOJAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZSRHmwAKCRCaEZ6wQi2W 4WoHD/9qzpUYFyCn3NmJahXpNgBW9xEyLZh8Lj8PO6cZO9kCTuIhy6whvaoinFhWz4/EcWxFU+I K4MdeBrDyxX5LLyH36oxy+7+KZp8M09WIx1E6dD+NlVoq5Nl8FLzk7RWIcR1mxKBVAQnh5UI6hD Ew0faz6Wr5dVPL8XNjZQ87+pSBGQ3oVqNUzIWkBm/bqvW9+picbMfALG5h36Jd+VS1V1S7ZqeCI 4j9VSvqPbGmrvIdE15h6tUVwIu7gkPXB5zkKVCmIR+JGKTDNl4cY2GM1JyCqE/HFlxBWZBDibsW aJOx4e/FFN7qlKtM1XIXPdENc/w75qPo7+0G/aEL2eDgIoFz22olGjSn6qUMT7r4IJwlfyObBFG H5yoZQ8CerOku8YXPwM34iX79THcCL1U5h4gEoeVLpzPtAbgHQG0fDyUVpgdPl6TnxetiEhy9oo F21S1X+3iZjrXGIhq9VGNh/oV5yMe2c38t+zPBr0iYWV+fEzOfQWVY5AONPVHG8eKDINjWVEQAo rt4edis5gUZolYUcO/3WkS89rCTL2Cci7POCmb19UdJLqQokU/mJBPxI1+t4EoDRu3PmJyDBV49 E3655N4U2IcjrckM2JTY2z8lIfLdZd2QncZOWwsiNUCbfLN905lYKf4kM7dwN6cLV7qVXUmO9LZ L5N8bhVA9zj6GbA== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 X-Spam-Status: No, score=2.8 required=5.0 tests=HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI,RCVD_IN_SBL_CSS,SPF_HELO_NONE,SPF_PASS autolearn=no autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on groat.vger.email Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (groat.vger.email [0.0.0.0]); Mon, 09 Oct 2023 11:35:13 -0700 (PDT) X-Spam-Level: ** X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779304041846496723 X-GMAIL-MSGID: 1779304041846496723 Gumstix still uses the legacy GPIO interface for resetting the Bluetooth device. Convert it to use the GPIO descriptor interface. Reviewed-by: Linus Walleij Reviewed-by: Bartosz Golaszewski 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) From patchwork Mon Oct 9 18:34:03 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: 150258 Return-Path: Delivered-To: ouuuleilei@gmail.com Received: by 2002:a59:a888:0:b0:403:3b70:6f57 with SMTP id x8csp2053316vqo; Mon, 9 Oct 2023 11:34:52 -0700 (PDT) X-Google-Smtp-Source: AGHT+IF0kewRHFl6aM26VidGs32vwonstAM5mm6w8b8R0lGiGPopnIz5rIB/wHkRYcZvyd3FpRez X-Received: by 2002:a05:6a20:441d:b0:153:353e:5e39 with SMTP id ce29-20020a056a20441d00b00153353e5e39mr17954736pzb.51.1696876492343; Mon, 09 Oct 2023 11:34:52 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1696876492; cv=none; d=google.com; s=arc-20160816; b=kC6+REziUzCfBWbDnFQ83XvmguNapARZAQjtHec395K48YgcRWML7HYDkSJP7c4Rzl GeRSZ6BCl/fI3XEyDOPehB7AmWHkvImQqhLaD1of/vYBF5znd6C8tVorIoep+WdoelZO d182ORsW15PicOdqy/MNTBXlZE5R+6DCCmix2zSynDnMa37TRLxvuk1qwUSczzJGDeHv RJ6th4+X9fYpIDZalbyAEHp3hLdLYtBN7K9GR2ksOoGj7dP3HE0EZkb08VpEngpHLaFT yIo8wF5q4G+AMMG2gHwncnGmTaMDlQM4fXzOr6/E/XUzB+uXEzc0/iMstUkgMi4pAOCq AxMg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:cc:to:in-reply-to:references:message-id :content-transfer-encoding:mime-version:subject:date:from; bh=PRqX7770o7BPmAexslLl+oRx4EMmjuTJZwmlA0A0AwM=; fh=1i6b6fQBnaiq0xRa3ncF4yVLO4LQ/VVJhygl9h24PAo=; b=YC80ILA7T4/BXjD3k5Rh1uOrI8bu/D031VDrCHCnRGA4qOWPgsltmjjjrDD8L8wyW8 /kUMND9VAjIRGXfwVZo5w8AQ+Thzm00a7iyblSy/3CXwOtOqfNmHs2QJt9nLNqNnsMLF 2JD9lVStJWkzAipoY0za5ipCFWBqVotRRC+7vLgT0T43K2QkHmEOoMNRyZONOEE9sPh1 O7cV1CaxtggKI/nAHJVSc7O5MYw3s9It8gc8xNJMJy0OJ4bSC5XLXv0wZ1vJJW3bTPw2 80ivhi7xwbKtQ8l/sV8+6KXNjX5gWwKUfUiu+9UsyP6JvMM/hzoE2VqJXDR2P88/rqpi lTUg== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from snail.vger.email (snail.vger.email. [23.128.96.37]) by mx.google.com with ESMTPS id kx3-20020a170902f94300b001bdf225d158si9639487plb.284.2023.10.09.11.34.52 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 09 Oct 2023 11:34:52 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) client-ip=23.128.96.37; Authentication-Results: mx.google.com; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.37 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: from out1.vger.email (depot.vger.email [IPv6:2620:137:e000::3:0]) by snail.vger.email (Postfix) with ESMTP id 9B552801B410; Mon, 9 Oct 2023 11:34:51 -0700 (PDT) X-Virus-Status: Clean X-Virus-Scanned: clamav-milter 0.103.10 at snail.vger.email Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1377576AbjJISen (ORCPT + 18 others); Mon, 9 Oct 2023 14:34:43 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37830 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1378090AbjJISeY (ORCPT ); Mon, 9 Oct 2023 14:34:24 -0400 Received: from mx.skole.hr (mx1.hosting.skole.hr [161.53.165.185]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id BE263A4; Mon, 9 Oct 2023 11:34:21 -0700 (PDT) Received: from mx1.hosting.skole.hr (localhost.localdomain [127.0.0.1]) by mx.skole.hr (mx.skole.hr) with ESMTP id 6460084F8D; Mon, 9 Oct 2023 20:34:20 +0200 (CEST) From: =?utf-8?q?Duje_Mihanovi=C4=87?= Date: Mon, 09 Oct 2023 20:34:03 +0200 Subject: [PATCH RFT v7 6/6] input: ads7846: Move wait_for_sync() logic to driver MIME-Version: 1.0 Message-Id: <20231009-pxa-gpio-v7-6-c8f5f403e856@skole.hr> References: <20231009-pxa-gpio-v7-0-c8f5f403e856@skole.hr> In-Reply-To: <20231009-pxa-gpio-v7-0-c8f5f403e856@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?= , Bartosz Golaszewski X-Mailer: b4 0.12.3 X-Developer-Signature: v=1; a=openpgp-sha256; l=4335; i=duje.mihanovic@skole.hr; h=from:subject:message-id; bh=NcbDmKIXdGdWL8XSS8YJEjNbViubL11WglEHV7KUeoM=; b=owEBbQKS/ZANAwAIAZoRnrBCLZbhAcsmYgBlJEebyeOXePkL+aYreAXfS84hKPxe/toDWYaiA EkA/bPFQkGJAjMEAAEIAB0WIQRT351NnD/hEPs2LXiaEZ6wQi2W4QUCZSRHmwAKCRCaEZ6wQi2W 4VQgEACDVvtipcfd9IumqldOY0O+UDknBZPOMqclvchmm27kuH/w4yf9VcBBfFYIUsYdjTt9Z+J PxGgKjf1AIwJEwqnXeWkh+v5S0IBhZ9cZ7PeG4uavj/bCuSbo0y51EC32bfvj/x+mVlCmBgCP1R W0MmCbgfdevP5nlGK+vfwxchz0abE0ga171R16RmRTPac8XxdV/1LzdwSRzGq76Iw+oCDd2hQFn LtwnUbu4MvRcR/lSlBZiV9OCDx+Dcp+qF1DeWAq5YQn4kHkZ8xHu2I2OItOyvdQ5xPD0r+mc2rA Nm7SxpCstNy4N/tszrA9yrOnK9T2/ma451e1TZZOtsOarQNJil757769VzQTPhbBSQ6HyziO0wW 4Us80MDfg/aB8jib/KsLtHlcceLSaVxr51/XcZyswHmOXpDuHXzS0Z2lr1YQlzgxpxgEa37k0ej JWnIbA6hyVX1qfbC1WpKVt5XrJI31RlR2Mhlw3Q2VqPHFrNOvAeOrOPDZWu4ZCURvJxJi6BI2hV L1pKN99cD6OrGE9npk85vEa9rPvXRoGxqgYgke2iGSLOyJAWKRWA6dDz8MP1NS5IbzXiLu4rftS rkh2ye+OKNAdVw4ojBGrVoxTOBrzWWzo9o56veT7ZhaXrCx7NClPeFowOSAkuobOOL6gT9MwDNj xTtTUuxbQ0P0CrQ== X-Developer-Key: i=duje.mihanovic@skole.hr; a=openpgp; fpr=53DF9D4D9C3FE110FB362D789A119EB0422D96E1 X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,SPF_HELO_NONE, SPF_PASS autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org X-Greylist: Sender passed SPF test, not delayed by milter-greylist-4.6.4 (snail.vger.email [0.0.0.0]); Mon, 09 Oct 2023 11:34:51 -0700 (PDT) X-getmail-retrieved-from-mailbox: INBOX X-GMAIL-THRID: 1779303964929694694 X-GMAIL-MSGID: 1779303964929694694 If this code is left in the board file, the sync GPIO would have to be separated into another lookup table during conversion to the GPIO descriptor API (which is also done in this patch). The only user of this code (Sharp Spitz) is also converted in this patch. Suggested-by: Linus Walleij Reviewed-by: Linus Walleij Acked-by: Mark Brown Reviewed-by: Bartosz Golaszewski Signed-off-by: Duje Mihanović --- arch/arm/mach-pxa/spitz.c | 12 ++---------- drivers/input/touchscreen/ads7846.c | 22 +++++++++++++++------- include/linux/spi/ads7846.h | 1 - 3 files changed, 17 insertions(+), 18 deletions(-) diff --git a/arch/arm/mach-pxa/spitz.c b/arch/arm/mach-pxa/spitz.c index 4b6360821396..44336a498699 100644 --- a/arch/arm/mach-pxa/spitz.c +++ b/arch/arm/mach-pxa/spitz.c @@ -522,22 +522,12 @@ static inline void spitz_leds_init(void) {} * SSP Devices ******************************************************************************/ #if defined(CONFIG_SPI_PXA2XX) || defined(CONFIG_SPI_PXA2XX_MODULE) -static void spitz_ads7846_wait_for_hsync(void) -{ - while (gpio_get_value(SPITZ_GPIO_HSYNC)) - cpu_relax(); - - while (!gpio_get_value(SPITZ_GPIO_HSYNC)) - cpu_relax(); -} - static struct ads7846_platform_data spitz_ads7846_info = { .model = 7846, .vref_delay_usecs = 100, .x_plate_ohms = 419, .y_plate_ohms = 486, .pressure_max = 1024, - .wait_for_sync = spitz_ads7846_wait_for_hsync, }; static struct gpiod_lookup_table spitz_ads7846_gpio_table = { @@ -545,6 +535,8 @@ static struct gpiod_lookup_table spitz_ads7846_gpio_table = { .table = { GPIO_LOOKUP("gpio-pxa", SPITZ_GPIO_TP_INT, "pendown", GPIO_ACTIVE_LOW), + GPIO_LOOKUP("gpio-pxa", SPITZ_GPIO_HSYNC, + "sync", GPIO_ACTIVE_LOW), { } }, }; diff --git a/drivers/input/touchscreen/ads7846.c b/drivers/input/touchscreen/ads7846.c index faea40dd66d0..139b0f3735d0 100644 --- a/drivers/input/touchscreen/ads7846.c +++ b/drivers/input/touchscreen/ads7846.c @@ -138,8 +138,7 @@ struct ads7846 { void *filter_data; int (*get_pendown_state)(void); struct gpio_desc *gpio_pendown; - - void (*wait_for_sync)(void); + struct gpio_desc *sync; }; enum ads7846_filter { @@ -636,9 +635,15 @@ static const struct attribute_group ads784x_attr_group = { }; /*--------------------------------------------------------------------------*/ - -static void null_wait_for_sync(void) +static void ads7846_wait_for_sync_gpio(struct ads7846 *ts) { + if (!ts->sync) + return; + while (!gpiod_get_value(ts->sync)) + cpu_relax(); + + while (gpiod_get_value(ts->sync)) + cpu_relax(); } static int ads7846_debounce_filter(void *ads, int data_idx, int *val) @@ -803,7 +808,7 @@ static void ads7846_read_state(struct ads7846 *ts) packet->last_cmd_idx = 0; while (true) { - ts->wait_for_sync(); + ads7846_wait_for_sync_gpio(ts); m = &ts->msg[msg_idx]; error = spi_sync(ts->spi, m); @@ -1261,8 +1266,6 @@ static int ads7846_probe(struct spi_device *spi) ts->penirq_recheck_delay_usecs = pdata->penirq_recheck_delay_usecs; - ts->wait_for_sync = pdata->wait_for_sync ? : null_wait_for_sync; - snprintf(ts->phys, sizeof(ts->phys), "%s/input0", dev_name(dev)); snprintf(ts->name, sizeof(ts->name), "ADS%d Touchscreen", ts->model); @@ -1361,6 +1364,11 @@ static int ads7846_probe(struct spi_device *spi) if (err) return err; + ts->sync = devm_gpiod_get_optional(dev, "sync", GPIOD_IN); + if (IS_ERR(ts->sync)) + return dev_err_probe(dev, PTR_ERR(ts->sync), + "Failed to get sync GPIO"); + err = input_register_device(input_dev); if (err) return err; diff --git a/include/linux/spi/ads7846.h b/include/linux/spi/ads7846.h index a04c1c34c344..fa7c4f119023 100644 --- a/include/linux/spi/ads7846.h +++ b/include/linux/spi/ads7846.h @@ -38,7 +38,6 @@ struct ads7846_platform_data { int gpio_pendown_debounce; /* platform specific debounce time for * the gpio_pendown */ int (*get_pendown_state)(void); - void (*wait_for_sync)(void); bool wakeup; unsigned long irq_flags; };