From mboxrd@z Thu Jan 1 00:00:00 1970 From: Lee Jones Subject: Re: [RESEND v2 06/10] mfd: stmpe: rework registers access Date: Wed, 10 Aug 2016 09:29:44 +0100 Message-ID: <20160810082944.GL1581@dell> References: <1470814755-19447-1-git-send-email-patrice.chotard@st.com> <1470814755-19447-7-git-send-email-patrice.chotard@st.com> Mime-Version: 1.0 Content-Type: text/plain; charset="utf-8" Content-Transfer-Encoding: base64 Return-path: Content-Disposition: inline In-Reply-To: <1470814755-19447-7-git-send-email-patrice.chotard@st.com> 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: patrice.chotard@st.com Cc: gnurou@gmail.com, amelie.delaunay@st.com, vireshk@kernel.org, linus.walleij@linaro.org, linux-gpio@vger.kernel.org, thierry.reding@gmail.com, kernel@pengutronix.de, dinguyen@opensource.altera.com, shawnguo@kernel.org, shiraz.linux.kernel@gmail.com, linux-arm-kernel@lists.infradead.org List-Id: linux-gpio@vger.kernel.org T24gV2VkLCAxMCBBdWcgMjAxNiwgcGF0cmljZS5jaG90YXJkQHN0LmNvbSB3cm90ZToKCj4gRnJv bTogUGF0cmljZSBDaG90YXJkIDxwYXRyaWNlLmNob3RhcmRAc3QuY29tPgo+IAo+IHRoaXMgdXBk YXRlIGFsbG93cyB0byB1c2UgcmVnaXN0ZXJzIG1hcCBhcyBmb2xsb3dpbmcgOgo+IHJlZ3NbcmVn X2luZGV4ICsgb2Zmc2V0XSBpbnN0ZWFkIG9mCj4gcmVnc1tyZWdfaW5kZXhdICsgb2Zmc2V0Cj4g Cj4gVGhpcyBtYWtlcyBjb2RlIGNsZWFyZXIgYW5kIHdpbGwgZmFjaWxpdGF0ZSB0aGUgYWRkaXRp b24gb2YgU1RNUEUxNjAwCj4gb24gd2hpY2ggTFNCIGFuZCBNU0IgcmVnaXN0ZXJzIGFyZSByZXNw ZWN0aXZlbHkgbG9jYXRlZCBhdCBhZGRyIGFuZCBhZGRyICsgMS4KPiBEZXNwaXRlIGZvciBhbGwg b3RoZXJzIFNUTVBFIHZhcmlhbnQsIExTQiBhbmQgTVNCIHJlZ2lzdGVycyBhcmUgcmVzcGVjdGl2 ZWx5Cj4gbG9jYXRlZCBpbiByZXZlcnNlIG9yZGVyIGF0IGFkZHIgKyAxIGFuZCBhZGRyLgo+IAo+ IEZvciB2YXJpYW50IHdoaWNoIGhhdmUgMyByZWdpc3RlcnMncyBiYW5rLCB3ZSB1c2UgTFNCLENT QiBhbmQgTVNCIGluZGV4ZXMKPiB3aGljaCBjb250YWlucyByZXNwZWN0aXZlbHkgTFNCIChvciBM T1cpLCBDU0IgKG9yIE1JRCkgYW5kIE1TQiAob3IgSElHSCkKPiByZWdpc3RlciBhZGRyZXNzZXMg KFNUTVBFMTgwMS9TVE1QRTI0eHgpLgo+IEZvciB2YXJpYW50IHdoaWNoIGhhdmUgMiByZWdpc3Rl cnMncyBiYW5rLCB3ZSB1c2UgTFNCIGFuZCBDU0IgaW5kZXhlcyBvbmx5Lgo+IEluIHRoaXMgY2Fz ZSB0aGUgQ1NCIGluZGV4IGNvbnRhaW5zIHRoZSBNU0IgcmVncyBhZGRyZXNzIChTVE1QRSAxNjAx KS4KPiAKPiBTaWduZWQtb2ZmLWJ5OiBQYXRyaWNlIENob3RhcmQgPHBhdHJpY2UuY2hvdGFyZEBz dC5jb20+Cj4gUmV2aWV3ZWQtYnk6IExpbnVzIFdhbGxlaWogPGxpbnVzLndhbGxlaWpAbGluYXJv Lm9yZz4KPiAKPiAtLS0KPiAgZHJpdmVycy9tZmQvc3RtcGUuYyAgICAgICB8IDQ4ICsrKysrKysr KysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKy0tLS0KPiAgZHJpdmVycy9tZmQvc3Rt cGUuaCAgICAgICB8IDQ5ICsrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysrKysr LS0tLS0tCj4gIGluY2x1ZGUvbGludXgvbWZkL3N0bXBlLmggfCAxOCArKysrKysrKysrKysrKysr Kwo+ICAzIGZpbGVzIGNoYW5nZWQsIDEwNSBpbnNlcnRpb25zKCspLCAxMCBkZWxldGlvbnMoLSkK CkFwcGxpZWQsIHRoYW5rcy4KCj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvbWZkL3N0bXBlLmMgYi9k cml2ZXJzL21mZC9zdG1wZS5jCj4gaW5kZXggMjU1NjQ2My4uYTA2MDgwOSAxMDA2NDQKPiAtLS0g YS9kcml2ZXJzL21mZC9zdG1wZS5jCj4gKysrIGIvZHJpdmVycy9tZmQvc3RtcGUuYwo+IEBAIC00 NjIsNyArNDYyLDcgQEAgc3RhdGljIGNvbnN0IHU4IHN0bXBlODExX3JlZ3NbXSA9IHsKPiAgCVtT VE1QRV9JRFhfR1BBRlJfVV9NU0JdCT0gU1RNUEU4MTFfUkVHX0dQSU9fQUYsCj4gIAlbU1RNUEVf SURYX0lFR1BJT1JfTFNCXQk9IFNUTVBFODExX1JFR19HUElPX0lOVF9FTiwKPiAgCVtTVE1QRV9J RFhfSVNHUElPUl9NU0JdCT0gU1RNUEU4MTFfUkVHX0dQSU9fSU5UX1NUQSwKPiAtCVtTVE1QRV9J RFhfR1BFRFJfTVNCXQk9IFNUTVBFODExX1JFR19HUElPX0VELAo+ICsJW1NUTVBFX0lEWF9HUEVE Ul9MU0JdCT0gU1RNUEU4MTFfUkVHX0dQSU9fRUQsCj4gIH07Cj4gIAo+ICBzdGF0aWMgc3RydWN0 IHN0bXBlX3ZhcmlhbnRfYmxvY2sgc3RtcGU4MTFfYmxvY2tzW10gPSB7Cj4gQEAgLTU0MCwxOSAr NTQwLDI4IEBAIHN0YXRpYyBjb25zdCB1OCBzdG1wZTE2MDFfcmVnc1tdID0gewo+ICAJW1NUTVBF X0lEWF9TWVNfQ1RSTF0JPSBTVE1QRTE2MDFfUkVHX1NZU19DVFJMLAo+ICAJW1NUTVBFX0lEWF9T WVNfQ1RSTDJdCT0gU1RNUEUxNjAxX1JFR19TWVNfQ1RSTDIsCj4gIAlbU1RNUEVfSURYX0lDUl9M U0JdCT0gU1RNUEUxNjAxX1JFR19JQ1JfTFNCLAo+ICsJW1NUTVBFX0lEWF9JRVJfTVNCXQk9IFNU TVBFMTYwMV9SRUdfSUVSX01TQiwKPiAgCVtTVE1QRV9JRFhfSUVSX0xTQl0JPSBTVE1QRTE2MDFf UkVHX0lFUl9MU0IsCj4gIAlbU1RNUEVfSURYX0lTUl9NU0JdCT0gU1RNUEUxNjAxX1JFR19JU1Jf TVNCLAo+ICAJW1NUTVBFX0lEWF9HUE1SX0xTQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fTVBfTFNC LAo+ICsJW1NUTVBFX0lEWF9HUE1SX0NTQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fTVBfTVNCLAo+ ICAJW1NUTVBFX0lEWF9HUFNSX0xTQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fU0VUX0xTQiwKPiAr CVtTVE1QRV9JRFhfR1BTUl9DU0JdCT0gU1RNUEUxNjAxX1JFR19HUElPX1NFVF9NU0IsCj4gIAlb U1RNUEVfSURYX0dQQ1JfTFNCXQk9IFNUTVBFMTYwMV9SRUdfR1BJT19DTFJfTFNCLAo+ICsJW1NU TVBFX0lEWF9HUENSX0NTQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fQ0xSX01TQiwKPiAgCVtTVE1Q RV9JRFhfR1BEUl9MU0JdCT0gU1RNUEUxNjAxX1JFR19HUElPX1NFVF9ESVJfTFNCLAo+ICsJW1NU TVBFX0lEWF9HUERSX0NTQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fU0VUX0RJUl9NU0IsCj4gKwlb U1RNUEVfSURYX0dQRURSX0xTQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fRURfTFNCLAo+ICsJW1NU TVBFX0lEWF9HUEVEUl9DU0JdCT0gU1RNUEUxNjAxX1JFR19HUElPX0VEX01TQiwKPiAgCVtTVE1Q RV9JRFhfR1BSRVJfTFNCXQk9IFNUTVBFMTYwMV9SRUdfR1BJT19SRV9MU0IsCj4gKwlbU1RNUEVf SURYX0dQUkVSX0NTQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fUkVfTVNCLAo+ICAJW1NUTVBFX0lE WF9HUEZFUl9MU0JdCT0gU1RNUEUxNjAxX1JFR19HUElPX0ZFX0xTQiwKPiArCVtTVE1QRV9JRFhf R1BGRVJfQ1NCXQk9IFNUTVBFMTYwMV9SRUdfR1BJT19GRV9NU0IsCj4gIAlbU1RNUEVfSURYX0dQ UFVSX0xTQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fUFVfTFNCLAo+ICAJW1NUTVBFX0lEWF9HUEFG Ul9VX01TQl0JPSBTVE1QRTE2MDFfUkVHX0dQSU9fQUZfVV9NU0IsCj4gIAlbU1RNUEVfSURYX0lF R1BJT1JfTFNCXQk9IFNUTVBFMTYwMV9SRUdfSU5UX0VOX0dQSU9fTUFTS19MU0IsCj4gKwlbU1RN UEVfSURYX0lFR1BJT1JfQ1NCXQk9IFNUTVBFMTYwMV9SRUdfSU5UX0VOX0dQSU9fTUFTS19NU0Is Cj4gIAlbU1RNUEVfSURYX0lTR1BJT1JfTVNCXQk9IFNUTVBFMTYwMV9SRUdfSU5UX1NUQV9HUElP X01TQiwKPiAtCVtTVE1QRV9JRFhfR1BFRFJfTVNCXQk9IFNUTVBFMTYwMV9SRUdfR1BJT19FRF9N U0IsCj4gIH07Cj4gIAo+ICBzdGF0aWMgc3RydWN0IHN0bXBlX3ZhcmlhbnRfYmxvY2sgc3RtcGUx NjAxX2Jsb2Nrc1tdID0gewo+IEBAIC02OTgsMTQgKzcwNywyOCBAQCBzdGF0aWMgY29uc3QgdTgg c3RtcGUxODAxX3JlZ3NbXSA9IHsKPiAgCVtTVE1QRV9JRFhfSUVSX0xTQl0JPSBTVE1QRTE4MDFf UkVHX0lOVF9FTl9NQVNLX0xPVywKPiAgCVtTVE1QRV9JRFhfSVNSX0xTQl0JPSBTVE1QRTE4MDFf UkVHX0lOVF9TVEFfTE9XLAo+ICAJW1NUTVBFX0lEWF9HUE1SX0xTQl0JPSBTVE1QRTE4MDFfUkVH X0dQSU9fTVBfTE9XLAo+ICsJW1NUTVBFX0lEWF9HUE1SX0NTQl0JPSBTVE1QRTE4MDFfUkVHX0dQ SU9fTVBfTUlELAo+ICsJW1NUTVBFX0lEWF9HUE1SX01TQl0JPSBTVE1QRTE4MDFfUkVHX0dQSU9f TVBfSElHSCwKPiAgCVtTVE1QRV9JRFhfR1BTUl9MU0JdCT0gU1RNUEUxODAxX1JFR19HUElPX1NF VF9MT1csCj4gKwlbU1RNUEVfSURYX0dQU1JfQ1NCXQk9IFNUTVBFMTgwMV9SRUdfR1BJT19TRVRf TUlELAo+ICsJW1NUTVBFX0lEWF9HUFNSX01TQl0JPSBTVE1QRTE4MDFfUkVHX0dQSU9fU0VUX0hJ R0gsCj4gIAlbU1RNUEVfSURYX0dQQ1JfTFNCXQk9IFNUTVBFMTgwMV9SRUdfR1BJT19DTFJfTE9X LAo+ICsJW1NUTVBFX0lEWF9HUENSX0NTQl0JPSBTVE1QRTE4MDFfUkVHX0dQSU9fQ0xSX01JRCwK PiArCVtTVE1QRV9JRFhfR1BDUl9NU0JdCT0gU1RNUEUxODAxX1JFR19HUElPX0NMUl9ISUdILAo+ ICAJW1NUTVBFX0lEWF9HUERSX0xTQl0JPSBTVE1QRTE4MDFfUkVHX0dQSU9fU0VUX0RJUl9MT1cs Cj4gKwlbU1RNUEVfSURYX0dQRFJfQ1NCXQk9IFNUTVBFMTgwMV9SRUdfR1BJT19TRVRfRElSX01J RCwKPiArCVtTVE1QRV9JRFhfR1BEUl9NU0JdCT0gU1RNUEUxODAxX1JFR19HUElPX1NFVF9ESVJf SElHSCwKPiAgCVtTVE1QRV9JRFhfR1BSRVJfTFNCXQk9IFNUTVBFMTgwMV9SRUdfR1BJT19SRV9M T1csCj4gKwlbU1RNUEVfSURYX0dQUkVSX0NTQl0JPSBTVE1QRTE4MDFfUkVHX0dQSU9fUkVfTUlE LAo+ICsJW1NUTVBFX0lEWF9HUFJFUl9NU0JdCT0gU1RNUEUxODAxX1JFR19HUElPX1JFX0hJR0gs Cj4gIAlbU1RNUEVfSURYX0dQRkVSX0xTQl0JPSBTVE1QRTE4MDFfUkVHX0dQSU9fRkVfTE9XLAo+ ICsJW1NUTVBFX0lEWF9HUEZFUl9DU0JdCT0gU1RNUEUxODAxX1JFR19HUElPX0ZFX01JRCwKPiAr CVtTVE1QRV9JRFhfR1BGRVJfTVNCXQk9IFNUTVBFMTgwMV9SRUdfR1BJT19GRV9ISUdILAo+ICAJ W1NUTVBFX0lEWF9HUFBVUl9MU0JdCT0gU1RNUEUxODAxX1JFR19HUElPX1BVTExfVVBfTE9XLAo+ ICAJW1NUTVBFX0lEWF9JRUdQSU9SX0xTQl0JPSBTVE1QRTE4MDFfUkVHX0lOVF9FTl9HUElPX01B U0tfTE9XLAo+IC0JW1NUTVBFX0lEWF9JU0dQSU9SX0xTQl0JPSBTVE1QRTE4MDFfUkVHX0lOVF9T VEFfR1BJT19MT1csCj4gKwlbU1RNUEVfSURYX0lFR1BJT1JfQ1NCXQk9IFNUTVBFMTgwMV9SRUdf SU5UX0VOX0dQSU9fTUFTS19NSUQsCj4gKwlbU1RNUEVfSURYX0lFR1BJT1JfTVNCXQk9IFNUTVBF MTgwMV9SRUdfSU5UX0VOX0dQSU9fTUFTS19ISUdILAo+ICsJW1NUTVBFX0lEWF9JU0dQSU9SX01T Ql0JPSBTVE1QRTE4MDFfUkVHX0lOVF9TVEFfR1BJT19ISUdILAo+ICB9Owo+ICAKPiAgc3RhdGlj IHN0cnVjdCBzdG1wZV92YXJpYW50X2Jsb2NrIHN0bXBlMTgwMV9ibG9ja3NbXSA9IHsKPiBAQCAt NzkwLDE5ICs4MTMsMzYgQEAgc3RhdGljIGNvbnN0IHU4IHN0bXBlMjR4eF9yZWdzW10gPSB7Cj4g IAlbU1RNUEVfSURYX1NZU19DVFJMXQk9IFNUTVBFMjRYWF9SRUdfU1lTX0NUUkwsCj4gIAlbU1RN UEVfSURYX1NZU19DVFJMMl0JPSBTVE1QRTI0WFhfUkVHX1NZU19DVFJMMiwKPiAgCVtTVE1QRV9J RFhfSUNSX0xTQl0JPSBTVE1QRTI0WFhfUkVHX0lDUl9MU0IsCj4gKwlbU1RNUEVfSURYX0lFUl9N U0JdCT0gU1RNUEUyNFhYX1JFR19JRVJfTVNCLAo+ICAJW1NUTVBFX0lEWF9JRVJfTFNCXQk9IFNU TVBFMjRYWF9SRUdfSUVSX0xTQiwKPiAgCVtTVE1QRV9JRFhfSVNSX01TQl0JPSBTVE1QRTI0WFhf UkVHX0lTUl9NU0IsCj4gIAlbU1RNUEVfSURYX0dQTVJfTFNCXQk9IFNUTVBFMjRYWF9SRUdfR1BN Ul9MU0IsCj4gKwlbU1RNUEVfSURYX0dQTVJfQ1NCXQk9IFNUTVBFMjRYWF9SRUdfR1BNUl9DU0Is Cj4gKwlbU1RNUEVfSURYX0dQTVJfTVNCXQk9IFNUTVBFMjRYWF9SRUdfR1BNUl9NU0IsCj4gIAlb U1RNUEVfSURYX0dQU1JfTFNCXQk9IFNUTVBFMjRYWF9SRUdfR1BTUl9MU0IsCj4gKwlbU1RNUEVf SURYX0dQU1JfQ1NCXQk9IFNUTVBFMjRYWF9SRUdfR1BTUl9DU0IsCj4gKwlbU1RNUEVfSURYX0dQ U1JfTVNCXQk9IFNUTVBFMjRYWF9SRUdfR1BTUl9NU0IsCj4gIAlbU1RNUEVfSURYX0dQQ1JfTFNC XQk9IFNUTVBFMjRYWF9SRUdfR1BDUl9MU0IsCj4gKwlbU1RNUEVfSURYX0dQQ1JfQ1NCXQk9IFNU TVBFMjRYWF9SRUdfR1BDUl9DU0IsCj4gKwlbU1RNUEVfSURYX0dQQ1JfTVNCXQk9IFNUTVBFMjRY WF9SRUdfR1BDUl9NU0IsCj4gIAlbU1RNUEVfSURYX0dQRFJfTFNCXQk9IFNUTVBFMjRYWF9SRUdf R1BEUl9MU0IsCj4gKwlbU1RNUEVfSURYX0dQRFJfQ1NCXQk9IFNUTVBFMjRYWF9SRUdfR1BEUl9D U0IsCj4gKwlbU1RNUEVfSURYX0dQRFJfTVNCXQk9IFNUTVBFMjRYWF9SRUdfR1BEUl9NU0IsCj4g IAlbU1RNUEVfSURYX0dQUkVSX0xTQl0JPSBTVE1QRTI0WFhfUkVHX0dQUkVSX0xTQiwKPiArCVtT VE1QRV9JRFhfR1BSRVJfQ1NCXQk9IFNUTVBFMjRYWF9SRUdfR1BSRVJfQ1NCLAo+ICsJW1NUTVBF X0lEWF9HUFJFUl9NU0JdCT0gU1RNUEUyNFhYX1JFR19HUFJFUl9NU0IsCj4gIAlbU1RNUEVfSURY X0dQRkVSX0xTQl0JPSBTVE1QRTI0WFhfUkVHX0dQRkVSX0xTQiwKPiArCVtTVE1QRV9JRFhfR1BG RVJfQ1NCXQk9IFNUTVBFMjRYWF9SRUdfR1BGRVJfQ1NCLAo+ICsJW1NUTVBFX0lEWF9HUEZFUl9N U0JdCT0gU1RNUEUyNFhYX1JFR19HUEZFUl9NU0IsCj4gIAlbU1RNUEVfSURYX0dQUFVSX0xTQl0J PSBTVE1QRTI0WFhfUkVHX0dQUFVSX0xTQiwKPiAgCVtTVE1QRV9JRFhfR1BQRFJfTFNCXQk9IFNU TVBFMjRYWF9SRUdfR1BQRFJfTFNCLAo+ICAJW1NUTVBFX0lEWF9HUEFGUl9VX01TQl0JPSBTVE1Q RTI0WFhfUkVHX0dQQUZSX1VfTVNCLAo+ICAJW1NUTVBFX0lEWF9JRUdQSU9SX0xTQl0JPSBTVE1Q RTI0WFhfUkVHX0lFR1BJT1JfTFNCLAo+ICsJW1NUTVBFX0lEWF9JRUdQSU9SX0NTQl0JPSBTVE1Q RTI0WFhfUkVHX0lFR1BJT1JfQ1NCLAo+ICsJW1NUTVBFX0lEWF9JRUdQSU9SX01TQl0JPSBTVE1Q RTI0WFhfUkVHX0lFR1BJT1JfTVNCLAo+ICAJW1NUTVBFX0lEWF9JU0dQSU9SX01TQl0JPSBTVE1Q RTI0WFhfUkVHX0lTR1BJT1JfTVNCLAo+ICsJW1NUTVBFX0lEWF9HUEVEUl9MU0JdCT0gU1RNUEUy NFhYX1JFR19HUEVEUl9MU0IsCj4gKwlbU1RNUEVfSURYX0dQRURSX0NTQl0JPSBTVE1QRTI0WFhf UkVHX0dQRURSX0NTQiwKPiAgCVtTVE1QRV9JRFhfR1BFRFJfTVNCXQk9IFNUTVBFMjRYWF9SRUdf R1BFRFJfTVNCLAo+ICB9Owo+ICAKPiBAQCAtOTc3LDcgKzEwMTcsNyBAQCBzdGF0aWMgdm9pZCBz dG1wZV9pcnFfc3luY191bmxvY2soc3RydWN0IGlycV9kYXRhICpkYXRhKQo+ICAJCQljb250aW51 ZTsKPiAgCj4gIAkJc3RtcGUtPm9sZGllcltpXSA9IG5ldzsKPiAtCQlzdG1wZV9yZWdfd3JpdGUo c3RtcGUsIHN0bXBlLT5yZWdzW1NUTVBFX0lEWF9JRVJfTFNCXSAtIGksIG5ldyk7Cj4gKwkJc3Rt cGVfcmVnX3dyaXRlKHN0bXBlLCBzdG1wZS0+cmVnc1tTVE1QRV9JRFhfSUVSX0xTQiArIGldLCBu ZXcpOwo+ICAJfQo+ICAKPiAgCW11dGV4X3VubG9jaygmc3RtcGUtPmlycV9sb2NrKTsKPiBkaWZm IC0tZ2l0IGEvZHJpdmVycy9tZmQvc3RtcGUuaCBiL2RyaXZlcnMvbWZkL3N0bXBlLmgKPiBpbmRl eCA0YmExMTIzLi5mMTI3MzQyIDEwMDY0NAo+IC0tLSBhL2RyaXZlcnMvbWZkL3N0bXBlLmgKPiAr KysgYi9kcml2ZXJzL21mZC9zdG1wZS5oCj4gQEAgLTE3OSwxOSArMTc5LDMyIEBAIGludCBzdG1w ZV9yZW1vdmUoc3RydWN0IHN0bXBlICpzdG1wZSk7Cj4gIAo+ICAjZGVmaW5lIFNUTVBFMTYwMV9S RUdfU1lTX0NUUkwJCQkweDAyCj4gICNkZWZpbmUgU1RNUEUxNjAxX1JFR19TWVNfQ1RSTDIJCQkw eDAzCj4gKyNkZWZpbmUgU1RNUEUxNjAxX1JFR19JQ1JfTVNCCQkJMHgxMAo+ICAjZGVmaW5lIFNU TVBFMTYwMV9SRUdfSUNSX0xTQgkJCTB4MTEKPiArI2RlZmluZSBTVE1QRTE2MDFfUkVHX0lFUl9N U0IJCQkweDEyCj4gICNkZWZpbmUgU1RNUEUxNjAxX1JFR19JRVJfTFNCCQkJMHgxMwo+ICAjZGVm aW5lIFNUTVBFMTYwMV9SRUdfSVNSX01TQgkJCTB4MTQKPiAtI2RlZmluZSBTVE1QRTE2MDFfUkVH X0NISVBfSUQJCQkweDgwCj4gKyNkZWZpbmUgU1RNUEUxNjAxX1JFR19JU1JfTFNCCQkJMHgxNQo+ ICsjZGVmaW5lIFNUTVBFMTYwMV9SRUdfSU5UX0VOX0dQSU9fTUFTS19NU0IJMHgxNgo+ICAjZGVm aW5lIFNUTVBFMTYwMV9SRUdfSU5UX0VOX0dQSU9fTUFTS19MU0IJMHgxNwo+ICAjZGVmaW5lIFNU TVBFMTYwMV9SRUdfSU5UX1NUQV9HUElPX01TQgkJMHgxOAo+IC0jZGVmaW5lIFNUTVBFMTYwMV9S RUdfR1BJT19NUF9MU0IJCTB4ODcKPiArI2RlZmluZSBTVE1QRTE2MDFfUkVHX0lOVF9TVEFfR1BJ T19MU0IJCTB4MTkKPiArI2RlZmluZSBTVE1QRTE2MDFfUkVHX0NISVBfSUQJCQkweDgwCj4gKyNk ZWZpbmUgU1RNUEUxNjAxX1JFR19HUElPX1NFVF9NU0IJCTB4ODIKPiAgI2RlZmluZSBTVE1QRTE2 MDFfUkVHX0dQSU9fU0VUX0xTQgkJMHg4Mwo+ICsjZGVmaW5lIFNUTVBFMTYwMV9SRUdfR1BJT19D TFJfTVNCCQkweDg0Cj4gICNkZWZpbmUgU1RNUEUxNjAxX1JFR19HUElPX0NMUl9MU0IJCTB4ODUK PiArI2RlZmluZSBTVE1QRTE2MDFfUkVHX0dQSU9fTVBfTVNCCQkweDg2Cj4gKyNkZWZpbmUgU1RN UEUxNjAxX1JFR19HUElPX01QX0xTQgkJMHg4Nwo+ICsjZGVmaW5lIFNUTVBFMTYwMV9SRUdfR1BJ T19TRVRfRElSX01TQgkJMHg4OAo+ICAjZGVmaW5lIFNUTVBFMTYwMV9SRUdfR1BJT19TRVRfRElS X0xTQgkJMHg4OQo+ICAjZGVmaW5lIFNUTVBFMTYwMV9SRUdfR1BJT19FRF9NU0IJCTB4OEEKPiAr I2RlZmluZSBTVE1QRTE2MDFfUkVHX0dQSU9fRURfTFNCCQkweDhCCj4gKyNkZWZpbmUgU1RNUEUx NjAxX1JFR19HUElPX1JFX01TQgkJMHg4Qwo+ICAjZGVmaW5lIFNUTVBFMTYwMV9SRUdfR1BJT19S RV9MU0IJCTB4OEQKPiArI2RlZmluZSBTVE1QRTE2MDFfUkVHX0dQSU9fRkVfTVNCCQkweDhFCj4g ICNkZWZpbmUgU1RNUEUxNjAxX1JFR19HUElPX0ZFX0xTQgkJMHg4Rgo+ICsjZGVmaW5lIFNUTVBF MTYwMV9SRUdfR1BJT19QVV9NU0IJCTB4OTAKPiAgI2RlZmluZSBTVE1QRTE2MDFfUkVHX0dQSU9f UFVfTFNCCQkweDkxCj4gICNkZWZpbmUgU1RNUEUxNjAxX1JFR19HUElPX0FGX1VfTVNCCQkweDky Cj4gIAo+IEBAIC0yNjcsMjMgKzI4MCw0NyBAQCBpbnQgc3RtcGVfcmVtb3ZlKHN0cnVjdCBzdG1w ZSAqc3RtcGUpOwo+ICAKPiAgI2RlZmluZSBTVE1QRTI0WFhfUkVHX1NZU19DVFJMCQkweDAyCj4g ICNkZWZpbmUgU1RNUEUyNFhYX1JFR19TWVNfQ1RSTDIJCTB4MDMKPiArI2RlZmluZSBTVE1QRTI0 WFhfUkVHX0lDUl9NU0IJCTB4MTAKPiAgI2RlZmluZSBTVE1QRTI0WFhfUkVHX0lDUl9MU0IJCTB4 MTEKPiArI2RlZmluZSBTVE1QRTI0WFhfUkVHX0lFUl9NU0IJCTB4MTIKPiAgI2RlZmluZSBTVE1Q RTI0WFhfUkVHX0lFUl9MU0IJCTB4MTMKPiAgI2RlZmluZSBTVE1QRTI0WFhfUkVHX0lTUl9NU0IJ CTB4MTQKPiAtI2RlZmluZSBTVE1QRTI0WFhfUkVHX0NISVBfSUQJCTB4ODAKPiArI2RlZmluZSBT VE1QRTI0WFhfUkVHX0lTUl9MU0IJCTB4MTUKPiArI2RlZmluZSBTVE1QRTI0WFhfUkVHX0lFR1BJ T1JfTVNCCTB4MTYKPiArI2RlZmluZSBTVE1QRTI0WFhfUkVHX0lFR1BJT1JfQ1NCCTB4MTcKPiAg I2RlZmluZSBTVE1QRTI0WFhfUkVHX0lFR1BJT1JfTFNCCTB4MTgKPiAgI2RlZmluZSBTVE1QRTI0 WFhfUkVHX0lTR1BJT1JfTVNCCTB4MTkKPiAtI2RlZmluZSBTVE1QRTI0WFhfUkVHX0dQTVJfTFNC CQkweEE0Cj4gKyNkZWZpbmUgU1RNUEUyNFhYX1JFR19JU0dQSU9SX0NTQgkweDFBCj4gKyNkZWZp bmUgU1RNUEUyNFhYX1JFR19JU0dQSU9SX0xTQgkweDFCCj4gKyNkZWZpbmUgU1RNUEUyNFhYX1JF R19DSElQX0lECQkweDgwCj4gKyNkZWZpbmUgU1RNUEUyNFhYX1JFR19HUFNSX01TQgkJMHg4Mwo+ ICsjZGVmaW5lIFNUTVBFMjRYWF9SRUdfR1BTUl9DU0IJCTB4ODQKPiAgI2RlZmluZSBTVE1QRTI0 WFhfUkVHX0dQU1JfTFNCCQkweDg1Cj4gKyNkZWZpbmUgU1RNUEUyNFhYX1JFR19HUENSX01TQgkJ MHg4Ngo+ICsjZGVmaW5lIFNUTVBFMjRYWF9SRUdfR1BDUl9DU0IJCTB4ODcKPiAgI2RlZmluZSBT VE1QRTI0WFhfUkVHX0dQQ1JfTFNCCQkweDg4Cj4gKyNkZWZpbmUgU1RNUEUyNFhYX1JFR19HUERS X01TQgkJMHg4OQo+ICsjZGVmaW5lIFNUTVBFMjRYWF9SRUdfR1BEUl9DU0IJCTB4OEEKPiAgI2Rl ZmluZSBTVE1QRTI0WFhfUkVHX0dQRFJfTFNCCQkweDhCCj4gICNkZWZpbmUgU1RNUEUyNFhYX1JF R19HUEVEUl9NU0IJCTB4OEMKPiArI2RlZmluZSBTVE1QRTI0WFhfUkVHX0dQRURSX0NTQgkJMHg4 RAo+ICsjZGVmaW5lIFNUTVBFMjRYWF9SRUdfR1BFRFJfTFNCCQkweDhFCj4gKyNkZWZpbmUgU1RN UEUyNFhYX1JFR19HUFJFUl9NU0IJCTB4OEYKPiArI2RlZmluZSBTVE1QRTI0WFhfUkVHX0dQUkVS X0NTQgkJMHg5MAo+ICAjZGVmaW5lIFNUTVBFMjRYWF9SRUdfR1BSRVJfTFNCCQkweDkxCj4gKyNk ZWZpbmUgU1RNUEUyNFhYX1JFR19HUEZFUl9NU0IJCTB4OTIKPiArI2RlZmluZSBTVE1QRTI0WFhf UkVHX0dQRkVSX0NTQgkJMHg5Mwo+ICAjZGVmaW5lIFNUTVBFMjRYWF9SRUdfR1BGRVJfTFNCCQkw eDk0Cj4gKyNkZWZpbmUgU1RNUEUyNFhYX1JFR19HUFBVUl9NU0IJCTB4OTUKPiArI2RlZmluZSBT VE1QRTI0WFhfUkVHX0dQUFVSX0NTQgkJMHg5Ngo+ICAjZGVmaW5lIFNUTVBFMjRYWF9SRUdfR1BQ VVJfTFNCCQkweDk3Cj4gLSNkZWZpbmUgU1RNUEUyNFhYX1JFR19HUFBEUl9MU0IJCTB4OWEKPiAr I2RlZmluZSBTVE1QRTI0WFhfUkVHX0dQUERSX01TQgkJMHg5OAo+ICsjZGVmaW5lIFNUTVBFMjRY WF9SRUdfR1BQRFJfQ1NCCQkweDk5Cj4gKyNkZWZpbmUgU1RNUEUyNFhYX1JFR19HUFBEUl9MU0IJ CTB4OUEKPiAgI2RlZmluZSBTVE1QRTI0WFhfUkVHX0dQQUZSX1VfTVNCCTB4OUIKPiAtCj4gKyNk ZWZpbmUgU1RNUEUyNFhYX1JFR19HUE1SX01TQgkJMHhBMgo+ICsjZGVmaW5lIFNUTVBFMjRYWF9S RUdfR1BNUl9DU0IJCTB4QTMKPiArI2RlZmluZSBTVE1QRTI0WFhfUkVHX0dQTVJfTFNCCQkweEE0 Cj4gICNkZWZpbmUgU1RNUEUyNFhYX1NZU19DVFJMX0VOQUJMRV9HUElPCQkoMSA8PCAzKQo+ICAj ZGVmaW5lIFNUTVBFMjRYWF9TWVNDT05fRU5BQkxFX1BXTQkJKDEgPDwgMikKPiAgI2RlZmluZSBT VE1QRTI0WFhfU1lTX0NUUkxfRU5BQkxFX0tQQwkJKDEgPDwgMSkKPiBkaWZmIC0tZ2l0IGEvaW5j bHVkZS9saW51eC9tZmQvc3RtcGUuaCBiL2luY2x1ZGUvbGludXgvbWZkL3N0bXBlLmgKPiBpbmRl eCA2YzY2OTBmLi4zZGNlZDRhIDEwMDY0NAo+IC0tLSBhL2luY2x1ZGUvbGludXgvbWZkL3N0bXBl LmgKPiArKysgYi9pbmNsdWRlL2xpbnV4L21mZC9zdG1wZS5oCj4gQEAgLTQzLDIwICs0MywzOCBA QCBlbnVtIHsKPiAgCVNUTVBFX0lEWF9TWVNfQ1RSTDIsCj4gIAlTVE1QRV9JRFhfSUNSX0xTQiwK PiAgCVNUTVBFX0lEWF9JRVJfTFNCLAo+ICsJU1RNUEVfSURYX0lFUl9NU0IsCj4gIAlTVE1QRV9J RFhfSVNSX0xTQiwKPiAgCVNUTVBFX0lEWF9JU1JfTVNCLAo+ICAJU1RNUEVfSURYX0dQTVJfTFNC LAo+ICsJU1RNUEVfSURYX0dQTVJfQ1NCLAo+ICsJU1RNUEVfSURYX0dQTVJfTVNCLAo+ICAJU1RN UEVfSURYX0dQU1JfTFNCLAo+ICsJU1RNUEVfSURYX0dQU1JfQ1NCLAo+ICsJU1RNUEVfSURYX0dQ U1JfTVNCLAo+ICAJU1RNUEVfSURYX0dQQ1JfTFNCLAo+ICsJU1RNUEVfSURYX0dQQ1JfQ1NCLAo+ ICsJU1RNUEVfSURYX0dQQ1JfTVNCLAo+ICAJU1RNUEVfSURYX0dQRFJfTFNCLAo+ICsJU1RNUEVf SURYX0dQRFJfQ1NCLAo+ICsJU1RNUEVfSURYX0dQRFJfTVNCLAo+ICsJU1RNUEVfSURYX0dQRURS X0xTQiwKPiArCVNUTVBFX0lEWF9HUEVEUl9DU0IsCj4gIAlTVE1QRV9JRFhfR1BFRFJfTVNCLAo+ ICAJU1RNUEVfSURYX0dQUkVSX0xTQiwKPiArCVNUTVBFX0lEWF9HUFJFUl9DU0IsCj4gKwlTVE1Q RV9JRFhfR1BSRVJfTVNCLAo+ICAJU1RNUEVfSURYX0dQRkVSX0xTQiwKPiArCVNUTVBFX0lEWF9H UEZFUl9DU0IsCj4gKwlTVE1QRV9JRFhfR1BGRVJfTVNCLAo+ICAJU1RNUEVfSURYX0dQUFVSX0xT QiwKPiAgCVNUTVBFX0lEWF9HUFBEUl9MU0IsCj4gIAlTVE1QRV9JRFhfR1BBRlJfVV9NU0IsCj4g IAlTVE1QRV9JRFhfSUVHUElPUl9MU0IsCj4gKwlTVE1QRV9JRFhfSUVHUElPUl9DU0IsCj4gKwlT VE1QRV9JRFhfSUVHUElPUl9NU0IsCj4gIAlTVE1QRV9JRFhfSVNHUElPUl9MU0IsCj4gKwlTVE1Q RV9JRFhfSVNHUElPUl9DU0IsCj4gIAlTVE1QRV9JRFhfSVNHUElPUl9NU0IsCj4gIAlTVE1QRV9J RFhfTUFYLAo+ICB9OwoKLS0gCkxlZSBKb25lcwpMaW5hcm8gU1RNaWNyb2VsZWN0cm9uaWNzIExh bmRpbmcgVGVhbSBMZWFkCkxpbmFyby5vcmcg4pSCIE9wZW4gc291cmNlIHNvZnR3YXJlIGZvciBB Uk0gU29DcwpGb2xsb3cgTGluYXJvOiBGYWNlYm9vayB8IFR3aXR0ZXIgfCBCbG9nCgpfX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fXwpsaW51eC1hcm0ta2VybmVs IG1haWxpbmcgbGlzdApsaW51eC1hcm0ta2VybmVsQGxpc3RzLmluZnJhZGVhZC5vcmcKaHR0cDov L2xpc3RzLmluZnJhZGVhZC5vcmcvbWFpbG1hbi9saXN0aW5mby9saW51eC1hcm0ta2VybmVsCg== From mboxrd@z Thu Jan 1 00:00:00 1970 From: lee.jones@linaro.org (Lee Jones) Date: Wed, 10 Aug 2016 09:29:44 +0100 Subject: [RESEND v2 06/10] mfd: stmpe: rework registers access In-Reply-To: <1470814755-19447-7-git-send-email-patrice.chotard@st.com> References: <1470814755-19447-1-git-send-email-patrice.chotard@st.com> <1470814755-19447-7-git-send-email-patrice.chotard@st.com> Message-ID: <20160810082944.GL1581@dell> To: linux-arm-kernel@lists.infradead.org List-Id: linux-arm-kernel.lists.infradead.org On Wed, 10 Aug 2016, patrice.chotard at st.com wrote: > From: Patrice Chotard > > this update allows to use registers map as following : > regs[reg_index + offset] instead of > regs[reg_index] + offset > > This makes code clearer and will facilitate the addition of STMPE1600 > on which LSB and MSB registers are respectively located at addr and addr + 1. > Despite for all others STMPE variant, LSB and MSB registers are respectively > located in reverse order at addr + 1 and addr. > > For variant which have 3 registers's bank, we use LSB,CSB and MSB indexes > which contains respectively LSB (or LOW), CSB (or MID) and MSB (or HIGH) > register addresses (STMPE1801/STMPE24xx). > For variant which have 2 registers's bank, we use LSB and CSB indexes only. > In this case the CSB index contains the MSB regs address (STMPE 1601). > > Signed-off-by: Patrice Chotard > Reviewed-by: Linus Walleij > > --- > drivers/mfd/stmpe.c | 48 ++++++++++++++++++++++++++++++++++++++++++---- > drivers/mfd/stmpe.h | 49 +++++++++++++++++++++++++++++++++++++++++------ > include/linux/mfd/stmpe.h | 18 +++++++++++++++++ > 3 files changed, 105 insertions(+), 10 deletions(-) Applied, thanks. > diff --git a/drivers/mfd/stmpe.c b/drivers/mfd/stmpe.c > index 2556463..a060809 100644 > --- a/drivers/mfd/stmpe.c > +++ b/drivers/mfd/stmpe.c > @@ -462,7 +462,7 @@ static const u8 stmpe811_regs[] = { > [STMPE_IDX_GPAFR_U_MSB] = STMPE811_REG_GPIO_AF, > [STMPE_IDX_IEGPIOR_LSB] = STMPE811_REG_GPIO_INT_EN, > [STMPE_IDX_ISGPIOR_MSB] = STMPE811_REG_GPIO_INT_STA, > - [STMPE_IDX_GPEDR_MSB] = STMPE811_REG_GPIO_ED, > + [STMPE_IDX_GPEDR_LSB] = STMPE811_REG_GPIO_ED, > }; > > static struct stmpe_variant_block stmpe811_blocks[] = { > @@ -540,19 +540,28 @@ static const u8 stmpe1601_regs[] = { > [STMPE_IDX_SYS_CTRL] = STMPE1601_REG_SYS_CTRL, > [STMPE_IDX_SYS_CTRL2] = STMPE1601_REG_SYS_CTRL2, > [STMPE_IDX_ICR_LSB] = STMPE1601_REG_ICR_LSB, > + [STMPE_IDX_IER_MSB] = STMPE1601_REG_IER_MSB, > [STMPE_IDX_IER_LSB] = STMPE1601_REG_IER_LSB, > [STMPE_IDX_ISR_MSB] = STMPE1601_REG_ISR_MSB, > [STMPE_IDX_GPMR_LSB] = STMPE1601_REG_GPIO_MP_LSB, > + [STMPE_IDX_GPMR_CSB] = STMPE1601_REG_GPIO_MP_MSB, > [STMPE_IDX_GPSR_LSB] = STMPE1601_REG_GPIO_SET_LSB, > + [STMPE_IDX_GPSR_CSB] = STMPE1601_REG_GPIO_SET_MSB, > [STMPE_IDX_GPCR_LSB] = STMPE1601_REG_GPIO_CLR_LSB, > + [STMPE_IDX_GPCR_CSB] = STMPE1601_REG_GPIO_CLR_MSB, > [STMPE_IDX_GPDR_LSB] = STMPE1601_REG_GPIO_SET_DIR_LSB, > + [STMPE_IDX_GPDR_CSB] = STMPE1601_REG_GPIO_SET_DIR_MSB, > + [STMPE_IDX_GPEDR_LSB] = STMPE1601_REG_GPIO_ED_LSB, > + [STMPE_IDX_GPEDR_CSB] = STMPE1601_REG_GPIO_ED_MSB, > [STMPE_IDX_GPRER_LSB] = STMPE1601_REG_GPIO_RE_LSB, > + [STMPE_IDX_GPRER_CSB] = STMPE1601_REG_GPIO_RE_MSB, > [STMPE_IDX_GPFER_LSB] = STMPE1601_REG_GPIO_FE_LSB, > + [STMPE_IDX_GPFER_CSB] = STMPE1601_REG_GPIO_FE_MSB, > [STMPE_IDX_GPPUR_LSB] = STMPE1601_REG_GPIO_PU_LSB, > [STMPE_IDX_GPAFR_U_MSB] = STMPE1601_REG_GPIO_AF_U_MSB, > [STMPE_IDX_IEGPIOR_LSB] = STMPE1601_REG_INT_EN_GPIO_MASK_LSB, > + [STMPE_IDX_IEGPIOR_CSB] = STMPE1601_REG_INT_EN_GPIO_MASK_MSB, > [STMPE_IDX_ISGPIOR_MSB] = STMPE1601_REG_INT_STA_GPIO_MSB, > - [STMPE_IDX_GPEDR_MSB] = STMPE1601_REG_GPIO_ED_MSB, > }; > > static struct stmpe_variant_block stmpe1601_blocks[] = { > @@ -698,14 +707,28 @@ static const u8 stmpe1801_regs[] = { > [STMPE_IDX_IER_LSB] = STMPE1801_REG_INT_EN_MASK_LOW, > [STMPE_IDX_ISR_LSB] = STMPE1801_REG_INT_STA_LOW, > [STMPE_IDX_GPMR_LSB] = STMPE1801_REG_GPIO_MP_LOW, > + [STMPE_IDX_GPMR_CSB] = STMPE1801_REG_GPIO_MP_MID, > + [STMPE_IDX_GPMR_MSB] = STMPE1801_REG_GPIO_MP_HIGH, > [STMPE_IDX_GPSR_LSB] = STMPE1801_REG_GPIO_SET_LOW, > + [STMPE_IDX_GPSR_CSB] = STMPE1801_REG_GPIO_SET_MID, > + [STMPE_IDX_GPSR_MSB] = STMPE1801_REG_GPIO_SET_HIGH, > [STMPE_IDX_GPCR_LSB] = STMPE1801_REG_GPIO_CLR_LOW, > + [STMPE_IDX_GPCR_CSB] = STMPE1801_REG_GPIO_CLR_MID, > + [STMPE_IDX_GPCR_MSB] = STMPE1801_REG_GPIO_CLR_HIGH, > [STMPE_IDX_GPDR_LSB] = STMPE1801_REG_GPIO_SET_DIR_LOW, > + [STMPE_IDX_GPDR_CSB] = STMPE1801_REG_GPIO_SET_DIR_MID, > + [STMPE_IDX_GPDR_MSB] = STMPE1801_REG_GPIO_SET_DIR_HIGH, > [STMPE_IDX_GPRER_LSB] = STMPE1801_REG_GPIO_RE_LOW, > + [STMPE_IDX_GPRER_CSB] = STMPE1801_REG_GPIO_RE_MID, > + [STMPE_IDX_GPRER_MSB] = STMPE1801_REG_GPIO_RE_HIGH, > [STMPE_IDX_GPFER_LSB] = STMPE1801_REG_GPIO_FE_LOW, > + [STMPE_IDX_GPFER_CSB] = STMPE1801_REG_GPIO_FE_MID, > + [STMPE_IDX_GPFER_MSB] = STMPE1801_REG_GPIO_FE_HIGH, > [STMPE_IDX_GPPUR_LSB] = STMPE1801_REG_GPIO_PULL_UP_LOW, > [STMPE_IDX_IEGPIOR_LSB] = STMPE1801_REG_INT_EN_GPIO_MASK_LOW, > - [STMPE_IDX_ISGPIOR_LSB] = STMPE1801_REG_INT_STA_GPIO_LOW, > + [STMPE_IDX_IEGPIOR_CSB] = STMPE1801_REG_INT_EN_GPIO_MASK_MID, > + [STMPE_IDX_IEGPIOR_MSB] = STMPE1801_REG_INT_EN_GPIO_MASK_HIGH, > + [STMPE_IDX_ISGPIOR_MSB] = STMPE1801_REG_INT_STA_GPIO_HIGH, > }; > > static struct stmpe_variant_block stmpe1801_blocks[] = { > @@ -790,19 +813,36 @@ static const u8 stmpe24xx_regs[] = { > [STMPE_IDX_SYS_CTRL] = STMPE24XX_REG_SYS_CTRL, > [STMPE_IDX_SYS_CTRL2] = STMPE24XX_REG_SYS_CTRL2, > [STMPE_IDX_ICR_LSB] = STMPE24XX_REG_ICR_LSB, > + [STMPE_IDX_IER_MSB] = STMPE24XX_REG_IER_MSB, > [STMPE_IDX_IER_LSB] = STMPE24XX_REG_IER_LSB, > [STMPE_IDX_ISR_MSB] = STMPE24XX_REG_ISR_MSB, > [STMPE_IDX_GPMR_LSB] = STMPE24XX_REG_GPMR_LSB, > + [STMPE_IDX_GPMR_CSB] = STMPE24XX_REG_GPMR_CSB, > + [STMPE_IDX_GPMR_MSB] = STMPE24XX_REG_GPMR_MSB, > [STMPE_IDX_GPSR_LSB] = STMPE24XX_REG_GPSR_LSB, > + [STMPE_IDX_GPSR_CSB] = STMPE24XX_REG_GPSR_CSB, > + [STMPE_IDX_GPSR_MSB] = STMPE24XX_REG_GPSR_MSB, > [STMPE_IDX_GPCR_LSB] = STMPE24XX_REG_GPCR_LSB, > + [STMPE_IDX_GPCR_CSB] = STMPE24XX_REG_GPCR_CSB, > + [STMPE_IDX_GPCR_MSB] = STMPE24XX_REG_GPCR_MSB, > [STMPE_IDX_GPDR_LSB] = STMPE24XX_REG_GPDR_LSB, > + [STMPE_IDX_GPDR_CSB] = STMPE24XX_REG_GPDR_CSB, > + [STMPE_IDX_GPDR_MSB] = STMPE24XX_REG_GPDR_MSB, > [STMPE_IDX_GPRER_LSB] = STMPE24XX_REG_GPRER_LSB, > + [STMPE_IDX_GPRER_CSB] = STMPE24XX_REG_GPRER_CSB, > + [STMPE_IDX_GPRER_MSB] = STMPE24XX_REG_GPRER_MSB, > [STMPE_IDX_GPFER_LSB] = STMPE24XX_REG_GPFER_LSB, > + [STMPE_IDX_GPFER_CSB] = STMPE24XX_REG_GPFER_CSB, > + [STMPE_IDX_GPFER_MSB] = STMPE24XX_REG_GPFER_MSB, > [STMPE_IDX_GPPUR_LSB] = STMPE24XX_REG_GPPUR_LSB, > [STMPE_IDX_GPPDR_LSB] = STMPE24XX_REG_GPPDR_LSB, > [STMPE_IDX_GPAFR_U_MSB] = STMPE24XX_REG_GPAFR_U_MSB, > [STMPE_IDX_IEGPIOR_LSB] = STMPE24XX_REG_IEGPIOR_LSB, > + [STMPE_IDX_IEGPIOR_CSB] = STMPE24XX_REG_IEGPIOR_CSB, > + [STMPE_IDX_IEGPIOR_MSB] = STMPE24XX_REG_IEGPIOR_MSB, > [STMPE_IDX_ISGPIOR_MSB] = STMPE24XX_REG_ISGPIOR_MSB, > + [STMPE_IDX_GPEDR_LSB] = STMPE24XX_REG_GPEDR_LSB, > + [STMPE_IDX_GPEDR_CSB] = STMPE24XX_REG_GPEDR_CSB, > [STMPE_IDX_GPEDR_MSB] = STMPE24XX_REG_GPEDR_MSB, > }; > > @@ -977,7 +1017,7 @@ static void stmpe_irq_sync_unlock(struct irq_data *data) > continue; > > stmpe->oldier[i] = new; > - stmpe_reg_write(stmpe, stmpe->regs[STMPE_IDX_IER_LSB] - i, new); > + stmpe_reg_write(stmpe, stmpe->regs[STMPE_IDX_IER_LSB + i], new); > } > > mutex_unlock(&stmpe->irq_lock); > diff --git a/drivers/mfd/stmpe.h b/drivers/mfd/stmpe.h > index 4ba1123..f127342 100644 > --- a/drivers/mfd/stmpe.h > +++ b/drivers/mfd/stmpe.h > @@ -179,19 +179,32 @@ int stmpe_remove(struct stmpe *stmpe); > > #define STMPE1601_REG_SYS_CTRL 0x02 > #define STMPE1601_REG_SYS_CTRL2 0x03 > +#define STMPE1601_REG_ICR_MSB 0x10 > #define STMPE1601_REG_ICR_LSB 0x11 > +#define STMPE1601_REG_IER_MSB 0x12 > #define STMPE1601_REG_IER_LSB 0x13 > #define STMPE1601_REG_ISR_MSB 0x14 > -#define STMPE1601_REG_CHIP_ID 0x80 > +#define STMPE1601_REG_ISR_LSB 0x15 > +#define STMPE1601_REG_INT_EN_GPIO_MASK_MSB 0x16 > #define STMPE1601_REG_INT_EN_GPIO_MASK_LSB 0x17 > #define STMPE1601_REG_INT_STA_GPIO_MSB 0x18 > -#define STMPE1601_REG_GPIO_MP_LSB 0x87 > +#define STMPE1601_REG_INT_STA_GPIO_LSB 0x19 > +#define STMPE1601_REG_CHIP_ID 0x80 > +#define STMPE1601_REG_GPIO_SET_MSB 0x82 > #define STMPE1601_REG_GPIO_SET_LSB 0x83 > +#define STMPE1601_REG_GPIO_CLR_MSB 0x84 > #define STMPE1601_REG_GPIO_CLR_LSB 0x85 > +#define STMPE1601_REG_GPIO_MP_MSB 0x86 > +#define STMPE1601_REG_GPIO_MP_LSB 0x87 > +#define STMPE1601_REG_GPIO_SET_DIR_MSB 0x88 > #define STMPE1601_REG_GPIO_SET_DIR_LSB 0x89 > #define STMPE1601_REG_GPIO_ED_MSB 0x8A > +#define STMPE1601_REG_GPIO_ED_LSB 0x8B > +#define STMPE1601_REG_GPIO_RE_MSB 0x8C > #define STMPE1601_REG_GPIO_RE_LSB 0x8D > +#define STMPE1601_REG_GPIO_FE_MSB 0x8E > #define STMPE1601_REG_GPIO_FE_LSB 0x8F > +#define STMPE1601_REG_GPIO_PU_MSB 0x90 > #define STMPE1601_REG_GPIO_PU_LSB 0x91 > #define STMPE1601_REG_GPIO_AF_U_MSB 0x92 > > @@ -267,23 +280,47 @@ int stmpe_remove(struct stmpe *stmpe); > > #define STMPE24XX_REG_SYS_CTRL 0x02 > #define STMPE24XX_REG_SYS_CTRL2 0x03 > +#define STMPE24XX_REG_ICR_MSB 0x10 > #define STMPE24XX_REG_ICR_LSB 0x11 > +#define STMPE24XX_REG_IER_MSB 0x12 > #define STMPE24XX_REG_IER_LSB 0x13 > #define STMPE24XX_REG_ISR_MSB 0x14 > -#define STMPE24XX_REG_CHIP_ID 0x80 > +#define STMPE24XX_REG_ISR_LSB 0x15 > +#define STMPE24XX_REG_IEGPIOR_MSB 0x16 > +#define STMPE24XX_REG_IEGPIOR_CSB 0x17 > #define STMPE24XX_REG_IEGPIOR_LSB 0x18 > #define STMPE24XX_REG_ISGPIOR_MSB 0x19 > -#define STMPE24XX_REG_GPMR_LSB 0xA4 > +#define STMPE24XX_REG_ISGPIOR_CSB 0x1A > +#define STMPE24XX_REG_ISGPIOR_LSB 0x1B > +#define STMPE24XX_REG_CHIP_ID 0x80 > +#define STMPE24XX_REG_GPSR_MSB 0x83 > +#define STMPE24XX_REG_GPSR_CSB 0x84 > #define STMPE24XX_REG_GPSR_LSB 0x85 > +#define STMPE24XX_REG_GPCR_MSB 0x86 > +#define STMPE24XX_REG_GPCR_CSB 0x87 > #define STMPE24XX_REG_GPCR_LSB 0x88 > +#define STMPE24XX_REG_GPDR_MSB 0x89 > +#define STMPE24XX_REG_GPDR_CSB 0x8A > #define STMPE24XX_REG_GPDR_LSB 0x8B > #define STMPE24XX_REG_GPEDR_MSB 0x8C > +#define STMPE24XX_REG_GPEDR_CSB 0x8D > +#define STMPE24XX_REG_GPEDR_LSB 0x8E > +#define STMPE24XX_REG_GPRER_MSB 0x8F > +#define STMPE24XX_REG_GPRER_CSB 0x90 > #define STMPE24XX_REG_GPRER_LSB 0x91 > +#define STMPE24XX_REG_GPFER_MSB 0x92 > +#define STMPE24XX_REG_GPFER_CSB 0x93 > #define STMPE24XX_REG_GPFER_LSB 0x94 > +#define STMPE24XX_REG_GPPUR_MSB 0x95 > +#define STMPE24XX_REG_GPPUR_CSB 0x96 > #define STMPE24XX_REG_GPPUR_LSB 0x97 > -#define STMPE24XX_REG_GPPDR_LSB 0x9a > +#define STMPE24XX_REG_GPPDR_MSB 0x98 > +#define STMPE24XX_REG_GPPDR_CSB 0x99 > +#define STMPE24XX_REG_GPPDR_LSB 0x9A > #define STMPE24XX_REG_GPAFR_U_MSB 0x9B > - > +#define STMPE24XX_REG_GPMR_MSB 0xA2 > +#define STMPE24XX_REG_GPMR_CSB 0xA3 > +#define STMPE24XX_REG_GPMR_LSB 0xA4 > #define STMPE24XX_SYS_CTRL_ENABLE_GPIO (1 << 3) > #define STMPE24XX_SYSCON_ENABLE_PWM (1 << 2) > #define STMPE24XX_SYS_CTRL_ENABLE_KPC (1 << 1) > diff --git a/include/linux/mfd/stmpe.h b/include/linux/mfd/stmpe.h > index 6c6690f..3dced4a 100644 > --- a/include/linux/mfd/stmpe.h > +++ b/include/linux/mfd/stmpe.h > @@ -43,20 +43,38 @@ enum { > STMPE_IDX_SYS_CTRL2, > STMPE_IDX_ICR_LSB, > STMPE_IDX_IER_LSB, > + STMPE_IDX_IER_MSB, > STMPE_IDX_ISR_LSB, > STMPE_IDX_ISR_MSB, > STMPE_IDX_GPMR_LSB, > + STMPE_IDX_GPMR_CSB, > + STMPE_IDX_GPMR_MSB, > STMPE_IDX_GPSR_LSB, > + STMPE_IDX_GPSR_CSB, > + STMPE_IDX_GPSR_MSB, > STMPE_IDX_GPCR_LSB, > + STMPE_IDX_GPCR_CSB, > + STMPE_IDX_GPCR_MSB, > STMPE_IDX_GPDR_LSB, > + STMPE_IDX_GPDR_CSB, > + STMPE_IDX_GPDR_MSB, > + STMPE_IDX_GPEDR_LSB, > + STMPE_IDX_GPEDR_CSB, > STMPE_IDX_GPEDR_MSB, > STMPE_IDX_GPRER_LSB, > + STMPE_IDX_GPRER_CSB, > + STMPE_IDX_GPRER_MSB, > STMPE_IDX_GPFER_LSB, > + STMPE_IDX_GPFER_CSB, > + STMPE_IDX_GPFER_MSB, > STMPE_IDX_GPPUR_LSB, > STMPE_IDX_GPPDR_LSB, > STMPE_IDX_GPAFR_U_MSB, > STMPE_IDX_IEGPIOR_LSB, > + STMPE_IDX_IEGPIOR_CSB, > + STMPE_IDX_IEGPIOR_MSB, > STMPE_IDX_ISGPIOR_LSB, > + STMPE_IDX_ISGPIOR_CSB, > STMPE_IDX_ISGPIOR_MSB, > STMPE_IDX_MAX, > }; -- Lee Jones Linaro STMicroelectronics Landing Team Lead Linaro.org ? Open source software for ARM SoCs Follow Linaro: Facebook | Twitter | Blog