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 293C6C433F5 for ; Mon, 31 Jan 2022 08:47:40 +0000 (UTC) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S235607AbiAaIri (ORCPT ); Mon, 31 Jan 2022 03:47:38 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:40668 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S234868AbiAaIrh (ORCPT ); Mon, 31 Jan 2022 03:47:37 -0500 Received: from mail-wr1-x42e.google.com (mail-wr1-x42e.google.com [IPv6:2a00:1450:4864:20::42e]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 78E61C06173D for ; Mon, 31 Jan 2022 00:47:37 -0800 (PST) Received: by mail-wr1-x42e.google.com with SMTP id c23so23878803wrb.5 for ; Mon, 31 Jan 2022 00:47:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=t7jPwPhPro6Iv9HSiNOKR1rT0o1K1FCdRP2oY2jpf+w=; b=QzZYqxiaPC9Nq5ye22er2udgF5fExREUxs03Oa7WhWa6T3IpYz+t8negIwYhl+jGHa CgdYaW+6E75ONwCsuBQZMdPmo8762DvgwHsw8SGZ9ywzd0fQedjjAtVEZrI77yxMZhbq 4kZAR8qrJmQ2GmQ3iqLVH9jgpMX072Clf65RoR/S/diKjC/XHFDc5ZBR7ad2bARR7vnv FQV+AnulBMJz0XfAWygjxA3XSv5YnwRhjn/Bl+NggIK97vEu6PXPUoN8nzhp6hs5unP5 hBSH8uwTk13nzmkUZCwsPV9VJ3XXmCNpySljO21CZHxJxBwdwh9xtSjnfyAwemnt22n6 Z3Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=t7jPwPhPro6Iv9HSiNOKR1rT0o1K1FCdRP2oY2jpf+w=; b=65dTorn8Ho7sUdj80fjEBK0XfcdYvCllDa73UvNyDxcA0TjVfxdGW8xGbLwSxn4a1u yOpHGpc5NdaiFEyHtgbliAIYor6Y/Rm7uvnZx9JXWdF+yP1B0KYYaTl3h68/Bl4TEnPZ 0uF5ZGYvEO6oZlluEpfvuGRSrbmUJRNsqsTrx/qxorgkyanQpLGHEGjpUz1IRtyqlPbJ gflwoRn2SfJ+beogn8iHwIeauAVkSDqJ9f5ld7o+W3im7Ah8Cc/C6z3/idDRpp/srJjy trwFFMHmk+0Pr895tFU5kp4J2rL/PD69EJskzNDwo4js+oDy7lmCenU5kAUMP7zV8hWt HSZw== X-Gm-Message-State: AOAM533UJmW0bWHPtxQjNUWHJOdijQsh96j/bmD1c59b5Rx5KjiOzi/Y VZ0QEwSGS5NIGW7bl3KFJHxXyg== X-Google-Smtp-Source: ABdhPJyyc+x7qpUHDAy6jWDjoouaxef+ekdgY+9XelsF9wARb21PUz7MLztASeLFL5087U3C0mFR5A== X-Received: by 2002:a05:6000:1848:: with SMTP id c8mr10310760wri.241.1643618855967; Mon, 31 Jan 2022 00:47:35 -0800 (PST) Received: from google.com (cpc106310-bagu17-2-0-cust853.1-3.cable.virginm.net. [86.15.223.86]) by smtp.gmail.com with ESMTPSA id a14sm13421217wri.25.2022.01.31.00.47.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jan 2022 00:47:35 -0800 (PST) Date: Mon, 31 Jan 2022 08:47:33 +0000 From: Lee Jones To: Colin Foster Cc: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Steen Hegelund , Lars Povlsen , Linus Walleij , Russell King , Heiner Kallweit , Jakub Kicinski , "David S. Miller" , Florian Fainelli , Vivien Didelot , Andrew Lunn , UNGLinuxDriver@microchip.com, Alexandre Belloni , Claudiu Manoil , Vladimir Oltean , katie.morris@in-advantage.com Subject: Re: [RFC v6 net-next 5/9] mfd: add interface to check whether a device is mfd Message-ID: References: <20220129220221.2823127-1-colin.foster@in-advantage.com> <20220129220221.2823127-6-colin.foster@in-advantage.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <20220129220221.2823127-6-colin.foster@in-advantage.com> Precedence: bulk List-ID: X-Mailing-List: linux-gpio@vger.kernel.org On Sat, 29 Jan 2022, Colin Foster wrote: > Some drivers will need to create regmaps differently based on whether they > are a child of an MFD or a standalone device. An example of this would be > if a regmap were directly memory-mapped or an external bus. In the > memory-mapped case a call to devm_regmap_init_mmio would return the correct > regmap. In the case of an MFD, the regmap would need to be requested from > the parent device. > > This addition allows the driver to correctly reason about these scenarios. > > Signed-off-by: Colin Foster > --- > drivers/mfd/mfd-core.c | 6 ++++++ > include/linux/mfd/core.h | 10 ++++++++++ > 2 files changed, 16 insertions(+) > > diff --git a/drivers/mfd/mfd-core.c b/drivers/mfd/mfd-core.c > index 684a011a6396..2ba6a692499b 100644 > --- a/drivers/mfd/mfd-core.c > +++ b/drivers/mfd/mfd-core.c > @@ -33,6 +33,12 @@ static struct device_type mfd_dev_type = { > .name = "mfd_device", > }; > > +int device_is_mfd(struct platform_device *pdev) > +{ > + return (!strcmp(pdev->dev.type->name, mfd_dev_type.name)); > +} > +EXPORT_SYMBOL(device_is_mfd); As I said before, I really don't want MFDness leaking out into other parts of the kernel. Please find another way to differentiate between devices registered via the MFD API and by other means. I'm happy to help here. How else could these devices be enumerated? > int mfd_cell_enable(struct platform_device *pdev) > { > const struct mfd_cell *cell = mfd_get_cell(pdev); > diff --git a/include/linux/mfd/core.h b/include/linux/mfd/core.h > index 0bc7cba798a3..c0719436b652 100644 > --- a/include/linux/mfd/core.h > +++ b/include/linux/mfd/core.h > @@ -10,6 +10,7 @@ > #ifndef MFD_CORE_H > #define MFD_CORE_H > > +#include > #include > > #define MFD_RES_SIZE(arr) (sizeof(arr) / sizeof(struct resource)) > @@ -123,6 +124,15 @@ struct mfd_cell { > int num_parent_supplies; > }; > > +#ifdef CONFIG_MFD_CORE > +int device_is_mfd(struct platform_device *pdev); > +#else > +static inline int device_is_mfd(struct platform_device *pdev) > +{ > + return 0; > +} > +#endif > + > /* > * Convenience functions for clients using shared cells. Refcounting > * happens automatically, with the cell's enable/disable callbacks -- Lee Jones [李琼斯] Principal Technical Lead - Developer Services Linaro.org │ Open source software for Arm SoCs Follow Linaro: Facebook | Twitter | Blog 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 76A56C433F5 for ; Mon, 31 Jan 2022 08:49:02 +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-Transfer-Encoding:Content-Type:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:In-Reply-To:MIME-Version:References: Message-ID:Subject:Cc:To:From:Date:Reply-To:Content-ID:Content-Description: Resent-Date:Resent-From:Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID: List-Owner; bh=MwNo2UAstxO7o3m9BKG+Cn4Rgbbu5bqfXcyz1YzrnXA=; b=QXA5h+GsbHgoE6 DL1lgnOljJaG2r/RTberu3atTtY3FvyAhLgqf9Ywi6QiCO8uOE0XgcQ2GrNLvA5gdDymHARfO1Ap6 uhvcjijnetKddw1uLQ1PZSZUmQr/KflF6Bm7kbHCNVgT9BBpZzlkBuSBX8X97i7xpA25YniGGd7XY 8vS0XCrdTQsDG19shO5ss2UILK985rS1MjH8A8SwKWJDDUrbYrw6JxjQwhdl0tooUBmg3s8vPRkAS FV0S61DmoMFH2hmS/geBDkNlKd855M+6QomCdCQ1qBkrU+9AIxSDsamhwgLuC0pki6c0t6Yvwwj8B fdDzsyTNOKSBAwa1D7IQ==; Received: from localhost ([::1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.94.2 #2 (Red Hat Linux)) id 1nESLg-008XKm-Be; Mon, 31 Jan 2022 08:47:44 +0000 Received: from mail-wr1-x42f.google.com ([2a00:1450:4864:20::42f]) by bombadil.infradead.org with esmtps (Exim 4.94.2 #2 (Red Hat Linux)) id 1nESLc-008XJm-TD for linux-arm-kernel@lists.infradead.org; Mon, 31 Jan 2022 08:47:42 +0000 Received: by mail-wr1-x42f.google.com with SMTP id m14so23647651wrg.12 for ; Mon, 31 Jan 2022 00:47:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=date:from:to:cc:subject:message-id:references:mime-version :content-disposition:content-transfer-encoding:in-reply-to; bh=t7jPwPhPro6Iv9HSiNOKR1rT0o1K1FCdRP2oY2jpf+w=; b=QzZYqxiaPC9Nq5ye22er2udgF5fExREUxs03Oa7WhWa6T3IpYz+t8negIwYhl+jGHa CgdYaW+6E75ONwCsuBQZMdPmo8762DvgwHsw8SGZ9ywzd0fQedjjAtVEZrI77yxMZhbq 4kZAR8qrJmQ2GmQ3iqLVH9jgpMX072Clf65RoR/S/diKjC/XHFDc5ZBR7ad2bARR7vnv FQV+AnulBMJz0XfAWygjxA3XSv5YnwRhjn/Bl+NggIK97vEu6PXPUoN8nzhp6hs5unP5 hBSH8uwTk13nzmkUZCwsPV9VJ3XXmCNpySljO21CZHxJxBwdwh9xtSjnfyAwemnt22n6 Z3Zw== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; h=x-gm-message-state:date:from:to:cc:subject:message-id:references :mime-version:content-disposition:content-transfer-encoding :in-reply-to; bh=t7jPwPhPro6Iv9HSiNOKR1rT0o1K1FCdRP2oY2jpf+w=; b=GbBXSUxPDrjigmEVZs9PLIRgDNf/rBQ7bj7VsTJr2TtCKS2lAk2fa7hbnRng1EO/Qt sQXL6aJNu6jZ/zkLRTKBnEuC5JZ0cUdoF6bVq7ETNV47lgtGDLjYYb6ZYFfFfCynkz4z XJJquyARXiAmE+bzrTyJHm2srjrXK6ByPxyK3fyCZynmX+XnBPQ3WIHsm5nnAsqlP/AF oCy+SXlo/mHOH+QOipBLk0pZRqqW48N0gtaXJCupLb0jC+UoCjMHA5LqcEv1bFN8nFnP Otsh+rDB/+qfsRqxHMeji5s9cF5ttvPigKZxM4JFXiPCZnVT4zUgZgGzJSuIMlTcM5Fs E0/A== X-Gm-Message-State: AOAM530e4bTZwgl7dQkgJQbf0u/zcik29LE7Mc7E0vrbnROGNKLiwGYb Urc2PKAujC3JuNljgSpfp+tazg== X-Google-Smtp-Source: ABdhPJyyc+x7qpUHDAy6jWDjoouaxef+ekdgY+9XelsF9wARb21PUz7MLztASeLFL5087U3C0mFR5A== X-Received: by 2002:a05:6000:1848:: with SMTP id c8mr10310760wri.241.1643618855967; Mon, 31 Jan 2022 00:47:35 -0800 (PST) Received: from google.com (cpc106310-bagu17-2-0-cust853.1-3.cable.virginm.net. [86.15.223.86]) by smtp.gmail.com with ESMTPSA id a14sm13421217wri.25.2022.01.31.00.47.34 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Mon, 31 Jan 2022 00:47:35 -0800 (PST) Date: Mon, 31 Jan 2022 08:47:33 +0000 From: Lee Jones To: Colin Foster Cc: linux-arm-kernel@lists.infradead.org, linux-gpio@vger.kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org, Steen Hegelund , Lars Povlsen , Linus Walleij , Russell King , Heiner Kallweit , Jakub Kicinski , "David S. Miller" , Florian Fainelli , Vivien Didelot , Andrew Lunn , UNGLinuxDriver@microchip.com, Alexandre Belloni , Claudiu Manoil , Vladimir Oltean , katie.morris@in-advantage.com Subject: Re: [RFC v6 net-next 5/9] mfd: add interface to check whether a device is mfd Message-ID: References: <20220129220221.2823127-1-colin.foster@in-advantage.com> <20220129220221.2823127-6-colin.foster@in-advantage.com> MIME-Version: 1.0 Content-Disposition: inline In-Reply-To: <20220129220221.2823127-6-colin.foster@in-advantage.com> X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20220131_004740_996531_D4045EAC X-CRM114-Status: GOOD ( 24.45 ) 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-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=archiver.kernel.org@lists.infradead.org T24gU2F0LCAyOSBKYW4gMjAyMiwgQ29saW4gRm9zdGVyIHdyb3RlOgoKPiBTb21lIGRyaXZlcnMg d2lsbCBuZWVkIHRvIGNyZWF0ZSByZWdtYXBzIGRpZmZlcmVudGx5IGJhc2VkIG9uIHdoZXRoZXIg dGhleQo+IGFyZSBhIGNoaWxkIG9mIGFuIE1GRCBvciBhIHN0YW5kYWxvbmUgZGV2aWNlLiBBbiBl eGFtcGxlIG9mIHRoaXMgd291bGQgYmUKPiBpZiBhIHJlZ21hcCB3ZXJlIGRpcmVjdGx5IG1lbW9y eS1tYXBwZWQgb3IgYW4gZXh0ZXJuYWwgYnVzLiBJbiB0aGUKPiBtZW1vcnktbWFwcGVkIGNhc2Ug YSBjYWxsIHRvIGRldm1fcmVnbWFwX2luaXRfbW1pbyB3b3VsZCByZXR1cm4gdGhlIGNvcnJlY3QK PiByZWdtYXAuIEluIHRoZSBjYXNlIG9mIGFuIE1GRCwgdGhlIHJlZ21hcCB3b3VsZCBuZWVkIHRv IGJlIHJlcXVlc3RlZCBmcm9tCj4gdGhlIHBhcmVudCBkZXZpY2UuCj4gCj4gVGhpcyBhZGRpdGlv biBhbGxvd3MgdGhlIGRyaXZlciB0byBjb3JyZWN0bHkgcmVhc29uIGFib3V0IHRoZXNlIHNjZW5h cmlvcy4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBDb2xpbiBGb3N0ZXIgPGNvbGluLmZvc3RlckBpbi1h ZHZhbnRhZ2UuY29tPgo+IC0tLQo+ICBkcml2ZXJzL21mZC9tZmQtY29yZS5jICAgfCAgNiArKysr KysKPiAgaW5jbHVkZS9saW51eC9tZmQvY29yZS5oIHwgMTAgKysrKysrKysrKwo+ICAyIGZpbGVz IGNoYW5nZWQsIDE2IGluc2VydGlvbnMoKykKPiAKPiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQv bWZkLWNvcmUuYyBiL2RyaXZlcnMvbWZkL21mZC1jb3JlLmMKPiBpbmRleCA2ODRhMDExYTYzOTYu LjJiYTZhNjkyNDk5YiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21mZC9tZmQtY29yZS5jCj4gKysr IGIvZHJpdmVycy9tZmQvbWZkLWNvcmUuYwo+IEBAIC0zMyw2ICszMywxMiBAQCBzdGF0aWMgc3Ry dWN0IGRldmljZV90eXBlIG1mZF9kZXZfdHlwZSA9IHsKPiAgCS5uYW1lCT0gIm1mZF9kZXZpY2Ui LAo+ICB9Owo+ICAKPiAraW50IGRldmljZV9pc19tZmQoc3RydWN0IHBsYXRmb3JtX2RldmljZSAq cGRldikKPiArewo+ICsJcmV0dXJuICghc3RyY21wKHBkZXYtPmRldi50eXBlLT5uYW1lLCBtZmRf ZGV2X3R5cGUubmFtZSkpOwo+ICt9Cj4gK0VYUE9SVF9TWU1CT0woZGV2aWNlX2lzX21mZCk7CgpB cyBJIHNhaWQgYmVmb3JlLCBJIHJlYWxseSBkb24ndCB3YW50IE1GRG5lc3MgbGVha2luZyBvdXQg aW50byBvdGhlcgpwYXJ0cyBvZiB0aGUga2VybmVsLiAgUGxlYXNlIGZpbmQgYW5vdGhlciB3YXkg dG8gZGlmZmVyZW50aWF0ZSBiZXR3ZWVuCmRldmljZXMgcmVnaXN0ZXJlZCB2aWEgdGhlIE1GRCBB UEkgYW5kIGJ5IG90aGVyIG1lYW5zLgoKSSdtIGhhcHB5IHRvIGhlbHAgaGVyZS4KCkhvdyBlbHNl IGNvdWxkIHRoZXNlIGRldmljZXMgYmUgZW51bWVyYXRlZD8gCgo+ICBpbnQgbWZkX2NlbGxfZW5h YmxlKHN0cnVjdCBwbGF0Zm9ybV9kZXZpY2UgKnBkZXYpCj4gIHsKPiAgCWNvbnN0IHN0cnVjdCBt ZmRfY2VsbCAqY2VsbCA9IG1mZF9nZXRfY2VsbChwZGV2KTsKPiBkaWZmIC0tZ2l0IGEvaW5jbHVk ZS9saW51eC9tZmQvY29yZS5oIGIvaW5jbHVkZS9saW51eC9tZmQvY29yZS5oCj4gaW5kZXggMGJj N2NiYTc5OGEzLi5jMDcxOTQzNmI2NTIgMTAwNjQ0Cj4gLS0tIGEvaW5jbHVkZS9saW51eC9tZmQv Y29yZS5oCj4gKysrIGIvaW5jbHVkZS9saW51eC9tZmQvY29yZS5oCj4gQEAgLTEwLDYgKzEwLDcg QEAKPiAgI2lmbmRlZiBNRkRfQ09SRV9ICj4gICNkZWZpbmUgTUZEX0NPUkVfSAo+ICAKPiArI2lu Y2x1ZGUgPGdlbmVyYXRlZC9hdXRvY29uZi5oPgo+ICAjaW5jbHVkZSA8bGludXgvcGxhdGZvcm1f ZGV2aWNlLmg+Cj4gIAo+ICAjZGVmaW5lIE1GRF9SRVNfU0laRShhcnIpIChzaXplb2YoYXJyKSAv IHNpemVvZihzdHJ1Y3QgcmVzb3VyY2UpKQo+IEBAIC0xMjMsNiArMTI0LDE1IEBAIHN0cnVjdCBt ZmRfY2VsbCB7Cj4gIAlpbnQJCQludW1fcGFyZW50X3N1cHBsaWVzOwo+ICB9Owo+ICAKPiArI2lm ZGVmIENPTkZJR19NRkRfQ09SRQo+ICtpbnQgZGV2aWNlX2lzX21mZChzdHJ1Y3QgcGxhdGZvcm1f ZGV2aWNlICpwZGV2KTsKPiArI2Vsc2UKPiArc3RhdGljIGlubGluZSBpbnQgZGV2aWNlX2lzX21m ZChzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ICt7Cj4gKwlyZXR1cm4gMDsKPiArfQo+ ICsjZW5kaWYKPiArCj4gIC8qCj4gICAqIENvbnZlbmllbmNlIGZ1bmN0aW9ucyBmb3IgY2xpZW50 cyB1c2luZyBzaGFyZWQgY2VsbHMuICBSZWZjb3VudGluZwo+ICAgKiBoYXBwZW5zIGF1dG9tYXRp Y2FsbHksIHdpdGggdGhlIGNlbGwncyBlbmFibGUvZGlzYWJsZSBjYWxsYmFja3MKCi0tIApMZWUg Sm9uZXMgW+adjueQvOaWr10KUHJpbmNpcGFsIFRlY2huaWNhbCBMZWFkIC0gRGV2ZWxvcGVyIFNl cnZpY2VzCkxpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3YXJlIGZvciBBcm0gU29DcwpG b2xsb3cgTGluYXJvOiBGYWNlYm9vayB8IFR3aXR0ZXIgfCBCbG9nCgpfX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVsIG1haWxpbmcg bGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDovL2xpc3RzLmlu ZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg==