From: Varka Bhadram <varkabhadram@gmail.com>
To: hs@denx.de
Cc: lm-sensors@lm-sensors.org, Jean Delvare <khali@linux-fr.org>,
Guenter Roeck <linux@roeck-us.net>,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>
Subject: Re: [lm-sensors] [PATCH v5] hwmon: Driver for TI TMP103 temperature sensor
Date: Wed, 18 Jun 2014 07:10:40 +0000 [thread overview]
Message-ID: <53A138A0.4010704@gmail.com> (raw)
In-Reply-To: <53A12ED2.4080004@denx.de>
T24gMDYvMTgvMjAxNCAxMTo0NiBBTSwgSGVpa28gU2Nob2NoZXIgd3JvdGU6Cj4gSGVsbG8gVmFy
a2EsCj4KPiBBbSAxOC4wNi4yMDE0IDA3OjQ2LCBzY2hyaWViIFZhcmthIEJoYWRyYW06Cj4+IEhp
LAo+Pgo+PiBPbiAwNi8xOC8yMDE0IDExOjA3IEFNLCBIZWlrbyBTY2hvY2hlciB3cm90ZToKPj4+
IERyaXZlciBmb3IgdGhlIFRJIFRNUDEwMy4KPj4+Cj4+PiBUaGUgVEkgVE1QMTAzIGlzIHNpbWls
YXIgdG8gdGhlIFRNUDEwMi4gSXQgZGlmZmVycyBmcm9tIHRoZSBUTVAxMDIKPj4+IGJ5IGhhdmlu
ZyBvbmx5IDggYml0IHJlZ2lzdGVycy4KPj4+Cj4+PiBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hv
Y2hlciA8aHNAZGVueC5kZT4KPj4+Cj4+PiAtLS0KPj4+Cj4+PiBDYzogSmVhbiBEZWx2YXJlIDxr
aGFsaUBsaW51eC1mci5vcmc+Cj4+PiBDYzogR3VlbnRlciBSb2VjayA8bGludXhAcm9lY2stdXMu
bmV0Pgo+Pj4gQ2M6IGxpbnV4LWtlcm5lbEB2Z2VyLmtlcm5lbC5vcmcKPj4+IENjOiBkZXZpY2V0
cmVlQHZnZXIua2VybmVsLm9yZwo+Pj4gQ2M6IGxpbnV4LWRvY0B2Z2VyLmtlcm5lbC5vcmcKPj4+
IENjOiBNYXJrIFJ1dGxhbmQgPG1hcmsucnV0bGFuZEBhcm0uY29tPgo+Pj4KPj4+IC0gY2hhbmdl
IGZvciB2MjoKPj4+IC0gYWRkIGNvbW1lbnRzIGZyb20gR3VlbnRlclJvZWNrOgo+Pj4gLSByZW1v
dmUgQ2MgZnJvbSBjb21taXQgc3ViamVjdAo+Pj4gLSBhZGQgZGV2aWNldHJlZSBtYWludGFpbmVy
Cj4+PiAtIG1vdmUgRG9jdW1lbnRhdGlvbiB0byBEb2N1bWVudGF0aW9uL2h3bW9uL3RtcDEwMwo+
Pj4gLSByZW1vdmUgZGV2aWNldHJlZSBiaW5kaW5ncyBmcm9tIERvY3VtZW50YXRpb24KPj4+IC0g
YWRkIGNvbXBhdGlibGUgc3RyaW5nIHRvCj4+PiAiRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2Jp
bmRpbmdzL2kyYy90cml2aWFsLWRldmljZXMudHh0Igo+Pj4gLSByZW1vdmUgQ2FtZWxDYXNlCj4+
PiAtIGZpeCBDb2RpbmdzdHlsZSBpc3N1ZXMKPj4+IC0gdXNlIEFUVFJJQlVURV9HUk9VUFMgYW5k
IGRldm1faHdtb25fZGV2aWNlX3JlZ2lzdGVyX3dpdGhfZ3JvdXBzKCkKPj4+IC0gcmVtb3ZlIHVu
c3VzZWQgZGVmaW5lIFRNUDEwM19DT05GSUdfUkRfT05MWQo+Pj4gLSByZXN0b3JlIGNvbmZpZyBy
ZWdpc3RlciB3aGVuIGV4aXQoKQo+Pj4gLSB1c2UgcmVnbWFwCj4+PiAtIGNoYW5nZXMgZm9yIHYz
Ogo+Pj4gYWdhaW4gYSBsb3Qgb2YgZmFudGFzdGljIHRpcHMgaG93IHRvIHVzZSByZWdtYXAgZWZm
aWNpZW50bHkKPj4+IGZyb20gR3VlbnRlciBSb2VjazoKPj4+IC0gZ2V0IHJpZCBvZiAic3RydWN0
IHRtcDEwMyIKPj4+IC0gZ2V0IHJpZCBvZiAic3RhdGljIGNvbnN0IHU4IHRtcDEwM19yZWdbXSIK
Pj4+IC0gZ2V0IHJpZCBvZiBtdXRleCBsb2NrCj4+PiAtIGRyb3AgY29uZmlnX29yaWcgZW50aXJl
bHkKPj4+IC0gdXNlIHJlZ21hcF91cGRhdGVfYml0cygpCj4+PiAtIGNoYW5nZXMgZm9yIHY0Ogo+
Pj4gLSBhZGQgY29tbWVudCBmcm9tIEd1ZW50ZXIgUm9lY2s6Cj4+PiBkZWZpbmUgVE1QMTAzX0NP
TkZJR19NQVNLIGFuZCBUTVAxMDNfQ09ORl9TRF9NQVNLCj4+PiBzZXBhcmF0ZWx5IHRvIGVuc3Vy
ZSB5b3UgY2F0Y2ggYWxsIHRoZSB0by1iZS1jbGVhcmVkIGJpdHMuCj4+PiAtIGNoYW5nZXMgZm9y
IHY1Ogo+Pj4gYWRkIGNvbW1lbnQgZnJvbSBHdWVudGVyIFJvZWNrOgo+Pj4gLSB1c2UgIiNkZWZp
bmUgVE1QMTAzX0NPTkZfU0QgVE1QMTAzX0NPTkZfTTEiCj4+PiBhZGQgY29tbWVudCBmcm9tIE1h
cmsgUnV0bGFuZDoKPj4+IC0gdXNlIGZ1bGwgc3RyaW5nIGZvciBEVCBjb21wYXRpYmxlIHN0cmlu
ZyBtYXRjaGluZywgaW5zdGVhZCBvZgo+Pj4gRFJJVkVSX05BTUUuIEdldCByaWQgY29tcGxldGUg
b2YgRFJJVkVSX05BTUUgZGVmaW5lLgo+Pj4KPj4+IC4uLi9kZXZpY2V0cmVlL2JpbmRpbmdzL2ky
Yy90cml2aWFsLWRldmljZXMudHh0IHwgMSArCj4+PiBEb2N1bWVudGF0aW9uL2h3bW9uL3RtcDEw
MyB8IDI4ICsrKwo+Pj4gZHJpdmVycy9od21vbi9LY29uZmlnIHwgMTAgKwo+Pj4gZHJpdmVycy9o
d21vbi9NYWtlZmlsZSB8IDEgKwo+Pj4gZHJpdmVycy9od21vbi90bXAxMDMuYyB8IDIwNSArKysr
KysrKysrKysrKysrKysrKysKPj4+IDUgZmlsZXMgY2hhbmdlZCwgMjQ1IGluc2VydGlvbnMoKykK
Pj4+IGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2h3bW9uL3RtcDEwMwo+Pj4gY3Jl
YXRlIG1vZGUgMTAwNjQ0IGRyaXZlcnMvaHdtb24vdG1wMTAzLmMKPj4+Cj4+PiBkaWZmIC0tZ2l0
IAo+Pj4gYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL3RyaXZpYWwtZGV2
aWNlcy50eHQgCj4+PiBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvdHJp
dmlhbC1kZXZpY2VzLnR4dAo+Pj4gaW5kZXggYmVmODZlNS4uZmM5NDRlMCAxMDA2NDQKPj4+IC0t
LSBhL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvdHJpdmlhbC1kZXZpY2Vz
LnR4dAo+Pj4gKysrIGIvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy90cml2
aWFsLWRldmljZXMudHh0Cj4+PiBAQCAtODMsNSArODMsNiBAQCBzdG0sbTQxdDgwIE00MVQ4MCAt
IFNFUklBTCBBQ0NFU1MgUlRDIFdJVEggQUxBUk1TCj4+PiB0YW9zLHRzbDI1NTAgQW1iaWVudCBM
aWdodCBTZW5zb3Igd2l0aCBTTUJVUy9Ud28gV2lyZSBTZXJpYWwgSW50ZXJmYWNlCj4+PiB0aSx0
c2MyMDAzIEkyQyBUb3VjaC1TY3JlZW4gQ29udHJvbGxlcgo+Pj4gdGksdG1wMTAyIExvdyBQb3dl
ciBEaWdpdGFsIFRlbXBlcmF0dXJlIFNlbnNvciB3aXRoIFNNQlVTL1R3byBXaXJlIAo+Pj4gU2Vy
aWFsIEludGVyZmFjZQo+Pj4gK3RpLHRtcDEwMyBMb3cgUG93ZXIgRGlnaXRhbCBUZW1wZXJhdHVy
ZSBTZW5zb3Igd2l0aCBTTUJVUy9Ud28gV2lyZSAKPj4+IFNlcmlhbCBJbnRlcmZhY2UKPj4+IHRp
LHRtcDI3NSBEaWdpdGFsIFRlbXBlcmF0dXJlIFNlbnNvcgo+Pj4gd2luYm9uZCx3cGN0MzAxIGky
YyB0cnVzdGVkIHBsYXRmb3JtIG1vZHVsZSAoVFBNKQo+Pj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50
YXRpb24vaHdtb24vdG1wMTAzIGIvRG9jdW1lbnRhdGlvbi9od21vbi90bXAxMDMKPj4+IG5ldyBm
aWxlIG1vZGUgMTAwNjQ0Cj4+PiBpbmRleCAwMDAwMDAwLi5lYzAwYTE1Cj4+PiAtLS0gL2Rldi9u
dWxsCj4+PiArKysgYi9Eb2N1bWVudGF0aW9uL2h3bW9uL3RtcDEwMwo+Pj4gQEAgLTAsMCArMSwy
OCBAQAo+Pj4gK0tlcm5lbCBkcml2ZXIgdG1wMTAzCj4+PiArPT09PT09PT09PT09PT09PT09PT0K
Pj4+ICsKPj4+ICtTdXBwb3J0ZWQgY2hpcHM6Cj4+PiArICogVGV4YXMgSW5zdHJ1bWVudHMgVE1Q
MTAzCj4+PiArIFByZWZpeDogJ3RtcDEwMycKPj4+ICsgQWRkcmVzc2VzIHNjYW5uZWQ6IG5vbmUK
Pj4+ICsgUHJvZHVjdCBpbmZvIGFuZCBkYXRhc2hlZXQ6IGh0dHA6Ly93d3cudGkuY29tL3Byb2R1
Y3QvdG1wMTAzCj4+PiArCj4+PiArQXV0aG9yOgo+Pj4gKyBIZWlrbyBTY2hvY2hlciA8aHNAZGVu
eC5kZT4KPj4+ICsKPj4+ICtEZXNjcmlwdGlvbgo+Pj4gKy0tLS0tLS0tLS0tCj4+PiArCj4+PiAr
VGhlIFRNUDEwMyBpcyBhIGRpZ2l0YWwgb3V0cHV0IHRlbXBlcmF0dXJlIHNlbnNvciBpbiBhIGZv
dXItYmFsbAo+Pj4gK3dhZmVyIGNoaXAtc2NhbGUgcGFja2FnZSAoV0NTUCkuIFRoZSBUTVAxMDMg
aXMgY2FwYWJsZSBvZiByZWFkaW5nCj4+PiArdGVtcGVyYXR1cmVzIHRvIGEgcmVzb2x1dGlvbiBv
ZiAxwrBDLiBUaGUgVE1QMTAzIGlzIHNwZWNpZmllZCBmb3IKPj4+ICtvcGVyYXRpb24gb3ZlciBh
IHRlbXBlcmF0dXJlIHJhbmdlIG9mIOKAkzQwwrBDIHRvICsxMjXCsEMuCj4+PiArCj4+PiArUmVz
b2x1dGlvbjogOCBCaXRzCj4+PiArQWNjdXJhY3k6IMKxMcKwQyBUeXAgKOKAkzEwwrBDIHRvICsx
MDDCsEMpCj4+PiArCj4+PiArVGhlIGRyaXZlciBwcm92aWRlcyB0aGUgY29tbW9uIHN5c2ZzLWlu
dGVyZmFjZSBmb3IgdGVtcGVyYXR1cmVzIChzZWUKPj4+ICtEb2N1bWVudGF0aW9uL2h3bW9uL3N5
c2ZzLWludGVyZmFjZSB1bmRlciBUZW1wZXJhdHVyZXMpLgo+Pj4gKwo+Pj4gK1BsZWFzZSByZWZl
ciBob3cgdG8gaW5zdGFudGlhdGUgdGhpcyBkcml2ZXI6Cj4+PiArRG9jdW1lbnRhdGlvbi9pMmMv
aW5zdGFudGlhdGluZy1kZXZpY2VzCj4+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi9LY29u
ZmlnIGIvZHJpdmVycy9od21vbi9LY29uZmlnCj4+PiBpbmRleCAwODUzMWExLi5jODgyZDRiIDEw
MDY0NAo+Pj4gLS0tIGEvZHJpdmVycy9od21vbi9LY29uZmlnCj4+PiArKysgYi9kcml2ZXJzL2h3
bW9uL0tjb25maWcKPj4+IEBAIC0xMzkxLDYgKzEzOTEsMTYgQEAgY29uZmlnIFNFTlNPUlNfVE1Q
MTAyCj4+PiBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWlsdCBhcyBhIG1vZHVsZS4gSWYgc28s
IHRoZSBtb2R1bGUKPj4+IHdpbGwgYmUgY2FsbGVkIHRtcDEwMi4KPj4+ICtjb25maWcgU0VOU09S
U19UTVAxMDMKPj4+ICsgdHJpc3RhdGUgIlRleGFzIEluc3RydW1lbnRzIFRNUDEwMyIKPj4+ICsg
ZGVwZW5kcyBvbiBJMkMKPj4+ICsgaGVscAo+Pj4gKyBJZiB5b3Ugc2F5IHllcyBoZXJlIHlvdSBn
ZXQgc3VwcG9ydCBmb3IgVGV4YXMgSW5zdHJ1bWVudHMgVE1QMTAzCj4+PiArIHNlbnNvciBjaGlw
cy4KPj4+ICsKPj4+ICsgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUu
IElmIHNvLCB0aGUgbW9kdWxlCj4+PiArIHdpbGwgYmUgY2FsbGVkIHRtcDEwMy4KPj4+ICsKPj4+
IGNvbmZpZyBTRU5TT1JTX1RNUDQwMQo+Pj4gdHJpc3RhdGUgIlRleGFzIEluc3RydW1lbnRzIFRN
UDQwMSBhbmQgY29tcGF0aWJsZXMiCj4+PiBkZXBlbmRzIG9uIEkyQwo+Pj4gZGlmZiAtLWdpdCBh
L2RyaXZlcnMvaHdtb24vTWFrZWZpbGUgYi9kcml2ZXJzL2h3bW9uL01ha2VmaWxlCj4+PiBpbmRl
eCAzZGMwZjAyLi5jYzBkZjFlZiAxMDA2NDQKPj4+IC0tLSBhL2RyaXZlcnMvaHdtb24vTWFrZWZp
bGUKPj4+ICsrKyBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKPj4+IEBAIC0xMzUsNiArMTM1LDcg
QEAgb2JqLSQoQ09ORklHX1NFTlNPUlNfU01TQzQ3TTE5MikrPSBzbXNjNDdtMTkyLm8KPj4+IG9i
ai0kKENPTkZJR19TRU5TT1JTX0FNQzY4MjEpICs9IGFtYzY4MjEubwo+Pj4gb2JqLSQoQ09ORklH
X1NFTlNPUlNfVEhNQzUwKSArPSB0aG1jNTAubwo+Pj4gb2JqLSQoQ09ORklHX1NFTlNPUlNfVE1Q
MTAyKSArPSB0bXAxMDIubwo+Pj4gK29iai0kKENPTkZJR19TRU5TT1JTX1RNUDEwMykgKz0gdG1w
MTAzLm8KPj4+IG9iai0kKENPTkZJR19TRU5TT1JTX1RNUDQwMSkgKz0gdG1wNDAxLm8KPj4+IG9i
ai0kKENPTkZJR19TRU5TT1JTX1RNUDQyMSkgKz0gdG1wNDIxLm8KPj4+IG9iai0kKENPTkZJR19T
RU5TT1JTX1RXTDQwMzBfTUFEQykrPSB0d2w0MDMwLW1hZGMtaHdtb24ubwo+Pj4gZGlmZiAtLWdp
dCBhL2RyaXZlcnMvaHdtb24vdG1wMTAzLmMgYi9kcml2ZXJzL2h3bW9uL3RtcDEwMy5jCj4+PiBu
ZXcgZmlsZSBtb2RlIDEwMDY0NAo+Pj4gaW5kZXggMDAwMDAwMC4uZTY5ZGJjYQo+Pj4gLS0tIC9k
ZXYvbnVsbAo+Pj4gKysrIGIvZHJpdmVycy9od21vbi90bXAxMDMuYwo+Pj4gQEAgLTAsMCArMSwy
MDUgQEAKPj4+ICsvKgo+Pj4gKyAqIFRleGFzIEluc3RydW1lbnRzIFRNUDEwMyBTTUJ1cyB0ZW1w
ZXJhdHVyZSBzZW5zb3IgZHJpdmVyCj4+PiArICogQ29weXJpZ2h0IChDKSAyMDE0IEhlaWtvIFNj
aG9jaGVyIDxoc0BkZW54LmRlPgo+Pj4gKyAqCj4+PiArICogQmFzZWQgb246Cj4+PiArICogVGV4
YXMgSW5zdHJ1bWVudHMgVE1QMTAyIFNNQnVzIHRlbXBlcmF0dXJlIHNlbnNvciBkcml2ZXIKPj4+
ICsgKgo+Pj4gKyAqIENvcHlyaWdodCAoQykgMjAxMCBTdGV2ZW4gS2luZyA8c2ZraW5nQGZkd2Rj
LmNvbT4KPj4+ICsgKgo+Pj4gKyAqIFRoaXMgcHJvZ3JhbSBpcyBmcmVlIHNvZnR3YXJlOyB5b3Ug
Y2FuIHJlZGlzdHJpYnV0ZSBpdCBhbmQvb3IgCj4+PiBtb2RpZnkKPj4+ICsgKiBpdCB1bmRlciB0
aGUgdGVybXMgb2YgdGhlIEdOVSBHZW5lcmFsIFB1YmxpYyBMaWNlbnNlIGFzIAo+Pj4gcHVibGlz
aGVkIGJ5Cj4+PiArICogdGhlIEZyZWUgU29mdHdhcmUgRm91bmRhdGlvbjsgZWl0aGVyIHZlcnNp
b24gMiBvZiB0aGUgTGljZW5zZSwgb3IKPj4+ICsgKiAoYXQgeW91ciBvcHRpb24pIGFueSBsYXRl
ciB2ZXJzaW9uLgo+Pj4gKyAqCj4+PiArICogVGhpcyBwcm9ncmFtIGlzIGRpc3RyaWJ1dGVkIGlu
IHRoZSBob3BlIHRoYXQgaXQgd2lsbCBiZSB1c2VmdWwsCj4+PiArICogYnV0IFdJVEhPVVQgQU5Z
IFdBUlJBTlRZOyB3aXRob3V0IGV2ZW4gdGhlIGltcGxpZWQgd2FycmFudHkgb2YKPj4+ICsgKiBN
RVJDSEFOVEFCSUxJVFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuIFNlZSB0
aGUKPj4+ICsgKiBHTlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+
Pj4gKyAqCj4+PiArICovCj4+PiArCj4+PiArI2luY2x1ZGUgPGxpbnV4L21vZHVsZS5oPgo+Pj4g
KyNpbmNsdWRlIDxsaW51eC9pbml0Lmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPj4+
ICsjaW5jbHVkZSA8bGludXgvaTJjLmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L2h3bW9uLmg+Cj4+
PiArI2luY2x1ZGUgPGxpbnV4L2h3bW9uLXN5c2ZzLmg+Cj4+PiArI2luY2x1ZGUgPGxpbnV4L2Vy
ci5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9tdXRleC5oPgo+Pj4gKyNpbmNsdWRlIDxsaW51eC9k
ZXZpY2UuaD4KPj4+ICsjaW5jbHVkZSA8bGludXgvamlmZmllcy5oPgo+Pj4gKyNpbmNsdWRlIDxs
aW51eC9yZWdtYXAuaD4KPj4+ICsKPj4+ICsjZGVmaW5lIFRNUDEwM19URU1QX1JFRyAweDAwCj4+
PiArI2RlZmluZSBUTVAxMDNfQ09ORl9SRUcgMHgwMQo+Pj4gKyNkZWZpbmUgVE1QMTAzX1RMT1df
UkVHIDB4MDIKPj4+ICsjZGVmaW5lIFRNUDEwM19USElHSF9SRUcgMHgwMwo+Pj4gKwo+Pj4gKyNk
ZWZpbmUgVE1QMTAzX0NPTkZfTTAgMHgwMQo+Pj4gKyNkZWZpbmUgVE1QMTAzX0NPTkZfTTEgMHgw
Mgo+Pj4gKyNkZWZpbmUgVE1QMTAzX0NPTkZfTEMgMHgwNAo+Pj4gKyNkZWZpbmUgVE1QMTAzX0NP
TkZfRkwgMHgwOAo+Pj4gKyNkZWZpbmUgVE1QMTAzX0NPTkZfRkggMHgxMAo+Pj4gKyNkZWZpbmUg
VE1QMTAzX0NPTkZfQ1IwIDB4MjAKPj4+ICsjZGVmaW5lIFRNUDEwM19DT05GX0NSMSAweDQwCj4+
PiArI2RlZmluZSBUTVAxMDNfQ09ORl9JRCAweDgwCj4+PiArI2RlZmluZSBUTVAxMDNfQ09ORl9T
RCAoVE1QMTAzX0NPTkZfTTEpCj4+PiArI2RlZmluZSBUTVAxMDNfQ09ORl9TRF9NQVNLIChUTVAx
MDNfQ09ORl9NMCB8IFRNUDEwM19DT05GX00xKQo+Pj4gKwo+Pj4gKyNkZWZpbmUgVE1QMTAzX0NP
TkZJRyAoVE1QMTAzX0NPTkZfQ1IxIHwgVE1QMTAzX0NPTkZfTTEpCj4+PiArI2RlZmluZSBUTVAx
MDNfQ09ORklHX01BU0sgKFRNUDEwM19DT05GX0NSMCB8IFRNUDEwM19DT05GX0NSMSB8IFwKPj4+
ICsgVE1QMTAzX0NPTkZfTTAgfCBUTVAxMDNfQ09ORl9NMSkKPj4+ICsKPj4+ICtzdGF0aWMgaW5s
aW5lIGludCB0bXAxMDNfcmVnX3RvX21jKHM4IHZhbCkKPj4+ICt7Cj4+PiArIHJldHVybiB2YWwg
KiAxMDAwOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgaW5saW5lIHU4IHRtcDEwM19tY190b19y
ZWcoaW50IHZhbCkKPj4+ICt7Cj4+PiArIHJldHVybiBESVZfUk9VTkRfQ0xPU0VTVCh2YWwsIDEw
MDApOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgc3NpemVfdCB0bXAxMDNfc2hvd190ZW1wKHN0
cnVjdCBkZXZpY2UgKmRldiwKPj4+ICsgc3RydWN0IGRldmljZV9hdHRyaWJ1dGUgKmF0dHIsCj4+
PiArIGNoYXIgKmJ1ZikKPj4+ICt7Cj4+PiArIHN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0
ZSAqc2RhID0gdG9fc2Vuc29yX2Rldl9hdHRyKGF0dHIpOwo+Pj4gKyBzdHJ1Y3QgcmVnbWFwICpy
ZWdtYXAgPSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPj4+ICsgdW5zaWduZWQgaW50IHJlZ3ZhbDsK
Pj4+ICsgaW50IHJldDsKPj4+ICsKPj4+ICsgcmV0ID0gcmVnbWFwX3JlYWQocmVnbWFwLCBzZGEt
PmluZGV4LCAmcmVndmFsKTsKPj4+ICsgaWYgKHJldCA8IDApCj4+PiArIHJldHVybiByZXQ7Cj4+
PiArCj4+PiArIHJldHVybiBzcHJpbnRmKGJ1ZiwgIiVkXG4iLCB0bXAxMDNfcmVnX3RvX21jKHJl
Z3ZhbCkpOwo+Pj4gK30KPj4+ICsKPj4+ICtzdGF0aWMgc3NpemVfdCB0bXAxMDNfc2V0X3RlbXAo
c3RydWN0IGRldmljZSAqZGV2LAo+Pj4gKyBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0ZSAqYXR0ciwK
Pj4+ICsgY29uc3QgY2hhciAqYnVmLCBzaXplX3QgY291bnQpCj4+PiArewo+Pj4gKyBzdHJ1Y3Qg
c2Vuc29yX2RldmljZV9hdHRyaWJ1dGUgKnNkYSA9IHRvX3NlbnNvcl9kZXZfYXR0cihhdHRyKTsK
Pj4+ICsgc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+PiAr
IGxvbmcgdmFsOwo+Pj4gKyBpbnQgcmV0Owo+Pj4gKwo+Pj4gKyBpZiAoa3N0cnRvbChidWYsIDEw
LCAmdmFsKSA8IDApCj4+PiArIHJldHVybiAtRUlOVkFMOwo+Pj4gKwo+Pj4gKyB2YWwgPSBjbGFt
cF92YWwodmFsLCAtNTUwMDAsIDEyNzAwMCk7Cj4+PiArIHJldCA9IHJlZ21hcF93cml0ZShyZWdt
YXAsIHNkYS0+aW5kZXgsIHRtcDEwM19tY190b19yZWcodmFsKSk7Cj4+PiArIHJldHVybiByZXQg
PyByZXQgOiBjb3VudDsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRU
Uih0ZW1wMV9pbnB1dCwgU19JUlVHTywgdG1wMTAzX3Nob3dfdGVtcCwgCj4+PiBOVUxMICwKPj4+
ICsgVE1QMTAzX1RFTVBfUkVHKTsKPj4+ICsKPj4+ICtzdGF0aWMgU0VOU09SX0RFVklDRV9BVFRS
KHRlbXAxX21pbiwgU19JV1VTUiB8IFNfSVJVR08sIAo+Pj4gdG1wMTAzX3Nob3dfdGVtcCwKPj4+
ICsgdG1wMTAzX3NldF90ZW1wLCBUTVAxMDNfVExPV19SRUcpOwo+Pj4gKwo+Pj4gK3N0YXRpYyBT
RU5TT1JfREVWSUNFX0FUVFIodGVtcDFfbWF4LCBTX0lXVVNSIHwgU19JUlVHTywgCj4+PiB0bXAx
MDNfc2hvd190ZW1wLAo+Pj4gKyB0bXAxMDNfc2V0X3RlbXAsIFRNUDEwM19USElHSF9SRUcpOwo+
Pj4gKwo+Pj4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICp0bXAxMDNfYXR0cnNbXSA9IHsKPj4+
ICsgJnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9pbnB1dC5kZXZfYXR0ci5hdHRyLAo+Pj4gKyAmc2Vu
c29yX2Rldl9hdHRyX3RlbXAxX21pbi5kZXZfYXR0ci5hdHRyLAo+Pj4gKyAmc2Vuc29yX2Rldl9h
dHRyX3RlbXAxX21heC5kZXZfYXR0ci5hdHRyLAo+Pj4gKyBOVUxMCj4+PiArfTsKPj4+ICtBVFRS
SUJVVEVfR1JPVVBTKHRtcDEwMyk7Cj4+PiArCj4+PiArc3RhdGljIGJvb2wgdG1wMTAzX3JlZ21h
cF9pc192b2xhdGlsZShzdHJ1Y3QgZGV2aWNlICpkZXYsIHVuc2lnbmVkIAo+Pj4gaW50IHJlZykK
Pj4+ICt7Cj4+PiArIHJldHVybiByZWcgPT0gVE1QMTAzX1RFTVBfUkVHOwo+Pj4gK30KPj4+ICsK
Pj4+ICtzdGF0aWMgc3RydWN0IHJlZ21hcF9jb25maWcgdG1wMTAzX3JlZ21hcF9jb25maWcgPSB7
Cj4+PiArIC5yZWdfYml0cyA9IDgsCj4+PiArIC52YWxfYml0cyA9IDgsCj4+PiArIC5tYXhfcmVn
aXN0ZXIgPSBUTVAxMDNfVEhJR0hfUkVHLAo+Pj4gKyAudm9sYXRpbGVfcmVnID0gdG1wMTAzX3Jl
Z21hcF9pc192b2xhdGlsZSwKPj4+ICt9Owo+Pj4gKwo+Pj4gK3N0YXRpYyBpbnQgdG1wMTAzX3By
b2JlKHN0cnVjdCBpMmNfY2xpZW50ICpjbGllbnQsCj4+PiArIGNvbnN0IHN0cnVjdCBpMmNfZGV2
aWNlX2lkICppZCkKPj4+ICt7Cj4+PiArIHN0cnVjdCBkZXZpY2UgKmRldiA9ICZjbGllbnQtPmRl
djsKPj4+ICsgc3RydWN0IGRldmljZSAqaHdtb25fZGV2Owo+Pj4gKyBzdHJ1Y3QgcmVnbWFwICpy
ZWdtYXA7Cj4+PiArIGludCByZXQ7Cj4+PiArCj4+PiArIGlmICghaTJjX2NoZWNrX2Z1bmN0aW9u
YWxpdHkoY2xpZW50LT5hZGFwdGVyLAo+Pj4gKyBJMkNfRlVOQ19TTUJVU19CWVRFX0RBVEEpKSB7
Cj4+PiArIGRldl9lcnIoJmNsaWVudC0+ZGV2LAo+Pj4gKyAiYWRhcHRlciBkb2Vzbid0IHN1cHBv
cnQgU01CdXMgYnl0ZSB0cmFuc2FjdGlvbnNcbiIpOwo+Pj4gKyByZXR1cm4gLUVOT0RFVjsKPj4+
ICsgfQo+Pj4gKwo+Pj4gKyByZWdtYXAgPSBkZXZtX3JlZ21hcF9pbml0X2kyYyhjbGllbnQsICZ0
bXAxMDNfcmVnbWFwX2NvbmZpZyk7Cj4+PiArIGlmIChJU19FUlIocmVnbWFwKSkgewo+Pj4gKyBk
ZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSByZWdpc3RlciBtYXBcbiIpOwo+Pj4gKyBy
ZXR1cm4gUFRSX0VSUihyZWdtYXApOwo+Pj4gKyB9Cj4+PiArCj4+PiArIHJldCA9IHJlZ21hcF91
cGRhdGVfYml0cyhyZWdtYXAsIFRNUDEwM19DT05GX1JFRywgVE1QMTAzX0NPTkZJR19NQVNLLAo+
Pj4gKyBUTVAxMDNfQ09ORklHKTsKPj4+ICsgaWYgKHJldCA8IDApIHsKPj4+ICsgZGV2X2Vycigm
Y2xpZW50LT5kZXYsICJlcnJvciB3cml0aW5nIGNvbmZpZyByZWdpc3RlclxuIik7Cj4+PiArIHJl
dHVybiByZXQ7Cj4+PiArIH0KPj4+ICsKPj4+ICsgaHdtb25fZGV2ID0gaHdtb25fZGV2aWNlX3Jl
Z2lzdGVyX3dpdGhfZ3JvdXBzKGRldiwgY2xpZW50LT5uYW1lLAo+Pj4gKyByZWdtYXAsIHRtcDEw
M19ncm91cHMpOwo+Pj4gKyByZXR1cm4gUFRSX0VSUl9PUl9aRVJPKGh3bW9uX2Rldik7Cj4+PiAr
fQo+Pj4gKwo+Pj4gKyNpZmRlZiBDT05GSUdfUE0KPj4+ICtzdGF0aWMgaW50IHRtcDEwM19zdXNw
ZW5kKHN0cnVjdCBkZXZpY2UgKmRldikKPj4+ICt7Cj4+PiArIHN0cnVjdCByZWdtYXAgKnJlZ21h
cCA9IGRldl9nZXRfZHJ2ZGF0YShkZXYpOwo+Pj4gKwo+Pj4gKyByZXR1cm4gcmVnbWFwX3VwZGF0
ZV9iaXRzKHJlZ21hcCwgVE1QMTAzX0NPTkZfUkVHLAo+Pj4gKyBUTVAxMDNfQ09ORl9TRF9NQVNL
LCAwKTsKPj4+ICt9Cj4+PiArCj4+PiArc3RhdGljIGludCB0bXAxMDNfcmVzdW1lKHN0cnVjdCBk
ZXZpY2UgKmRldikKPj4+ICt7Cj4+PiArIHN0cnVjdCByZWdtYXAgKnJlZ21hcCA9IGRldl9nZXRf
ZHJ2ZGF0YShkZXYpOwo+Pj4gKwo+Pj4gKyByZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21h
cCwgVE1QMTAzX0NPTkZfUkVHLAo+Pj4gKyBUTVAxMDNfQ09ORl9TRF9NQVNLLCBUTVAxMDNfQ09O
Rl9TRCk7Cj4+PiArfQo+Pj4gKwo+Pj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgZGV2X3BtX29wcyB0
bXAxMDNfZGV2X3BtX29wcyA9IHsKPj4+ICsgLnN1c3BlbmQgPSB0bXAxMDNfc3VzcGVuZCwKPj4+
ICsgLnJlc3VtZSA9IHRtcDEwM19yZXN1bWUsCj4+PiArfTsKPj4+ICsKPj4+ICsjZGVmaW5lIFRN
UDEwM19ERVZfUE1fT1BTICgmdG1wMTAzX2Rldl9wbV9vcHMpCj4+PiArI2Vsc2UKPj4+ICsjZGVm
aW5lIFRNUDEwM19ERVZfUE1fT1BTIE5VTEwKPj4+ICsjZW5kaWYgLyogQ09ORklHX1BNICovCj4+
PiArCj4+PiArc3RhdGljIGNvbnN0IHN0cnVjdCBpMmNfZGV2aWNlX2lkIHRtcDEwM19pZFtdID0g
ewo+Pj4gKyB7ICJ0bXAxMDMiLCAwIH0sCj4+PiArIHsgfQo+Pj4gK307Cj4+Cj4+IEluIHRoZSBi
aW5kaW5ncyB5b3UgYXJlIGdpdmluZyB0aGUgY29tcGF0aWJsZSBwcm9wZXJ0eSBhcyA6IAo+PiB0
aSx0bXAxMDMsIGJ1dCBoZXJlIG9ubHkgdG1wMTAzLgo+Pgo+PiBJbnN0ZWFkIG9mIHVzaW5nIHRo
ZSBpMmNfZGV2aWNlX2lkIHN0cnVjdCAsIHVzZSBvZl9kZXZpY2VfaWQgc3RydWN0IAo+PiBmb3Ig
Z2l2aW5nIHRoZQo+PiBjb21wYXRpYmxlIHByb3BlcnR5IHZhbHVlLgo+PiBjb21wYXRibGUgPSAi
PG1hbnVmYWN0dXJlcj4sPG1vZGVsPiIKPgo+IFRoZXJlIGFyZSBhIGxvdCBvZiBkcml2ZXJzIGlu
IGRyaXZlcnMvaHdtb24gd2hpY2ggdXNlICJpMmNfZGV2aWNlX2lkIAo+IHN0cnVjdCIsCj4gYW5k
IGZvciB0aGVtIG9ubHkgIm1vZGVsIiBpcyBuZWNlc3NhcnkgLi4uCj4KPiBBcyB0aGlzIGlzIG5v
dCBhIHBsYXRmb3JtIGRyaXZlciwgSSBkbyBub3Qga25vdywgaWYgIm9mX2RldmljZV9pZCBzdHJ1
Y3QiCj4gaXMgcG9zc2libGUgdG8gdXNlLiBGb3IgdGhhdCwgaXQgbXVzdCBiZSBjb252ZXJ0ZWQg
dG8gYSBwbGF0Zm9ybQo+IGRldmljZSBkcml2ZXIgLi4uCj4KSSB0aG91Z2h0IHlvdXIgYXJlIHVz
aW5nIHRoZSBkZXZpY2V0cmVlIHNvdXJjZSB0byBsb2FkIHRoZSBkcml2ZXIuIEluIAp0aGF0IGNh
c2UgaXQgbmVlZCBub3QgdG8gYmUgcGxhdGZvcm0gZHJpdmVyLgp3ZSBjYW4gdXNlICJvZl9kZXZp
Y2VfaWQgc3RydWN0IiB3aGljaCBtYXRjaGVzIHRoZSBiaW5kaW5ncyBpbiB5b3VyIAp0cml2aWFs
LWRldmljZXMudHh0CgpUaGFua3MKVmFya2EgQmhhZHJhbQo+IGJ5ZSwKPiBIZWlrbwo+Pgo+Pj4g
K01PRFVMRV9ERVZJQ0VfVEFCTEUoaTJjLCB0bXAxMDNfaWQpOwo+Pj4gKytzdGF0aWMgc3RydWN0
IGkyY19kcml2ZXIgdG1wMTAzX2RyaXZlciA9IHsKPj4+ICsgLmRyaXZlciA9IHsKPj4+ICsgLm5h
bWUgPSAidG1wMTAzIiwKPj4+ICsgLnBtID0gVE1QMTAzX0RFVl9QTV9PUFMsCj4+PiArIH0sCj4+
PiArIC5wcm9iZSA9IHRtcDEwM19wcm9iZSwKPj4+ICsgLmlkX3RhYmxlID0gdG1wMTAzX2lkLAo+
Pj4gK307Cj4+PiArCj4+PiArbW9kdWxlX2kyY19kcml2ZXIodG1wMTAzX2RyaXZlcik7Cj4+PiAr
Cj4+PiArTU9EVUxFX0FVVEhPUigiSGVpa28gU2Nob2NoZXIgPGhzQGRlbnguZGU+Iik7Cj4+PiAr
TU9EVUxFX0RFU0NSSVBUSU9OKCJUZXhhcyBJbnN0cnVtZW50cyBUTVAxMDMgdGVtcGVyYXR1cmUg
c2Vuc29yIAo+Pj4gZHJpdmVyIik7Cj4+PiArTU9EVUxFX0xJQ0VOU0UoIkdQTCIpOwo+Pgo+Pgo+
Pgo+CgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX18KbG0t
c2Vuc29ycyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29yc0BsbS1zZW5zb3JzLm9yZwpodHRwOi8vbGlz
dHMubG0tc2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0aW5mby9sbS1zZW5zb3Jz
WARNING: multiple messages have this Message-ID (diff)
From: Varka Bhadram <varkabhadram@gmail.com>
To: hs@denx.de
Cc: lm-sensors@lm-sensors.org, Jean Delvare <khali@linux-fr.org>,
Guenter Roeck <linux@roeck-us.net>,
linux-kernel@vger.kernel.org, devicetree@vger.kernel.org,
linux-doc@vger.kernel.org, Mark Rutland <mark.rutland@arm.com>
Subject: Re: [PATCH v5] hwmon: Driver for TI TMP103 temperature sensor
Date: Wed, 18 Jun 2014 12:28:40 +0530 [thread overview]
Message-ID: <53A138A0.4010704@gmail.com> (raw)
In-Reply-To: <53A12ED2.4080004@denx.de>
On 06/18/2014 11:46 AM, Heiko Schocher wrote:
> Hello Varka,
>
> Am 18.06.2014 07:46, schrieb Varka Bhadram:
>> 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 <hs@denx.de>
>>>
>>> ---
>>>
>>> Cc: Jean Delvare <khali@linux-fr.org>
>>> Cc: Guenter Roeck <linux@roeck-us.net>
>>> Cc: linux-kernel@vger.kernel.org
>>> Cc: devicetree@vger.kernel.org
>>> Cc: linux-doc@vger.kernel.org
>>> Cc: Mark Rutland <mark.rutland@arm.com>
>>>
>>> - 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 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 +++++++++++++++++++++
>>> 5 files changed, 245 insertions(+)
>>> create mode 100644 Documentation/hwmon/tmp103
>>> create mode 100644 drivers/hwmon/tmp103.c
>>>
>>> diff --git
>>> a/Documentation/devicetree/bindings/i2c/trivial-devices.txt
>>> 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 ALARMS
>>> taos,tsl2550 Ambient Light Sensor with SMBUS/Two Wire Serial Interface
>>> ti,tsc2003 I2C Touch-Screen Controller
>>> ti,tmp102 Low Power Digital Temperature Sensor with SMBUS/Two Wire
>>> Serial Interface
>>> +ti,tmp103 Low Power Digital Temperature Sensor with SMBUS/Two Wire
>>> Serial Interface
>>> ti,tmp275 Digital Temperature Sensor
>>> winbond,wpct301 i2c trusted platform module (TPM)
>>> diff --git a/Documentation/hwmon/tmp103 b/Documentation/hwmon/tmp103
>>> new file mode 100644
>>> index 0000000..ec00a15
>>> --- /dev/null
>>> +++ b/Documentation/hwmon/tmp103
>>> @@ -0,0 +1,28 @@
>>> +Kernel driver tmp103
>>> +====================
>>> +
>>> +Supported chips:
>>> + * Texas Instruments TMP103
>>> + Prefix: 'tmp103'
>>> + Addresses scanned: none
>>> + Product info and datasheet: http://www.ti.com/product/tmp103
>>> +
>>> +Author:
>>> + Heiko Schocher <hs@denx.de>
>>> +
>>> +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°C. The TMP103 is specified for
>>> +operation over a temperature range of –40°C to +125°C.
>>> +
>>> +Resolution: 8 Bits
>>> +Accuracy: ±1°C Typ (–10°C to +100°C)
>>> +
>>> +The driver provides the common sysfs-interface for temperatures (see
>>> +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 module
>>> 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 TMP103
>>> + sensor chips.
>>> +
>>> + This driver can also be built as a module. If so, the module
>>> + 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)+= smsc47m192.o
>>> obj-$(CONFIG_SENSORS_AMC6821) += amc6821.o
>>> obj-$(CONFIG_SENSORS_THMC50) += thmc50.o
>>> obj-$(CONFIG_SENSORS_TMP102) += tmp102.o
>>> +obj-$(CONFIG_SENSORS_TMP103) += tmp103.o
>>> obj-$(CONFIG_SENSORS_TMP401) += tmp401.o
>>> obj-$(CONFIG_SENSORS_TMP421) += tmp421.o
>>> obj-$(CONFIG_SENSORS_TWL4030_MADC)+= 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 <hs@denx.de>
>>> + *
>>> + * Based on:
>>> + * Texas Instruments TMP102 SMBus temperature sensor driver
>>> + *
>>> + * Copyright (C) 2010 Steven King <sfking@fdwdc.com>
>>> + *
>>> + * This program is free software; you can redistribute it and/or
>>> modify
>>> + * it under the terms of the GNU General Public License as
>>> 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 <linux/module.h>
>>> +#include <linux/init.h>
>>> +#include <linux/slab.h>
>>> +#include <linux/i2c.h>
>>> +#include <linux/hwmon.h>
>>> +#include <linux/hwmon-sysfs.h>
>>> +#include <linux/err.h>
>>> +#include <linux/mutex.h>
>>> +#include <linux/device.h>
>>> +#include <linux/jiffies.h>
>>> +#include <linux/regmap.h>
>>> +
>>> +#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 = to_sensor_dev_attr(attr);
>>> + struct regmap *regmap = dev_get_drvdata(dev);
>>> + unsigned int regval;
>>> + int ret;
>>> +
>>> + ret = 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 = to_sensor_dev_attr(attr);
>>> + struct regmap *regmap = dev_get_drvdata(dev);
>>> + long val;
>>> + int ret;
>>> +
>>> + if (kstrtol(buf, 10, &val) < 0)
>>> + return -EINVAL;
>>> +
>>> + val = clamp_val(val, -55000, 127000);
>>> + ret = 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,
>>> NULL ,
>>> + TMP103_TEMP_REG);
>>> +
>>> +static SENSOR_DEVICE_ATTR(temp1_min, S_IWUSR | S_IRUGO,
>>> tmp103_show_temp,
>>> + tmp103_set_temp, TMP103_TLOW_REG);
>>> +
>>> +static SENSOR_DEVICE_ATTR(temp1_max, S_IWUSR | S_IRUGO,
>>> tmp103_show_temp,
>>> + tmp103_set_temp, TMP103_THIGH_REG);
>>> +
>>> +static struct attribute *tmp103_attrs[] = {
>>> + &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
>>> int reg)
>>> +{
>>> + return reg == TMP103_TEMP_REG;
>>> +}
>>> +
>>> +static struct regmap_config tmp103_regmap_config = {
>>> + .reg_bits = 8,
>>> + .val_bits = 8,
>>> + .max_register = TMP103_THIGH_REG,
>>> + .volatile_reg = tmp103_regmap_is_volatile,
>>> +};
>>> +
>>> +static int tmp103_probe(struct i2c_client *client,
>>> + const struct i2c_device_id *id)
>>> +{
>>> + struct device *dev = &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 = 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 = regmap_update_bits(regmap, TMP103_CONF_REG, TMP103_CONFIG_MASK,
>>> + TMP103_CONFIG);
>>> + if (ret < 0) {
>>> + dev_err(&client->dev, "error writing config register\n");
>>> + return ret;
>>> + }
>>> +
>>> + hwmon_dev = hwmon_device_register_with_groups(dev, client->name,
>>> + regmap, tmp103_groups);
>>> + return PTR_ERR_OR_ZERO(hwmon_dev);
>>> +}
>>> +
>>> +#ifdef CONFIG_PM
>>> +static int tmp103_suspend(struct device *dev)
>>> +{
>>> + struct regmap *regmap = 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 = 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 = {
>>> + .suspend = tmp103_suspend,
>>> + .resume = 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[] = {
>>> + { "tmp103", 0 },
>>> + { }
>>> +};
>>
>> In the bindings you are giving the compatible property as :
>> ti,tmp103, but here only tmp103.
>>
>> Instead of using the i2c_device_id struct , use of_device_id struct
>> for giving the
>> compatible property value.
>> compatble = "<manufacturer>,<model>"
>
> There are a lot of drivers in drivers/hwmon which use "i2c_device_id
> struct",
> and for them only "model" is necessary ...
>
> As this is not a platform driver, I do not know, if "of_device_id struct"
> is possible to use. For that, it must be converted to a platform
> device driver ...
>
I thought your are using the devicetree source to load the driver. In
that case it need not to be platform driver.
we can use "of_device_id struct" which matches the bindings in your
trivial-devices.txt
Thanks
Varka Bhadram
> bye,
> Heiko
>>
>>> +MODULE_DEVICE_TABLE(i2c, tmp103_id);
>>> ++static struct i2c_driver tmp103_driver = {
>>> + .driver = {
>>> + .name = "tmp103",
>>> + .pm = TMP103_DEV_PM_OPS,
>>> + },
>>> + .probe = tmp103_probe,
>>> + .id_table = tmp103_id,
>>> +};
>>> +
>>> +module_i2c_driver(tmp103_driver);
>>> +
>>> +MODULE_AUTHOR("Heiko Schocher <hs@denx.de>");
>>> +MODULE_DESCRIPTION("Texas Instruments TMP103 temperature sensor
>>> driver");
>>> +MODULE_LICENSE("GPL");
>>
>>
>>
>
next prev parent reply other threads:[~2014-06-18 7:10 UTC|newest]
Thread overview: 21+ messages / expand[flat|nested] mbox.gz Atom feed top
2014-06-18 5:37 [lm-sensors] [PATCH v5] hwmon: Driver for TI TMP103 temperature sensor Heiko Schocher
2014-06-18 5:37 ` Heiko Schocher
2014-06-18 5:46 ` Varka Bhadram
2014-06-18 5:58 ` [lm-sensors] " Varka Bhadram
2014-06-18 6:12 ` Guenter Roeck
2014-06-18 6:12 ` Guenter Roeck
2014-06-18 6:18 ` Varka Bhadram
2014-06-18 6:30 ` [lm-sensors] " Varka Bhadram
2014-06-18 6:41 ` Guenter Roeck
2014-06-18 6:41 ` Guenter Roeck
2014-06-18 6:16 ` [lm-sensors] " Heiko Schocher
2014-06-18 6:16 ` Heiko Schocher
2014-06-18 6:58 ` Varka Bhadram [this message]
2014-06-18 7:10 ` [lm-sensors] " Varka Bhadram
2014-06-18 13:02 ` Guenter Roeck
2014-06-18 13:02 ` Guenter Roeck
2014-06-18 7:07 ` Varka Bhadram
2014-06-18 7:19 ` [lm-sensors] " Varka Bhadram
2014-06-18 6:15 ` Guenter Roeck
2014-06-18 6:15 ` Guenter Roeck
2014-06-18 6:15 ` Guenter Roeck
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=53A138A0.4010704@gmail.com \
--to=varkabhadram@gmail.com \
--cc=devicetree@vger.kernel.org \
--cc=hs@denx.de \
--cc=khali@linux-fr.org \
--cc=linux-doc@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux@roeck-us.net \
--cc=lm-sensors@lm-sensors.org \
--cc=mark.rutland@arm.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.