From mboxrd@z Thu Jan 1 00:00:00 1970 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 bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by smtp.lore.kernel.org (Postfix) with ESMTPS id E201FC001B2 for ; Thu, 8 Dec 2022 19:05:23 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20210309; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:MIME-Version:Message-ID:In-reply-to:Date:Subject:Cc: To:From:References:Reply-To:Content-ID:Content-Description:Resent-Date: Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:List-Owner; bh=T3Bney/BSmEM2fBhKAjwrEo8hBCdxmO9+R013+NM3tE=; b=sBNDGCVQ9Tw0VMi1zY+J+j4gQE Vo7n161N3KozjaiMAxCdUigd29T8MfDAg9iBSxnKwSnMV6xRPimFVcwt4RN500xkdKKzUX2VWkd2V jkfm5FnkhTcDJeOxJCqtzpYdJFPWQ+ew0xAQyM04d1G5918jAJWtyps9G2pRoxMtudIAnBbM5+9DO eNUQvO1hU9GcvaAztLIHL/dDaRrDMdwn9ftSd5So6c09GRFguRgnT0uSFY3EfoEj95MGyEEk2ZL6I 8LXf+k96TjbLviC7bfA4daS8AfMTCptVrfR8HcAZV/aKNV1wLD3nL2Awx6kU4WnvIakBEuCsYh+Xw 1xtx9DZg==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1p3MC1-0091Uc-OI; Thu, 08 Dec 2022 19:04:25 +0000 Received: from smtp1-g21.free.fr ([2a01:e0c:1:1599::10]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1p3MBx-0091Jn-Im for linux-arm-kernel@lists.infradead.org; Thu, 08 Dec 2022 19:04:23 +0000 Received: from sopl295-1.home (unknown [IPv6:2a01:cb19:8d70:d500:6d47:7868:523:4848]) (Authenticated sender: robert.jarzmik@free.fr) by smtp1-g21.free.fr (Postfix) with ESMTPSA id D76F3B00539; Thu, 8 Dec 2022 20:04:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=free.fr; s=smtp-20201208; t=1670526254; bh=iwmUCqNvez/sBNbZco4atcZtBLGp04PAWI4ReNtX7DM=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=fBPjrED7yqLODhwUboEeGob4khRc7r+Q4LbikUhyLLzaHwRbit9tD13oWwNPdK1mC JVlat2KMaRHcJZLQo2NY07aZ0zs9pu5r+6WunZKGSdieN53RZL2c/63fVQfjBSAon9 zHLQqrA9CqG7gTLvk+cKO+zcBp9Nn6P2ME2u4h6Joq/NCwbVpgw93gnUO3lNWt5vPG zov4COXLvsyOHPy0VpdsVx6l441MZizKkwSrZv7UaREisKeB8Ml65xnqf+mMBBO4IX n7Cev4e0PC3qE0CSdx50vufbSlBOcRMvVQ+D0tY7XWKXcDBdBnk+x0TZN3twLH/YmD d/rrRXWjYK+zQ== References: User-agent: mu4e 1.8.11; emacs 28.1 From: Robert Jarzmik To: Jonathan =?utf-8?Q?Neusch=C3=A4fer?= Cc: "Russell King (Oracle)" , Andrew Lunn , linux-arm-kernel@lists.infradead.org, Robert Jarzmik , Haojian Zhuang , Daniel Mack , linux-kernel@vger.kernel.org Subject: Re: PXA25x: GPIO driver fails probe due to resource conflict with pinctrl driver Date: Thu, 08 Dec 2022 19:46:26 +0100 In-reply-to: Message-ID: MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20221208_110422_097464_F7B636BB X-CRM114-Status: GOOD ( 14.57 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.34 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Content-Transfer-Encoding: base64 Content-Type: text/plain; charset="utf-8"; Format="flowed" Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org CkpvbmF0aGFuIE5ldXNjaMOkZmVyIDxqLm5ldXNjaGFlZmVyQGdteC5uZXQ+IHdyaXRlczoKCj4g V2l0aG91dCBmdXJ0aGVyIGNvZGUgY2hhbmdlcyB0aGlzIHdvdWxkbid0IGJlIHN1ZmZpY2llbnQs IAo+IGJlY2F1c2UgdGhlCj4gcGluY3RybCBkcml2ZXIgYWxzbyB0b3VjaGVzIHRoZSBHUElPIGRp cmVjdGlvbiByZWdpc3RlcnMgYXQgCj4gb2Zmc2V0Cj4gMHgwYy0weDE0LgoKSGlzdG9yaWNhbGx5 LCB0aGlzIHByb2JsZW0gd2FzIGFkcmVzc2VkIGJ5IGEgImhhY2siIGlmIEkgcmVtZW1iZXIgCmNv cnJlY3RseSwgYXMgdGhlCnJlZ2lzdGVycyBkbyBvdmVybGFwIChvbiBweGEyN3ggYXQgbGVhc3Qs IGJ1dCBJIHRoaW5rIG9uIHB4YTI1eCBhcyAKd2VsbCkgOgotIEdBRlIgKGFsdGVybmF0ZSBmdW5j dGlvbnMpIGFuZCBHUERSIChpbnB1dCBvciBvdXRwdXQpIGFyZSAKICAicGluY3RybCIKLSBHUFNS LCBHUENSLCBHUExSIGFyZSAiZ3BpbyIgcmVnaXN0ZXJzCi0gdGhlIG1lbW9yeSBtYXAgKHBoeXNp Y2FsKSBhdCAweDQwZTAgMDAwMCBpcyBhcyBKb25hdGhhbiB3cm90ZSA6CiAgLSAzIHUzMiBHUExS IChncGlvKQogIC0gMyB1MzIgR1BEUiAocGluY3RybCkKICAtIDMgdTMyIEdQU1IgKGdwaW8pCiAg LSAzIHUzMiBHUENSIChncGlvKQoKVGhlICJoYWNrIiB3YXMgdGhhdCBvbmUgZHJpdmVyIHdhcyBt YXBwaW5nIHRoZSBhcmVhIF93aXRob3V0XyAKY2xhaW1pbmcgaXQgKHRoaXMKaXMgcGFydCBmcm9t IG1lbW9yeSwgSSBkaWRuJ3QgY2hlY2sgaW4gdGhlIGNvZGUgdG9kYXkpLiBUaGUgZ3BpbyAKd2Fz IHByb2JhYmx5CnRoZSBjbGFpbWluZyBvbmUsIHdoaWxlIHRoZSBwaW5jdHJsIHdhcyB0aGUgIm9u bHkgdXNpbmcgb25lIi4KCkFzIG9mIHRvZGF5LCBJIHNob3VsZCBoYXZlIGEgbG9vayB3aGF0IHdh cyBjaGFuZ2VkLCBidXQgSSdtIHByZXR0eSAKc3VyZSBpbiBhbGwKcHhhMnh4IGFyY2hpdGVjdHVy ZSB0aGVyZSBpcyBhbiBvdmVybGFwLCBhcyBmb3IgdGhlc2UgYW5jaWVudCAKcGxhdGZvcm1zIHRo ZQpwaW5jdHJsIHdhc24ndCB5ZXQgc2VwYXJhdGVkIGZyb20gdGhlIGdwaW8gSUMuCgpUaGUgb25s eSB3YXMgb3V0IHNvIGZhciBJIGNhbiBzZWUgZnJvbSBteSBoZWFkIHdvdWxkIGJlIHRvIGRlY2xh cmUgCm11bHRpcGxlCnZlcnkgc21hbGwgSU8gcmFuZ2VzIDoKLSBwaW5jdHJsIHB4YTI1eCA6IDB4 NDBlMCAwMDBjICgxMiBieXRlcyksIDB4NDBlMCAwMDU0ICgzMiBieXRlcykKLSBwaW5jdHJsIHB4 YTI1eCA6IDB4NDBlMCAwMDBjICgxMiBieXRlcyksIDB4NDBlMCAwMDU0ICgzMiBieXRlcyksIAog IDB4NDBlMCAwMTBjICg0IGJ5dGVzKQotIGdwaW8gOiBmcm9tIDB4NDBlMCAwMDAwIHRvIDB4NDBl MCAwMDcwIGluY2x1ZGVkLCB3aXRob3V0IHRoZSAKICBwaW5jdHJsIG9uZXMKCkFzIGEgZ2VuZXJh bCBndWlkZSwgaW4gZ3Bpby1weGEuYywgeW91IGhhdmUgdGhlIHRhYmxlIGluIApbMV0uIFRoaW5r IEdQRFIgYW5kIEdBRlIgYXMKcGluY3RybCwgYW5kIGFsbCB0aGUgb3RoZXIgb25lcyBhcyBncGlv LiBBaCBhbmQgeWVzLCB0aGUgR0FGUiBvbmVzIAphcmUgbWlzc2luZyBpbiB0aGlzCnRhYmxlLgoK T25lIGxhc3QgdGhpbmsgOiBpbiBhIHByZSBkZXZpY2UtdHJlZSB3b3JsZCwgd2hlbiB3ZSBkaWRu J3QgaGFkIAp5ZXQgdGhlIHB4YSBwaW5jdHJsCmRyaXZlciwgdGhlIGdwaW8gZHJpdmVyIHdhcyBk aXJlY3RseSBwbGF5aW5nIHdpdGggdGhlIEdQRFIgCnJlZ2lzdGVycywgZnVuIG9sZCB0aW1lcy4K CkNoZWVycy4KCi0tClJvYmVydAoKWzFdCi8qCiAqIFdlIGhhbmRsZSB0aGUgR1BJT3MgYnkgYmFu a3MsIGVhY2ggYmFuayBjb3ZlcnMgdXAgdG8gMzIgR1BJT3MgCiB3aXRoCiAqIG9uZSBzZXQgb2Yg cmVnaXN0ZXJzLiBUaGUgcmVnaXN0ZXIgb2Zmc2V0cyBhcmUgb3JnYW5pemVkIGJlbG93OgogKgog KiAgICAgICAgICAgR1BMUiAgICBHUERSICAgIEdQU1IgICAgR1BDUiAgICBHUkVSICAgIEdGRVIg ICAgR0VEUgogKiBCQU5LIDAgLSAweDAwMDAgIDB4MDAwQyAgMHgwMDE4ICAweDAwMjQgIDB4MDAz MCAgMHgwMDNDICAweDAwNDgKICogQkFOSyAxIC0gMHgwMDA0ICAweDAwMTAgIDB4MDAxQyAgMHgw MDI4ICAweDAwMzQgIDB4MDA0MCAgMHgwMDRDCiAqIEJBTksgMiAtIDB4MDAwOCAgMHgwMDE0ICAw eDAwMjAgIDB4MDAyQyAgMHgwMDM4ICAweDAwNDQgIDB4MDA1MAogKgogKiBCQU5LIDMgLSAweDAx MDAgIDB4MDEwQyAgMHgwMTE4ICAweDAxMjQgIDB4MDEzMCAgMHgwMTNDICAweDAxNDgKICogQkFO SyA0IC0gMHgwMTA0ICAweDAxMTAgIDB4MDExQyAgMHgwMTI4ICAweDAxMzQgIDB4MDE0MCAgMHgw MTRDCiAqIEJBTksgNSAtIDB4MDEwOCAgMHgwMTE0ICAweDAxMjAgIDB4MDEyQyAgMHgwMTM4ICAw eDAxNDQgIDB4MDE1MAogKgogKiBCQU5LIDYgLSAweDAyMDAgIDB4MDIwQyAgMHgwMjE4ICAweDAy MjQgIDB4MDIzMCAgMHgwMjNDICAweDAyNDgKICoKICogTk9URToKICogICBCQU5LIDMgaXMgb25s eSBhdmFpbGFibGUgb24gUFhBMjd4IGFuZCBsYXRlciBwcm9jZXNzb3JzLgogKiAgIEJBTksgNCBh bmQgNSBhcmUgb25seSBhdmFpbGFibGUgb24gUFhBOTM1LCBQWEExOTI4CiAqICAgQkFOSyA2IGlz IG9ubHkgYXZhaWxhYmxlIG9uIFBYQTE5MjgKICovCgoKX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX18KbGludXgtYXJtLWtlcm5lbCBtYWlsaW5nIGxpc3QKbGlu dXgtYXJtLWtlcm5lbEBsaXN0cy5pbmZyYWRlYWQub3JnCmh0dHA6Ly9saXN0cy5pbmZyYWRlYWQu b3JnL21haWxtYW4vbGlzdGluZm8vbGludXgtYXJtLWtlcm5lbAo= From mboxrd@z Thu Jan 1 00:00:00 1970 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 A9895C4332F for ; Thu, 8 Dec 2022 19:05:09 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229976AbiLHTFI (ORCPT ); Thu, 8 Dec 2022 14:05:08 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:36122 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229463AbiLHTEd (ORCPT ); Thu, 8 Dec 2022 14:04:33 -0500 Received: from smtp1-g21.free.fr (smtp1-g21.free.fr [IPv6:2a01:e0c:1:1599::10]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 69FC39E479 for ; Thu, 8 Dec 2022 11:04:18 -0800 (PST) Received: from sopl295-1.home (unknown [IPv6:2a01:cb19:8d70:d500:6d47:7868:523:4848]) (Authenticated sender: robert.jarzmik@free.fr) by smtp1-g21.free.fr (Postfix) with ESMTPSA id D76F3B00539; Thu, 8 Dec 2022 20:04:05 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=free.fr; s=smtp-20201208; t=1670526254; bh=iwmUCqNvez/sBNbZco4atcZtBLGp04PAWI4ReNtX7DM=; h=References:From:To:Cc:Subject:Date:In-reply-to:From; b=fBPjrED7yqLODhwUboEeGob4khRc7r+Q4LbikUhyLLzaHwRbit9tD13oWwNPdK1mC JVlat2KMaRHcJZLQo2NY07aZ0zs9pu5r+6WunZKGSdieN53RZL2c/63fVQfjBSAon9 zHLQqrA9CqG7gTLvk+cKO+zcBp9Nn6P2ME2u4h6Joq/NCwbVpgw93gnUO3lNWt5vPG zov4COXLvsyOHPy0VpdsVx6l441MZizKkwSrZv7UaREisKeB8Ml65xnqf+mMBBO4IX n7Cev4e0PC3qE0CSdx50vufbSlBOcRMvVQ+D0tY7XWKXcDBdBnk+x0TZN3twLH/YmD d/rrRXWjYK+zQ== References: User-agent: mu4e 1.8.11; emacs 28.1 From: Robert Jarzmik To: Jonathan =?utf-8?Q?Neusch=C3=A4fer?= Cc: "Russell King (Oracle)" , Andrew Lunn , linux-arm-kernel@lists.infradead.org, Robert Jarzmik , Haojian Zhuang , Daniel Mack , linux-kernel@vger.kernel.org Subject: Re: PXA25x: GPIO driver fails probe due to resource conflict with pinctrl driver Date: Thu, 08 Dec 2022 19:46:26 +0100 In-reply-to: Message-ID: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8; format=flowed Content-Transfer-Encoding: quoted-printable Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Jonathan Neusch=C3=A4fer writes: > Without further code changes this wouldn't be sufficient,=20 > because the > pinctrl driver also touches the GPIO direction registers at=20 > offset > 0x0c-0x14. Historically, this problem was adressed by a "hack" if I remember=20 correctly, as the registers do overlap (on pxa27x at least, but I think on pxa25x as=20 well) : - GAFR (alternate functions) and GPDR (input or output) are=20 "pinctrl" - GPSR, GPCR, GPLR are "gpio" registers - the memory map (physical) at 0x40e0 0000 is as Jonathan wrote : - 3 u32 GPLR (gpio) - 3 u32 GPDR (pinctrl) - 3 u32 GPSR (gpio) - 3 u32 GPCR (gpio) The "hack" was that one driver was mapping the area _without_=20 claiming it (this is part from memory, I didn't check in the code today). The gpio=20 was probably the claiming one, while the pinctrl was the "only using one". As of today, I should have a look what was changed, but I'm pretty=20 sure in all pxa2xx architecture there is an overlap, as for these ancient=20 platforms the pinctrl wasn't yet separated from the gpio IC. The only was out so far I can see from my head would be to declare=20 multiple very small IO ranges : - pinctrl pxa25x : 0x40e0 000c (12 bytes), 0x40e0 0054 (32 bytes) - pinctrl pxa25x : 0x40e0 000c (12 bytes), 0x40e0 0054 (32 bytes),=20 0x40e0 010c (4 bytes) - gpio : from 0x40e0 0000 to 0x40e0 0070 included, without the=20 pinctrl ones As a general guide, in gpio-pxa.c, you have the table in=20 [1]. Think GPDR and GAFR as pinctrl, and all the other ones as gpio. Ah and yes, the GAFR ones=20 are missing in this table. One last think : in a pre device-tree world, when we didn't had=20 yet the pxa pinctrl driver, the gpio driver was directly playing with the GPDR=20 registers, fun old times. Cheers. -- Robert [1] /* * We handle the GPIOs by banks, each bank covers up to 32 GPIOs=20 with * one set of registers. The register offsets are organized below: * * GPLR GPDR GPSR GPCR GRER GFER GEDR * BANK 0 - 0x0000 0x000C 0x0018 0x0024 0x0030 0x003C 0x0048 * BANK 1 - 0x0004 0x0010 0x001C 0x0028 0x0034 0x0040 0x004C * BANK 2 - 0x0008 0x0014 0x0020 0x002C 0x0038 0x0044 0x0050 * * BANK 3 - 0x0100 0x010C 0x0118 0x0124 0x0130 0x013C 0x0148 * BANK 4 - 0x0104 0x0110 0x011C 0x0128 0x0134 0x0140 0x014C * BANK 5 - 0x0108 0x0114 0x0120 0x012C 0x0138 0x0144 0x0150 * * BANK 6 - 0x0200 0x020C 0x0218 0x0224 0x0230 0x023C 0x0248 * * NOTE: * BANK 3 is only available on PXA27x and later processors. * BANK 4 and 5 are only available on PXA935, PXA1928 * BANK 6 is only available on PXA1928 */