From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Return-Path: Date: Tue, 3 Jul 2018 08:11:03 +0100 From: Lee Jones To: Matthias Brugger Cc: matthias.bgg@kernel.org, ulrich.hecht+renesas@gmail.com, laurent.pinchart@ideasonboard.com, ck.hu@mediatek.com, p.zabel@pengutronix.de, airlied@linux.ie, robh+dt@kernel.org, mark.rutland@arm.com, mturquette@baylibre.com, sboyd@codeaurora.org, davem@davemloft.net, gregkh@linuxfoundation.org, mchehab@kernel.org, rdunlap@infradead.org, sean.wang@mediatek.com, linux-clk@vger.kernel.org, linux@armlinux.org.uk, dri-devel@lists.freedesktop.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-mediatek@lists.infradead.org, Matthias Brugger Subject: Re: [v3 03/10] mfd: mtk-mmsys: Add mmsys driver Message-ID: <20180703071103.GE20176@dell> References: <20180430101826.GC5147@dell> <5269ccfd-0274-3c12-7eeb-5de923197d92@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 In-Reply-To: <5269ccfd-0274-3c12-7eeb-5de923197d92@gmail.com> List-ID: On Mon, 25 Jun 2018, Matthias Brugger wrote: > On 30/04/18 12:18, Lee Jones wrote: > > On Fri, 27 Apr 2018, matthias.bgg@kernel.org wrote: > > > >> From: Matthias Brugger > >> > >> The MMSYS subsystem includes clocks and drm components. > >> This patch adds a MFD device to probe both drivers from the same > >> device tree compatible. > >> > >> Signed-off-by: Matthias Brugger > >> --- > >> drivers/mfd/Kconfig | 9 ++++++ > >> drivers/mfd/Makefile | 2 ++ > >> drivers/mfd/mtk-mmsys.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++ > >> 3 files changed, 90 insertions(+) > >> create mode 100644 drivers/mfd/mtk-mmsys.c > >> > >> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig > >> index b860eb5aa194..d23a3b9a2c58 100644 > >> --- a/drivers/mfd/Kconfig > >> +++ b/drivers/mfd/Kconfig > >> @@ -378,6 +378,15 @@ config MFD_MC13XXX_I2C > >> help > >> Select this if your MC13xxx is connected via an I2C bus. > >> > >> +config MFD_MEDIATEK_MMSYS > >> + tristate "Mediatek MMSYS interface" > >> + select MFD_CORE > >> + select REGMAP_MMIO > >> + help > >> + Select this if you have a MMSYS subsystem in your SoC. The > >> + MMSYS subsystem has at least a clock driver part and some > >> + DRM components. > >> + > >> config MFD_MXS_LRADC > >> tristate "Freescale i.MX23/i.MX28 LRADC" > >> depends on ARCH_MXS || COMPILE_TEST > >> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile > >> index d9d2cf0d32ef..b96118bd68d9 100644 > >> --- a/drivers/mfd/Makefile > >> +++ b/drivers/mfd/Makefile > >> @@ -98,6 +98,8 @@ obj-$(CONFIG_MFD_MC13XXX) += mc13xxx-core.o > >> obj-$(CONFIG_MFD_MC13XXX_SPI) += mc13xxx-spi.o > >> obj-$(CONFIG_MFD_MC13XXX_I2C) += mc13xxx-i2c.o > >> > >> +obj-$(CONFIG_MFD_MEDIATEK_MMSYS) += mtk-mmsys.o > >> + > >> obj-$(CONFIG_MFD_CORE) += mfd-core.o > >> > >> obj-$(CONFIG_EZX_PCAP) += ezx-pcap.o > >> diff --git a/drivers/mfd/mtk-mmsys.c b/drivers/mfd/mtk-mmsys.c > >> new file mode 100644 > >> index 000000000000..c802343fb1c6 > >> --- /dev/null > >> +++ b/drivers/mfd/mtk-mmsys.c > >> @@ -0,0 +1,79 @@ > >> +// SPDX-License-Identifier: GPL-2.0+ > >> + > >> +/* > >> + * mtk-mmsys.c -- Mediatek MMSYS multi-function driver > >> + * > >> + * Copyright (c) 2018 Matthias Brugger > >> + * > >> + * Author: Matthias Brugger > >> + */ > >> + > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> + > >> +enum { > >> + MMSYS_MT2701 = 1, > >> +}; > >> + > >> +static const struct mfd_cell mmsys_mt2701_devs[] = { > >> + { .name = "clk-mt2701-mm", }, > >> + { .name = "drm-mt2701-mm", }, > >> +}; > >> + > >> +static int mmsys_probe(struct platform_device *pdev) > >> +{ > >> + const struct mfd_cell *mmsys_cells; > >> + int nr_cells; > >> + long id; > >> + int ret; > >> + > >> + id = (long) of_device_get_match_data(&pdev->dev); > >> + if (!id) { > >> + dev_err(&pdev->dev, "of_device_get match_data() failed\n"); > >> + return -EINVAL; > >> + } > >> + > >> + switch (id) { > >> + case MMSYS_MT2701: > >> + mmsys_cells = mmsys_mt2701_devs; > >> + nr_cells = ARRAY_SIZE(mmsys_mt2701_devs); > >> + break; > >> + default: > >> + return -ENODEV; > >> + } > >> + > >> + ret = devm_mfd_add_devices(&pdev->dev, 0, mmsys_cells, nr_cells, > >> + NULL, 0, NULL); > >> + if (ret) { > >> + dev_err(&pdev->dev, "failed to add MFD devices %d\n", ret); > >> + return ret; > >> + } > >> + > >> + return 0; > >> +}; > > > > This driver is pretty pointless. It doesn't actually do anything. > > > > I think you just want to use "simple-mfd" instead. > > > > I think the problem is, that right now we have two drivers which use the same > devicetree binding, which are clk and drm driver. With a simple-mfd we would > need two compatibles, and this would break backwards compatibility. So what functionality does this driver provide you with that you do not have currently? -- Lee Jones [李琼斯] Linaro Services Technical Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [v3 03/10] mfd: mtk-mmsys: Add mmsys driver Date: Tue, 3 Jul 2018 08:11:03 +0100 Message-ID: <20180703071103.GE20176@dell> References: <20180430101826.GC5147@dell> <5269ccfd-0274-3c12-7eeb-5de923197d92@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <5269ccfd-0274-3c12-7eeb-5de923197d92@gmail.com> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Matthias Brugger Cc: mark.rutland@arm.com, airlied@linux.ie, mturquette@baylibre.com, dri-devel@lists.freedesktop.org, laurent.pinchart@ideasonboard.com, ulrich.hecht+renesas@gmail.com, linux-clk@vger.kernel.org, linux@armlinux.org.uk, sean.wang@mediatek.com, robh+dt@kernel.org, linux-mediatek@lists.infradead.org, mchehab@kernel.org, linux-arm-kernel@lists.infradead.org, Matthias Brugger , gregkh@linuxfoundation.org, rdunlap@infradead.org, sboyd@codeaurora.org, linux-kernel@vger.kernel.org, matthias.bgg@kernel.org, davem@davemloft.net List-Id: linux-mediatek@lists.infradead.org T24gTW9uLCAyNSBKdW4gMjAxOCwgTWF0dGhpYXMgQnJ1Z2dlciB3cm90ZToKPiBPbiAzMC8wNC8x OCAxMjoxOCwgTGVlIEpvbmVzIHdyb3RlOgo+ID4gT24gRnJpLCAyNyBBcHIgMjAxOCwgbWF0dGhp YXMuYmdnQGtlcm5lbC5vcmcgd3JvdGU6Cj4gPiAKPiA+PiBGcm9tOiBNYXR0aGlhcyBCcnVnZ2Vy IDxtYnJ1Z2dlckBzdXNlLmNvbT4KPiA+Pgo+ID4+IFRoZSBNTVNZUyBzdWJzeXN0ZW0gaW5jbHVk ZXMgY2xvY2tzIGFuZCBkcm0gY29tcG9uZW50cy4KPiA+PiBUaGlzIHBhdGNoIGFkZHMgYSBNRkQg ZGV2aWNlIHRvIHByb2JlIGJvdGggZHJpdmVycyBmcm9tIHRoZSBzYW1lCj4gPj4gZGV2aWNlIHRy ZWUgY29tcGF0aWJsZS4KPiA+Pgo+ID4+IFNpZ25lZC1vZmYtYnk6IE1hdHRoaWFzIEJydWdnZXIg PG1icnVnZ2VyQHN1c2UuY29tPgo+ID4+IC0tLQo+ID4+ICBkcml2ZXJzL21mZC9LY29uZmlnICAg ICB8ICA5ICsrKysrKwo+ID4+ICBkcml2ZXJzL21mZC9NYWtlZmlsZSAgICB8ICAyICsrCj4gPj4g IGRyaXZlcnMvbWZkL210ay1tbXN5cy5jIHwgNzkgKysrKysrKysrKysrKysrKysrKysrKysrKysr KysrKysrKysrKysrKysrKysrKysrKwo+ID4+ICAzIGZpbGVzIGNoYW5nZWQsIDkwIGluc2VydGlv bnMoKykKPiA+PiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvbWZkL210ay1tbXN5cy5jCj4g Pj4KPiA+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9tZmQvS2NvbmZpZyBiL2RyaXZlcnMvbWZkL0tj b25maWcKPiA+PiBpbmRleCBiODYwZWI1YWExOTQuLmQyM2EzYjlhMmM1OCAxMDA2NDQKPiA+PiAt LS0gYS9kcml2ZXJzL21mZC9LY29uZmlnCj4gPj4gKysrIGIvZHJpdmVycy9tZmQvS2NvbmZpZwo+ ID4+IEBAIC0zNzgsNiArMzc4LDE1IEBAIGNvbmZpZyBNRkRfTUMxM1hYWF9JMkMKPiA+PiAgCWhl bHAKPiA+PiAgCSAgU2VsZWN0IHRoaXMgaWYgeW91ciBNQzEzeHh4IGlzIGNvbm5lY3RlZCB2aWEg YW4gSTJDIGJ1cy4KPiA+PiAgCj4gPj4gK2NvbmZpZyBNRkRfTUVESUFURUtfTU1TWVMKPiA+PiAr CXRyaXN0YXRlICJNZWRpYXRlayBNTVNZUyBpbnRlcmZhY2UiCj4gPj4gKwlzZWxlY3QgTUZEX0NP UkUKPiA+PiArCXNlbGVjdCBSRUdNQVBfTU1JTwo+ID4+ICsJaGVscAo+ID4+ICsJICBTZWxlY3Qg dGhpcyBpZiB5b3UgaGF2ZSBhIE1NU1lTIHN1YnN5c3RlbSBpbiB5b3VyIFNvQy4gVGhlCj4gPj4g KwkgIE1NU1lTIHN1YnN5c3RlbSBoYXMgYXQgbGVhc3QgYSBjbG9jayBkcml2ZXIgcGFydCBhbmQg c29tZQo+ID4+ICsJICBEUk0gY29tcG9uZW50cy4KPiA+PiArCj4gPj4gIGNvbmZpZyBNRkRfTVhT X0xSQURDCj4gPj4gIAl0cmlzdGF0ZSAiRnJlZXNjYWxlIGkuTVgyMy9pLk1YMjggTFJBREMiCj4g Pj4gIAlkZXBlbmRzIG9uIEFSQ0hfTVhTIHx8IENPTVBJTEVfVEVTVAo+ID4+IGRpZmYgLS1naXQg YS9kcml2ZXJzL21mZC9NYWtlZmlsZSBiL2RyaXZlcnMvbWZkL01ha2VmaWxlCj4gPj4gaW5kZXgg ZDlkMmNmMGQzMmVmLi5iOTYxMThiZDY4ZDkgMTAwNjQ0Cj4gPj4gLS0tIGEvZHJpdmVycy9tZmQv TWFrZWZpbGUKPiA+PiArKysgYi9kcml2ZXJzL21mZC9NYWtlZmlsZQo+ID4+IEBAIC05OCw2ICs5 OCw4IEBAIG9iai0kKENPTkZJR19NRkRfTUMxM1hYWCkJKz0gbWMxM3h4eC1jb3JlLm8KPiA+PiAg b2JqLSQoQ09ORklHX01GRF9NQzEzWFhYX1NQSSkJKz0gbWMxM3h4eC1zcGkubwo+ID4+ICBvYmot JChDT05GSUdfTUZEX01DMTNYWFhfSTJDKQkrPSBtYzEzeHh4LWkyYy5vCj4gPj4gIAo+ID4+ICtv YmotJChDT05GSUdfTUZEX01FRElBVEVLX01NU1lTKSArPSBtdGstbW1zeXMubwo+ID4+ICsKPiA+ PiAgb2JqLSQoQ09ORklHX01GRF9DT1JFKQkJKz0gbWZkLWNvcmUubwo+ID4+ICAKPiA+PiAgb2Jq LSQoQ09ORklHX0VaWF9QQ0FQKQkJKz0gZXp4LXBjYXAubwo+ID4+IGRpZmYgLS1naXQgYS9kcml2 ZXJzL21mZC9tdGstbW1zeXMuYyBiL2RyaXZlcnMvbWZkL210ay1tbXN5cy5jCj4gPj4gbmV3IGZp bGUgbW9kZSAxMDA2NDQKPiA+PiBpbmRleCAwMDAwMDAwMDAwMDAuLmM4MDIzNDNmYjFjNgo+ID4+ IC0tLSAvZGV2L251bGwKPiA+PiArKysgYi9kcml2ZXJzL21mZC9tdGstbW1zeXMuYwo+ID4+IEBA IC0wLDAgKzEsNzkgQEAKPiA+PiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAr Cj4gPj4gKwo+ID4+ICsvKgo+ID4+ICsgKiBtdGstbW1zeXMuYyAtLSBNZWRpYXRlayBNTVNZUyBt dWx0aS1mdW5jdGlvbiBkcml2ZXIKPiA+PiArICoKPiA+PiArICogQ29weXJpZ2h0IChjKSAyMDE4 IE1hdHRoaWFzIEJydWdnZXIgPG1hdHRoaWFzLmJnZ0BnbWFpbC5jb20+Cj4gPj4gKyAqCj4gPj4g KyAqIEF1dGhvcjogTWF0dGhpYXMgQnJ1Z2dlciA8bWF0dGhpYXMuYmdnQGdtYWlsLmNvbT4KPiA+ PiArICovCj4gPj4gKwo+ID4+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4gPj4gKyNpbmNs dWRlIDxsaW51eC9pbml0Lmg+Cj4gPj4gKyNpbmNsdWRlIDxsaW51eC9tZmQvY29yZS5oPgo+ID4+ ICsjaW5jbHVkZSA8bGludXgvb2YuaD4KPiA+PiArI2luY2x1ZGUgPGxpbnV4L29mX2FkZHJlc3Mu aD4KPiA+PiArI2luY2x1ZGUgPGxpbnV4L29mX2RldmljZS5oPgo+ID4+ICsjaW5jbHVkZSA8bGlu dXgvcGxhdGZvcm1fZGV2aWNlLmg+Cj4gPj4gKyNpbmNsdWRlIDxsaW51eC9yZWdtYXAuaD4KPiA+ PiArCj4gPj4gK2VudW0gewo+ID4+ICsJTU1TWVNfTVQyNzAxID0gMSwKPiA+PiArfTsKPiA+PiAr Cj4gPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgbWZkX2NlbGwgbW1zeXNfbXQyNzAxX2RldnNbXSA9 IHsKPiA+PiArCXsgLm5hbWUgPSAiY2xrLW10MjcwMS1tbSIsIH0sCj4gPj4gKwl7IC5uYW1lID0g ImRybS1tdDI3MDEtbW0iLCB9LAo+ID4+ICt9Owo+ID4+ICsKPiA+PiArc3RhdGljIGludCBtbXN5 c19wcm9iZShzdHJ1Y3QgcGxhdGZvcm1fZGV2aWNlICpwZGV2KQo+ID4+ICt7Cj4gPj4gKwljb25z dCBzdHJ1Y3QgbWZkX2NlbGwgKm1tc3lzX2NlbGxzOwo+ID4+ICsJaW50IG5yX2NlbGxzOwo+ID4+ ICsJbG9uZyBpZDsKPiA+PiArCWludCByZXQ7Cj4gPj4gKwo+ID4+ICsJaWQgPSAobG9uZykgb2Zf ZGV2aWNlX2dldF9tYXRjaF9kYXRhKCZwZGV2LT5kZXYpOwo+ID4+ICsJaWYgKCFpZCkgewo+ID4+ ICsJCWRldl9lcnIoJnBkZXYtPmRldiwgIm9mX2RldmljZV9nZXQgbWF0Y2hfZGF0YSgpIGZhaWxl ZFxuIik7Cj4gPj4gKwkJcmV0dXJuIC1FSU5WQUw7Cj4gPj4gKwl9Cj4gPj4gKwo+ID4+ICsJc3dp dGNoIChpZCkgewo+ID4+ICsJY2FzZSBNTVNZU19NVDI3MDE6Cj4gPj4gKwkJbW1zeXNfY2VsbHMg PSBtbXN5c19tdDI3MDFfZGV2czsKPiA+PiArCQlucl9jZWxscyA9IEFSUkFZX1NJWkUobW1zeXNf bXQyNzAxX2RldnMpOwo+ID4+ICsJCWJyZWFrOwo+ID4+ICsJZGVmYXVsdDoKPiA+PiArCQlyZXR1 cm4gLUVOT0RFVjsKPiA+PiArCX0KPiA+PiArCj4gPj4gKwlyZXQgPSBkZXZtX21mZF9hZGRfZGV2 aWNlcygmcGRldi0+ZGV2LCAwLCBtbXN5c19jZWxscywgbnJfY2VsbHMsCj4gPj4gKwkJCQkJTlVM TCwgMCwgTlVMTCk7Cj4gPj4gKwlpZiAocmV0KSB7Cj4gPj4gKwkJZGV2X2VycigmcGRldi0+ZGV2 LCAiZmFpbGVkIHRvIGFkZCBNRkQgZGV2aWNlcyAlZFxuIiwgcmV0KTsKPiA+PiArCQlyZXR1cm4g cmV0Owo+ID4+ICsJfQo+ID4+ICsKPiA+PiArCXJldHVybiAwOwo+ID4+ICt9Owo+ID4gCj4gPiBU aGlzIGRyaXZlciBpcyBwcmV0dHkgcG9pbnRsZXNzLiAgSXQgZG9lc24ndCBhY3R1YWxseSBkbyBh bnl0aGluZy4KPiA+IAo+ID4gSSB0aGluayB5b3UganVzdCB3YW50IHRvIHVzZSAic2ltcGxlLW1m ZCIgaW5zdGVhZC4KPiA+IAo+IAo+IEkgdGhpbmsgdGhlIHByb2JsZW0gaXMsIHRoYXQgcmlnaHQg bm93IHdlIGhhdmUgdHdvIGRyaXZlcnMgd2hpY2ggdXNlIHRoZSBzYW1lCj4gZGV2aWNldHJlZSBi aW5kaW5nLCB3aGljaCBhcmUgY2xrIGFuZCBkcm0gZHJpdmVyLiBXaXRoIGEgc2ltcGxlLW1mZCB3 ZSB3b3VsZAo+IG5lZWQgdHdvIGNvbXBhdGlibGVzLCBhbmQgdGhpcyB3b3VsZCBicmVhayBiYWNr d2FyZHMgY29tcGF0aWJpbGl0eS4KClNvIHdoYXQgZnVuY3Rpb25hbGl0eSBkb2VzIHRoaXMgZHJp dmVyIHByb3ZpZGUgeW91IHdpdGggdGhhdCB5b3UgZG8Kbm90IGhhdmUgY3VycmVudGx5PwoKLS0g CkxlZSBKb25lcyBb5p2O55C85pavXQpMaW5hcm8gU2VydmljZXMgVGVjaG5pY2FsIExlYWQKTGlu YXJvLm9yZyDilIIgT3BlbiBzb3VyY2Ugc29mdHdhcmUgZm9yIEFSTSBTb0NzCkZvbGxvdyBMaW5h cm86IEZhY2Vib29rIHwgVHdpdHRlciB8IEJsb2cKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KZHJpLWRldmVsIG1haWxpbmcgbGlzdApkcmktZGV2ZWxAbGlz dHMuZnJlZWRlc2t0b3Aub3JnCmh0dHBzOi8vbGlzdHMuZnJlZWRlc2t0b3Aub3JnL21haWxtYW4v bGlzdGluZm8vZHJpLWRldmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: lee.jones@linaro.org (Lee Jones) Date: Tue, 3 Jul 2018 08:11:03 +0100 Subject: [v3 03/10] mfd: mtk-mmsys: Add mmsys driver In-Reply-To: <5269ccfd-0274-3c12-7eeb-5de923197d92@gmail.com> References: <20180430101826.GC5147@dell> <5269ccfd-0274-3c12-7eeb-5de923197d92@gmail.com> Message-ID: <20180703071103.GE20176@dell> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Mon, 25 Jun 2018, Matthias Brugger wrote: > On 30/04/18 12:18, Lee Jones wrote: > > On Fri, 27 Apr 2018, matthias.bgg at kernel.org wrote: > > > >> From: Matthias Brugger > >> > >> The MMSYS subsystem includes clocks and drm components. > >> This patch adds a MFD device to probe both drivers from the same > >> device tree compatible. > >> > >> Signed-off-by: Matthias Brugger > >> --- > >> drivers/mfd/Kconfig | 9 ++++++ > >> drivers/mfd/Makefile | 2 ++ > >> drivers/mfd/mtk-mmsys.c | 79 +++++++++++++++++++++++++++++++++++++++++++++++++ > >> 3 files changed, 90 insertions(+) > >> create mode 100644 drivers/mfd/mtk-mmsys.c > >> > >> diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig > >> index b860eb5aa194..d23a3b9a2c58 100644 > >> --- a/drivers/mfd/Kconfig > >> +++ b/drivers/mfd/Kconfig > >> @@ -378,6 +378,15 @@ config MFD_MC13XXX_I2C > >> help > >> Select this if your MC13xxx is connected via an I2C bus. > >> > >> +config MFD_MEDIATEK_MMSYS > >> + tristate "Mediatek MMSYS interface" > >> + select MFD_CORE > >> + select REGMAP_MMIO > >> + help > >> + Select this if you have a MMSYS subsystem in your SoC. The > >> + MMSYS subsystem has at least a clock driver part and some > >> + DRM components. > >> + > >> config MFD_MXS_LRADC > >> tristate "Freescale i.MX23/i.MX28 LRADC" > >> depends on ARCH_MXS || COMPILE_TEST > >> diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile > >> index d9d2cf0d32ef..b96118bd68d9 100644 > >> --- a/drivers/mfd/Makefile > >> +++ b/drivers/mfd/Makefile > >> @@ -98,6 +98,8 @@ obj-$(CONFIG_MFD_MC13XXX) += mc13xxx-core.o > >> obj-$(CONFIG_MFD_MC13XXX_SPI) += mc13xxx-spi.o > >> obj-$(CONFIG_MFD_MC13XXX_I2C) += mc13xxx-i2c.o > >> > >> +obj-$(CONFIG_MFD_MEDIATEK_MMSYS) += mtk-mmsys.o > >> + > >> obj-$(CONFIG_MFD_CORE) += mfd-core.o > >> > >> obj-$(CONFIG_EZX_PCAP) += ezx-pcap.o > >> diff --git a/drivers/mfd/mtk-mmsys.c b/drivers/mfd/mtk-mmsys.c > >> new file mode 100644 > >> index 000000000000..c802343fb1c6 > >> --- /dev/null > >> +++ b/drivers/mfd/mtk-mmsys.c > >> @@ -0,0 +1,79 @@ > >> +// SPDX-License-Identifier: GPL-2.0+ > >> + > >> +/* > >> + * mtk-mmsys.c -- Mediatek MMSYS multi-function driver > >> + * > >> + * Copyright (c) 2018 Matthias Brugger > >> + * > >> + * Author: Matthias Brugger > >> + */ > >> + > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> +#include > >> + > >> +enum { > >> + MMSYS_MT2701 = 1, > >> +}; > >> + > >> +static const struct mfd_cell mmsys_mt2701_devs[] = { > >> + { .name = "clk-mt2701-mm", }, > >> + { .name = "drm-mt2701-mm", }, > >> +}; > >> + > >> +static int mmsys_probe(struct platform_device *pdev) > >> +{ > >> + const struct mfd_cell *mmsys_cells; > >> + int nr_cells; > >> + long id; > >> + int ret; > >> + > >> + id = (long) of_device_get_match_data(&pdev->dev); > >> + if (!id) { > >> + dev_err(&pdev->dev, "of_device_get match_data() failed\n"); > >> + return -EINVAL; > >> + } > >> + > >> + switch (id) { > >> + case MMSYS_MT2701: > >> + mmsys_cells = mmsys_mt2701_devs; > >> + nr_cells = ARRAY_SIZE(mmsys_mt2701_devs); > >> + break; > >> + default: > >> + return -ENODEV; > >> + } > >> + > >> + ret = devm_mfd_add_devices(&pdev->dev, 0, mmsys_cells, nr_cells, > >> + NULL, 0, NULL); > >> + if (ret) { > >> + dev_err(&pdev->dev, "failed to add MFD devices %d\n", ret); > >> + return ret; > >> + } > >> + > >> + return 0; > >> +}; > > > > This driver is pretty pointless. It doesn't actually do anything. > > > > I think you just want to use "simple-mfd" instead. > > > > I think the problem is, that right now we have two drivers which use the same > devicetree binding, which are clk and drm driver. With a simple-mfd we would > need two compatibles, and this would break backwards compatibility. So what functionality does this driver provide you with that you do not have currently? -- Lee Jones [???] Linaro Services Technical Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog