From mboxrd@z Thu Jan 1 00:00:00 1970 From: Varka Bhadram Date: Wed, 18 Jun 2014 06:30:31 +0000 Subject: Re: [lm-sensors] [PATCH v5] hwmon: Driver for TI TMP103 temperature sensor Message-Id: <53A12F37.8020206@gmail.com> List-Id: References: <1403069837-15651-1-git-send-email-hs@denx.de> <53A127BB.7090802@gmail.com> <53A12DBB.50704@roeck-us.net> In-Reply-To: <53A12DBB.50704@roeck-us.net> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Guenter Roeck , Heiko Schocher , lm-sensors@lm-sensors.org Cc: Jean Delvare , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-doc@vger.kernel.org, Mark Rutland T24gMDYvMTgvMjAxNCAxMTo0MiBBTSwgR3VlbnRlciBSb2VjayB3cm90ZToKPiBPbiAwNi8xNy8y MDE0IDEwOjQ2IFBNLCBWYXJrYSBCaGFkcmFtIHdyb3RlOgo+PiBIaSwKPj4KPj4gT24gMDYvMTgv MjAxNCAxMTowNyBBTSwgSGVpa28gU2Nob2NoZXIgd3JvdGU6Cj4+PiBEcml2ZXIgZm9yIHRoZSBU SSBUTVAxMDMuCj4+Pgo+Pj4gVGhlIFRJIFRNUDEwMyBpcyBzaW1pbGFyIHRvIHRoZSBUTVAxMDIu ICBJdCBkaWZmZXJzIGZyb20gdGhlIFRNUDEwMgo+Pj4gYnkgaGF2aW5nIG9ubHkgOCBiaXQgcmVn aXN0ZXJzLgo+Pj4KPj4+IFNpZ25lZC1vZmYtYnk6IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRl Pgo+Pj4KPj4+IC0tLQo+Pj4KPj4+IENjOiBKZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9y Zz4KPj4+IENjOiBHdWVudGVyIFJvZWNrIDxsaW51eEByb2Vjay11cy5uZXQ+Cj4+PiBDYzogbGlu dXgta2VybmVsQHZnZXIua2VybmVsLm9yZwo+Pj4gQ2M6IGRldmljZXRyZWVAdmdlci5rZXJuZWwu b3JnCj4+PiBDYzogbGludXgtZG9jQHZnZXIua2VybmVsLm9yZwo+Pj4gQ2M6IE1hcmsgUnV0bGFu ZCA8bWFyay5ydXRsYW5kQGFybS5jb20+Cj4+Pgo+Pj4gLSBjaGFuZ2UgZm9yIHYyOgo+Pj4gICAg LSBhZGQgY29tbWVudHMgZnJvbSBHdWVudGVyUm9lY2s6Cj4+PiAgICAgIC0gcmVtb3ZlIENjIGZy b20gY29tbWl0IHN1YmplY3QKPj4+ICAgICAgLSBhZGQgZGV2aWNldHJlZSBtYWludGFpbmVyCj4+ PiAgICAgIC0gbW92ZSBEb2N1bWVudGF0aW9uIHRvIERvY3VtZW50YXRpb24vaHdtb24vdG1wMTAz Cj4+PiAgICAgIC0gcmVtb3ZlIGRldmljZXRyZWUgYmluZGluZ3MgZnJvbSBEb2N1bWVudGF0aW9u Cj4+PiAgICAgIC0gYWRkIGNvbXBhdGlibGUgc3RyaW5nIHRvCj4+PiAiRG9jdW1lbnRhdGlvbi9k ZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy90cml2aWFsLWRldmljZXMudHh0Igo+Pj4gICAgICAtIHJl bW92ZSBDYW1lbENhc2UKPj4+ICAgICAgLSBmaXggQ29kaW5nc3R5bGUgaXNzdWVzCj4+PiAgICAg IC0gdXNlIEFUVFJJQlVURV9HUk9VUFMgYW5kIAo+Pj4gZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0 ZXJfd2l0aF9ncm91cHMoKQo+Pj4gICAgICAtIHJlbW92ZSB1bnN1c2VkIGRlZmluZSBUTVAxMDNf Q09ORklHX1JEX09OTFkKPj4+ICAgICAgLSByZXN0b3JlIGNvbmZpZyByZWdpc3RlciB3aGVuIGV4 aXQoKQo+Pj4gICAgICAtIHVzZSByZWdtYXAKPj4+IC0gY2hhbmdlcyBmb3IgdjM6Cj4+PiAgICBh Z2FpbiBhIGxvdCBvZiBmYW50YXN0aWMgdGlwcyBob3cgdG8gdXNlIHJlZ21hcCBlZmZpY2llbnRs eQo+Pj4gICAgZnJvbSBHdWVudGVyIFJvZWNrOgo+Pj4gICAgLSBnZXQgcmlkIG9mICJzdHJ1Y3Qg dG1wMTAzIgo+Pj4gICAgLSBnZXQgcmlkIG9mICJzdGF0aWMgY29uc3QgdTggdG1wMTAzX3JlZ1td Igo+Pj4gICAgLSBnZXQgcmlkIG9mIG11dGV4IGxvY2sKPj4+ICAgIC0gZHJvcCBjb25maWdfb3Jp ZyBlbnRpcmVseQo+Pj4gICAgLSB1c2UgcmVnbWFwX3VwZGF0ZV9iaXRzKCkKPj4+IC0gY2hhbmdl cyBmb3IgdjQ6Cj4+PiAgICAtIGFkZCBjb21tZW50IGZyb20gR3VlbnRlciBSb2VjazoKPj4+ICAg ICAgZGVmaW5lIFRNUDEwM19DT05GSUdfTUFTSyBhbmQgVE1QMTAzX0NPTkZfU0RfTUFTSwo+Pj4g ICAgICBzZXBhcmF0ZWx5IHRvIGVuc3VyZSB5b3UgY2F0Y2ggYWxsIHRoZSB0by1iZS1jbGVhcmVk IGJpdHMuCj4+PiAtIGNoYW5nZXMgZm9yIHY1Ogo+Pj4gICAgYWRkIGNvbW1lbnQgZnJvbSBHdWVu dGVyIFJvZWNrOgo+Pj4gICAgLSB1c2UgIiNkZWZpbmUgVE1QMTAzX0NPTkZfU0QgVE1QMTAzX0NP TkZfTTEiCj4+PiAgICBhZGQgY29tbWVudCBmcm9tIE1hcmsgUnV0bGFuZDoKPj4+ICAgIC0gdXNl IGZ1bGwgc3RyaW5nIGZvciBEVCBjb21wYXRpYmxlIHN0cmluZyBtYXRjaGluZywgaW5zdGVhZCBv Zgo+Pj4gICAgICBEUklWRVJfTkFNRS4gR2V0IHJpZCBjb21wbGV0ZSBvZiBEUklWRVJfTkFNRSBk ZWZpbmUuCj4+Pgo+Pj4gICAuLi4vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvdHJpdmlhbC1kZXZp Y2VzLnR4dCAgICB8ICAgMSArCj4+PiAgIERvY3VtZW50YXRpb24vaHdtb24vdG1wMTAzICAgICAg ICAgICAgICAgICAgICAgICAgIHwgIDI4ICsrKwo+Pj4gICBkcml2ZXJzL2h3bW9uL0tjb25maWcg ICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAxMCArCj4+PiAgIGRyaXZlcnMvaHdtb24v TWFrZWZpbGUgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgICAxICsKPj4+ICAgZHJpdmVy cy9od21vbi90bXAxMDMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfCAyMDUgCj4+PiAr KysrKysrKysrKysrKysrKysrKysKPj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCAyNDUgaW5zZXJ0aW9u cygrKQo+Pj4gICBjcmVhdGUgbW9kZSAxMDA2NDQgRG9jdW1lbnRhdGlvbi9od21vbi90bXAxMDMK Pj4+ICAgY3JlYXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaHdtb24vdG1wMTAzLmMKPj4+Cj4+PiBk aWZmIC0tZ2l0IAo+Pj4gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL3Ry aXZpYWwtZGV2aWNlcy50eHQgCj4+PiBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5n cy9pMmMvdHJpdmlhbC1kZXZpY2VzLnR4dAo+Pj4gaW5kZXggYmVmODZlNS4uZmM5NDRlMCAxMDA2 NDQKPj4+IC0tLSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvdHJpdmlh bC1kZXZpY2VzLnR4dAo+Pj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdz L2kyYy90cml2aWFsLWRldmljZXMudHh0Cj4+PiBAQCAtODMsNSArODMsNiBAQCBzdG0sbTQxdDgw ICAgICAgICBNNDFUODAgLSBTRVJJQUwgQUNDRVNTIFJUQyBXSVRIIAo+Pj4gQUxBUk1TCj4+PiAg IHRhb3MsdHNsMjU1MCAgICAgICAgQW1iaWVudCBMaWdodCBTZW5zb3Igd2l0aCBTTUJVUy9Ud28g V2lyZSAKPj4+IFNlcmlhbCBJbnRlcmZhY2UKPj4+ICAgdGksdHNjMjAwMyAgICAgICAgSTJDIFRv dWNoLVNjcmVlbiBDb250cm9sbGVyCj4+PiAgIHRpLHRtcDEwMiAgICAgICAgTG93IFBvd2VyIERp Z2l0YWwgVGVtcGVyYXR1cmUgU2Vuc29yIHdpdGggCj4+PiBTTUJVUy9Ud28gV2lyZSBTZXJpYWwg SW50ZXJmYWNlCj4+PiArdGksdG1wMTAzICAgICAgICBMb3cgUG93ZXIgRGlnaXRhbCBUZW1wZXJh dHVyZSBTZW5zb3Igd2l0aCAKPj4+IFNNQlVTL1R3byBXaXJlIFNlcmlhbCBJbnRlcmZhY2UKTWF5 IGkga25vdyBhYm91dCB0aGlzIGJpbmRpbmcgY29tcGF0aWJsZSBwcm9wZXJ0eSA/Cj4+PiAgIHRp LHRtcDI3NSAgICAgICAgRGlnaXRhbCBUZW1wZXJhdHVyZSBTZW5zb3IKPj4+ICAgd2luYm9uZCx3 cGN0MzAxICAgICAgICBpMmMgdHJ1c3RlZCBwbGF0Zm9ybSBtb2R1bGUgKFRQTSkKPj4+IGRpZmYg LS1naXQgYS9Eb2N1bWVudGF0aW9uL2h3bW9uL3RtcDEwMyBiL0RvY3VtZW50YXRpb24vaHdtb24v dG1wMTAzCj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uZWMwMGEx NQo+Pj4gLS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvRG9jdW1lbnRhdGlvbi9od21vbi90bXAxMDMK Pj4+IEBAIC0wLDAgKzEsMjggQEAKPj4+ICtLZXJuZWwgZHJpdmVyIHRtcDEwMwo+Pj4gKz09PT09 PT09PT09PT09PT09PT09Cj4+PiArCj4+PiArU3VwcG9ydGVkIGNoaXBzOgo+Pj4gKyAgKiBUZXhh cyBJbnN0cnVtZW50cyBUTVAxMDMKPj4+ICsgICAgUHJlZml4OiAndG1wMTAzJwo+Pj4gKyAgICBB ZGRyZXNzZXMgc2Nhbm5lZDogbm9uZQo+Pj4gKyAgICBQcm9kdWN0IGluZm8gYW5kIGRhdGFzaGVl dDogaHR0cDovL3d3dy50aS5jb20vcHJvZHVjdC90bXAxMDMKPj4+ICsKPj4+ICtBdXRob3I6Cj4+ PiArICAgIEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgo+Pj4gKwo+Pj4gK0Rlc2NyaXB0aW9u Cj4+PiArLS0tLS0tLS0tLS0KPj4+ICsKPj4+ICtUaGUgVE1QMTAzIGlzIGEgZGlnaXRhbCBvdXRw dXQgdGVtcGVyYXR1cmUgc2Vuc29yIGluIGEgZm91ci1iYWxsCj4+PiArd2FmZXIgY2hpcC1zY2Fs ZSBwYWNrYWdlIChXQ1NQKS4gVGhlIFRNUDEwMyBpcyBjYXBhYmxlIG9mIHJlYWRpbmcKPj4+ICt0 ZW1wZXJhdHVyZXMgdG8gYSByZXNvbHV0aW9uIG9mIDHCsEMuIFRoZSBUTVAxMDMgaXMgc3BlY2lm aWVkIGZvcgo+Pj4gK29wZXJhdGlvbiBvdmVyIGEgdGVtcGVyYXR1cmUgcmFuZ2Ugb2Yg4oCTNDDC sEMgdG8gKzEyNcKwQy4KPj4+ICsKPj4+ICtSZXNvbHV0aW9uOiA4IEJpdHMKPj4+ICtBY2N1cmFj eTogwrExwrBDIFR5cCAo4oCTMTDCsEMgdG8gKzEwMMKwQykKPj4+ICsKPj4+ICtUaGUgZHJpdmVy IHByb3ZpZGVzIHRoZSBjb21tb24gc3lzZnMtaW50ZXJmYWNlIGZvciB0ZW1wZXJhdHVyZXMgKHNl ZQo+Pj4gK0RvY3VtZW50YXRpb24vaHdtb24vc3lzZnMtaW50ZXJmYWNlIHVuZGVyIFRlbXBlcmF0 dXJlcykuCj4+PiArCj4+PiArUGxlYXNlIHJlZmVyIGhvdyB0byBpbnN0YW50aWF0ZSB0aGlzIGRy aXZlcjoKPj4+ICtEb2N1bWVudGF0aW9uL2kyYy9pbnN0YW50aWF0aW5nLWRldmljZXMKPj4+IGRp ZmYgLS1naXQgYS9kcml2ZXJzL2h3bW9uL0tjb25maWcgYi9kcml2ZXJzL2h3bW9uL0tjb25maWcK Pj4+IGluZGV4IDA4NTMxYTEuLmM4ODJkNGIgMTAwNjQ0Cj4+PiAtLS0gYS9kcml2ZXJzL2h3bW9u L0tjb25maWcKPj4+ICsrKyBiL2RyaXZlcnMvaHdtb24vS2NvbmZpZwo+Pj4gQEAgLTEzOTEsNiAr MTM5MSwxNiBAQCBjb25maWcgU0VOU09SU19UTVAxMDIKPj4+ICAgICAgICAgVGhpcyBkcml2ZXIg Y2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhlIG1vZHVsZQo+Pj4gICAg ICAgICB3aWxsIGJlIGNhbGxlZCB0bXAxMDIuCj4+PiArY29uZmlnIFNFTlNPUlNfVE1QMTAzCj4+ PiArICAgIHRyaXN0YXRlICJUZXhhcyBJbnN0cnVtZW50cyBUTVAxMDMiCj4+PiArICAgIGRlcGVu ZHMgb24gSTJDCj4+PiArICAgIGhlbHAKPj4+ICsgICAgICBJZiB5b3Ugc2F5IHllcyBoZXJlIHlv dSBnZXQgc3VwcG9ydCBmb3IgVGV4YXMgSW5zdHJ1bWVudHMgVE1QMTAzCj4+PiArICAgICAgc2Vu c29yIGNoaXBzLgo+Pj4gKwo+Pj4gKyAgICAgIFRoaXMgZHJpdmVyIGNhbiBhbHNvIGJlIGJ1aWx0 IGFzIGEgbW9kdWxlLiAgSWYgc28sIHRoZSBtb2R1bGUKPj4+ICsgICAgICB3aWxsIGJlIGNhbGxl ZCB0bXAxMDMuCj4+PiArCj4+PiAgIGNvbmZpZyBTRU5TT1JTX1RNUDQwMQo+Pj4gICAgICAgdHJp c3RhdGUgIlRleGFzIEluc3RydW1lbnRzIFRNUDQwMSBhbmQgY29tcGF0aWJsZXMiCj4+PiAgICAg ICBkZXBlbmRzIG9uIEkyQwo+Pj4gZGlmZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUg Yi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4+PiBpbmRleCAzZGMwZjAyLi5jYzBkZjFlZiAxMDA2 NDQKPj4+IC0tLSBhL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKPj4+ICsrKyBiL2RyaXZlcnMvaHdt b24vTWFrZWZpbGUKPj4+IEBAIC0xMzUsNiArMTM1LDcgQEAgb2JqLSQoQ09ORklHX1NFTlNPUlNf U01TQzQ3TTE5MikrPSBzbXNjNDdtMTkyLm8KPj4+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfQU1D NjgyMSkgICAgKz0gYW1jNjgyMS5vCj4+PiAgIG9iai0kKENPTkZJR19TRU5TT1JTX1RITUM1MCkg ICAgKz0gdGhtYzUwLm8KPj4+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfVE1QMTAyKSAgICArPSB0 bXAxMDIubwo+Pj4gK29iai0kKENPTkZJR19TRU5TT1JTX1RNUDEwMykgICAgKz0gdG1wMTAzLm8K Pj4+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfVE1QNDAxKSAgICArPSB0bXA0MDEubwo+Pj4gICBv YmotJChDT05GSUdfU0VOU09SU19UTVA0MjEpICAgICs9IHRtcDQyMS5vCj4+PiAgIG9iai0kKENP TkZJR19TRU5TT1JTX1RXTDQwMzBfTUFEQykrPSB0d2w0MDMwLW1hZGMtaHdtb24ubwo+Pj4gZGlm ZiAtLWdpdCBhL2RyaXZlcnMvaHdtb24vdG1wMTAzLmMgYi9kcml2ZXJzL2h3bW9uL3RtcDEwMy5j Cj4+PiBuZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uZTY5ZGJjYQo+Pj4g LS0tIC9kZXYvbnVsbAo+Pj4gKysrIGIvZHJpdmVycy9od21vbi90bXAxMDMuYwo+Pj4gQEAgLTAs MCArMSwyMDUgQEAKPj4+ICsvKgo+Pj4gKyAqIFRleGFzIEluc3RydW1lbnRzIFRNUDEwMyBTTUJ1 cyB0ZW1wZXJhdHVyZSBzZW5zb3IgZHJpdmVyCj4+PiArICogQ29weXJpZ2h0IChDKSAyMDE0IEhl aWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgo+Pj4gKyAqCj4+PiArICogQmFzZWQgb246Cj4+PiAr ICogVGV4YXMgSW5zdHJ1bWVudHMgVE1QMTAyIFNNQnVzIHRlbXBlcmF0dXJlIHNlbnNvciBkcml2 ZXIKPj4+ICsgKgo+Pj4gKyAqIENvcHlyaWdodCAoQykgMjAxMCBTdGV2ZW4gS2luZyA8c2ZraW5n QGZkd2RjLmNvbT4KPj4+ICsgKgo+Pj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJl OyB5b3UgY2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgCj4+PiBtb2RpZnkKPj4+ICsgKiBpdCB1 bmRlciB0aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIAo+Pj4g cHVibGlzaGVkIGJ5Cj4+PiArICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVy IHZlcnNpb24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPj4+ICsgKiAoYXQgeW91ciBvcHRpb24pIGFu eSBsYXRlciB2ZXJzaW9uLgo+Pj4gKyAqCj4+PiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1 dGVkIGluIHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+PiArICogYnV0IFdJVEhP VVQgQU5ZIFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4+ ICsgKiBNRVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0Uu ICBTZWUgdGhlCj4+PiArICogR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgZm9yIG1vcmUgZGV0 YWlscy4KPj4+ICsgKgo+Pj4gKyAqLwo+Pj4gKwo+Pj4gKyNpbmNsdWRlIDxsaW51eC9tb2R1bGUu aD4KPj4+ICsjaW5jbHVkZSA8bGludXgvaW5pdC5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9zbGFi Lmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L2kyYy5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9od21v bi5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9od21vbi1zeXNmcy5oPgo+Pj4gKyNpbmNsdWRlIDxs aW51eC9lcnIuaD4KPj4+ICsjaW5jbHVkZSA8bGludXgvbXV0ZXguaD4KPj4+ICsjaW5jbHVkZSA8 bGludXgvZGV2aWNlLmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L2ppZmZpZXMuaD4KPj4+ICsjaW5j bHVkZSA8bGludXgvcmVnbWFwLmg+Cj4+PiArCj4+PiArI2RlZmluZSBUTVAxMDNfVEVNUF9SRUcg ICAgICAgIDB4MDAKPj4+ICsjZGVmaW5lIFRNUDEwM19DT05GX1JFRyAgICAgICAgMHgwMQo+Pj4g KyNkZWZpbmUgVE1QMTAzX1RMT1dfUkVHICAgICAgICAweDAyCj4+PiArI2RlZmluZSBUTVAxMDNf VEhJR0hfUkVHICAgIDB4MDMKPj4+ICsKPj4+ICsjZGVmaW5lIFRNUDEwM19DT05GX00wICAgICAg ICAweDAxCj4+PiArI2RlZmluZSBUTVAxMDNfQ09ORl9NMSAgICAgICAgMHgwMgo+Pj4gKyNkZWZp bmUgVE1QMTAzX0NPTkZfTEMgICAgICAgIDB4MDQKPj4+ICsjZGVmaW5lIFRNUDEwM19DT05GX0ZM ICAgICAgICAweDA4Cj4+PiArI2RlZmluZSBUTVAxMDNfQ09ORl9GSCAgICAgICAgMHgxMAo+Pj4g KyNkZWZpbmUgVE1QMTAzX0NPTkZfQ1IwICAgICAgICAweDIwCj4+PiArI2RlZmluZSBUTVAxMDNf Q09ORl9DUjEgICAgICAgIDB4NDAKPj4+ICsjZGVmaW5lIFRNUDEwM19DT05GX0lEICAgICAgICAw eDgwCj4+PiArI2RlZmluZSBUTVAxMDNfQ09ORl9TRCAgICAgICAgKFRNUDEwM19DT05GX00xKQo+ Pj4gKyNkZWZpbmUgVE1QMTAzX0NPTkZfU0RfTUFTSyAgICAoVE1QMTAzX0NPTkZfTTAgfCBUTVAx MDNfQ09ORl9NMSkKPj4+ICsKPj4+ICsjZGVmaW5lIFRNUDEwM19DT05GSUcgICAgICAgIChUTVAx MDNfQ09ORl9DUjEgfCBUTVAxMDNfQ09ORl9NMSkKPj4+ICsjZGVmaW5lIFRNUDEwM19DT05GSUdf TUFTSyAgICAoVE1QMTAzX0NPTkZfQ1IwIHwgVE1QMTAzX0NPTkZfQ1IxIHwgXAo+Pj4gKyAgICAg ICAgICAgICAgICAgVE1QMTAzX0NPTkZfTTAgfCBUTVAxMDNfQ09ORl9NMSkKPj4+ICsKPj4+ICtz dGF0aWMgaW5saW5lIGludCB0bXAxMDNfcmVnX3RvX21jKHM4IHZhbCkKPj4+ICt7Cj4+PiArICAg IHJldHVybiB2YWwgKiAxMDAwOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgaW5saW5lIHU4IHRt cDEwM19tY190b19yZWcoaW50IHZhbCkKPj4+ICt7Cj4+PiArICAgIHJldHVybiBESVZfUk9VTkRf Q0xPU0VTVCh2YWwsIDEwMDApOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgc3NpemVfdCB0bXAx MDNfc2hvd190ZW1wKHN0cnVjdCBkZXZpY2UgKmRldiwKPj4+ICsgICAgICAgICAgICAgICAgc3Ry dWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCj4+PiArICAgICAgICAgICAgICAgIGNoYXIgKmJ1 ZikKPj4+ICt7Cj4+PiArICAgIHN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZSAqc2RhID0g dG9fc2Vuc29yX2Rldl9hdHRyKGF0dHIpOwo+Pj4gKyAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPj4+ICsgICAgdW5zaWduZWQgaW50IHJlZ3ZhbDsKPj4+ ICsgICAgaW50IHJldDsKPj4+ICsKPj4+ICsgICAgcmV0ID0gcmVnbWFwX3JlYWQocmVnbWFwLCBz ZGEtPmluZGV4LCAmcmVndmFsKTsKPj4+ICsgICAgaWYgKHJldCA8IDApCj4+PiArICAgICAgICBy ZXR1cm4gcmV0Owo+Pj4gKwo+Pj4gKyAgICByZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgdG1w MTAzX3JlZ190b19tYyhyZWd2YWwpKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIHNzaXplX3Qg dG1wMTAzX3NldF90ZW1wKHN0cnVjdCBkZXZpY2UgKmRldiwKPj4+ICsgICAgICAgICAgICAgICAg ICAgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCj4+PiArICAgICAgICAgICAgICAgICAg IGNvbnN0IGNoYXIgKmJ1Ziwgc2l6ZV90IGNvdW50KQo+Pj4gK3sKPj4+ICsgICAgc3RydWN0IHNl bnNvcl9kZXZpY2VfYXR0cmlidXRlICpzZGEgPSB0b19zZW5zb3JfZGV2X2F0dHIoYXR0cik7Cj4+ PiArICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+Pj4g KyAgICBsb25nIHZhbDsKPj4+ICsgICAgaW50IHJldDsKPj4+ICsKPj4+ICsgICAgaWYgKGtzdHJ0 b2woYnVmLCAxMCwgJnZhbCkgPCAwKQo+Pj4gKyAgICAgICAgcmV0dXJuIC1FSU5WQUw7Cj4+PiAr Cj4+PiArICAgIHZhbCA9IGNsYW1wX3ZhbCh2YWwsIC01NTAwMCwgMTI3MDAwKTsKPj4+ICsgICAg cmV0ID0gcmVnbWFwX3dyaXRlKHJlZ21hcCwgc2RhLT5pbmRleCwgdG1wMTAzX21jX3RvX3JlZyh2 YWwpKTsKPj4+ICsgICAgcmV0dXJuIHJldCA/IHJldCA6IGNvdW50Owo+Pj4gK30KPj4+ICsKPj4+ ICtzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSKHRlbXAxX2lucHV0LCBTX0lSVUdPLCB0bXAxMDNf c2hvd190ZW1wLCAKPj4+IE5VTEwgLAo+Pj4gKyAgICAgICAgICAgICAgVE1QMTAzX1RFTVBfUkVH KTsKPj4+ICsKPj4+ICtzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRSKHRlbXAxX21pbiwgU19JV1VT UiB8IFNfSVJVR08sIAo+Pj4gdG1wMTAzX3Nob3dfdGVtcCwKPj4+ICsgICAgICAgICAgICAgIHRt cDEwM19zZXRfdGVtcCwgVE1QMTAzX1RMT1dfUkVHKTsKPj4+ICsKPj4+ICtzdGF0aWMgU0VOU09S X0RFVklDRV9BVFRSKHRlbXAxX21heCwgU19JV1VTUiB8IFNfSVJVR08sIAo+Pj4gdG1wMTAzX3No b3dfdGVtcCwKPj4+ICsgICAgICAgICAgICAgIHRtcDEwM19zZXRfdGVtcCwgVE1QMTAzX1RISUdI X1JFRyk7Cj4+PiArCj4+PiArc3RhdGljIHN0cnVjdCBhdHRyaWJ1dGUgKnRtcDEwM19hdHRyc1td ID0gewo+Pj4gKyAgICAmc2Vuc29yX2Rldl9hdHRyX3RlbXAxX2lucHV0LmRldl9hdHRyLmF0dHIs Cj4+PiArICAgICZzZW5zb3JfZGV2X2F0dHJfdGVtcDFfbWluLmRldl9hdHRyLmF0dHIsCj4+PiAr ICAgICZzZW5zb3JfZGV2X2F0dHJfdGVtcDFfbWF4LmRldl9hdHRyLmF0dHIsCj4+PiArICAgIE5V TEwKPj4+ICt9Owo+Pj4gK0FUVFJJQlVURV9HUk9VUFModG1wMTAzKTsKPj4+ICsKPj4+ICtzdGF0 aWMgYm9vbCB0bXAxMDNfcmVnbWFwX2lzX3ZvbGF0aWxlKHN0cnVjdCBkZXZpY2UgKmRldiwgdW5z aWduZWQgCj4+PiBpbnQgcmVnKQo+Pj4gK3sKPj4+ICsgICAgcmV0dXJuIHJlZyA9PSBUTVAxMDNf VEVNUF9SRUc7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBzdHJ1Y3QgcmVnbWFwX2NvbmZpZyB0 bXAxMDNfcmVnbWFwX2NvbmZpZyA9IHsKPj4+ICsgICAgLnJlZ19iaXRzID0gOCwKPj4+ICsgICAg LnZhbF9iaXRzID0gOCwKPj4+ICsgICAgLm1heF9yZWdpc3RlciA9IFRNUDEwM19USElHSF9SRUcs Cj4+PiArICAgIC52b2xhdGlsZV9yZWcgPSB0bXAxMDNfcmVnbWFwX2lzX3ZvbGF0aWxlLAo+Pj4g K307Cj4+PiArCj4+PiArc3RhdGljIGludCB0bXAxMDNfcHJvYmUoc3RydWN0IGkyY19jbGllbnQg KmNsaWVudCwKPj4+ICsgICAgICAgICAgICBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCAqaWQp Cj4+PiArewo+Pj4gKyAgICBzdHJ1Y3QgZGV2aWNlICpkZXYgPSAmY2xpZW50LT5kZXY7Cj4+PiAr ICAgIHN0cnVjdCBkZXZpY2UgKmh3bW9uX2RldjsKPj4+ICsgICAgc3RydWN0IHJlZ21hcCAqcmVn bWFwOwo+Pj4gKyAgICBpbnQgcmV0Owo+Pj4gKwo+Pj4gKyAgICBpZiAoIWkyY19jaGVja19mdW5j dGlvbmFsaXR5KGNsaWVudC0+YWRhcHRlciwKPj4+ICsgICAgICAgICAgICAgICAgICAgICBJMkNf RlVOQ19TTUJVU19CWVRFX0RBVEEpKSB7Cj4+PiArICAgICAgICBkZXZfZXJyKCZjbGllbnQtPmRl diwKPj4+ICsgICAgICAgICAgICAiYWRhcHRlciBkb2Vzbid0IHN1cHBvcnQgU01CdXMgYnl0ZSB0 cmFuc2FjdGlvbnNcbiIpOwo+Pj4gKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7Cj4+PiArICAgIH0K Pj4+ICsKPj4+ICsgICAgcmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMoY2xpZW50LCAmdG1w MTAzX3JlZ21hcF9jb25maWcpOwo+Pj4gKyAgICBpZiAoSVNfRVJSKHJlZ21hcCkpIHsKPj4+ICsg ICAgICAgIGRldl9lcnIoZGV2LCAiZmFpbGVkIHRvIGFsbG9jYXRlIHJlZ2lzdGVyIG1hcFxuIik7 Cj4+PiArICAgICAgICByZXR1cm4gUFRSX0VSUihyZWdtYXApOwo+Pj4gKyAgICB9Cj4+PiArCj4+ PiArICAgIHJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIFRNUDEwM19DT05GX1JFRywg Cj4+PiBUTVAxMDNfQ09ORklHX01BU0ssCj4+PiArICAgICAgICAgICAgICAgICBUTVAxMDNfQ09O RklHKTsKPj4+ICsgICAgaWYgKHJldCA8IDApIHsKPj4+ICsgICAgICAgIGRldl9lcnIoJmNsaWVu dC0+ZGV2LCAiZXJyb3Igd3JpdGluZyBjb25maWcgcmVnaXN0ZXJcbiIpOwo+Pj4gKyAgICAgICAg cmV0dXJuIHJldDsKPj4+ICsgICAgfQo+Pj4gKwo+Pj4gKyAgICBod21vbl9kZXYgPSBod21vbl9k ZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoZGV2LCBjbGllbnQtPm5hbWUsCj4+PiArICAgICAg ICAgICAgICAgICAgICAgICAgICAgICAgcmVnbWFwLCB0bXAxMDNfZ3JvdXBzKTsKPj4+ICsgICAg cmV0dXJuIFBUUl9FUlJfT1JfWkVSTyhod21vbl9kZXYpOwo+Pj4gK30KPj4+ICsKPj4+ICsjaWZk ZWYgQ09ORklHX1BNCj4+PiArc3RhdGljIGludCB0bXAxMDNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNl ICpkZXYpCj4+PiArewo+Pj4gKyAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAgPSBkZXZfZ2V0X2Ry dmRhdGEoZGV2KTsKPj4+ICsKPj4+ICsgICAgcmV0dXJuIHJlZ21hcF91cGRhdGVfYml0cyhyZWdt YXAsIFRNUDEwM19DT05GX1JFRywKPj4+ICsgICAgICAgICAgICAgICAgICBUTVAxMDNfQ09ORl9T RF9NQVNLLCAwKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGludCB0bXAxMDNfcmVzdW1lKHN0 cnVjdCBkZXZpY2UgKmRldikKPj4+ICt7Cj4+PiArICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcCA9 IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+Pj4gKwo+Pj4gKyAgICByZXR1cm4gcmVnbWFwX3VwZGF0 ZV9iaXRzKHJlZ21hcCwgVE1QMTAzX0NPTkZfUkVHLAo+Pj4gKyAgICAgICAgICAgICAgICAgIFRN UDEwM19DT05GX1NEX01BU0ssIFRNUDEwM19DT05GX1NEKTsKPj4+ICt9Cj4+PiArCj4+PiArc3Rh dGljIGNvbnN0IHN0cnVjdCBkZXZfcG1fb3BzIHRtcDEwM19kZXZfcG1fb3BzID0gewo+Pj4gKyAg ICAuc3VzcGVuZCAgICA9IHRtcDEwM19zdXNwZW5kLAo+Pj4gKyAgICAucmVzdW1lICAgICAgICA9 IHRtcDEwM19yZXN1bWUsCj4+PiArfTsKPj4+ICsKPj4+ICsjZGVmaW5lIFRNUDEwM19ERVZfUE1f T1BTICgmdG1wMTAzX2Rldl9wbV9vcHMpCj4+PiArI2Vsc2UKPj4+ICsjZGVmaW5lICAgIFRNUDEw M19ERVZfUE1fT1BTIE5VTEwKPj4+ICsjZW5kaWYgLyogQ09ORklHX1BNICovCj4+PiArCj4+PiAr c3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIHRtcDEwM19pZFtdID0gewo+Pj4gKyAg ICB7ICJ0bXAxMDMiLCAwIH0sCj4+PiArICAgIHsgfQo+Pj4gK307Cj4+Cj4+IEluIHRoZSBiaW5k aW5ncyB5b3UgYXJlIGdpdmluZyB0aGUgY29tcGF0aWJsZSBwcm9wZXJ0eSBhcyA6IAo+PiB0aSx0 bXAxMDMsIGJ1dCBoZXJlIG9ubHkgdG1wMTAzLgo+Pgo+PiBJbnN0ZWFkIG9mIHVzaW5nIHRoZSBp MmNfZGV2aWNlX2lkIHN0cnVjdCAsIHVzZSBvZl9kZXZpY2VfaWQgc3RydWN0IAo+PiBmb3IgZ2l2 aW5nIHRoZQo+PiBjb21wYXRpYmxlIHByb3BlcnR5IHZhbHVlLgo+PiBjb21wYXRibGUgPSAiPG1h bnVmYWN0dXJlcj4sPG1vZGVsPiIKPj4KPgo+IE5vLiBXZSBkb24ndCBkbyB0aGF0IGZvciBvdGhl ciBpMmMgZHJpdmVycywgYW5kIHRoZSBpMmMgc3Vic3lzdGVtIGhhbmRsZXMKPiB0aGlzIGNhc2Us IHNvIGl0IGRvZXMgbm90IHNlbnNlIHRvIHN0YXJ0IHRoYXQgd2l0aCB0aGlzIGRyaXZlciBqdXN0 Cj4gZm9yIHRoZSBzYWtlIG9mIG1ha2luZyB0aGUgY29kZSBtb3JlIGNvbXBsaWNhdGVkIHRoYW4g aXQgaGFzIHRvIGJlLgo+Cj4gVGhhbmtzLAo+IEd1ZW50ZXIKPgoKCl9fX19fX19fX19fX19fX19f X19fX19fX19fX19fX19fX19fX19fX19fX19fX19fCmxtLXNlbnNvcnMgbWFpbGluZyBsaXN0Cmxt LXNlbnNvcnNAbG0tc2Vuc29ycy5vcmcKaHR0cDovL2xpc3RzLmxtLXNlbnNvcnMub3JnL21haWxt YW4vbGlzdGluZm8vbG0tc2Vuc29ycw= From mboxrd@z Thu Jan 1 00:00:00 1970 From: Varka Bhadram Subject: Re: [PATCH v5] hwmon: Driver for TI TMP103 temperature sensor Date: Wed, 18 Jun 2014 11:48:31 +0530 Message-ID: <53A12F37.8020206@gmail.com> References: <1403069837-15651-1-git-send-email-hs@denx.de> <53A127BB.7090802@gmail.com> <53A12DBB.50704@roeck-us.net> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: In-Reply-To: <53A12DBB.50704@roeck-us.net> Sender: linux-kernel-owner@vger.kernel.org To: Guenter Roeck , Heiko Schocher , lm-sensors@lm-sensors.org Cc: Jean Delvare , linux-kernel@vger.kernel.org, devicetree@vger.kernel.org, linux-doc@vger.kernel.org, Mark Rutland List-Id: devicetree@vger.kernel.org On 06/18/2014 11:42 AM, Guenter Roeck wrote: > On 06/17/2014 10:46 PM, Varka Bhadram wrote: >> Hi, >> >> On 06/18/2014 11:07 AM, Heiko Schocher wrote: >>> Driver for the TI TMP103. >>> >>> The TI TMP103 is similar to the TMP102. It differs from the TMP102 >>> by having only 8 bit registers. >>> >>> Signed-off-by: Heiko Schocher >>> >>> --- >>> >>> Cc: Jean Delvare >>> Cc: Guenter Roeck >>> Cc: linux-kernel@vger.kernel.org >>> Cc: devicetree@vger.kernel.org >>> Cc: linux-doc@vger.kernel.org >>> Cc: Mark Rutland >>> >>> - change for v2: >>> - add comments from GuenterRoeck: >>> - remove Cc from commit subject >>> - add devicetree maintainer >>> - move Documentation to Documentation/hwmon/tmp103 >>> - remove devicetree bindings from Documentation >>> - add compatible string to >>> "Documentation/devicetree/bindings/i2c/trivial-devices.txt" >>> - remove CamelCase >>> - fix Codingstyle issues >>> - use ATTRIBUTE_GROUPS and=20 >>> devm_hwmon_device_register_with_groups() >>> - remove unsused define TMP103_CONFIG_RD_ONLY >>> - restore config register when exit() >>> - use regmap >>> - changes for v3: >>> again a lot of fantastic tips how to use regmap efficiently >>> from Guenter Roeck: >>> - get rid of "struct tmp103" >>> - get rid of "static const u8 tmp103_reg[]" >>> - get rid of mutex lock >>> - drop config_orig entirely >>> - use regmap_update_bits() >>> - changes for v4: >>> - add comment from Guenter Roeck: >>> define TMP103_CONFIG_MASK and TMP103_CONF_SD_MASK >>> separately to ensure you catch all the to-be-cleared bits. >>> - changes for v5: >>> add comment from Guenter Roeck: >>> - use "#define TMP103_CONF_SD TMP103_CONF_M1" >>> add comment from Mark Rutland: >>> - use full string for DT compatible string matching, instead of >>> DRIVER_NAME. Get rid complete of DRIVER_NAME define. >>> >>> .../devicetree/bindings/i2c/trivial-devices.txt | 1 + >>> Documentation/hwmon/tmp103 | 28 +++ >>> drivers/hwmon/Kconfig | 10 + >>> drivers/hwmon/Makefile | 1 + >>> drivers/hwmon/tmp103.c | 205=20 >>> +++++++++++++++++++++ >>> 5 files changed, 245 insertions(+) >>> create mode 100644 Documentation/hwmon/tmp103 >>> create mode 100644 drivers/hwmon/tmp103.c >>> >>> diff --git=20 >>> a/Documentation/devicetree/bindings/i2c/trivial-devices.txt=20 >>> b/Documentation/devicetree/bindings/i2c/trivial-devices.txt >>> index bef86e5..fc944e0 100644 >>> --- a/Documentation/devicetree/bindings/i2c/trivial-devices.txt >>> +++ b/Documentation/devicetree/bindings/i2c/trivial-devices.txt >>> @@ -83,5 +83,6 @@ stm,m41t80 M41T80 - SERIAL ACCESS RTC WITH= =20 >>> ALARMS >>> taos,tsl2550 Ambient Light Sensor with SMBUS/Two Wire=20 >>> Serial Interface >>> ti,tsc2003 I2C Touch-Screen Controller >>> ti,tmp102 Low Power Digital Temperature Sensor with=20 >>> SMBUS/Two Wire Serial Interface >>> +ti,tmp103 Low Power Digital Temperature Sensor with=20 >>> SMBUS/Two Wire Serial Interface May i know about this binding compatible property ? >>> ti,tmp275 Digital Temperature Sensor >>> winbond,wpct301 i2c trusted platform module (TPM) >>> diff --git a/Documentation/hwmon/tmp103 b/Documentation/hwmon/tmp10= 3 >>> new file mode 100644 >>> index 0000000..ec00a15 >>> --- /dev/null >>> +++ b/Documentation/hwmon/tmp103 >>> @@ -0,0 +1,28 @@ >>> +Kernel driver tmp103 >>> +=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D >>> + >>> +Supported chips: >>> + * Texas Instruments TMP103 >>> + Prefix: 'tmp103' >>> + Addresses scanned: none >>> + Product info and datasheet: http://www.ti.com/product/tmp103 >>> + >>> +Author: >>> + Heiko Schocher >>> + >>> +Description >>> +----------- >>> + >>> +The TMP103 is a digital output temperature sensor in a four-ball >>> +wafer chip-scale package (WCSP). The TMP103 is capable of reading >>> +temperatures to a resolution of 1=C2=B0C. The TMP103 is specified = for >>> +operation over a temperature range of =E2=80=9340=C2=B0C to +125=C2= =B0C. >>> + >>> +Resolution: 8 Bits >>> +Accuracy: =C2=B11=C2=B0C Typ (=E2=80=9310=C2=B0C to +100=C2=B0C) >>> + >>> +The driver provides the common sysfs-interface for temperatures (s= ee >>> +Documentation/hwmon/sysfs-interface under Temperatures). >>> + >>> +Please refer how to instantiate this driver: >>> +Documentation/i2c/instantiating-devices >>> diff --git a/drivers/hwmon/Kconfig b/drivers/hwmon/Kconfig >>> index 08531a1..c882d4b 100644 >>> --- a/drivers/hwmon/Kconfig >>> +++ b/drivers/hwmon/Kconfig >>> @@ -1391,6 +1391,16 @@ config SENSORS_TMP102 >>> This driver can also be built as a module. If so, the modu= le >>> will be called tmp102. >>> +config SENSORS_TMP103 >>> + tristate "Texas Instruments TMP103" >>> + depends on I2C >>> + help >>> + If you say yes here you get support for Texas Instruments TM= P103 >>> + sensor chips. >>> + >>> + This driver can also be built as a module. If so, the modul= e >>> + will be called tmp103. >>> + >>> config SENSORS_TMP401 >>> tristate "Texas Instruments TMP401 and compatibles" >>> depends on I2C >>> diff --git a/drivers/hwmon/Makefile b/drivers/hwmon/Makefile >>> index 3dc0f02..cc0df1ef 100644 >>> --- a/drivers/hwmon/Makefile >>> +++ b/drivers/hwmon/Makefile >>> @@ -135,6 +135,7 @@ obj-$(CONFIG_SENSORS_SMSC47M192)+=3D smsc47m192= =2Eo >>> obj-$(CONFIG_SENSORS_AMC6821) +=3D amc6821.o >>> obj-$(CONFIG_SENSORS_THMC50) +=3D thmc50.o >>> obj-$(CONFIG_SENSORS_TMP102) +=3D tmp102.o >>> +obj-$(CONFIG_SENSORS_TMP103) +=3D tmp103.o >>> obj-$(CONFIG_SENSORS_TMP401) +=3D tmp401.o >>> obj-$(CONFIG_SENSORS_TMP421) +=3D tmp421.o >>> obj-$(CONFIG_SENSORS_TWL4030_MADC)+=3D twl4030-madc-hwmon.o >>> diff --git a/drivers/hwmon/tmp103.c b/drivers/hwmon/tmp103.c >>> new file mode 100644 >>> index 0000000..e69dbca >>> --- /dev/null >>> +++ b/drivers/hwmon/tmp103.c >>> @@ -0,0 +1,205 @@ >>> +/* >>> + * Texas Instruments TMP103 SMBus temperature sensor driver >>> + * Copyright (C) 2014 Heiko Schocher >>> + * >>> + * Based on: >>> + * Texas Instruments TMP102 SMBus temperature sensor driver >>> + * >>> + * Copyright (C) 2010 Steven King >>> + * >>> + * This program is free software; you can redistribute it and/or=20 >>> modify >>> + * it under the terms of the GNU General Public License as=20 >>> published by >>> + * the Free Software Foundation; either version 2 of the License, = or >>> + * (at your option) any later version. >>> + * >>> + * This program is distributed in the hope that it will be useful, >>> + * but WITHOUT ANY WARRANTY; without even the implied warranty of >>> + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the >>> + * GNU General Public License for more details. >>> + * >>> + */ >>> + >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> +#include >>> + >>> +#define TMP103_TEMP_REG 0x00 >>> +#define TMP103_CONF_REG 0x01 >>> +#define TMP103_TLOW_REG 0x02 >>> +#define TMP103_THIGH_REG 0x03 >>> + >>> +#define TMP103_CONF_M0 0x01 >>> +#define TMP103_CONF_M1 0x02 >>> +#define TMP103_CONF_LC 0x04 >>> +#define TMP103_CONF_FL 0x08 >>> +#define TMP103_CONF_FH 0x10 >>> +#define TMP103_CONF_CR0 0x20 >>> +#define TMP103_CONF_CR1 0x40 >>> +#define TMP103_CONF_ID 0x80 >>> +#define TMP103_CONF_SD (TMP103_CONF_M1) >>> +#define TMP103_CONF_SD_MASK (TMP103_CONF_M0 | TMP103_CONF_M1) >>> + >>> +#define TMP103_CONFIG (TMP103_CONF_CR1 | TMP103_CONF_M1) >>> +#define TMP103_CONFIG_MASK (TMP103_CONF_CR0 | TMP103_CONF_CR1 |= \ >>> + TMP103_CONF_M0 | TMP103_CONF_M1) >>> + >>> +static inline int tmp103_reg_to_mc(s8 val) >>> +{ >>> + return val * 1000; >>> +} >>> + >>> +static inline u8 tmp103_mc_to_reg(int val) >>> +{ >>> + return DIV_ROUND_CLOSEST(val, 1000); >>> +} >>> + >>> +static ssize_t tmp103_show_temp(struct device *dev, >>> + struct device_attribute *attr, >>> + char *buf) >>> +{ >>> + struct sensor_device_attribute *sda =3D to_sensor_dev_attr(att= r); >>> + struct regmap *regmap =3D dev_get_drvdata(dev); >>> + unsigned int regval; >>> + int ret; >>> + >>> + ret =3D regmap_read(regmap, sda->index, ®val); >>> + if (ret < 0) >>> + return ret; >>> + >>> + return sprintf(buf, "%d\n", tmp103_reg_to_mc(regval)); >>> +} >>> + >>> +static ssize_t tmp103_set_temp(struct device *dev, >>> + struct device_attribute *attr, >>> + const char *buf, size_t count) >>> +{ >>> + struct sensor_device_attribute *sda =3D to_sensor_dev_attr(att= r); >>> + struct regmap *regmap =3D dev_get_drvdata(dev); >>> + long val; >>> + int ret; >>> + >>> + if (kstrtol(buf, 10, &val) < 0) >>> + return -EINVAL; >>> + >>> + val =3D clamp_val(val, -55000, 127000); >>> + ret =3D regmap_write(regmap, sda->index, tmp103_mc_to_reg(val)= ); >>> + return ret ? ret : count; >>> +} >>> + >>> +static SENSOR_DEVICE_ATTR(temp1_input, S_IRUGO, tmp103_show_temp,=20 >>> NULL , >>> + TMP103_TEMP_REG); >>> + >>> +static SENSOR_DEVICE_ATTR(temp1_min, S_IWUSR | S_IRUGO,=20 >>> tmp103_show_temp, >>> + tmp103_set_temp, TMP103_TLOW_REG); >>> + >>> +static SENSOR_DEVICE_ATTR(temp1_max, S_IWUSR | S_IRUGO,=20 >>> tmp103_show_temp, >>> + tmp103_set_temp, TMP103_THIGH_REG); >>> + >>> +static struct attribute *tmp103_attrs[] =3D { >>> + &sensor_dev_attr_temp1_input.dev_attr.attr, >>> + &sensor_dev_attr_temp1_min.dev_attr.attr, >>> + &sensor_dev_attr_temp1_max.dev_attr.attr, >>> + NULL >>> +}; >>> +ATTRIBUTE_GROUPS(tmp103); >>> + >>> +static bool tmp103_regmap_is_volatile(struct device *dev, unsigned= =20 >>> int reg) >>> +{ >>> + return reg =3D=3D TMP103_TEMP_REG; >>> +} >>> + >>> +static struct regmap_config tmp103_regmap_config =3D { >>> + .reg_bits =3D 8, >>> + .val_bits =3D 8, >>> + .max_register =3D TMP103_THIGH_REG, >>> + .volatile_reg =3D tmp103_regmap_is_volatile, >>> +}; >>> + >>> +static int tmp103_probe(struct i2c_client *client, >>> + const struct i2c_device_id *id) >>> +{ >>> + struct device *dev =3D &client->dev; >>> + struct device *hwmon_dev; >>> + struct regmap *regmap; >>> + int ret; >>> + >>> + if (!i2c_check_functionality(client->adapter, >>> + I2C_FUNC_SMBUS_BYTE_DATA)) { >>> + dev_err(&client->dev, >>> + "adapter doesn't support SMBus byte transactions\n"); >>> + return -ENODEV; >>> + } >>> + >>> + regmap =3D devm_regmap_init_i2c(client, &tmp103_regmap_config)= ; >>> + if (IS_ERR(regmap)) { >>> + dev_err(dev, "failed to allocate register map\n"); >>> + return PTR_ERR(regmap); >>> + } >>> + >>> + ret =3D regmap_update_bits(regmap, TMP103_CONF_REG,=20 >>> TMP103_CONFIG_MASK, >>> + TMP103_CONFIG); >>> + if (ret < 0) { >>> + dev_err(&client->dev, "error writing config register\n"); >>> + return ret; >>> + } >>> + >>> + hwmon_dev =3D hwmon_device_register_with_groups(dev, client->n= ame, >>> + regmap, tmp103_groups); >>> + return PTR_ERR_OR_ZERO(hwmon_dev); >>> +} >>> + >>> +#ifdef CONFIG_PM >>> +static int tmp103_suspend(struct device *dev) >>> +{ >>> + struct regmap *regmap =3D dev_get_drvdata(dev); >>> + >>> + return regmap_update_bits(regmap, TMP103_CONF_REG, >>> + TMP103_CONF_SD_MASK, 0); >>> +} >>> + >>> +static int tmp103_resume(struct device *dev) >>> +{ >>> + struct regmap *regmap =3D dev_get_drvdata(dev); >>> + >>> + return regmap_update_bits(regmap, TMP103_CONF_REG, >>> + TMP103_CONF_SD_MASK, TMP103_CONF_SD); >>> +} >>> + >>> +static const struct dev_pm_ops tmp103_dev_pm_ops =3D { >>> + .suspend =3D tmp103_suspend, >>> + .resume =3D tmp103_resume, >>> +}; >>> + >>> +#define TMP103_DEV_PM_OPS (&tmp103_dev_pm_ops) >>> +#else >>> +#define TMP103_DEV_PM_OPS NULL >>> +#endif /* CONFIG_PM */ >>> + >>> +static const struct i2c_device_id tmp103_id[] =3D { >>> + { "tmp103", 0 }, >>> + { } >>> +}; >> >> In the bindings you are giving the compatible property as :=20 >> ti,tmp103, but here only tmp103. >> >> Instead of using the i2c_device_id struct , use of_device_id struct=20 >> for giving the >> compatible property value. >> compatble =3D "," >> > > No. We don't do that for other i2c drivers, and the i2c subsystem han= dles > this case, so it does not sense to start that with this driver just > for the sake of making the code more complicated than it has to be. > > Thanks, > Guenter >