From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Date: Wed, 30 Apr 2014 13:58:55 +0000 Subject: Re: [lm-sensors] [PATCH 02/10] mfd: vexpress: Convert custom func API to regmap Message-Id: <20140430135855.GO29462@lee--X1> List-Id: References: <1398707877-22596-1-git-send-email-pawel.moll@arm.com> <1398707877-22596-3-git-send-email-pawel.moll@arm.com> In-Reply-To: <1398707877-22596-3-git-send-email-pawel.moll@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Pawel Moll Cc: Grant Likely , Rob Herring , Samuel Ortiz , Arnd Bergmann , Greg Kroah-Hartman , Russell King , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm@kernel.org, Jean Delvare , Guenter Roeck , lm-sensors@lm-sensors.org, Mark Brown , Liam Girdwood , David Woodhouse , Dmitry Eremin-Solenikov , Mike Turquette PiBDb21wb25lbnRzIG9mIHRoZSBWZXJzYXRpbGUgRXhwcmVzcyBwbGF0Zm9ybSAoY29uZmlndXJh dGlvbgo+IG1pY3JvY29udHJvbGxlcnMgb24gbW90aGVyYm9hcmQgYW5kIGRhdWdodGVyYm9hcmRz IGluIHBhcnRpY3VsYXIpCj4gdGFsayB0byBlYWNoIG90aGVyIG92ZXIgYSBjdXN0b20gY29uZmln dXJhdGlvbiBidXMuIFRoZXkKPiBwcm92aWRlIG1pc2NlbGxhbmVvdXMgZnVuY3Rpb25zIChmcm9t IGNsb2NrIGdlbmVyYXRvciBjb250cm9sCj4gdG8gZW5lcmd5IHNlbnNvcnMpIHdoaWNoIGFyZSBy ZXByZXNlbnRlZCBhcyBwbGF0Zm9ybSBkZXZpY2VzCj4gKGFuZCBEZXZpY2UgVHJlZSBub2Rlcyku IFRoZSB0cmFuc2FjdGlvbnMgb24gdGhlIGJ1cyBjYW4KPiBiZSBnZW5lcmF0ZWQgYnkgZGlmZmVy ZW50ICJicmlkZ2VzIiBpbiB0aGUgc3lzdGVtLCBzb21lCj4gb2Ygd2hpY2ggYXJlIHVuaXZlcnNh bCBmb3IgdGhlIHdob2xlIHBsYXRmb3JtIChmb3IgdGhlIHByaWNlCj4gb2YgaGlnaCB0cmFuc2Zl ciBsYXRlbmNpZXMpLCBvdGhlcnMgcmVzdHJpY3RlZCB0byBhIHN1YnN5c3RlbQo+IChidXQgbXVj aCBmYXN0ZXIpLgo+IAo+IFVudGlsIG5vdyBkcml2ZXJzIGZvciBzdWNoIGZ1bmN0aW9ucyB3ZXJl IHVzaW5nIGN1c3RvbSAiZnVuYyIKPiBBUEksIHdoaWNoIGlzIGJlaW5nIHJlcGxhY2VkIGluIHRo aXMgcGF0Y2ggYnkgcmVnbWFwIGNhbGxzLgo+IFRoaXMgcmVxdWlyZWQ6Cj4gCj4gKiBhIHJld29y ayAoYW5kIG1vdmUgdG8gZHJpdmVycy9idXMgZGlyZWN0b3J5LCBhcyBzdWdnZXN0ZWQKPiAgIGJ5 IFNhbXVlbCBhbmQgQXJuZCkgb2YgdGhlIGNvbmZpZyBidXMgY29yZSwgd2hpY2ggaXMgbXVjaAo+ ICAgc2ltcGxlciBub3cgYW5kIHVzZXMgZGV2aWNlIG1vZGVsIGluZnJhc3RydWN0dXJlIChjbGFz cykKPiAgIHRvIGtlZXAgdHJhY2sgb2YgdGhlIGJyaWRnZXM7IG5vbi1EVCBjYXNlIChzb29uIHRv IGJlCj4gICByZXRpcmVkIGFueXdheSkgaXMgc2ltcGx5IGNvdmVyZWQgYnkgYSBzcGVjaWFsIGRl dmljZQo+ICAgcmVnaXN0cmF0aW9uIGZ1bmN0aW9uCj4gCj4gKiB0aGUgbmV3IGNvbmZpZy1idXMg ZHJpdmVyIGFsc28gdGFrZXMgb3ZlciBkZXZpY2UgcG9wdWxhdGlvbiwKPiAgIHNvIHRoZXJlIGlz IG5vIG5lZWQgZm9yIHNwZWNpYWwgbWF0Y2hpbmcgdGFibGUgZm9yCj4gICBvZl9wbGF0Zm9ybV9w b3B1bGF0ZSBub3IgInNpbXBsZS1idXMiIGhhY2sgaW4gdGhlIGFybTY0Cj4gICBtb2RlbCBkdHNp IGZpbGUgKHJlbGV2YW50IGJpbmRpbmdzIGRvY3VtZW50YXRpb24gaGFzCj4gICBiZWVuIHVwZGF0 ZWQpOyB0aGlzIGFsbG93cyBhbGwgdGhlIHZleHByZXNzIGRldmljZXMKPiAgIGZpdCBpbnRvIG5v cm1hbCBkZXZpY2UgbW9kZWwsIG1ha2luZyBpdCBwb3NzaWJsZQo+ICAgdG8gcmVtb3ZlIHBsZW50 eSBvZiBlYXJseSBpbml0cyBhbmQgb3RoZXIgaGFja3MgaW4KPiAgIHRoZSBuZWFyIGZ1dHVyZQo+ IAo+ICogYWRhcHRhdGlvbiBvZiB0aGUgc3lzY2ZnIGJyaWRnZSBpbXBsZW1lbnRhdGlvbiBpbiB0 aGUKPiAgIHN5c3JlZyBkcml2ZXIsIGFnYWluIG1ha2luZyBpdCBtdWNoIHNpbXBsZXI7IHRoZXJl IGlzCj4gICBhIHNwZWNpYWwgY2FzZSBvZiB0aGUgImVuZXJneSIgZnVuY3Rpb24gc3Bhbm5pbmcg dHdvCj4gICByZWdpc3RlcnMsIHdoZXJlIHRoZXkgc2hvdWxkIGJlIGJvdGggZGVmaW5lZCBpbiB0 aGUgdHJlZQo+ICAgbm93LCBidXQgYmFja3dhcmQgY29tcGF0aWJpbGl0eSBpcyBtYWludGFpbmVk IGluIHRoZSBjb2RlCj4gCj4gKiBtb2RpZmljYXRpb24gb2YgdGhlIHJlbGV2YW50IGRyaXZlcnM6 Cj4gCj4gICAqIGh3bW9uIC0ganVzdCBhIHN0cmFpZ2h0LWZvcndhcmQgQVBJIGNoYW5nZQo+ICAg KiBwb3dlci9yZXNldCBkcml2ZXIgLSBBUEkgY2hhbmdlCj4gICAqIHJlZ3VsYXRvciAtIEFQSSBj aGFuZ2UgcGx1cyBlcnJvciBoYW5kbGluZwo+ICAgICBzaW1wbGlmaWNhdGlvbgo+ICAgKiBvc2Mg Y2xvY2sgZHJpdmVyIC0gdGhpcyBvbmUgcmVxdWlyZWQgbGFyZ2VyIHJld29yawo+ICAgICBpbiBv cmRlciB0byB0dXJuIGluIGludG8gYSBzdGFuZGFyZCBwbGF0Zm9ybSBkcml2ZXIKPiAKPiBDYzog SmVhbiBEZWx2YXJlIDxqZGVsdmFyZUBzdXNlLmRlPgo+IENjOiBHdWVudGVyIFJvZWNrIDxsaW51 eEByb2Vjay11cy5uZXQ+Cj4gQ2M6IGxtLXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKPiBDYzogTWFy ayBCcm93biA8YnJvb25pZUBrZXJuZWwub3JnPgo+IENjOiBMaWFtIEdpcmR3b29kIDxsZ2lyZHdv b2RAZ21haWwuY29tPgo+IENjOiBEYXZpZCBXb29kaG91c2UgPGR3bXcyQGluZnJhZGVhZC5vcmc+ Cj4gQ2M6IERtaXRyeSBFcmVtaW4tU29sZW5pa292IDxkYmFyeXNoa292QGdtYWlsLmNvbT4KPiBD YzogTWlrZSBUdXJxdWV0dGUgPG10dXJxdWV0dGVAbGluYXJvLm9yZz4KPiBTaWduZWQtb2ZmLWJ5 OiBQYXdlbCBNb2xsIDxwYXdlbC5tb2xsQGFybS5jb20+Cj4gLS0tCj4gIC4uLi9kZXZpY2V0cmVl L2JpbmRpbmdzL2FybS92ZXhwcmVzcy1zeXNyZWcudHh0ICAgIHwgIDQzICsrLQo+ICBEb2N1bWVu dGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvYXJtL3ZleHByZXNzLnR4dCB8ICAxNSArLQo+ICBh cmNoL2FybS9ib290L2R0cy92ZXhwcmVzcy12MnAtY2ExNV9hNy5kdHMgICAgICAgICB8ICAgNSAr LQo+ICBhcmNoL2FybS9tYWNoLXZleHByZXNzL2N0LWNhOXg0LmMgICAgICAgICAgICAgICAgICB8 ICAxMCArLQo+ICBhcmNoL2FybS9tYWNoLXZleHByZXNzL3YybS5jICAgICAgICAgICAgICAgICAg ICAgICB8ICAxOCArLQo+ICBhcmNoL2FybTY0L2Jvb3QvZHRzL3J0c21fdmUtbW90aGVyYm9hcmQu ZHRzaSAgICAgICB8ICAgMiArLQo+ICBkcml2ZXJzL2J1cy9LY29uZmlnICAgICAgICAgICAgICAg ICAgICAgICAgICAgICAgICB8ICAgOSArCj4gIGRyaXZlcnMvYnVzL01ha2VmaWxlICAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgIHwgICAyICsKPiAgZHJpdmVycy9idXMvdmV4cHJlc3MtY29u ZmlnLmMgICAgICAgICAgICAgICAgICAgICAgfCAyMDIgKysrKysrKysrKysKPiAgZHJpdmVycy9j bGsvdmVyc2F0aWxlL2Nsay12ZXhwcmVzcy1vc2MuYyAgICAgICAgICAgfCAgOTQgKysrLS0KPiAg ZHJpdmVycy9od21vbi92ZXhwcmVzcy5jICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAgMTUg Ky0KPiAgZHJpdmVycy9tZmQvTWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAgIDIgKy0KPiAgZHJpdmVycy9tZmQvdmV4cHJlc3MtY29uZmlnLmMgICAgICAgICAgICAgICAg ICAgICAgfCAyODcgLS0tLS0tLS0tLS0tLS0tCj4gIGRyaXZlcnMvbWZkL3ZleHByZXNzLXN5c3Jl Zy5jICAgICAgICAgICAgICAgICAgICAgIHwgMzk1ICsrKysrKysrKysrLS0tLS0tLS0tLQo+ICBk cml2ZXJzL3Bvd2VyL3Jlc2V0L3ZleHByZXNzLXBvd2Vyb2ZmLmMgICAgICAgICAgICB8ICAxNiAr LQo+ICBkcml2ZXJzL3JlZ3VsYXRvci92ZXhwcmVzcy5jICAgICAgICAgICAgICAgICAgICAgICB8 ICA1MCArLS0KPiAgaW5jbHVkZS9saW51eC92ZXhwcmVzcy5oICAgICAgICAgICAgICAgICAgICAg ICAgICAgfCAgNzkgKy0tLS0KPiAgMTcgZmlsZXMgY2hhbmdlZCwgNTY3IGluc2VydGlvbnMoKyks IDY3NyBkZWxldGlvbnMoLSkKPiAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvYnVzL3ZleHBy ZXNzLWNvbmZpZy5jCj4gIGRlbGV0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL21mZC92ZXhwcmVzcy1j b25maWcuYwoKQmxpbWV5IQoKTUZEIGRpZmZzdGF0IGxvb2tzIGdyZWF0IGFuZCB0aGUgY2hhbmdl cyBsb29rIHNlbnNpYmxlOgogIEFja2VkLWJ5OiBMZWUgSm9uZXMgPGxlZS5qb25lc0BsaW5hcm8u b3JnPgoKSSBndWVzcyBzb21lb25lIHdpbGwgbmVlZCB0byBjcmVhdGUgYSBicmFuY2ggZm9yIHVz IGFsbCB0byBwdWxsIGZyb20uCkknbSBoYXBweSB0byBkbyBpdCBpZiBuZWVkcyBiZS4KCi0tIApM ZWUgSm9uZXMKTGluYXJvIFNUTWljcm9lbGVjdHJvbmljcyBMYW5kaW5nIFRlYW0gTGVhZApMaW5h cm8ub3JnIOKUgiBPcGVuIHNvdXJjZSBzb2Z0d2FyZSBmb3IgQVJNIFNvQ3MKRm9sbG93IExpbmFy bzogRmFjZWJvb2sgfCBUd2l0dGVyIHwgQmxvZwoKX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX18KbG0tc2Vuc29ycyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29yc0Bs bS1zZW5zb3JzLm9yZwpodHRwOi8vbGlzdHMubG0tc2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0aW5m by9sbS1zZW5zb3Jz From mboxrd@z Thu Jan 1 00:00:00 1970 From: lee.jones@linaro.org (Lee Jones) Date: Wed, 30 Apr 2014 14:58:55 +0100 Subject: [PATCH 02/10] mfd: vexpress: Convert custom func API to regmap In-Reply-To: <1398707877-22596-3-git-send-email-pawel.moll@arm.com> References: <1398707877-22596-1-git-send-email-pawel.moll@arm.com> <1398707877-22596-3-git-send-email-pawel.moll@arm.com> Message-ID: <20140430135855.GO29462@lee--X1> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org > Components of the Versatile Express platform (configuration > microcontrollers on motherboard and daughterboards in particular) > talk to each other over a custom configuration bus. They > provide miscellaneous functions (from clock generator control > to energy sensors) which are represented as platform devices > (and Device Tree nodes). The transactions on the bus can > be generated by different "bridges" in the system, some > of which are universal for the whole platform (for the price > of high transfer latencies), others restricted to a subsystem > (but much faster). > > Until now drivers for such functions were using custom "func" > API, which is being replaced in this patch by regmap calls. > This required: > > * a rework (and move to drivers/bus directory, as suggested > by Samuel and Arnd) of the config bus core, which is much > simpler now and uses device model infrastructure (class) > to keep track of the bridges; non-DT case (soon to be > retired anyway) is simply covered by a special device > registration function > > * the new config-bus driver also takes over device population, > so there is no need for special matching table for > of_platform_populate nor "simple-bus" hack in the arm64 > model dtsi file (relevant bindings documentation has > been updated); this allows all the vexpress devices > fit into normal device model, making it possible > to remove plenty of early inits and other hacks in > the near future > > * adaptation of the syscfg bridge implementation in the > sysreg driver, again making it much simpler; there is > a special case of the "energy" function spanning two > registers, where they should be both defined in the tree > now, but backward compatibility is maintained in the code > > * modification of the relevant drivers: > > * hwmon - just a straight-forward API change > * power/reset driver - API change > * regulator - API change plus error handling > simplification > * osc clock driver - this one required larger rework > in order to turn in into a standard platform driver > > Cc: Jean Delvare > Cc: Guenter Roeck > Cc: lm-sensors at lm-sensors.org > Cc: Mark Brown > Cc: Liam Girdwood > Cc: David Woodhouse > Cc: Dmitry Eremin-Solenikov > Cc: Mike Turquette > Signed-off-by: Pawel Moll > --- > .../devicetree/bindings/arm/vexpress-sysreg.txt | 43 ++- > Documentation/devicetree/bindings/arm/vexpress.txt | 15 +- > arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 5 +- > arch/arm/mach-vexpress/ct-ca9x4.c | 10 +- > arch/arm/mach-vexpress/v2m.c | 18 +- > arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi | 2 +- > drivers/bus/Kconfig | 9 + > drivers/bus/Makefile | 2 + > drivers/bus/vexpress-config.c | 202 +++++++++++ > drivers/clk/versatile/clk-vexpress-osc.c | 94 +++-- > drivers/hwmon/vexpress.c | 15 +- > drivers/mfd/Makefile | 2 +- > drivers/mfd/vexpress-config.c | 287 --------------- > drivers/mfd/vexpress-sysreg.c | 395 +++++++++++---------- > drivers/power/reset/vexpress-poweroff.c | 16 +- > drivers/regulator/vexpress.c | 50 +-- > include/linux/vexpress.h | 79 +---- > 17 files changed, 567 insertions(+), 677 deletions(-) > create mode 100644 drivers/bus/vexpress-config.c > delete mode 100644 drivers/mfd/vexpress-config.c Blimey! MFD diffstat looks great and the changes look sensible: Acked-by: Lee Jones I guess someone will need to create a branch for us all to pull from. I'm happy to do it if needs be. -- Lee Jones Linaro STMicroelectronics Landing Team Lead 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: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1758989AbaD3N7E (ORCPT ); Wed, 30 Apr 2014 09:59:04 -0400 Received: from mail-wi0-f172.google.com ([209.85.212.172]:56102 "EHLO mail-wi0-f172.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751651AbaD3N7D (ORCPT ); Wed, 30 Apr 2014 09:59:03 -0400 Date: Wed, 30 Apr 2014 14:58:55 +0100 From: Lee Jones To: Pawel Moll Cc: Grant Likely , Rob Herring , Samuel Ortiz , Arnd Bergmann , Greg Kroah-Hartman , Russell King , linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org, arm@kernel.org, Jean Delvare , Guenter Roeck , lm-sensors@lm-sensors.org, Mark Brown , Liam Girdwood , David Woodhouse , Dmitry Eremin-Solenikov , Mike Turquette Subject: Re: [PATCH 02/10] mfd: vexpress: Convert custom func API to regmap Message-ID: <20140430135855.GO29462@lee--X1> References: <1398707877-22596-1-git-send-email-pawel.moll@arm.com> <1398707877-22596-3-git-send-email-pawel.moll@arm.com> MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Disposition: inline Content-Transfer-Encoding: 8bit In-Reply-To: <1398707877-22596-3-git-send-email-pawel.moll@arm.com> User-Agent: Mutt/1.5.21 (2010-09-15) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org > Components of the Versatile Express platform (configuration > microcontrollers on motherboard and daughterboards in particular) > talk to each other over a custom configuration bus. They > provide miscellaneous functions (from clock generator control > to energy sensors) which are represented as platform devices > (and Device Tree nodes). The transactions on the bus can > be generated by different "bridges" in the system, some > of which are universal for the whole platform (for the price > of high transfer latencies), others restricted to a subsystem > (but much faster). > > Until now drivers for such functions were using custom "func" > API, which is being replaced in this patch by regmap calls. > This required: > > * a rework (and move to drivers/bus directory, as suggested > by Samuel and Arnd) of the config bus core, which is much > simpler now and uses device model infrastructure (class) > to keep track of the bridges; non-DT case (soon to be > retired anyway) is simply covered by a special device > registration function > > * the new config-bus driver also takes over device population, > so there is no need for special matching table for > of_platform_populate nor "simple-bus" hack in the arm64 > model dtsi file (relevant bindings documentation has > been updated); this allows all the vexpress devices > fit into normal device model, making it possible > to remove plenty of early inits and other hacks in > the near future > > * adaptation of the syscfg bridge implementation in the > sysreg driver, again making it much simpler; there is > a special case of the "energy" function spanning two > registers, where they should be both defined in the tree > now, but backward compatibility is maintained in the code > > * modification of the relevant drivers: > > * hwmon - just a straight-forward API change > * power/reset driver - API change > * regulator - API change plus error handling > simplification > * osc clock driver - this one required larger rework > in order to turn in into a standard platform driver > > Cc: Jean Delvare > Cc: Guenter Roeck > Cc: lm-sensors@lm-sensors.org > Cc: Mark Brown > Cc: Liam Girdwood > Cc: David Woodhouse > Cc: Dmitry Eremin-Solenikov > Cc: Mike Turquette > Signed-off-by: Pawel Moll > --- > .../devicetree/bindings/arm/vexpress-sysreg.txt | 43 ++- > Documentation/devicetree/bindings/arm/vexpress.txt | 15 +- > arch/arm/boot/dts/vexpress-v2p-ca15_a7.dts | 5 +- > arch/arm/mach-vexpress/ct-ca9x4.c | 10 +- > arch/arm/mach-vexpress/v2m.c | 18 +- > arch/arm64/boot/dts/rtsm_ve-motherboard.dtsi | 2 +- > drivers/bus/Kconfig | 9 + > drivers/bus/Makefile | 2 + > drivers/bus/vexpress-config.c | 202 +++++++++++ > drivers/clk/versatile/clk-vexpress-osc.c | 94 +++-- > drivers/hwmon/vexpress.c | 15 +- > drivers/mfd/Makefile | 2 +- > drivers/mfd/vexpress-config.c | 287 --------------- > drivers/mfd/vexpress-sysreg.c | 395 +++++++++++---------- > drivers/power/reset/vexpress-poweroff.c | 16 +- > drivers/regulator/vexpress.c | 50 +-- > include/linux/vexpress.h | 79 +---- > 17 files changed, 567 insertions(+), 677 deletions(-) > create mode 100644 drivers/bus/vexpress-config.c > delete mode 100644 drivers/mfd/vexpress-config.c Blimey! MFD diffstat looks great and the changes look sensible: Acked-by: Lee Jones I guess someone will need to create a branch for us all to pull from. I'm happy to do it if needs be. -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org │ Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog