From patchwork Mon Jul 22 06:23:23 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 11051679 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 9E9996C5 for ; Mon, 22 Jul 2019 06:24:16 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 888CA283AD for ; Mon, 22 Jul 2019 06:24:16 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 79D6D28511; Mon, 22 Jul 2019 06:24:16 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 26E6E283AD for ; Mon, 22 Jul 2019 06:24:16 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:Message-Id:Date: Subject:To:From:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To: References:List-Owner; bh=1aP4jfYTqfLm5z8gAlVqKf1m8g+cp7GoU9++ogLsxxk=; b=RGR huTC3ambF09aMhyVdL0BhwKoic3L4k26wbKIqssDbJujDqovaI6/wifEBCDlPuVv2NH8gbfRQqagM SYe5GbSFNBK7WFwreV7J5OI/uijeax0YZIurdUNS6tBn0G96HoeEWHBhgUcfhyiOWAaZ5mjCllq7I BiQKDW1KiBnSJdqtdE0bxayVaEpqoQoGIoIe5S54dcXbvndL1ohWkkXmVPLRNPQhkS17ihsAa6rkl 0lL8Hx7osykIVyWY/CTRq63QC3RbrREXXer4xlS514kBhGVa6uyjMGamFH9bnTpGfwkXnQLy72HjK 5jqb9qMFLXtGcBnBffypSSxI/BYrdKg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hpRk7-0002UC-95; Mon, 22 Jul 2019 06:24:15 +0000 Received: from mout.gmx.net ([212.227.17.22]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hpRjm-0002HH-6v; Mon, 22 Jul 2019 06:23:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1563776616; bh=C/BKlEwyumlArmwD/E6wgYAWdwQ1Y8+GdUItO4AwDB8=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date; b=OF7ORH1kF6/Jm6qRQVl13FGHOStoa4RCDp0c8+GTv9hJDPuD8BCHtSoWiB18kGngM gRvPEOfcQOuwo7lRhSSLb0qsOV6ylGZtc1PJ1jeMBjudXmLmkB61zhXboD6sOVJEkF vr9Zg/OVlPCx1pPMG4yMBMtulAET3WX3VdCAStlA= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([37.4.249.98]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0LlGoc-1iOE3F3Eco-00b2gg; Mon, 22 Jul 2019 08:23:35 +0200 From: Stefan Wahren To: Eric Anholt , Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Matthias Brugger , Rob Herring , Mark Rutland , Linus Walleij , Michael Turquette , Stephen Boyd , Ulf Hansson , Adrian Hunter Subject: [PATCH 10/18] mmc: sdhci-iproc: Add support for emmc2 of the BCM2711 Date: Mon, 22 Jul 2019 08:23:23 +0200 Message-Id: <1563776607-8368-1-git-send-email-wahrenst@gmx.net> X-Mailer: git-send-email 2.7.4 X-Provags-ID: V03:K1:GxIuRAwNwjQ8P41WK7RQ/jyBcX+5REqGD0yM69ZZYhZQaHNsw7q EaToozX93r4CKrb3WTg2CUJz3UBqmlifhGylbY5Im3SzMrQn5BTJhL01pFO5RAfv0gmFJKm 9rX7TpJnETIl1e6XJv2U11q4XdPjsOG18MPswiTv8InzARGumCVTtFlWubXLSlRv+NZr26M 6Vv17Byc488qhwM0Qk5lA== X-UI-Out-Filterresults: notjunk:1;V03:K0:+GtNzptVxGY=:YCCTEBW68gIi4LhAv/5Nwm cvvvKUl6h7apzwQMmuZPq2cNyteRgKStyl4yDNYwViCjPdrLYJvBtx3x6BybQiLXec8FAjaAb hwkzHG7UM8WnmGlmSxl0WM+qEcr4KJjwbaaJrNqP0L4lp/oPot3JwwJamZnnAVVoUUWEdySpf WAi1XgrtigWzI/XfOC3QABckJ9XBU2vqXRvNWJ1IB+sEM1sSq7tvJ9r+WdQVCCuADSQPbBzVL uuJf0spiug++kcSKm4fm6lJpdzVAZloCAqVKSNKFu2hcJVYib6L9d1rUceaFJ6LkfxbVzT/Up 7E8wCjevp7gyvtAmWXv4YR735Pk5yYAYVilbKCnscU5AsonRGYFzWPMiV/mKcfq5hfXBIVDuU 6aQjSsg8d4RuofIUaMcvJVI+s2O2E0pvntoHd4zocqQ1jz230i58llR1EbpMQzy4YrXTgoWFr Itl3cojCb0jh2DE8CkKOb9aokTLUAa4/HZO3hO7PAtMf+Vrr4S46zwHqb24dwD6P7BqF2oG5I 8bpMi4ahGUBktmRYxk0YMY91+svrQTTJk1CBi0A56mJJiGahxmwb8zcdRCPxmA2l6NF9Sa7Yt sQ1R4Hbr+Hq0eCpAKCVQ3WVrLcQyFvDI8+zSS/rONT1EoW9fbPAs8qhVtTCelJsEz1CC1oPyi ZClEoeIU3KLITsj4F4PLa2V6MgS7LjhmvRFCabBAbG5ypDzRc76q2r/DicZzHnnrbdPEBFdDP r/kid2S9o2DDnT6ZniIan9oyGGBh7hII1yGSrOXWFrAcyEWOe8WU5gWcFPzvaI107wQZwS7VN zzhnzNYSkqs1pQuHD8I3hC+A6qRvhwgpp2QuUY8tf+6ve3QWfiQT3Tr5vdMHN6mkmMsPJWGRN xJWP3etEuRD8Ai/K5OxkHWRpDA8WVhKo7hwNbvN9r16s692Q5dARQkaapYFwlEMmXKkA6Gz7u /fnxYeH7dTTvGEWtTJFWR+zzBSsCvvFS42U0snB1KswFlPKzMVVn1B3XHgdIW/HnktbAokwW/ vSRjL4XBseqsrNRrR7YNCjRDhsSwVBAd2e8ZL3uq3TYvZx/IGCI26PG/T9iWykMWQHssW1OF/ gJsK9rtyl0BsQU= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190721_232354_587962_7790CF45 X-CRM114-Status: GOOD ( 11.52 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-mmc@vger.kernel.org, linux-gpio@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Stefan Wahren MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The additional emmc2 interface of the BCM2711 is an improved version of the old emmc controller, which is able to provide DDR50 mode on the Raspberry Pi 4. Except 32 bit only register access no other quirks are known yet. Signed-off-by: Stefan Wahren Reviewed-by: Matthias Brugger --- drivers/mmc/host/sdhci-iproc.c | 9 +++++++++ 1 file changed, 9 insertions(+) -- 2.7.4 diff --git a/drivers/mmc/host/sdhci-iproc.c b/drivers/mmc/host/sdhci-iproc.c index 2feb4ef..2b9cdcd 100644 --- a/drivers/mmc/host/sdhci-iproc.c +++ b/drivers/mmc/host/sdhci-iproc.c @@ -261,8 +261,17 @@ static const struct sdhci_iproc_data bcm2835_data = { .mmc_caps = 0x00000000, }; +static const struct sdhci_pltfm_data sdhci_bcm2711_pltfm_data = { + .ops = &sdhci_iproc_32only_ops, +}; + +static const struct sdhci_iproc_data bcm2711_data = { + .pdata = &sdhci_bcm2711_pltfm_data, +}; + static const struct of_device_id sdhci_iproc_of_match[] = { { .compatible = "brcm,bcm2835-sdhci", .data = &bcm2835_data }, + { .compatible = "brcm,bcm2711-emmc2", .data = &bcm2711_data }, { .compatible = "brcm,sdhci-iproc-cygnus", .data = &iproc_cygnus_data}, { .compatible = "brcm,sdhci-iproc", .data = &iproc_data }, { } From patchwork Mon Jul 22 06:23:24 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 11051675 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 24D4B912 for ; Mon, 22 Jul 2019 06:24:02 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 0E2A52848B for ; Mon, 22 Jul 2019 06:24:02 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 0203528511; Mon, 22 Jul 2019 06:24:01 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 9B665283AD for ; Mon, 22 Jul 2019 06:24:01 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=9seYPSkzoz9ZdNSY06I1nx2TjNo0iqJ7OHMLvLE+0mA=; b=Zo6WttuUGt07DbcLeFXa5OTFim F9F69r9sq5xC0YWAFcR3+enFt2dKrt65bJaHNqBKz5hgg53GVuawOPrbzQoPrMamc5GyOYiexN9fU oKOk1PPaM9M0bI+vYXAzSUr88H/dbjWILja3XSELvpE+zgzXkim0CtDJGuPGbs9c8BApMnAnIVBhd 5BYXUpPauwGCMlVpjam+sCQ2x2lwZ8NMk6qug3dB6yU50OF3v5EjVrxLKjZrukWVEVFczT27Ju4eI 7p6coRPQtY1jtE84Qj5YJ/Z8uKZhIXRa22u9aDITSmJL7gE+5uOHdg7lBLuDMQC94dvHIuI7qkgUh nTAXvRRA==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hpRjo-0002IP-S6; Mon, 22 Jul 2019 06:23:56 +0000 Received: from mout.gmx.net ([212.227.17.22]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hpRjm-0002HI-6w; Mon, 22 Jul 2019 06:23:55 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1563776616; bh=p7EuEN+WXnzmcDfw8Q5gWYTDfwT+rrLjIA0t4iR5+DU=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=Fs7+OVDivi+bxt7RG4MgsXL9iMFsdsFLsu8M/Ofw0D3bG2jayz7C5BLqxT0Jz7ChV xfSd9tEIGIK0/QkidlIkkj75mePWfRAai0gs2I1knyTADe0T6oKDWoRHiy6gawpFiA JqIYS6XbhH7MFrv06OwjEF/7cW4bl9/PpAgNiDvo= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([37.4.249.98]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0MaV3V-1i8uWX2ZBZ-00KCgz; Mon, 22 Jul 2019 08:23:36 +0200 From: Stefan Wahren To: Eric Anholt , Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Matthias Brugger , Rob Herring , Mark Rutland , Linus Walleij , Michael Turquette , Stephen Boyd , Ulf Hansson , Adrian Hunter Subject: [PATCH 11/18] dt-bindings: pinctrl: bcm2835: Add brcm, bcm2711 compatible Date: Mon, 22 Jul 2019 08:23:24 +0200 Message-Id: <1563776607-8368-2-git-send-email-wahrenst@gmx.net> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1563776607-8368-1-git-send-email-wahrenst@gmx.net> References: <1563776607-8368-1-git-send-email-wahrenst@gmx.net> X-Provags-ID: V03:K1:L6MvCiJSUEBAg1rTPB7ACRbeRDXsOwcCOZcjaEYDTpcasQM/U5z 3+lW4tcXkM8Ok5cyjtm399i4Fiin6mdeNhwTW8WSrDg4LkG9sXABaWVT7PNX5VjBaS2Oe+m qfJNByhfka/+Pn7gu74tdiZ60bAd+LH3IleO0W+0Rr1Ut2+3yAGprJDmJMjKR+1P54l7v2I DFjYVlyuh3cTv0FNKCGIg== X-UI-Out-Filterresults: notjunk:1;V03:K0:MJTh9r2apxo=:iwLc9ZJ3pv2oOMTOXOcVge I9yPnQoAGYB7VvLujM0XRTWRzYaDGW4JBSR/9CVMI/KP9szSSAFVsF1IFFeJXqD0Sc60mwSLF BwO4AhkEUbvo4tdx/7dhG780XfC9wNkSE4Hld9prwxaZW7Mw6+coZBi6pfxmRKDB8PEI++dy+ SXHt9d9A2jTwY1k7xamdHOBDkgrxVIaywxHvImhzCxx82RvZCAg7xgb2faAVHLUMF45Jp41Ap B97Y8dBBk43dejfqln2C8iKdbH04YnTxzARdUZInRacl6JyO5px44kJhG9meTJ7zXISls5mhB Xw7gAwZF65p7eqhhM8ELp3lRE4omt8XCrXWmxgO2H0j1edeKFdZ4QWBLYw000UoL8LmSxD6ia c19xye46n7nWEE/bCuXPgYrepKyZlmaz0YZHUZ9E+tru35fOm1gMZk+Dj0r0Mc9mO1O1Fey64 fVZMwREad/Pko4gXl3mSeVzECi/GUNn+UPASk8yJXUY1mP8Vh6wnkefdWVomTtGsu7aa+fSLb JzWLq2hYWAMYLQRW3ioihAQVgsp+2EoZwKiEg/AIB1JY9UbRjPg3+RLNGS9eDWTIHF1cpoPVC HaNrIqDL9YBxl9pTmk6V2jRAwqsHe+LpwXPH20Ug5VzWstd3tMbbO+U9twwVBAuLW2t1LRZY9 2f1nS2+UWqCRgKTpyyP5mYjShHKzpOcn11lUomyoDj261j6AotDFCGIHnasTbOjXAvoDXqMfi DcyYFJYLj1a4AnFBZ5tr89H/HZy3xNrjWiaxKEEW7furQ9U9kS8pUGVsD7qW4n2a2cS22d0T/ CPveiO/8mgjF6ApfsVWCuFZn84if6SmqUewB1Yrv93ZZpsgMOcLgU0H/iiOVGUh5GtHHKKDca w0ySOjNFi2LKkRF4iwQHJe6DQuOi42H9Sou+fQmkm0nDCBPa4WtCfTmQSHDbS/zquaTXcUzP3 B8qwWJMDZGekfEmnBIf2OvFDQ38pjdb3XOOeCP37b+VyYD13j66Zgtq28LamiEbwlnyZgWcuv OmbTgKBzmetHA/mjgkR5vpNQF6ShB88cLDK19LNIiImiTVfVeX9/35OwHVMfwCUr5CpRp3elI sshxoWksxyjM38= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190721_232354_588267_0B161E05 X-CRM114-Status: GOOD ( 12.74 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-mmc@vger.kernel.org, linux-gpio@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Stefan Wahren MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Add a new compatible for the BCM2711. Signed-off-by: Stefan Wahren --- Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt | 1 + 1 file changed, 1 insertion(+) -- 2.7.4 diff --git a/Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt b/Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt index ac6d614..3cab733 100644 --- a/Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt +++ b/Documentation/devicetree/bindings/pinctrl/brcm,bcm2835-gpio.txt @@ -8,6 +8,7 @@ Required properties: - compatible: should be one of: "brcm,bcm2835-gpio" - BCM2835 compatible pinctrl "brcm,bcm7211-gpio" - BCM7211 compatible pinctrl + "brcm,bcm2711-gpio" - BCM2711 compatible pinctrl - reg: Should contain the physical address of the GPIO module's registers. - gpio-controller: Marks the device node as a GPIO controller. - #gpio-cells : Should be two. The first cell is the pin number and the From patchwork Mon Jul 22 06:23:25 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Stefan Wahren X-Patchwork-Id: 11051681 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id A4EAE912 for ; Mon, 22 Jul 2019 06:24:34 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 8CDE0283AD for ; Mon, 22 Jul 2019 06:24:34 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 7EC0228511; Mon, 22 Jul 2019 06:24:34 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,FREEMAIL_FROM,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id 03E06283AD for ; Mon, 22 Jul 2019 06:24:34 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:MIME-Version:Cc:List-Subscribe: List-Help:List-Post:List-Archive:List-Unsubscribe:List-Id:References: In-Reply-To:Message-Id:Date:Subject:To:From:Reply-To:Content-ID: Content-Description:Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc :Resent-Message-ID:List-Owner; bh=u9FJSNwO0ToNETzV5ipIz1O6ex8pvzvlwL+WWcg4iaQ=; b=dhYLRosbb5T6l0HVR+Bbazbzqt cLmhMv606dq+4sAK5Lh9iGK8u6pBeImBGsJg1riTeTvHUYSy9uNYRInngH7ErlrAnH+xUg5dIe4et 2V/K1pPEvoTulCceoNc6mqBEZJ5VVula+vVUT0yh5dr+gTH3p+jbXp3oS4t5H1DgRzZ157Dr6Y4Od A7uM4lofWjjAx3vmRPnELos7Fmxj696Wb8TUw/TvvUHBdYnG9AI2r33bzX2NG/VT6rG2jVKaCIiH7 0ScRZI+r6RL3nmMyvlE8kUT3TFS0XZwBob7YUTWVEYmQg889aXMnoCKm/bjLF8c3qtbv5FRabCIxf PIi2LNGg==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hpRkP-0002k1-Gk; Mon, 22 Jul 2019 06:24:33 +0000 Received: from mout.gmx.net ([212.227.17.21]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hpRjm-0002HP-JQ; Mon, 22 Jul 2019 06:23:57 +0000 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=gmx.net; s=badeba3b8450; t=1563776617; bh=z18lzCFKYvrFVHVAu6EYGbfVShdzolb5W7gum8yzyTw=; h=X-UI-Sender-Class:From:To:Cc:Subject:Date:In-Reply-To:References; b=PMdr0Xs/BDri+k3ruvU8E9f/PTmshqM6ZbByqU7iwcn/Dy/nXqizy9VAvnSXbE4Ld c6S6qO0zAsM7gJtOwYOMZCW7Dh+aFAwq1bwafDg0YjXgeO5SL0JwHJzx2vLHyPFzbU 5jn8oAn2ygsdSWwzmq8YDJGK5e8hvYoUtBOn4OfM= X-UI-Sender-Class: 01bb95c1-4bf8-414a-932a-4f6e2808ef9c Received: from localhost.localdomain ([37.4.249.98]) by mail.gmx.com (mrgmx102 [212.227.17.168]) with ESMTPSA (Nemesis) id 0M7UUd-1ib4501cDX-00xMvP; Mon, 22 Jul 2019 08:23:37 +0200 From: Stefan Wahren To: Eric Anholt , Florian Fainelli , Ray Jui , Scott Branden , Nicolas Saenz Julienne , Matthias Brugger , Rob Herring , Mark Rutland , Linus Walleij , Michael Turquette , Stephen Boyd , Ulf Hansson , Adrian Hunter Subject: [PATCH 12/18] pinctrl: bcm2835: Add support for BCM2711 pull-up functionality Date: Mon, 22 Jul 2019 08:23:25 +0200 Message-Id: <1563776607-8368-3-git-send-email-wahrenst@gmx.net> X-Mailer: git-send-email 2.7.4 In-Reply-To: <1563776607-8368-1-git-send-email-wahrenst@gmx.net> References: <1563776607-8368-1-git-send-email-wahrenst@gmx.net> X-Provags-ID: V03:K1:u2uoodlY+pN+Yt0/KqiyLNu3m1qW+77cDAglaFHSsNtyIg4arci xpcOOoDUd4oUqtApolU0S4riyjvuP7IazUsOruOL4gmvzzQAreVjN9S6bt8Y46SwuQoK0Jd EBDWaBdxfUT1ChZRjSanjF2HfBTYO/cdkiLVN4RGvAav0FNdVPzP+MJ4aOHm1O5jjhNXkeI r5HE7wDU/vL5e8wDpPH+g== X-UI-Out-Filterresults: notjunk:1;V03:K0:AveKtSrtcwk=:/pzazmDMPlHZNGUm/hg4oZ RfPB3NsoyQuPW1rNfOrOraTHLYBGEGpo2ie8+mlZUIeCqcfXVZ58OF8sKwMyvp/dNYUAfnUJQ yzLs+tR/REyMsUJZtHvd+HAJMOQ0920zlJkxUPTxBk+mAWaCQfGJRtRcjTWDCjE5KrrrN9icO M5ghuBmnGrVpga9pF7ViO5HDzLq0DeA/UVU5dTAxX5ia+s9GnC71ycKrVsDh2MP0h8d7pmM8f DyYL8n0/ioWgoUyolIQ7S6KT+sDGxzrPBB70rXZtiSQH4Le7WPA+XS6l5RfGCwWLo/VfXhogh xGuH5uH5I1bwWQZS/lDIugk7BZndIxbGUUX440kRawtl/D3eyq9fqVUH6+vBkE8iaCBwm9jfm orj92IXKnVadIVdZ5rkIXsaEo31dJtmsAAwxKauT0gGo/wGWr3qTzXtmZJ+JSP86qG86Xaalg IIsTgYbW+rDueI0JZRob1PivQJMwZBZZFeuyTNtmu9pNtDuSHqmcDH+RB70EBa5MsxeuvaEiJ Vu0Kct6C8uh5O/rg9865chVRaJ3jvvCx9w6WhGhjUjW5Utn4Mkv6v6h2oNM+kQoER1pX/upY9 BtLe9LbVauRG5chUP1v8xQ3DEHUrr4Y7FnytzINlVcJozUT/Of4LW+OomvOICYm5OQZopmHEG LobIZaV5B1KW6KqX7ZBZ/GFLDbpHVL5ym7nKlHRDJm07oMXVSvG/SKc+H7uxoRwQyuHwUNov0 1Kao4EwrejKk0tHRbzWtXqX/2mjRajuzN8SCSHbxGVi5e6J8F+Uiv7eCeYJSaFftVcpOmyzA3 peIniS1wwXbIwqqTh/P+bQ+4y5PI6uVqx15Ybui2mxcpmAAKjqm18a0PDSpSnCgGZzG/NTD00 CK1FUG534G4vdRQqDWMUH/ig0wFPpigA+4/bhccyAzCXgNGx5iW8eQe79OICo9aHbevl6cd4Y egwG3kZmUSJANPU/XJ+1J5Wyk/MMczykf86G7QJwBS2ayvQsCn9WkyNLxvHQJyyvDxJZ+jJnr hH4tQ/kOqMDkjgOnjFE1ooBF8PoYt/Ig+NNcjH70tcZ0W/N0Y+PPqd0DqXZb73nUV1LtQnq5X ODTtmZY0TNorNQ= X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190721_232354_933420_B862D5B7 X-CRM114-Status: GOOD ( 18.88 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: linux-mmc@vger.kernel.org, linux-gpio@vger.kernel.org, bcm-kernel-feedback-list@broadcom.com, linux-rpi-kernel@lists.infradead.org, linux-arm-kernel@lists.infradead.org, Stefan Wahren MIME-Version: 1.0 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP The BCM2711 has a new way of selecting the pull-up/pull-down setting for a GPIO pin. The registers used for the BCM2835, GP_PUD and GP_PUDCLKn0, are no longer connected. A new set of registers, GP_GPIO_PUP_PDN_CNTRL_REGx must be used. This commit will add a new compatible string "brcm,bcm2711-gpio" and the kernel driver will use it to select which method is used to select pull-up/pull-down. This patch based on a patch by Al Cooper which was intended for the BCM7211. This is a bugfixed and improved version. Signed-off-by: Stefan Wahren --- drivers/pinctrl/bcm/pinctrl-bcm2835.c | 105 ++++++++++++++++++++++++++++++++-- 1 file changed, 100 insertions(+), 5 deletions(-) -- 2.7.4 diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c index 183d1ff..a493205 100644 --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c @@ -57,15 +57,24 @@ #define GPAFEN0 0x88 /* Pin Async Falling Edge Detect */ #define GPPUD 0x94 /* Pin Pull-up/down Enable */ #define GPPUDCLK0 0x98 /* Pin Pull-up/down Enable Clock */ +#define GP_GPIO_PUP_PDN_CNTRL_REG0 0xe4 /* 2711 Pin Pull-up/down select */ #define FSEL_REG(p) (GPFSEL0 + (((p) / 10) * 4)) #define FSEL_SHIFT(p) (((p) % 10) * 3) #define GPIO_REG_OFFSET(p) ((p) / 32) #define GPIO_REG_SHIFT(p) ((p) % 32) +#define PUD_2711_MASK 0x3 +#define PUD_2711_REG_OFFSET(p) ((p) / 16) +#define PUD_2711_REG_SHIFT(p) (((p) % 16) * 2) + /* argument: bcm2835_pinconf_pull */ #define BCM2835_PINCONF_PARAM_PULL (PIN_CONFIG_END + 1) +#define BCM2711_PULL_NONE 0x0 +#define BCM2711_PULL_UP 0x1 +#define BCM2711_PULL_DOWN 0x2 + struct bcm2835_pinctrl { struct device *dev; void __iomem *base; @@ -975,6 +984,77 @@ static const struct pinconf_ops bcm2835_pinconf_ops = { .pin_config_set = bcm2835_pinconf_set, }; +static void bcm2711_pull_config_set(struct bcm2835_pinctrl *pc, + unsigned int pin, unsigned int arg) +{ + u32 shifter; + u32 value; + u32 off; + + off = PUD_2711_REG_OFFSET(pin); + shifter = PUD_2711_REG_SHIFT(pin); + + value = bcm2835_gpio_rd(pc, GP_GPIO_PUP_PDN_CNTRL_REG0 + (off * 4)); + value &= ~(PUD_2711_MASK << shifter); + value |= (arg << shifter); + bcm2835_gpio_wr(pc, GP_GPIO_PUP_PDN_CNTRL_REG0 + (off * 4), value); +} + +static int bcm2711_pinconf_set(struct pinctrl_dev *pctldev, + unsigned int pin, unsigned long *configs, + unsigned int num_configs) +{ + struct bcm2835_pinctrl *pc = pinctrl_dev_get_drvdata(pctldev); + u32 param, arg; + int i; + + for (i = 0; i < num_configs; i++) { + param = pinconf_to_config_param(configs[i]); + arg = pinconf_to_config_argument(configs[i]); + + switch (param) { + /* convert legacy brcm,pull */ + case BCM2835_PINCONF_PARAM_PULL: + if (arg == BCM2835_PUD_UP) + arg = BCM2711_PULL_UP; + else if (arg == BCM2835_PUD_DOWN) + arg = BCM2711_PULL_DOWN; + else + arg = BCM2711_PULL_NONE; + + bcm2711_pull_config_set(pc, pin, arg); + break; + + /* Set pull generic bindings */ + case PIN_CONFIG_BIAS_DISABLE: + bcm2711_pull_config_set(pc, pin, BCM2711_PULL_NONE); + break; + case PIN_CONFIG_BIAS_PULL_DOWN: + bcm2711_pull_config_set(pc, pin, BCM2711_PULL_DOWN); + break; + case PIN_CONFIG_BIAS_PULL_UP: + bcm2711_pull_config_set(pc, pin, BCM2711_PULL_UP); + break; + + /* Set output-high or output-low */ + case PIN_CONFIG_OUTPUT: + bcm2835_gpio_set_bit(pc, arg ? GPSET0 : GPCLR0, pin); + break; + + default: + return -ENOTSUPP; + } + } /* for each config */ + + return 0; +} + +static const struct pinconf_ops bcm2711_pinconf_ops = { + .is_generic = true, + .pin_config_get = bcm2835_pinconf_get, + .pin_config_set = bcm2711_pinconf_set, +}; + static struct pinctrl_desc bcm2835_pinctrl_desc = { .name = MODULE_NAME, .pins = bcm2835_gpio_pins, @@ -990,6 +1070,18 @@ static struct pinctrl_gpio_range bcm2835_pinctrl_gpio_range = { .npins = BCM2835_NUM_GPIOS, }; +static const struct of_device_id bcm2835_pinctrl_match[] = { + { + .compatible = "brcm,bcm2835-gpio", + .data = &bcm2835_pinconf_ops, + }, + { + .compatible = "brcm,bcm2711-gpio", + .data = &bcm2711_pinconf_ops, + }, + {} +}; + static int bcm2835_pinctrl_probe(struct platform_device *pdev) { struct device *dev = &pdev->dev; @@ -997,6 +1089,8 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) struct bcm2835_pinctrl *pc; struct resource iomem; int err, i; + const struct of_device_id *match; + BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_pins) != BCM2835_NUM_GPIOS); BUILD_BUG_ON(ARRAY_SIZE(bcm2835_gpio_groups) != BCM2835_NUM_GPIOS); @@ -1073,6 +1167,12 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) bcm2835_gpio_irq_handler); } + match = of_match_node(bcm2835_pinctrl_match, pdev->dev.of_node); + if (match) { + bcm2835_pinctrl_desc.confops = + (const struct pinconf_ops *)match->data; + } + pc->pctl_dev = devm_pinctrl_register(dev, &bcm2835_pinctrl_desc, pc); if (IS_ERR(pc->pctl_dev)) { gpiochip_remove(&pc->gpio_chip); @@ -1087,11 +1187,6 @@ static int bcm2835_pinctrl_probe(struct platform_device *pdev) return 0; } -static const struct of_device_id bcm2835_pinctrl_match[] = { - { .compatible = "brcm,bcm2835-gpio" }, - {} -}; - static struct platform_driver bcm2835_pinctrl_driver = { .probe = bcm2835_pinctrl_probe, .driver = {