From mboxrd@z Thu Jan 1 00:00:00 1970 From: Christian Lamparter Subject: [RFC v4 0/8] gpio: add DT support for generic memory-mapped GPIOs Date: Thu, 28 Apr 2016 11:05:10 +0200 Message-ID: Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+linux-arm-kernel=m.gmane.org@lists.infradead.org To: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Mark Rutland , Alexandre Courbot , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Pawel Moll , Alexander Shiyan , Ian Campbell , Linus Walleij , Rob Herring , Kumar Gala , Christian Lamparter List-Id: linux-gpio@vger.kernel.org VGhpcyBwYXRjaCBzZXJpZXMgYWRkcyBkZXZpY2UgdHJlZSBzdXBwb3J0IGZvciBnZW5lcmljIG1l bW9yeS1tYXBwZWQgR1BJT3MuClRoZSBHUElPIGxpYnJhcnkgYWxyZWFkeSBhbGxvd3MgZHJpdmVy cyBhbmQgYXJjaGl0ZWN0dXJlIHN1cHBvcnQgY29kZSB0bwpyZXVzZSBnZW5lcmljIGNvZGUgZm9y IG1hbmFnaW5nIGEgR1BJTyBjaGlwLiBDdXJyZW50bHksIGEgZGV2ZWxvcGVyIGhhcwp0byBjcmVh dGUgYSBwbGF0Zm9ybSBkZXZpY2UgImJhc2ljLW1taW8tZ3BpbyIgYW5kIGF0dGFjaCBhIGJncGlv X3BkYXRhCnBsYXRmb3JtIGRhdGEgc3RydWN0dXJlIHRvIG1ha2UgdXNlIG9mIGl0LiBIb3dldmVy LCBmb3IgYXJjaGl0ZWN0dXJlcwp3aGljaCByZWx5IG9uIHRoZSBkZXZpY2UgdHJlZSB0byBlbnVt ZXJhdGUgZGV2aWNlcywgY3JlYXRpbmcgY3VzdG9tCnBsYXRmb3JtIGRldmljZXMgaXMgYW5vdGhl ciBleHRyYSBzdGVwIHRoYXQgY2FuIGJlIGF2b2lkZWQgYnkgaGF2aW5nCmRpcmVjdCBzdXBwb3J0 IHZpYSBhIGRldmljZSB0cmVlIGJpbmRpbmcuCgpJIGluaXRpYWxseSBjYW1lIGFjcm9zcyB0aGlz IHBhdGNoIFswXSBmcm9tIMOBbHZhcm8gRmVybsOhbmRleiBSb2phcywKd2hpbGUgbG9va2luZyBm b3IgYW4gZWFzeSB3YXkgdG8gYWRkIHN1cHBvcnQgZm9yIHRoZSBHUElPIG9mIG15CldEIE15Qm9v ayBMaXZlIFsxXSAoQVBNODIxODEgLSBwcGM0NjQpLiBUaGlzIGdlbmVyaWMgYXBwcm9hY2ggcGF0 Y2gKYWxsb3dlZCBtZSB0byBlYXNpbHkgZ2V0IHRoZSBHUElPIChhbmQgdGhlIGNvbm5lY3RlZCBM RURzLApidXR0b25zLCBncGlvaG9ncywgZXRjLikgdXAgYW5kIHJ1bm5pbmcuIEV2ZW4gdG91Z2h0 LCBNci4gRmVybmFuZGV6CmluaXRpYWxseSBkZXZlbG9wZWQgaXQgZm9yIGhpcyB3b3JrIG9uIHRo ZSBicmNtNjN4eCBbMl0uCgpbMF0gPGh0dHBzOi8vcGF0Y2h3b3JrLm96bGFicy5vcmcvcGF0Y2gv NDIyMTIxLz4KWzFdIDxodHRwczovL2dpdGh1Yi5jb20vY2h1bmtlZXkvTUJMLW9wZW53cnQ+Clsy XSA8aHR0cHM6Ly93aWtpLm9wZW53cnQub3JnL2RvYy9oYXJkd2FyZS9zb2Mvc29jLmJyb2FkY29t LmJjbTYzeHg+CgpDdXJyZW50bHksIHRoZSBkZXZpY2UgdHJlZSBwYXJzZXMgZm9yIHRoZSBpbnRl Z3JhdGVkIGRyaXZlcnMKKGdwaW8tY2xwczcxMXgsIGdwaW8tZ2UsIGdwaW8tbW94YXJ0IGFuZCBn cGlvLXRzNDgwMCkgYXJlIHN0aWxsCnJlc2lkaW5nIGluIHRoZWlyIG9yaWdpbmFsIGRyaXZlciAu YyBmaWxlLiBUaGlzIHdheSwgdGhlc2UKZHJpdmVycyBkb24ndCBjbHV0dGVyIHRoZSBncGlvLWdl bmVyaWMuYyB3aXRoIHRoZWlyIG93biBoYXJkd2FyZQpkZWZpbml0aW9ucyBhbmQgTU9EVUxFXyog c3RhdGVtZW50cy4gSSBob3BlZCB0aGlzIHdvdWxkIG1ha2UgdGhlCnRyYW5zaXRpb24gZnJvbSB0 aGUgX3Byb2JlIHRvIHRoZSBwYXJzZXIgbGVzcyBwYWlubGVzcyBidXQgdGhlIGRpZmYKaXMgcmV0 dHkgbXVjaCB1bnJlYWRhYmxlLiBTbyB0aGUgbmV4dCBzZXJpZXMgd2lsbCBjb25zb2xpZGF0ZSB0 aGVtCmludG8gZ3Bpby1nZW5lcmljLmMgYW5kIHRoZW4gSSBjYW4gZHJvcCB0aGUgZ3Bpby1nZW5l cmljIC0+IGdwaW8tbW1pbwpjaGFuZ2UuIEkgdGhpbmsgdGhpcyBpcyBub3cgbW9zdGx5IGEgbWF0 dGVyIG9mIGhvdyB0byBvcmdhbml6ZSB0aGluZ3MKYW5kIHdoeSBub3QgdHJ5IGl0IGp1c3Qgb25j ZSBqdXN0IHNvIGl0IHdhcyB0ZXN0ZWQuCgpjaGFuZ2Vsb2c6Cgp2MyAtPiB2NDoKCS0gcmVuYW1l ZCBncGlvLWdlbmVyaWMuYyB0byBncGlvLW1taW8uYwoJICAoVGhlIGdwaW8tZ2VuZXJpYyBvbmx5 IGNvbnRhaW5zIGEgZ2VuZXJpYyBtbWlvIGRyaXZlciwKCSAgdGhpcyBjb25mdXNlcyBhbmQgYW5n ZXJzIHBlb3BsZSEpCgktIGNoYW5nZWQgY29tcGF0LiBzdHJpbmcgdG8gImxpbnV4LGdwaW8tbW1p byIKCS0gaW50ZWdyYXRlZCBDaXJydXMgY2xwczcxMXggZHJpdmVyCgktIGludGVncmF0ZWQgR0Ug RkdQQSBncGlvLWdlIGRyaXZlcgoJLSBpbnRlZ3JhdGVkIE1PWEEgQVJUIEdQSU8gZHJpdmVyCgkt IGludGVncmF0ZWQgVFM0ODAwIGdwaW8gZHJpdmVyCgktIHJlc2h1ZmZsZWQgcGF0Y2hlcywgcmV3 b3JkZWQgY29tbWl0cywgZml4ZWQgc3BlbGxpbmcgZXJyb3JzLCBldGMuCgpUaGFua3MhIChQbGVh c2Uga2VlcCBtZSBpbiB0aGUgQ0MpCi0tLQpDaHJpc3RpYW4gTGFtcGFydGVyICg2KToKICBncGlv OiBnZW5lcmljOiBmaXggR1BJT19HRU5FUklDX1BMQVRGT1JNIGlzIHNldCB0byBtb2R1bGUgY2Fz ZQogIGdwaW86IHJlbmFtZSBncGlvLWdlbmVyaWMuYyBpbnRvIGdwaW8tbW1pby5jCiAgZ3Bpbzog Y2xwczcxMXg6IGludGVncmF0ZSBjaXJydXMgY2xwczcxMXggaW50byBncGlvLW1taW8KICBncGlv OiBnZTogaW50ZWdyYXRlIEdFJ3MgRlBHQSBHUElPIGludG8gZ3Bpby1tbWlvCiAgZ3BpbzogbW94 YXJ0OiBpbnRlZ3JhdGUgTU9YQSBBUlQgR1BJTyBkcml2ZXIgaW50byBncGlvLW1taW8KICBncGlv OiB0czQ4MDA6IGludGVncmF0ZSBUUzQ4MDAgaW50byBncGlvLW1taW8KCsOBbHZhcm8gRmVybsOh bmRleiBSb2phcyAoMik6CiAgZ3BpbzogZ2VuZXJpYzogYWRkIERUIHN1cHBvcnQgZm9yIGdlbmVy aWMgbWVtb3J5LW1hcHBlZCBHUElPcwogIGdwaW86IGR0LWJpbmRpbmdzOiBhZGQgZ3Bpby1tbWlv IGJpbmRpbmdzCgogLi4uL2RldmljZXRyZWUvYmluZGluZ3MvZ3Bpby9ncGlvLW1taW8udHh0ICAg ICAgICAgfCAgNzMgKysrKysrKysrKysrKysrCiBkcml2ZXJzL2dwaW8vS2NvbmZpZyAgICAgICAg ICAgICAgICAgICAgICAgICAgICAgICB8ICA1NyArKysrKystLS0tLS0KIGRyaXZlcnMvZ3Bpby9N YWtlZmlsZSAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDExICsrLQogZHJpdmVycy9n cGlvL2dwaW8tY2xwczcxMXguYyAgICAgICAgICAgICAgICAgICAgICAgfCAgODQgKysrKysrLS0t LS0tLS0tLS0KIGRyaXZlcnMvZ3Bpby9ncGlvLWdlLmMgICAgICAgICAgICAgICAgICAgICAgICAg ICAgIHwgMTAxICsrKysrKy0tLS0tLS0tLS0tLS0tLQogZHJpdmVycy9ncGlvL2dwaW8tbW1pby1j b21wYXQuaCAgICAgICAgICAgICAgICAgICAgfCAgNjUgKysrKysrKysrKysrKwogZHJpdmVycy9n cGlvL3tncGlvLWdlbmVyaWMuYyA9PiBncGlvLW1taW8uY30gICAgICAgfCAxMDEgKysrKysrKysr KysrKysrKysrKystCiBkcml2ZXJzL2dwaW8vZ3Bpby1tb3hhcnQuYyAgICAgICAgICAgICAgICAg ICAgICAgICB8ICA4MSArKysrKy0tLS0tLS0tLS0tLQogZHJpdmVycy9ncGlvL2dwaW8tdHM0ODAw LmMgICAgICAgICAgICAgICAgICAgICAgICAgfCAgNzYgKysrKystLS0tLS0tLS0tLQogOSBmaWxl cyBjaGFuZ2VkLCAzNzYgaW5zZXJ0aW9ucygrKSwgMjczIGRlbGV0aW9ucygtKQogY3JlYXRlIG1v ZGUgMTAwNjQ0IERvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9ncGlvL2dwaW8tbW1p by50eHQKIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2dwaW8vZ3Bpby1tbWlvLWNvbXBhdC5o CiByZW5hbWUgZHJpdmVycy9ncGlvL3tncGlvLWdlbmVyaWMuYyA9PiBncGlvLW1taW8uY30gKDg2 JSkKCi0tIAoyLjguMQoKCl9fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fCmxpbnV4LWFybS1rZXJuZWwgbWFpbGluZyBsaXN0CmxpbnV4LWFybS1rZXJuZWxAbGlz dHMuaW5mcmFkZWFkLm9yZwpodHRwOi8vbGlzdHMuaW5mcmFkZWFkLm9yZy9tYWlsbWFuL2xpc3Rp bmZvL2xpbnV4LWFybS1rZXJuZWwK From mboxrd@z Thu Jan 1 00:00:00 1970 From: chunkeey@googlemail.com (Christian Lamparter) Date: Thu, 28 Apr 2016 11:05:10 +0200 Subject: [RFC v4 0/8] gpio: add DT support for generic memory-mapped GPIOs Message-ID: To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org This patch series adds device tree support for generic memory-mapped GPIOs. The GPIO library already allows drivers and architecture support code to reuse generic code for managing a GPIO chip. Currently, a developer has to create a platform device "basic-mmio-gpio" and attach a bgpio_pdata platform data structure to make use of it. However, for architectures which rely on the device tree to enumerate devices, creating custom platform devices is another extra step that can be avoided by having direct support via a device tree binding. I initially came across this patch [0] from ?lvaro Fern?ndez Rojas, while looking for an easy way to add support for the GPIO of my WD MyBook Live [1] (APM82181 - ppc464). This generic approach patch allowed me to easily get the GPIO (and the connected LEDs, buttons, gpiohogs, etc.) up and running. Even tought, Mr. Fernandez initially developed it for his work on the brcm63xx [2]. [0] [1] [2] Currently, the device tree parses for the integrated drivers (gpio-clps711x, gpio-ge, gpio-moxart and gpio-ts4800) are still residing in their original driver .c file. This way, these drivers don't clutter the gpio-generic.c with their own hardware definitions and MODULE_* statements. I hoped this would make the transition from the _probe to the parser less painless but the diff is retty much unreadable. So the next series will consolidate them into gpio-generic.c and then I can drop the gpio-generic -> gpio-mmio change. I think this is now mostly a matter of how to organize things and why not try it just once just so it was tested. changelog: v3 -> v4: - renamed gpio-generic.c to gpio-mmio.c (The gpio-generic only contains a generic mmio driver, this confuses and angers people!) - changed compat. string to "linux,gpio-mmio" - integrated Cirrus clps711x driver - integrated GE FGPA gpio-ge driver - integrated MOXA ART GPIO driver - integrated TS4800 gpio driver - reshuffled patches, reworded commits, fixed spelling errors, etc. Thanks! (Please keep me in the CC) --- Christian Lamparter (6): gpio: generic: fix GPIO_GENERIC_PLATFORM is set to module case gpio: rename gpio-generic.c into gpio-mmio.c gpio: clps711x: integrate cirrus clps711x into gpio-mmio gpio: ge: integrate GE's FPGA GPIO into gpio-mmio gpio: moxart: integrate MOXA ART GPIO driver into gpio-mmio gpio: ts4800: integrate TS4800 into gpio-mmio ?lvaro Fern?ndez Rojas (2): gpio: generic: add DT support for generic memory-mapped GPIOs gpio: dt-bindings: add gpio-mmio bindings .../devicetree/bindings/gpio/gpio-mmio.txt | 73 +++++++++++++++ drivers/gpio/Kconfig | 57 ++++++------ drivers/gpio/Makefile | 11 ++- drivers/gpio/gpio-clps711x.c | 84 ++++++----------- drivers/gpio/gpio-ge.c | 101 ++++++--------------- drivers/gpio/gpio-mmio-compat.h | 65 +++++++++++++ drivers/gpio/{gpio-generic.c => gpio-mmio.c} | 101 ++++++++++++++++++++- drivers/gpio/gpio-moxart.c | 81 +++++------------ drivers/gpio/gpio-ts4800.c | 76 +++++----------- 9 files changed, 376 insertions(+), 273 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/gpio-mmio.txt create mode 100644 drivers/gpio/gpio-mmio-compat.h rename drivers/gpio/{gpio-generic.c => gpio-mmio.c} (86%) -- 2.8.1 From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1753451AbcD1JFp (ORCPT ); Thu, 28 Apr 2016 05:05:45 -0400 Received: from mail-wm0-f67.google.com ([74.125.82.67]:33063 "EHLO mail-wm0-f67.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752258AbcD1JFd (ORCPT ); Thu, 28 Apr 2016 05:05:33 -0400 From: Christian Lamparter To: linux-gpio@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-arm-kernel@lists.infradead.org Cc: Christian Lamparter , =?UTF-8?q?=C3=81lvaro=20Fern=C3=A1ndez=20Rojas?= , Kumar Gala , Alexander Shiyan , Ian Campbell , Mark Rutland , Pawel Moll , Rob Herring , Alexandre Courbot , Linus Walleij Subject: [RFC v4 0/8] gpio: add DT support for generic memory-mapped GPIOs Date: Thu, 28 Apr 2016 11:05:10 +0200 Message-Id: X-Mailer: git-send-email 2.8.1 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch series adds device tree support for generic memory-mapped GPIOs. The GPIO library already allows drivers and architecture support code to reuse generic code for managing a GPIO chip. Currently, a developer has to create a platform device "basic-mmio-gpio" and attach a bgpio_pdata platform data structure to make use of it. However, for architectures which rely on the device tree to enumerate devices, creating custom platform devices is another extra step that can be avoided by having direct support via a device tree binding. I initially came across this patch [0] from Álvaro Fernández Rojas, while looking for an easy way to add support for the GPIO of my WD MyBook Live [1] (APM82181 - ppc464). This generic approach patch allowed me to easily get the GPIO (and the connected LEDs, buttons, gpiohogs, etc.) up and running. Even tought, Mr. Fernandez initially developed it for his work on the brcm63xx [2]. [0] [1] [2] Currently, the device tree parses for the integrated drivers (gpio-clps711x, gpio-ge, gpio-moxart and gpio-ts4800) are still residing in their original driver .c file. This way, these drivers don't clutter the gpio-generic.c with their own hardware definitions and MODULE_* statements. I hoped this would make the transition from the _probe to the parser less painless but the diff is retty much unreadable. So the next series will consolidate them into gpio-generic.c and then I can drop the gpio-generic -> gpio-mmio change. I think this is now mostly a matter of how to organize things and why not try it just once just so it was tested. changelog: v3 -> v4: - renamed gpio-generic.c to gpio-mmio.c (The gpio-generic only contains a generic mmio driver, this confuses and angers people!) - changed compat. string to "linux,gpio-mmio" - integrated Cirrus clps711x driver - integrated GE FGPA gpio-ge driver - integrated MOXA ART GPIO driver - integrated TS4800 gpio driver - reshuffled patches, reworded commits, fixed spelling errors, etc. Thanks! (Please keep me in the CC) --- Christian Lamparter (6): gpio: generic: fix GPIO_GENERIC_PLATFORM is set to module case gpio: rename gpio-generic.c into gpio-mmio.c gpio: clps711x: integrate cirrus clps711x into gpio-mmio gpio: ge: integrate GE's FPGA GPIO into gpio-mmio gpio: moxart: integrate MOXA ART GPIO driver into gpio-mmio gpio: ts4800: integrate TS4800 into gpio-mmio Álvaro Fernández Rojas (2): gpio: generic: add DT support for generic memory-mapped GPIOs gpio: dt-bindings: add gpio-mmio bindings .../devicetree/bindings/gpio/gpio-mmio.txt | 73 +++++++++++++++ drivers/gpio/Kconfig | 57 ++++++------ drivers/gpio/Makefile | 11 ++- drivers/gpio/gpio-clps711x.c | 84 ++++++----------- drivers/gpio/gpio-ge.c | 101 ++++++--------------- drivers/gpio/gpio-mmio-compat.h | 65 +++++++++++++ drivers/gpio/{gpio-generic.c => gpio-mmio.c} | 101 ++++++++++++++++++++- drivers/gpio/gpio-moxart.c | 81 +++++------------ drivers/gpio/gpio-ts4800.c | 76 +++++----------- 9 files changed, 376 insertions(+), 273 deletions(-) create mode 100644 Documentation/devicetree/bindings/gpio/gpio-mmio.txt create mode 100644 drivers/gpio/gpio-mmio-compat.h rename drivers/gpio/{gpio-generic.c => gpio-mmio.c} (86%) -- 2.8.1