From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guenter Roeck Date: Wed, 18 Jun 2014 06:12:11 +0000 Subject: Re: [lm-sensors] [PATCH v5] hwmon: Driver for TI TMP103 temperature sensor Message-Id: <53A12DBB.50704@roeck-us.net> List-Id: References: <1403069837-15651-1-git-send-email-hs@denx.de> <53A127BB.7090802@gmail.com> In-Reply-To: <53A127BB.7090802@gmail.com> MIME-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit To: Varka Bhadram , 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 T24gMDYvMTcvMjAxNCAxMDo0NiBQTSwgVmFya2EgQmhhZHJhbSB3cm90ZToKPiBIaSwKPgo+IE9u IDA2LzE4LzIwMTQgMTE6MDcgQU0sIEhlaWtvIFNjaG9jaGVyIHdyb3RlOgo+PiBEcml2ZXIgZm9y IHRoZSBUSSBUTVAxMDMuCj4+Cj4+IFRoZSBUSSBUTVAxMDMgaXMgc2ltaWxhciB0byB0aGUgVE1Q MTAyLiAgSXQgZGlmZmVycyBmcm9tIHRoZSBUTVAxMDIKPj4gYnkgaGF2aW5nIG9ubHkgOCBiaXQg cmVnaXN0ZXJzLgo+Pgo+PiBTaWduZWQtb2ZmLWJ5OiBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5k ZT4KPj4KPj4gLS0tCj4+Cj4+IENjOiBKZWFuIERlbHZhcmUgPGtoYWxpQGxpbnV4LWZyLm9yZz4K Pj4gQ2M6IEd1ZW50ZXIgUm9lY2sgPGxpbnV4QHJvZWNrLXVzLm5ldD4KPj4gQ2M6IGxpbnV4LWtl cm5lbEB2Z2VyLmtlcm5lbC5vcmcKPj4gQ2M6IGRldmljZXRyZWVAdmdlci5rZXJuZWwub3JnCj4+ IENjOiBsaW51eC1kb2NAdmdlci5rZXJuZWwub3JnCj4+IENjOiBNYXJrIFJ1dGxhbmQgPG1hcmsu cnV0bGFuZEBhcm0uY29tPgo+Pgo+PiAtIGNoYW5nZSBmb3IgdjI6Cj4+ICAgIC0gYWRkIGNvbW1l bnRzIGZyb20gR3VlbnRlclJvZWNrOgo+PiAgICAgIC0gcmVtb3ZlIENjIGZyb20gY29tbWl0IHN1 YmplY3QKPj4gICAgICAtIGFkZCBkZXZpY2V0cmVlIG1haW50YWluZXIKPj4gICAgICAtIG1vdmUg RG9jdW1lbnRhdGlvbiB0byBEb2N1bWVudGF0aW9uL2h3bW9uL3RtcDEwMwo+PiAgICAgIC0gcmVt b3ZlIGRldmljZXRyZWUgYmluZGluZ3MgZnJvbSBEb2N1bWVudGF0aW9uCj4+ICAgICAgLSBhZGQg Y29tcGF0aWJsZSBzdHJpbmcgdG8KPj4gICAgICAgICJEb2N1bWVudGF0aW9uL2RldmljZXRyZWUv YmluZGluZ3MvaTJjL3RyaXZpYWwtZGV2aWNlcy50eHQiCj4+ICAgICAgLSByZW1vdmUgQ2FtZWxD YXNlCj4+ICAgICAgLSBmaXggQ29kaW5nc3R5bGUgaXNzdWVzCj4+ICAgICAgLSB1c2UgQVRUUklC VVRFX0dST1VQUyBhbmQgZGV2bV9od21vbl9kZXZpY2VfcmVnaXN0ZXJfd2l0aF9ncm91cHMoKQo+ PiAgICAgIC0gcmVtb3ZlIHVuc3VzZWQgZGVmaW5lIFRNUDEwM19DT05GSUdfUkRfT05MWQo+PiAg ICAgIC0gcmVzdG9yZSBjb25maWcgcmVnaXN0ZXIgd2hlbiBleGl0KCkKPj4gICAgICAtIHVzZSBy ZWdtYXAKPj4gLSBjaGFuZ2VzIGZvciB2MzoKPj4gICAgYWdhaW4gYSBsb3Qgb2YgZmFudGFzdGlj IHRpcHMgaG93IHRvIHVzZSByZWdtYXAgZWZmaWNpZW50bHkKPj4gICAgZnJvbSBHdWVudGVyIFJv ZWNrOgo+PiAgICAtIGdldCByaWQgb2YgInN0cnVjdCB0bXAxMDMiCj4+ICAgIC0gZ2V0IHJpZCBv ZiAic3RhdGljIGNvbnN0IHU4IHRtcDEwM19yZWdbXSIKPj4gICAgLSBnZXQgcmlkIG9mIG11dGV4 IGxvY2sKPj4gICAgLSBkcm9wIGNvbmZpZ19vcmlnIGVudGlyZWx5Cj4+ICAgIC0gdXNlIHJlZ21h cF91cGRhdGVfYml0cygpCj4+IC0gY2hhbmdlcyBmb3IgdjQ6Cj4+ICAgIC0gYWRkIGNvbW1lbnQg ZnJvbSBHdWVudGVyIFJvZWNrOgo+PiAgICAgIGRlZmluZSBUTVAxMDNfQ09ORklHX01BU0sgYW5k IFRNUDEwM19DT05GX1NEX01BU0sKPj4gICAgICBzZXBhcmF0ZWx5IHRvIGVuc3VyZSB5b3UgY2F0 Y2ggYWxsIHRoZSB0by1iZS1jbGVhcmVkIGJpdHMuCj4+IC0gY2hhbmdlcyBmb3IgdjU6Cj4+ICAg IGFkZCBjb21tZW50IGZyb20gR3VlbnRlciBSb2VjazoKPj4gICAgLSB1c2UgIiNkZWZpbmUgVE1Q MTAzX0NPTkZfU0QgVE1QMTAzX0NPTkZfTTEiCj4+ICAgIGFkZCBjb21tZW50IGZyb20gTWFyayBS dXRsYW5kOgo+PiAgICAtIHVzZSBmdWxsIHN0cmluZyBmb3IgRFQgY29tcGF0aWJsZSBzdHJpbmcg bWF0Y2hpbmcsIGluc3RlYWQgb2YKPj4gICAgICBEUklWRVJfTkFNRS4gR2V0IHJpZCBjb21wbGV0 ZSBvZiBEUklWRVJfTkFNRSBkZWZpbmUuCj4+Cj4+ICAgLi4uL2RldmljZXRyZWUvYmluZGluZ3Mv aTJjL3RyaXZpYWwtZGV2aWNlcy50eHQgICAgfCAgIDEgKwo+PiAgIERvY3VtZW50YXRpb24vaHdt b24vdG1wMTAzICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDI4ICsrKwo+PiAgIGRyaXZlcnMv aHdtb24vS2NvbmZpZyAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHwgIDEwICsKPj4gICBk cml2ZXJzL2h3bW9uL01ha2VmaWxlICAgICAgICAgICAgICAgICAgICAgICAgICAgICB8ICAgMSAr Cj4+ICAgZHJpdmVycy9od21vbi90bXAxMDMuYyAgICAgICAgICAgICAgICAgICAgICAgICAgICAg fCAyMDUgKysrKysrKysrKysrKysrKysrKysrCj4+ICAgNSBmaWxlcyBjaGFuZ2VkLCAyNDUgaW5z ZXJ0aW9ucygrKQo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBEb2N1bWVudGF0aW9uL2h3bW9uL3Rt cDEwMwo+PiAgIGNyZWF0ZSBtb2RlIDEwMDY0NCBkcml2ZXJzL2h3bW9uL3RtcDEwMy5jCj4+Cj4+ IGRpZmYgLS1naXQgYS9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL3RyaXZp YWwtZGV2aWNlcy50eHQgYi9Eb2N1bWVudGF0aW9uL2RldmljZXRyZWUvYmluZGluZ3MvaTJjL3Ry aXZpYWwtZGV2aWNlcy50eHQKPj4gaW5kZXggYmVmODZlNS4uZmM5NDRlMCAxMDA2NDQKPj4gLS0t IGEvRG9jdW1lbnRhdGlvbi9kZXZpY2V0cmVlL2JpbmRpbmdzL2kyYy90cml2aWFsLWRldmljZXMu dHh0Cj4+ICsrKyBiL0RvY3VtZW50YXRpb24vZGV2aWNldHJlZS9iaW5kaW5ncy9pMmMvdHJpdmlh bC1kZXZpY2VzLnR4dAo+PiBAQCAtODMsNSArODMsNiBAQCBzdG0sbTQxdDgwICAgICAgICBNNDFU ODAgLSBTRVJJQUwgQUNDRVNTIFJUQyBXSVRIIEFMQVJNUwo+PiAgIHRhb3MsdHNsMjU1MCAgICAg ICAgQW1iaWVudCBMaWdodCBTZW5zb3Igd2l0aCBTTUJVUy9Ud28gV2lyZSBTZXJpYWwgSW50ZXJm YWNlCj4+ICAgdGksdHNjMjAwMyAgICAgICAgSTJDIFRvdWNoLVNjcmVlbiBDb250cm9sbGVyCj4+ ICAgdGksdG1wMTAyICAgICAgICBMb3cgUG93ZXIgRGlnaXRhbCBUZW1wZXJhdHVyZSBTZW5zb3Ig d2l0aCBTTUJVUy9Ud28gV2lyZSBTZXJpYWwgSW50ZXJmYWNlCj4+ICt0aSx0bXAxMDMgICAgICAg IExvdyBQb3dlciBEaWdpdGFsIFRlbXBlcmF0dXJlIFNlbnNvciB3aXRoIFNNQlVTL1R3byBXaXJl IFNlcmlhbCBJbnRlcmZhY2UKPj4gICB0aSx0bXAyNzUgICAgICAgIERpZ2l0YWwgVGVtcGVyYXR1 cmUgU2Vuc29yCj4+ICAgd2luYm9uZCx3cGN0MzAxICAgICAgICBpMmMgdHJ1c3RlZCBwbGF0Zm9y bSBtb2R1bGUgKFRQTSkKPj4gZGlmZiAtLWdpdCBhL0RvY3VtZW50YXRpb24vaHdtb24vdG1wMTAz IGIvRG9jdW1lbnRhdGlvbi9od21vbi90bXAxMDMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4g aW5kZXggMDAwMDAwMC4uZWMwMGExNQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL0RvY3VtZW50 YXRpb24vaHdtb24vdG1wMTAzCj4+IEBAIC0wLDAgKzEsMjggQEAKPj4gK0tlcm5lbCBkcml2ZXIg dG1wMTAzCj4+ICs9PT09PT09PT09PT09PT09PT09PQo+PiArCj4+ICtTdXBwb3J0ZWQgY2hpcHM6 Cj4+ICsgICogVGV4YXMgSW5zdHJ1bWVudHMgVE1QMTAzCj4+ICsgICAgUHJlZml4OiAndG1wMTAz Jwo+PiArICAgIEFkZHJlc3NlcyBzY2FubmVkOiBub25lCj4+ICsgICAgUHJvZHVjdCBpbmZvIGFu ZCBkYXRhc2hlZXQ6IGh0dHA6Ly93d3cudGkuY29tL3Byb2R1Y3QvdG1wMTAzCj4+ICsKPj4gK0F1 dGhvcjoKPj4gKyAgICBIZWlrbyBTY2hvY2hlciA8aHNAZGVueC5kZT4KPj4gKwo+PiArRGVzY3Jp cHRpb24KPj4gKy0tLS0tLS0tLS0tCj4+ICsKPj4gK1RoZSBUTVAxMDMgaXMgYSBkaWdpdGFsIG91 dHB1dCB0ZW1wZXJhdHVyZSBzZW5zb3IgaW4gYSBmb3VyLWJhbGwKPj4gK3dhZmVyIGNoaXAtc2Nh bGUgcGFja2FnZSAoV0NTUCkuIFRoZSBUTVAxMDMgaXMgY2FwYWJsZSBvZiByZWFkaW5nCj4+ICt0 ZW1wZXJhdHVyZXMgdG8gYSByZXNvbHV0aW9uIG9mIDHCsEMuIFRoZSBUTVAxMDMgaXMgc3BlY2lm aWVkIGZvcgo+PiArb3BlcmF0aW9uIG92ZXIgYSB0ZW1wZXJhdHVyZSByYW5nZSBvZiDigJM0MMKw QyB0byArMTI1wrBDLgo+PiArCj4+ICtSZXNvbHV0aW9uOiA4IEJpdHMKPj4gK0FjY3VyYWN5OiDC sTHCsEMgVHlwICjigJMxMMKwQyB0byArMTAwwrBDKQo+PiArCj4+ICtUaGUgZHJpdmVyIHByb3Zp ZGVzIHRoZSBjb21tb24gc3lzZnMtaW50ZXJmYWNlIGZvciB0ZW1wZXJhdHVyZXMgKHNlZQo+PiAr RG9jdW1lbnRhdGlvbi9od21vbi9zeXNmcy1pbnRlcmZhY2UgdW5kZXIgVGVtcGVyYXR1cmVzKS4K Pj4gKwo+PiArUGxlYXNlIHJlZmVyIGhvdyB0byBpbnN0YW50aWF0ZSB0aGlzIGRyaXZlcjoKPj4g K0RvY3VtZW50YXRpb24vaTJjL2luc3RhbnRpYXRpbmctZGV2aWNlcwo+PiBkaWZmIC0tZ2l0IGEv ZHJpdmVycy9od21vbi9LY29uZmlnIGIvZHJpdmVycy9od21vbi9LY29uZmlnCj4+IGluZGV4IDA4 NTMxYTEuLmM4ODJkNGIgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvaHdtb24vS2NvbmZpZwo+PiAr KysgYi9kcml2ZXJzL2h3bW9uL0tjb25maWcKPj4gQEAgLTEzOTEsNiArMTM5MSwxNiBAQCBjb25m aWcgU0VOU09SU19UTVAxMDIKPj4gICAgICAgICBUaGlzIGRyaXZlciBjYW4gYWxzbyBiZSBidWls dCBhcyBhIG1vZHVsZS4gIElmIHNvLCB0aGUgbW9kdWxlCj4+ICAgICAgICAgd2lsbCBiZSBjYWxs ZWQgdG1wMTAyLgo+PiArY29uZmlnIFNFTlNPUlNfVE1QMTAzCj4+ICsgICAgdHJpc3RhdGUgIlRl eGFzIEluc3RydW1lbnRzIFRNUDEwMyIKPj4gKyAgICBkZXBlbmRzIG9uIEkyQwo+PiArICAgIGhl bHAKPj4gKyAgICAgIElmIHlvdSBzYXkgeWVzIGhlcmUgeW91IGdldCBzdXBwb3J0IGZvciBUZXhh cyBJbnN0cnVtZW50cyBUTVAxMDMKPj4gKyAgICAgIHNlbnNvciBjaGlwcy4KPj4gKwo+PiArICAg ICAgVGhpcyBkcml2ZXIgY2FuIGFsc28gYmUgYnVpbHQgYXMgYSBtb2R1bGUuICBJZiBzbywgdGhl IG1vZHVsZQo+PiArICAgICAgd2lsbCBiZSBjYWxsZWQgdG1wMTAzLgo+PiArCj4+ICAgY29uZmln IFNFTlNPUlNfVE1QNDAxCj4+ICAgICAgIHRyaXN0YXRlICJUZXhhcyBJbnN0cnVtZW50cyBUTVA0 MDEgYW5kIGNvbXBhdGlibGVzIgo+PiAgICAgICBkZXBlbmRzIG9uIEkyQwo+PiBkaWZmIC0tZ2l0 IGEvZHJpdmVycy9od21vbi9NYWtlZmlsZSBiL2RyaXZlcnMvaHdtb24vTWFrZWZpbGUKPj4gaW5k ZXggM2RjMGYwMi4uY2MwZGYxZWYgMTAwNjQ0Cj4+IC0tLSBhL2RyaXZlcnMvaHdtb24vTWFrZWZp bGUKPj4gKysrIGIvZHJpdmVycy9od21vbi9NYWtlZmlsZQo+PiBAQCAtMTM1LDYgKzEzNSw3IEBA IG9iai0kKENPTkZJR19TRU5TT1JTX1NNU0M0N00xOTIpKz0gc21zYzQ3bTE5Mi5vCj4+ICAgb2Jq LSQoQ09ORklHX1NFTlNPUlNfQU1DNjgyMSkgICAgKz0gYW1jNjgyMS5vCj4+ICAgb2JqLSQoQ09O RklHX1NFTlNPUlNfVEhNQzUwKSAgICArPSB0aG1jNTAubwo+PiAgIG9iai0kKENPTkZJR19TRU5T T1JTX1RNUDEwMikgICAgKz0gdG1wMTAyLm8KPj4gK29iai0kKENPTkZJR19TRU5TT1JTX1RNUDEw MykgICAgKz0gdG1wMTAzLm8KPj4gICBvYmotJChDT05GSUdfU0VOU09SU19UTVA0MDEpICAgICs9 IHRtcDQwMS5vCj4+ICAgb2JqLSQoQ09ORklHX1NFTlNPUlNfVE1QNDIxKSAgICArPSB0bXA0MjEu bwo+PiAgIG9iai0kKENPTkZJR19TRU5TT1JTX1RXTDQwMzBfTUFEQykrPSB0d2w0MDMwLW1hZGMt aHdtb24ubwo+PiBkaWZmIC0tZ2l0IGEvZHJpdmVycy9od21vbi90bXAxMDMuYyBiL2RyaXZlcnMv aHdtb24vdG1wMTAzLmMKPj4gbmV3IGZpbGUgbW9kZSAxMDA2NDQKPj4gaW5kZXggMDAwMDAwMC4u ZTY5ZGJjYQo+PiAtLS0gL2Rldi9udWxsCj4+ICsrKyBiL2RyaXZlcnMvaHdtb24vdG1wMTAzLmMK Pj4gQEAgLTAsMCArMSwyMDUgQEAKPj4gKy8qCj4+ICsgKiBUZXhhcyBJbnN0cnVtZW50cyBUTVAx MDMgU01CdXMgdGVtcGVyYXR1cmUgc2Vuc29yIGRyaXZlcgo+PiArICogQ29weXJpZ2h0IChDKSAy MDE0IEhlaWtvIFNjaG9jaGVyIDxoc0BkZW54LmRlPgo+PiArICoKPj4gKyAqIEJhc2VkIG9uOgo+ PiArICogVGV4YXMgSW5zdHJ1bWVudHMgVE1QMTAyIFNNQnVzIHRlbXBlcmF0dXJlIHNlbnNvciBk cml2ZXIKPj4gKyAqCj4+ICsgKiBDb3B5cmlnaHQgKEMpIDIwMTAgU3RldmVuIEtpbmcgPHNma2lu Z0BmZHdkYy5jb20+Cj4+ICsgKgo+PiArICogVGhpcyBwcm9ncmFtIGlzIGZyZWUgc29mdHdhcmU7 IHlvdSBjYW4gcmVkaXN0cmlidXRlIGl0IGFuZC9vciBtb2RpZnkKPj4gKyAqIGl0IHVuZGVyIHRo ZSB0ZXJtcyBvZiB0aGUgR05VIEdlbmVyYWwgUHVibGljIExpY2Vuc2UgYXMgcHVibGlzaGVkIGJ5 Cj4+ICsgKiB0aGUgRnJlZSBTb2Z0d2FyZSBGb3VuZGF0aW9uOyBlaXRoZXIgdmVyc2lvbiAyIG9m IHRoZSBMaWNlbnNlLCBvcgo+PiArICogKGF0IHlvdXIgb3B0aW9uKSBhbnkgbGF0ZXIgdmVyc2lv bi4KPj4gKyAqCj4+ICsgKiBUaGlzIHByb2dyYW0gaXMgZGlzdHJpYnV0ZWQgaW4gdGhlIGhvcGUg dGhhdCBpdCB3aWxsIGJlIHVzZWZ1bCwKPj4gKyAqIGJ1dCBXSVRIT1VUIEFOWSBXQVJSQU5UWTsg d2l0aG91dCBldmVuIHRoZSBpbXBsaWVkIHdhcnJhbnR5IG9mCj4+ICsgKiBNRVJDSEFOVEFCSUxJ VFkgb3IgRklUTkVTUyBGT1IgQSBQQVJUSUNVTEFSIFBVUlBPU0UuICBTZWUgdGhlCj4+ICsgKiBH TlUgR2VuZXJhbCBQdWJsaWMgTGljZW5zZSBmb3IgbW9yZSBkZXRhaWxzLgo+PiArICoKPj4gKyAq Lwo+PiArCj4+ICsjaW5jbHVkZSA8bGludXgvbW9kdWxlLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgv aW5pdC5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L3NsYWIuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9p MmMuaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9od21vbi5oPgo+PiArI2luY2x1ZGUgPGxpbnV4L2h3 bW9uLXN5c2ZzLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvZXJyLmg+Cj4+ICsjaW5jbHVkZSA8bGlu dXgvbXV0ZXguaD4KPj4gKyNpbmNsdWRlIDxsaW51eC9kZXZpY2UuaD4KPj4gKyNpbmNsdWRlIDxs aW51eC9qaWZmaWVzLmg+Cj4+ICsjaW5jbHVkZSA8bGludXgvcmVnbWFwLmg+Cj4+ICsKPj4gKyNk ZWZpbmUgVE1QMTAzX1RFTVBfUkVHICAgICAgICAweDAwCj4+ICsjZGVmaW5lIFRNUDEwM19DT05G X1JFRyAgICAgICAgMHgwMQo+PiArI2RlZmluZSBUTVAxMDNfVExPV19SRUcgICAgICAgIDB4MDIK Pj4gKyNkZWZpbmUgVE1QMTAzX1RISUdIX1JFRyAgICAweDAzCj4+ICsKPj4gKyNkZWZpbmUgVE1Q MTAzX0NPTkZfTTAgICAgICAgIDB4MDEKPj4gKyNkZWZpbmUgVE1QMTAzX0NPTkZfTTEgICAgICAg IDB4MDIKPj4gKyNkZWZpbmUgVE1QMTAzX0NPTkZfTEMgICAgICAgIDB4MDQKPj4gKyNkZWZpbmUg VE1QMTAzX0NPTkZfRkwgICAgICAgIDB4MDgKPj4gKyNkZWZpbmUgVE1QMTAzX0NPTkZfRkggICAg ICAgIDB4MTAKPj4gKyNkZWZpbmUgVE1QMTAzX0NPTkZfQ1IwICAgICAgICAweDIwCj4+ICsjZGVm aW5lIFRNUDEwM19DT05GX0NSMSAgICAgICAgMHg0MAo+PiArI2RlZmluZSBUTVAxMDNfQ09ORl9J RCAgICAgICAgMHg4MAo+PiArI2RlZmluZSBUTVAxMDNfQ09ORl9TRCAgICAgICAgKFRNUDEwM19D T05GX00xKQo+PiArI2RlZmluZSBUTVAxMDNfQ09ORl9TRF9NQVNLICAgIChUTVAxMDNfQ09ORl9N MCB8IFRNUDEwM19DT05GX00xKQo+PiArCj4+ICsjZGVmaW5lIFRNUDEwM19DT05GSUcgICAgICAg IChUTVAxMDNfQ09ORl9DUjEgfCBUTVAxMDNfQ09ORl9NMSkKPj4gKyNkZWZpbmUgVE1QMTAzX0NP TkZJR19NQVNLICAgIChUTVAxMDNfQ09ORl9DUjAgfCBUTVAxMDNfQ09ORl9DUjEgfCBcCj4+ICsg ICAgICAgICAgICAgICAgIFRNUDEwM19DT05GX00wIHwgVE1QMTAzX0NPTkZfTTEpCj4+ICsKPj4g K3N0YXRpYyBpbmxpbmUgaW50IHRtcDEwM19yZWdfdG9fbWMoczggdmFsKQo+PiArewo+PiArICAg IHJldHVybiB2YWwgKiAxMDAwOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgaW5saW5lIHU4IHRtcDEw M19tY190b19yZWcoaW50IHZhbCkKPj4gK3sKPj4gKyAgICByZXR1cm4gRElWX1JPVU5EX0NMT1NF U1QodmFsLCAxMDAwKTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHNzaXplX3QgdG1wMTAzX3Nob3df dGVtcChzdHJ1Y3QgZGV2aWNlICpkZXYsCj4+ICsgICAgICAgICAgICAgICAgc3RydWN0IGRldmlj ZV9hdHRyaWJ1dGUgKmF0dHIsCj4+ICsgICAgICAgICAgICAgICAgY2hhciAqYnVmKQo+PiArewo+ PiArICAgIHN0cnVjdCBzZW5zb3JfZGV2aWNlX2F0dHJpYnV0ZSAqc2RhID0gdG9fc2Vuc29yX2Rl dl9hdHRyKGF0dHIpOwo+PiArICAgIHN0cnVjdCByZWdtYXAgKnJlZ21hcCA9IGRldl9nZXRfZHJ2 ZGF0YShkZXYpOwo+PiArICAgIHVuc2lnbmVkIGludCByZWd2YWw7Cj4+ICsgICAgaW50IHJldDsK Pj4gKwo+PiArICAgIHJldCA9IHJlZ21hcF9yZWFkKHJlZ21hcCwgc2RhLT5pbmRleCwgJnJlZ3Zh bCk7Cj4+ICsgICAgaWYgKHJldCA8IDApCj4+ICsgICAgICAgIHJldHVybiByZXQ7Cj4+ICsKPj4g KyAgICByZXR1cm4gc3ByaW50ZihidWYsICIlZFxuIiwgdG1wMTAzX3JlZ190b19tYyhyZWd2YWwp KTsKPj4gK30KPj4gKwo+PiArc3RhdGljIHNzaXplX3QgdG1wMTAzX3NldF90ZW1wKHN0cnVjdCBk ZXZpY2UgKmRldiwKPj4gKyAgICAgICAgICAgICAgICAgICBzdHJ1Y3QgZGV2aWNlX2F0dHJpYnV0 ZSAqYXR0ciwKPj4gKyAgICAgICAgICAgICAgICAgICBjb25zdCBjaGFyICpidWYsIHNpemVfdCBj b3VudCkKPj4gK3sKPj4gKyAgICBzdHJ1Y3Qgc2Vuc29yX2RldmljZV9hdHRyaWJ1dGUgKnNkYSA9 IHRvX3NlbnNvcl9kZXZfYXR0cihhdHRyKTsKPj4gKyAgICBzdHJ1Y3QgcmVnbWFwICpyZWdtYXAg PSBkZXZfZ2V0X2RydmRhdGEoZGV2KTsKPj4gKyAgICBsb25nIHZhbDsKPj4gKyAgICBpbnQgcmV0 Owo+PiArCj4+ICsgICAgaWYgKGtzdHJ0b2woYnVmLCAxMCwgJnZhbCkgPCAwKQo+PiArICAgICAg ICByZXR1cm4gLUVJTlZBTDsKPj4gKwo+PiArICAgIHZhbCA9IGNsYW1wX3ZhbCh2YWwsIC01NTAw MCwgMTI3MDAwKTsKPj4gKyAgICByZXQgPSByZWdtYXBfd3JpdGUocmVnbWFwLCBzZGEtPmluZGV4 LCB0bXAxMDNfbWNfdG9fcmVnKHZhbCkpOwo+PiArICAgIHJldHVybiByZXQgPyByZXQgOiBjb3Vu dDsKPj4gK30KPj4gKwo+PiArc3RhdGljIFNFTlNPUl9ERVZJQ0VfQVRUUih0ZW1wMV9pbnB1dCwg U19JUlVHTywgdG1wMTAzX3Nob3dfdGVtcCwgTlVMTCAsCj4+ICsgICAgICAgICAgICAgIFRNUDEw M19URU1QX1JFRyk7Cj4+ICsKPj4gK3N0YXRpYyBTRU5TT1JfREVWSUNFX0FUVFIodGVtcDFfbWlu LCBTX0lXVVNSIHwgU19JUlVHTywgdG1wMTAzX3Nob3dfdGVtcCwKPj4gKyAgICAgICAgICAgICAg dG1wMTAzX3NldF90ZW1wLCBUTVAxMDNfVExPV19SRUcpOwo+PiArCj4+ICtzdGF0aWMgU0VOU09S X0RFVklDRV9BVFRSKHRlbXAxX21heCwgU19JV1VTUiB8IFNfSVJVR08sIHRtcDEwM19zaG93X3Rl bXAsCj4+ICsgICAgICAgICAgICAgIHRtcDEwM19zZXRfdGVtcCwgVE1QMTAzX1RISUdIX1JFRyk7 Cj4+ICsKPj4gK3N0YXRpYyBzdHJ1Y3QgYXR0cmlidXRlICp0bXAxMDNfYXR0cnNbXSA9IHsKPj4g KyAgICAmc2Vuc29yX2Rldl9hdHRyX3RlbXAxX2lucHV0LmRldl9hdHRyLmF0dHIsCj4+ICsgICAg JnNlbnNvcl9kZXZfYXR0cl90ZW1wMV9taW4uZGV2X2F0dHIuYXR0ciwKPj4gKyAgICAmc2Vuc29y X2Rldl9hdHRyX3RlbXAxX21heC5kZXZfYXR0ci5hdHRyLAo+PiArICAgIE5VTEwKPj4gK307Cj4+ ICtBVFRSSUJVVEVfR1JPVVBTKHRtcDEwMyk7Cj4+ICsKPj4gK3N0YXRpYyBib29sIHRtcDEwM19y ZWdtYXBfaXNfdm9sYXRpbGUoc3RydWN0IGRldmljZSAqZGV2LCB1bnNpZ25lZCBpbnQgcmVnKQo+ PiArewo+PiArICAgIHJldHVybiByZWcgPT0gVE1QMTAzX1RFTVBfUkVHOwo+PiArfQo+PiArCj4+ ICtzdGF0aWMgc3RydWN0IHJlZ21hcF9jb25maWcgdG1wMTAzX3JlZ21hcF9jb25maWcgPSB7Cj4+ ICsgICAgLnJlZ19iaXRzID0gOCwKPj4gKyAgICAudmFsX2JpdHMgPSA4LAo+PiArICAgIC5tYXhf cmVnaXN0ZXIgPSBUTVAxMDNfVEhJR0hfUkVHLAo+PiArICAgIC52b2xhdGlsZV9yZWcgPSB0bXAx MDNfcmVnbWFwX2lzX3ZvbGF0aWxlLAo+PiArfTsKPj4gKwo+PiArc3RhdGljIGludCB0bXAxMDNf cHJvYmUoc3RydWN0IGkyY19jbGllbnQgKmNsaWVudCwKPj4gKyAgICAgICAgICAgIGNvbnN0IHN0 cnVjdCBpMmNfZGV2aWNlX2lkICppZCkKPj4gK3sKPj4gKyAgICBzdHJ1Y3QgZGV2aWNlICpkZXYg PSAmY2xpZW50LT5kZXY7Cj4+ICsgICAgc3RydWN0IGRldmljZSAqaHdtb25fZGV2Owo+PiArICAg IHN0cnVjdCByZWdtYXAgKnJlZ21hcDsKPj4gKyAgICBpbnQgcmV0Owo+PiArCj4+ICsgICAgaWYg KCFpMmNfY2hlY2tfZnVuY3Rpb25hbGl0eShjbGllbnQtPmFkYXB0ZXIsCj4+ICsgICAgICAgICAg ICAgICAgICAgICBJMkNfRlVOQ19TTUJVU19CWVRFX0RBVEEpKSB7Cj4+ICsgICAgICAgIGRldl9l cnIoJmNsaWVudC0+ZGV2LAo+PiArICAgICAgICAgICAgImFkYXB0ZXIgZG9lc24ndCBzdXBwb3J0 IFNNQnVzIGJ5dGUgdHJhbnNhY3Rpb25zXG4iKTsKPj4gKyAgICAgICAgcmV0dXJuIC1FTk9ERVY7 Cj4+ICsgICAgfQo+PiArCj4+ICsgICAgcmVnbWFwID0gZGV2bV9yZWdtYXBfaW5pdF9pMmMoY2xp ZW50LCAmdG1wMTAzX3JlZ21hcF9jb25maWcpOwo+PiArICAgIGlmIChJU19FUlIocmVnbWFwKSkg ewo+PiArICAgICAgICBkZXZfZXJyKGRldiwgImZhaWxlZCB0byBhbGxvY2F0ZSByZWdpc3RlciBt YXBcbiIpOwo+PiArICAgICAgICByZXR1cm4gUFRSX0VSUihyZWdtYXApOwo+PiArICAgIH0KPj4g Kwo+PiArICAgIHJldCA9IHJlZ21hcF91cGRhdGVfYml0cyhyZWdtYXAsIFRNUDEwM19DT05GX1JF RywgVE1QMTAzX0NPTkZJR19NQVNLLAo+PiArICAgICAgICAgICAgICAgICBUTVAxMDNfQ09ORklH KTsKPj4gKyAgICBpZiAocmV0IDwgMCkgewo+PiArICAgICAgICBkZXZfZXJyKCZjbGllbnQtPmRl diwgImVycm9yIHdyaXRpbmcgY29uZmlnIHJlZ2lzdGVyXG4iKTsKPj4gKyAgICAgICAgcmV0dXJu IHJldDsKPj4gKyAgICB9Cj4+ICsKPj4gKyAgICBod21vbl9kZXYgPSBod21vbl9kZXZpY2VfcmVn aXN0ZXJfd2l0aF9ncm91cHMoZGV2LCBjbGllbnQtPm5hbWUsCj4+ICsgICAgICAgICAgICAgICAg ICAgICAgICAgICAgICByZWdtYXAsIHRtcDEwM19ncm91cHMpOwo+PiArICAgIHJldHVybiBQVFJf RVJSX09SX1pFUk8oaHdtb25fZGV2KTsKPj4gK30KPj4gKwo+PiArI2lmZGVmIENPTkZJR19QTQo+ PiArc3RhdGljIGludCB0bXAxMDNfc3VzcGVuZChzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICt7Cj4+ ICsgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ICsK Pj4gKyAgICByZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgVE1QMTAzX0NPTkZfUkVH LAo+PiArICAgICAgICAgICAgICAgICAgVE1QMTAzX0NPTkZfU0RfTUFTSywgMCk7Cj4+ICt9Cj4+ ICsKPj4gK3N0YXRpYyBpbnQgdG1wMTAzX3Jlc3VtZShzdHJ1Y3QgZGV2aWNlICpkZXYpCj4+ICt7 Cj4+ICsgICAgc3RydWN0IHJlZ21hcCAqcmVnbWFwID0gZGV2X2dldF9kcnZkYXRhKGRldik7Cj4+ ICsKPj4gKyAgICByZXR1cm4gcmVnbWFwX3VwZGF0ZV9iaXRzKHJlZ21hcCwgVE1QMTAzX0NPTkZf UkVHLAo+PiArICAgICAgICAgICAgICAgICAgVE1QMTAzX0NPTkZfU0RfTUFTSywgVE1QMTAzX0NP TkZfU0QpOwo+PiArfQo+PiArCj4+ICtzdGF0aWMgY29uc3Qgc3RydWN0IGRldl9wbV9vcHMgdG1w MTAzX2Rldl9wbV9vcHMgPSB7Cj4+ICsgICAgLnN1c3BlbmQgICAgPSB0bXAxMDNfc3VzcGVuZCwK Pj4gKyAgICAucmVzdW1lICAgICAgICA9IHRtcDEwM19yZXN1bWUsCj4+ICt9Owo+PiArCj4+ICsj ZGVmaW5lIFRNUDEwM19ERVZfUE1fT1BTICgmdG1wMTAzX2Rldl9wbV9vcHMpCj4+ICsjZWxzZQo+ PiArI2RlZmluZSAgICBUTVAxMDNfREVWX1BNX09QUyBOVUxMCj4+ICsjZW5kaWYgLyogQ09ORklH X1BNICovCj4+ICsKPj4gK3N0YXRpYyBjb25zdCBzdHJ1Y3QgaTJjX2RldmljZV9pZCB0bXAxMDNf aWRbXSA9IHsKPj4gKyAgICB7ICJ0bXAxMDMiLCAwIH0sCj4+ICsgICAgeyB9Cj4+ICt9Owo+Cj4g SW4gdGhlIGJpbmRpbmdzIHlvdSBhcmUgZ2l2aW5nIHRoZSBjb21wYXRpYmxlIHByb3BlcnR5IGFz IDogdGksdG1wMTAzLCBidXQgaGVyZSBvbmx5IHRtcDEwMy4KPgo+IEluc3RlYWQgb2YgdXNpbmcg dGhlIGkyY19kZXZpY2VfaWQgc3RydWN0ICwgdXNlIG9mX2RldmljZV9pZCBzdHJ1Y3QgZm9yIGdp dmluZyB0aGUKPiBjb21wYXRpYmxlIHByb3BlcnR5IHZhbHVlLgo+IGNvbXBhdGJsZSA9ICI8bWFu dWZhY3R1cmVyPiw8bW9kZWw+Igo+CgpOby4gV2UgZG9uJ3QgZG8gdGhhdCBmb3Igb3RoZXIgaTJj IGRyaXZlcnMsIGFuZCB0aGUgaTJjIHN1YnN5c3RlbSBoYW5kbGVzCnRoaXMgY2FzZSwgc28gaXQg ZG9lcyBub3Qgc2Vuc2UgdG8gc3RhcnQgdGhhdCB3aXRoIHRoaXMgZHJpdmVyIGp1c3QKZm9yIHRo ZSBzYWtlIG9mIG1ha2luZyB0aGUgY29kZSBtb3JlIGNvbXBsaWNhdGVkIHRoYW4gaXQgaGFzIHRv IGJlLgoKVGhhbmtzLApHdWVudGVyCgoKX19fX19fX19fX19fX19fX19fX19fX19fX19fX19fX19f X19fX19fX19fX19fX18KbG0tc2Vuc29ycyBtYWlsaW5nIGxpc3QKbG0tc2Vuc29yc0BsbS1zZW5z b3JzLm9yZwpodHRwOi8vbGlzdHMubG0tc2Vuc29ycy5vcmcvbWFpbG1hbi9saXN0aW5mby9sbS1z ZW5zb3Jz From mboxrd@z Thu Jan 1 00:00:00 1970 From: Guenter Roeck Subject: Re: [PATCH v5] hwmon: Driver for TI TMP103 temperature sensor Date: Tue, 17 Jun 2014 23:12:11 -0700 Message-ID: <53A12DBB.50704@roeck-us.net> References: <1403069837-15651-1-git-send-email-hs@denx.de> <53A127BB.7090802@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: QUOTED-PRINTABLE Return-path: In-Reply-To: <53A127BB.7090802@gmail.com> Sender: linux-doc-owner@vger.kernel.org To: Varka Bhadram , 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/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 devm_hwmon_device_register_with_grou= ps() >> - 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.t= xt 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 Seria= l Interface >> ti,tsc2003 I2C Touch-Screen Controller >> ti,tmp102 Low Power Digital Temperature Sensor with SMBUS/T= wo Wire Serial Interface >> +ti,tmp103 Low Power Digital Temperature Sensor with SMBUS/Tw= o 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 >> +=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 f= or >> +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 (se= e >> +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 modul= e >> 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 TMP= 103 >> + 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)+=3D smsc47m192.= o >> 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 mo= dify >> + * it under the terms of the GNU General Public License as publishe= d by >> + * the Free Software Foundation; either version 2 of the License, o= r >> + * (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(attr= ); >> + 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(attr= ); >> + 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, N= ULL , >> + 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[] =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 = 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, TMP103_CONF= IG_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->na= me, >> + 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 : ti,tmp103= , but here only tmp103. > > Instead of using the i2c_device_id struct , use of_device_id struct f= or giving the > compatible property value. > compatble =3D "," > No. We don't do that for other i2c drivers, and the i2c subsystem handl= es 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