From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [PATCH v1 3/7] mfd: add atmel-lcdc driver Date: Wed, 15 Aug 2018 06:24:35 +0100 Message-ID: <20180815052435.GA6412@dell> References: <20180812184152.GA22343@ravnborg.org> <20180812184629.3808-3-sam@ravnborg.org> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <20180812184629.3808-3-sam@ravnborg.org> List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: dri-devel-bounces@lists.freedesktop.org Sender: "dri-devel" To: Sam Ravnborg Cc: Mark Rutland , devicetree@vger.kernel.org, Alexandre Belloni , linux-pwm@vger.kernel.org, Boris Brezillon , Nicolas Ferre , dri-devel@lists.freedesktop.org, Boris Brezillon , Rob Herring , linux-arm-kernel@lists.infradead.org List-Id: linux-pwm@vger.kernel.org T24gU3VuLCAxMiBBdWcgMjAxOCwgU2FtIFJhdm5ib3JnIHdyb3RlOgoKPiBUaGUgTENEQyBJUCB1 c2VkIGJ5IHNvbWUgQXRtZWwgU09DJ3MgaGF2ZSBhCj4gICAgIG11bHRpZnVuY3Rpb24gZGV2aWNl IHRoYXQgaW5jbHVkZSB0d28gc3ViLWRldmljZXM6Cj4gICAgIC0gcHdtCj4gICAgIC0gZGlzcGxh eSBjb250cm9sbGVyCj4gCj4gVGhpcyBtZmQgZGV2aWNlIHByb3ZpZGUgYSByZWdtYXAgdGhhdCBj YW4gYmUgdXNlZCBieSB0aGUKPiBzdWItZGV2aWNlcyB0byBzYWZlbHkgYWNjZXNzIHRoZSByZWdp c3RlcnMuCj4gVGhlIG1mZCBkZXZpY2UgYWxzbyBzdXBwb3J0IHRoZSBjbG9jayB1c2VkIGJ5IHRo ZQo+IExDREMgSVAgKyBhIGJ1cyBjbG9jayB0aGF0IGluIHNvbWUgY2FzZXMgYXJlIHJlcXVpcmVk Lgo+IAo+IFRoZSBkcml2ZXIgaXMgYmFzZWQgb24gdGhlIGF0bWVsLWhsY2RjIGRyaXZlci4KPiAK PiBUaGUgQXRtZWwgU09DJ3MgYXJlIGF0OTFzYW05MjYxLCBhdDkxc2FtOTI2MyBldGMuCj4gCj4g U2lnbmVkLW9mZi1ieTogU2FtIFJhdm5ib3JnIDxzYW1AcmF2bmJvcmcub3JnPgo+IENjOiBMZWUg Sm9uZXMgPGxlZS5qb25lc0BsaW5hcm8ub3JnPgo+IENjOiBCb3JpcyBCcmV6aWxsb24gPGJvcmlz LmJyZXppbGxvbkBmcmVlLWVsZWN0cm9ucy5jb20+Cj4gLS0tCj4gIGRyaXZlcnMvbWZkL0tjb25m aWcgICAgICAgICAgICB8ICAxMCArKysKPiAgZHJpdmVycy9tZmQvTWFrZWZpbGUgICAgICAgICAg IHwgICAxICsKPiAgZHJpdmVycy9tZmQvYXRtZWwtbGNkYy5jICAgICAgIHwgMTU4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrCj4gIGluY2x1ZGUvbGludXgvbWZkL2F0bWVsLWxj ZGMuaCB8IDE4NCArKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKwo+ICA0 IGZpbGVzIGNoYW5nZWQsIDM1MyBpbnNlcnRpb25zKCspCj4gIGNyZWF0ZSBtb2RlIDEwMDY0NCBk cml2ZXJzL21mZC9hdG1lbC1sY2RjLmMKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGluY2x1ZGUvbGlu dXgvbWZkL2F0bWVsLWxjZGMuaAo+IAo+IGRpZmYgLS1naXQgYS9kcml2ZXJzL21mZC9LY29uZmln IGIvZHJpdmVycy9tZmQvS2NvbmZpZwo+IGluZGV4IGI4NjBlYjVhYTE5NC4uZjQ4NTFmMGYwMzNm IDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWZkL0tjb25maWcKPiArKysgYi9kcml2ZXJzL21mZC9L Y29uZmlnCj4gQEAgLTEyMSw2ICsxMjEsMTYgQEAgY29uZmlnIE1GRF9BVE1FTF9ITENEQwo+ICAJ ICBhZGRpdGlvbmFsIGRyaXZlcnMgbXVzdCBiZSBlbmFibGVkIGluIG9yZGVyIHRvIHVzZSB0aGUK PiAgCSAgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGV2aWNlLgo+ICAKPiArY29uZmlnIE1GRF9BVE1F TF9MQ0RDCj4gKwl0cmlzdGF0ZSAiQXRtZWwgTENEQyAoTENEIENvbnRyb2xsZXIpIgo+ICsJc2Vs ZWN0IE1GRF9DT1JFCj4gKwlkZXBlbmRzIG9uIE9GCj4gKwloZWxwCj4gKwkgIElmIHlvdSBzYXkg eWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciB0aGUgTENEQyBibG9jay4KPiArCSAgVGhpcyBk cml2ZXIgcHJvdmlkZXMgY29tbW9uIHN1cHBvcnQgZm9yIGFjY2Vzc2luZyB0aGUgZGV2aWNlLAo+ ICsJICBhZGRpdGlvbmFsIGRyaXZlcnMgbXVzdCBiZSBlbmFibGVkIGluIG9yZGVyIHRvIHVzZSB0 aGUKPiArCSAgZnVuY3Rpb25hbGl0eSBvZiB0aGUgZGV2aWNlLgo+ICsKPiAgY29uZmlnIE1GRF9B VE1FTF9TTUMKPiAgCWJvb2wKPiAgCXNlbGVjdCBNRkRfU1lTQ09OCj4gZGlmZiAtLWdpdCBhL2Ry aXZlcnMvbWZkL01ha2VmaWxlIGIvZHJpdmVycy9tZmQvTWFrZWZpbGUKPiBpbmRleCBlOWZkMjBk YmExOGQuLmRiYTg0NjVlMGQ5NiAxMDA2NDQKPiAtLS0gYS9kcml2ZXJzL21mZC9NYWtlZmlsZQo+ ICsrKyBiL2RyaXZlcnMvbWZkL01ha2VmaWxlCj4gQEAgLTE4Niw2ICsxODYsNyBAQCBvYmotJChD T05GSUdfTUZEX1RQUzY1MDkwKQkrPSB0cHM2NTA5MC5vCj4gIG9iai0kKENPTkZJR19NRkRfQUFU Mjg3MF9DT1JFKQkrPSBhYXQyODcwLWNvcmUubwo+ICBvYmotJChDT05GSUdfTUZEX0FUTUVMX0ZM RVhDT00pCSs9IGF0bWVsLWZsZXhjb20ubwo+ICBvYmotJChDT05GSUdfTUZEX0FUTUVMX0hMQ0RD KQkrPSBhdG1lbC1obGNkYy5vCj4gK29iai0kKENPTkZJR19NRkRfQVRNRUxfTENEQykJKz0gYXRt ZWwtbGNkYy5vCj4gIG9iai0kKENPTkZJR19NRkRfQVRNRUxfU01DKQkrPSBhdG1lbC1zbWMubwo+ ICBvYmotJChDT05GSUdfTUZEX0lOVEVMX0xQU1MpCSs9IGludGVsLWxwc3Mubwo+ICBvYmotJChD T05GSUdfTUZEX0lOVEVMX0xQU1NfUENJKQkrPSBpbnRlbC1scHNzLXBjaS5vCj4gZGlmZiAtLWdp dCBhL2RyaXZlcnMvbWZkL2F0bWVsLWxjZGMuYyBiL2RyaXZlcnMvbWZkL2F0bWVsLWxjZGMuYwo+ IG5ldyBmaWxlIG1vZGUgMTAwNjQ0Cj4gaW5kZXggMDAwMDAwMDAwMDAwLi44OTI4OTc2YmFmY2EK PiAtLS0gL2Rldi9udWxsCj4gKysrIGIvZHJpdmVycy9tZmQvYXRtZWwtbGNkYy5jCj4gQEAgLTAs MCArMSwxNTggQEAKPiArLy8gU1BEWC1MaWNlbnNlLUlkZW50aWZpZXI6IEdQTC0yLjAKPiArLyoK PiArICogQ29weXJpZ2h0IChDKSAyMDE4IFNhbSBSYXZuYm9yZwo+ICsgKgo+ICsgKiBBdXRob3I6 IFNhbSBSYXZuYm9yZyA8c2FtQHJhdm5ib3JnLm9yZz4KPiArICoKPiArICogQmFzZWQgb24gYXRt ZWwtaGxjZGMuYyB3aWNoIGlzOgo+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTQgRnJlZSBFbGVjdHJv bnMKPiArICogQ29weXJpZ2h0IChDKSAyMDE0IEF0bWVsCj4gKyAqIEF1dGhvcjogQm9yaXMgQlJF WklMTE9OIDxib3Jpcy5icmV6aWxsb25AZnJlZS1lbGVjdHJvbnMuY29tPgo+ICsgKi8KPiArCj4g KyNpbmNsdWRlIDxsaW51eC9tZmQvYXRtZWwtbGNkYy5oPgo+ICsjaW5jbHVkZSA8bGludXgvbWZk L2NvcmUuaD4KPiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+ICsjaW5jbHVkZSA8bGludXgv cmVnbWFwLmg+Cj4gKyNpbmNsdWRlIDxsaW51eC9jbGsuaD4KPiArI2luY2x1ZGUgPGxpbnV4L2lv Lmg+Cj4gKwo+ICsjZGVmaW5lIEFUTUVMX0xDRENfUkVHX01BWAkJKDB4MTAwMCAtIDB4NCkKPiAr Cj4gK3N0cnVjdCBsY2RjX3JlZ21hcCB7Cj4gKwl2b2lkIF9faW9tZW0gKnJlZ3M7Cj4gK307Cj4g Kwo+ICtzdGF0aWMgY29uc3Qgc3RydWN0IG1mZF9jZWxsIGxjZGNfY2VsbHNbXSA9IHsKPiArCXsK PiArCQkubmFtZSA9ICJhdG1lbC1sY2RjLXB3bSIsCj4gKwkJLm9mX2NvbXBhdGlibGUgPSAiYXRt ZWwsbGNkYy1wd20iLAo+ICsJfSwKPiArCXsKPiArCQkubmFtZSA9ICJhdG1lbC1sY2RjLWRjIiwK PiArCQkub2ZfY29tcGF0aWJsZSA9ICJhdG1lbCxsY2RjLWRpc3BsYXktY29udHJvbGxlciIsCj4g Kwl9LAo+ICt9OwoKV2lsbCB5b3UgYmUgYWRkaW5nIGFueSBtb3JlIGRldmljZXMsIG9yIGlzIHRo aXMgdGhlIGVudGlyZXR5IG9mIHRoZQpkZXZpY2U/ICBJZiB0aGUgbGF0dGVyLCBJIHN1Z2dlc3Qg dGhhdCB0aGlzIGRvZXNuJ3Qgd2FycmFudCBiZWluZyBhbgpNRkQuCgotLSAKTGVlIEpvbmVzIFvm nY7nkLzmlq9dCkxpbmFybyBTZXJ2aWNlcyBUZWNobmljYWwgTGVhZApMaW5hcm8ub3JnIOKUgiBP cGVuIHNvdXJjZSBzb2Z0d2FyZSBmb3IgQVJNIFNvQ3MKRm9sbG93IExpbmFybzogRmFjZWJvb2sg fCBUd2l0dGVyIHwgQmxvZwpfX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fXwpkcmktZGV2ZWwgbWFpbGluZyBsaXN0CmRyaS1kZXZlbEBsaXN0cy5mcmVlZGVza3Rv cC5vcmcKaHR0cHM6Ly9saXN0cy5mcmVlZGVza3RvcC5vcmcvbWFpbG1hbi9saXN0aW5mby9kcmkt ZGV2ZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: lee.jones@linaro.org (Lee Jones) Date: Wed, 15 Aug 2018 06:24:35 +0100 Subject: [PATCH v1 3/7] mfd: add atmel-lcdc driver In-Reply-To: <20180812184629.3808-3-sam@ravnborg.org> References: <20180812184152.GA22343@ravnborg.org> <20180812184629.3808-3-sam@ravnborg.org> Message-ID: <20180815052435.GA6412@dell> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Sun, 12 Aug 2018, Sam Ravnborg wrote: > The LCDC IP used by some Atmel SOC's have a > multifunction device that include two sub-devices: > - pwm > - display controller > > This mfd device provide a regmap that can be used by the > sub-devices to safely access the registers. > The mfd device also support the clock used by the > LCDC IP + a bus clock that in some cases are required. > > The driver is based on the atmel-hlcdc driver. > > The Atmel SOC's are at91sam9261, at91sam9263 etc. > > Signed-off-by: Sam Ravnborg > Cc: Lee Jones > Cc: Boris Brezillon > --- > drivers/mfd/Kconfig | 10 +++ > drivers/mfd/Makefile | 1 + > drivers/mfd/atmel-lcdc.c | 158 +++++++++++++++++++++++++++++++++++ > include/linux/mfd/atmel-lcdc.h | 184 +++++++++++++++++++++++++++++++++++++++++ > 4 files changed, 353 insertions(+) > create mode 100644 drivers/mfd/atmel-lcdc.c > create mode 100644 include/linux/mfd/atmel-lcdc.h > > diff --git a/drivers/mfd/Kconfig b/drivers/mfd/Kconfig > index b860eb5aa194..f4851f0f033f 100644 > --- a/drivers/mfd/Kconfig > +++ b/drivers/mfd/Kconfig > @@ -121,6 +121,16 @@ config MFD_ATMEL_HLCDC > additional drivers must be enabled in order to use the > functionality of the device. > > +config MFD_ATMEL_LCDC > + tristate "Atmel LCDC (LCD Controller)" > + select MFD_CORE > + depends on OF > + help > + If you say yes here you get support for the LCDC block. > + This driver provides common support for accessing the device, > + additional drivers must be enabled in order to use the > + functionality of the device. > + > config MFD_ATMEL_SMC > bool > select MFD_SYSCON > diff --git a/drivers/mfd/Makefile b/drivers/mfd/Makefile > index e9fd20dba18d..dba8465e0d96 100644 > --- a/drivers/mfd/Makefile > +++ b/drivers/mfd/Makefile > @@ -186,6 +186,7 @@ obj-$(CONFIG_MFD_TPS65090) += tps65090.o > obj-$(CONFIG_MFD_AAT2870_CORE) += aat2870-core.o > obj-$(CONFIG_MFD_ATMEL_FLEXCOM) += atmel-flexcom.o > obj-$(CONFIG_MFD_ATMEL_HLCDC) += atmel-hlcdc.o > +obj-$(CONFIG_MFD_ATMEL_LCDC) += atmel-lcdc.o > obj-$(CONFIG_MFD_ATMEL_SMC) += atmel-smc.o > obj-$(CONFIG_MFD_INTEL_LPSS) += intel-lpss.o > obj-$(CONFIG_MFD_INTEL_LPSS_PCI) += intel-lpss-pci.o > diff --git a/drivers/mfd/atmel-lcdc.c b/drivers/mfd/atmel-lcdc.c > new file mode 100644 > index 000000000000..8928976bafca > --- /dev/null > +++ b/drivers/mfd/atmel-lcdc.c > @@ -0,0 +1,158 @@ > +// SPDX-License-Identifier: GPL-2.0 > +/* > + * Copyright (C) 2018 Sam Ravnborg > + * > + * Author: Sam Ravnborg > + * > + * Based on atmel-hlcdc.c wich is: > + * Copyright (C) 2014 Free Electrons > + * Copyright (C) 2014 Atmel > + * Author: Boris BREZILLON > + */ > + > +#include > +#include > +#include > +#include > +#include > +#include > + > +#define ATMEL_LCDC_REG_MAX (0x1000 - 0x4) > + > +struct lcdc_regmap { > + void __iomem *regs; > +}; > + > +static const struct mfd_cell lcdc_cells[] = { > + { > + .name = "atmel-lcdc-pwm", > + .of_compatible = "atmel,lcdc-pwm", > + }, > + { > + .name = "atmel-lcdc-dc", > + .of_compatible = "atmel,lcdc-display-controller", > + }, > +}; Will you be adding any more devices, or is this the entirety of the device? If the latter, I suggest that this doesn't warrant being an MFD. -- Lee Jones [???] Linaro Services Technical Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog