From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1752070AbbI2FIG (ORCPT ); Tue, 29 Sep 2015 01:08:06 -0400 Received: from mail-am1on0134.outbound.protection.outlook.com ([157.56.112.134]:56480 "EHLO emea01-am1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1750993AbbI2FHw (ORCPT ); Tue, 29 Sep 2015 01:07:52 -0400 X-Greylist: delayed 845 seconds by postgrey-1.27 at vger.kernel.org; Tue, 29 Sep 2015 01:07:52 EDT Authentication-Results: spf=none (sender IP is ) smtp.mailfrom=bhuvanchandra.dv@toradex.com; Subject: Re: [PATCH] vf610_adc: Fix internal temperature calculation To: , References: <1443015807-17764-1-git-send-email-bhuvanchandra.dv@toradex.com> <560810DD.5030900@kernel.org> CC: , , , , , , , , Jonathan Cameron From: Bhuvanchandra Message-ID: <560A1929.3010303@toradex.com> Date: Tue, 29 Sep 2015 10:22:57 +0530 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.2.0 MIME-Version: 1.0 In-Reply-To: <560810DD.5030900@kernel.org> Content-Type: text/plain; charset="utf-8"; format=flowed Content-Transfer-Encoding: 8bit X-Originating-IP: [115.115.225.206] X-ClientProxiedBy: HKNPR06CA0055.apcprd06.prod.outlook.com (10.141.16.45) To DB3PR05MB265.eurprd05.prod.outlook.com (10.141.4.21) X-Microsoft-Exchange-Diagnostics: 1;DB3PR05MB265;2:jiAwb0KijbZxz9ohceCqdjQUIkR57SV5mUnECLmMof8kUOhEErMyE/7D8bNvylI054OdzlBnBvJzTySkhpqU6OA25rWBpAndA0ODAgrOQfCFbDtQx38qGwfaDrd+yKqRzgQz4A9Lym4sHOgai4gE+kbx4b93jEmgtU+CP22rh34=;3:4S+FCjFPpzzdx4fkZMKBAe/CLtXB0ZBKK0JKOGjKFpkHj0fRwbhEC/MTsaEkRUMUtJ3TBDGz8x8/TqtaqMqkHFBOsHnqytBYlDE9vhrYeQku84yiD05STm81f+hiC+P/4qA5hO4tDJDijNJzp0SBKA==;25:Z6dCl+UGwGGKGN0k/cC3V86Zf7J6ng0m5T9XbCSUvoRiOA2zrhwNVw7aNvsvqDEmibo2vpNyTBwsG1cPl6DjIMsf7BHbesC4TqRZioEdiq8wtrTJGMFCzS0aNpnUlTA8RdnAPieoyuMaZAh2VMN/zt/GUdEjU/iNrKIjguNVAlsdefo4Kd/km3uVYGLj7tQbQFI/ggHOKO+36kK6taFO3YfdoRVIUVTiHsOAez711rjYh9eOJAKFN8nHQLLKf0uW5+b9qvhx8DTjGEk6oC/odg== X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:;SRVR:DB3PR05MB265; X-Microsoft-Exchange-Diagnostics: 1;DB3PR05MB265;20:azlPmWI6zoHR9dv2VBtlf0cmUMnATK4tcUAEnM12R5uRcOOrfIhvrZruhtIbbZwne1JFRx3rqgRFdHK/bIyNzxA49XgaeRmKTBKM1132OdeA043ORmo6hzAss6YuOCmBvyqbY07ZWuF9Li++3Y0ULvmKbEQzM9NDwS0d4wYnVHlCp4zFuVdEWe8j+Taowaz+1iN+cJehvEeOcqq56ApReRGp7fdCZNGIeIyQ1lhK6NtzNCK7NAqvURTr3EXw9nWuL6h8iL4igk+3FIu6iIXel3BWN4RCk+FVYUtpK3r3e6rfk9btvdRJ1mV10Odt//cDiBObFmfdXqKmxV0npHdEwYr06WD0NMLc5NePxotEtIEeaAJlNz/CqnQA7PZ1Ls/MRA20j48mTA3/gdqM2a3p4H5RiN7PHrwivgDMDi1oJwatyFY+0vr92SvJi5BTaoxmUZLmzdb5g4IkxbYL8Tye+qBgeYgy6CR6Q7+zbukOaspqeWaEYxzbf+WbVvHmvCmu;4:pa44Txg2TfxN82Y+1R+WrZk/C/7uuDrlxkhI1T5KM1TvA6DAHX5XN+auN3JhYB2C3cDrtdjiSz1lNRb0NvGDIB561P6dD/NlK8uUslKaCp7gx7rK1z0AdI4oTLdaT1vA6/9doQeUWY4sCbTLzywxkMjJSSuQZOImWZtQIibXZBPGXjyo6APcYcmF5WxlHF6qE14ZzSlHpRlCJYrzI1qGM9xpyxPw4fi/l6B/sQMy78LnskXE7ndolrAfRfPkkWACAcmss8b1PzO54b3qifRcGhKmNFzKi2KpYHhtxYSWj4zRjzKe7O/Xdp6lQEvj8oUQF008wa9IK5/9kJtZegH3DCo2oCRGtZxlpkLzKBTQLys= X-Microsoft-Antispam-PRVS: X-Exchange-Antispam-Report-Test: UriScan:; X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(8121501046)(520078)(5005006)(3002001);SRVR:DB3PR05MB265;BCL:0;PCL:0;RULEID:;SRVR:DB3PR05MB265; X-Forefront-PRVS: 0714841678 X-Forefront-Antispam-Report: SFV:NSPM;SFS:(10019020)(6049001)(6009001)(24454002)(199003)(377454003)(189002)(479174004)(105586002)(86362001)(81156007)(64126003)(5001860100001)(5001770100001)(106356001)(4001350100001)(5001830100001)(83506001)(97736004)(76176999)(65816999)(23676002)(50986999)(189998001)(4001540100001)(92566002)(87976001)(54356999)(5001960100002)(77156002)(101416001)(59896002)(87266999)(62966003)(46102003)(50466002)(80316001)(19580395003)(2950100001)(64706001)(40100003)(68736005)(33656002)(5004730100002)(77096005)(47776003)(42186005)(19580405001)(36756003)(65956001)(66066001)(122386002)(5007970100001)(65806001)(7059030);DIR:OUT;SFP:1102;SCL:1;SRVR:DB3PR05MB265;H:[10.18.0.138];FPR:;SPF:None;PTR:InfoNoRecords;A:1;MX:1;LANG:en; X-Microsoft-Exchange-Diagnostics: =?utf-8?B?MTtEQjNQUjA1TUIyNjU7MjM6SW5nclc2SVpqY3Z4NURlVWxnYVpLTTlKWlQx?= =?utf-8?B?clk2OHZwalAzZ0xtbk56MDQwNWxXVWxkR0RqeEgvall0TnA4Ly95OWQxVmI2?= =?utf-8?B?NDR0YSs2RDNQeXdvaE1CQXF1ZG1rc1VXam9FbjVtNm9xVTRjSlA1eGxBZmxh?= =?utf-8?B?V3Z6Y3EyTVp2NHdEZHhuazFUMzBWaDdNeXpkRDBIaVlDQ3ZONGFYcGRqbkJT?= =?utf-8?B?K3NXSDBQd01lY1prMGpRTlh6THlNNEFiaFh2NmNTSUZzaVZPT0lJVElNemYw?= =?utf-8?B?VWE3TXI5NHQvaWhKc2tWajk2K1gxNzBkTHVPK0N1eTgrU3BUZjFEWmZuRDlB?= =?utf-8?B?RVdOb3V2WnBnOXdGQTRMMEZJVUIrY0hZYzZiWkY3S3g5MCsvU2k5RzhwamFP?= =?utf-8?B?V21RTmFIYmkyUUJ0TTFoNy9Mckl3enhlQnpMUXBzajBKcEpQQ2JSa1FKcnIv?= =?utf-8?B?QU93MjlCcXNtaXBOVSs0STFTLzF2cnpWZWNxdmp0Q1ZTU1BPd1FCdVlRdTRr?= =?utf-8?B?L1JCUkE5WWd3R0pEUEU4bTd0VC9sYmE2dHJWcng3MG8wQ3JYaytMdmJ4TlZM?= =?utf-8?B?TlZ6MGowdC9KbzNja292Tjk3RUZibFpqS1pKVWZqc2NPdDZ4TDdtM0xlNDlj?= =?utf-8?B?TDRKU0lFdDRaTzh4OHA1ZDBsM0FiUWZvT1dYWDFRQ1I5VVZjOFBhdTdJOHpQ?= =?utf-8?B?WXlYYitXUkFSakliK2k4b3hqVTU1ZmkrTDc3MWxxQ0s2WmZzU0U0Y3QreGRB?= =?utf-8?B?VDBBTGp6bnAveHMyNnlRM09PQS9hVGVjV2NIMytkUmRENXkwMFRWNlV2dHV5?= =?utf-8?B?K3VBM1FZcmd1TkdBa1QzRXloVG9VMGxPY1lJaU5pNEZBYk5vY0JOOEd3a0ZZ?= =?utf-8?B?UFFhYjdGbWJMNWRTQ0tzNm5Dbll2Rk1reE44Rit0WDdqUkZueGlmc3g1bm4v?= =?utf-8?B?T2o0UXZIRk5Bd284dGRYaGVzYzA2L0VkQjNlb1kyd0syTjRtQSt6WmlCTXlK?= =?utf-8?B?Y2l3aG1uR0pQN0dzWnlJL0R0dmd5R1RNYmE4YnpzR3d6dTUzVkRGTzZWL0hJ?= =?utf-8?B?ODhGTnIyd0pobjVUWW5SSnQ5ckY2bUFWMXpSbHNqZVJyNng3bnJuLy96OEtG?= =?utf-8?B?UzNmOUcyZ21aSi9tY2h5aTJaQVZCMDNOSmwvNlZLQTJla08yUnRNZDh1VmlN?= =?utf-8?B?d3orems5WXIxSm8yZGtEQXc4b2JhTFU2dUxqaWNSOG9HbUFtdnpGeGJYU05n?= =?utf-8?B?SmR1UHJFVjJnS1ArRGRHQlp6b1F0YS9GMjdRcHJibHFXU3Y5ZmYyS1ZZWE0x?= =?utf-8?B?VFI3VG9jZFNZTVg1blhpSWxNbjJGOHpmSDA5OGVPN3JyNitPbmNzZ0JTTGhy?= =?utf-8?B?eW0yZkhDUDZjMk4vVURxUkhkb25FVEZpNDhGczdpbksvNUZHQi9QTnVPU1Nk?= =?utf-8?B?Tm1PamxMWTBjNVJnS0tQK0t6cWRKdlZYUHZYOFhxYXBjYTNhdysxMjd5aHpQ?= =?utf-8?B?NmFnRWd2TmNZK1RuYXpKTWZCaTloczl3bFd2alAySVd5cXRDVVRrNkZ1bERD?= =?utf-8?B?RW1MSUE2QzBRZzhJZFdXOFFOd2tnQ0p3WGI1WldsQUpmVkZ4dnFaenlQcTBa?= =?utf-8?B?ZEQ3WU5MaHFJclJsN3lwaWNBS3Z4SC9UVm1YZTFXbkhaYnBmSzVzQXloODZv?= =?utf-8?B?U0Vpb1hKR2c2SG9naCtYZ0dwU1lCM2hMWkxHQjJ2Wm14VmJyZUFOMjd2QVM1?= =?utf-8?B?TEJZbE5sellJc0tGSHpmY2JtdHJjQWJkOXhZcEhuUTNJVWRIbWVJakEvZWRx?= =?utf-8?B?WUhtMjRPRDMvSytRWjJ3azRhSmhmZElBN0kwMG5hYURPd29sNG4vQ3BTMmho?= =?utf-8?B?ZjhnRzRwU0JtZk8zMFdweFNNS0RQTndiUXB3TEo4dzRwdHUvRWZlbm5OWXBm?= =?utf-8?B?Y1Zld2tyU2c9PQ==?= X-Microsoft-Exchange-Diagnostics: 1;DB3PR05MB265;5:WcF4ffLAwe6cDFLgkOGTORIigkqU5rdX6xRKqKE4gZyiLYp4Moot0z27FD1spGjO8qsi7oacMnrzOfDrQcR9qYjX9kjC+kUjWnaD++JBkkjsN/4Aiw6YiFfN3hc1Ln6b2M2CbhMvvQAqzQTRKO86/w==;24:Ux64W0CJE40GCVhaxBGVm07BAvtWj+7Ve2zFHgwO1mNR28qyIyoG9m663fzVqYQWEyqzgag304bFxK/IBKIT7HeldwmZVQ9runLdm7X9yy0=;20:8qnQgDGICp7xhPtOq9qaGxsLIWkk823j6Ar1E+t26gjpYqFAkMFI6rhehadu2SZAZb4Cx6yxpaeRoqRm3gC/Yw== SpamDiagnosticOutput: 1:23 SpamDiagnosticMetadata: NSPM X-OriginatorOrg: toradex.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 29 Sep 2015 04:53:39.3126 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB3PR05MB265 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Hi Fugang, On 09/27/2015 09:23 PM, Jonathan Cameron wrote: > On 23/09/15 14:43, Bhuvanchandra DV wrote: >> There is an observed temperature difference of ~20°C with the >> internal temperature reading and the temperature measured on >> SoC package. Existing calculations consider the typical values >> provided in datasheet. Those typical values are valid for >> VREFH_ADC at 3.0V. Voltage at 25°C is different for different >> VREFH_ADC voltages. With VREFH_ADC at 3.3V, voltage at 25°C is >> 0.699V. Hence update the VTEMP25 to 0.699V which gives ADCR@Temp25 >> as 867 and the final temperature readings differs with ~5°C from >> the external readings. >> >> Formula for finding ADCR@Temp25: >> ADCR@Temp25 = (ADCR@Vdd * V@TEMP25 * 10) / VDDconv >> >> ADCR@Vdd for 12-Bit ADC = 4095 >> VDDconv = VREFH_ADC * 10 >> >> VREFH_ADC@3.3V >> ADCR@Temp25 = (4095 * .699 * 10) / 33 >> ADCR@Temp25 ~= 867 >> >> | VREFH_ADC | V@TEMP25 | VDDconv | ADCR@Temp25 | >> | 3.0V | 0.696mV | 30 | 950 | >> | 3.3V | 0.699mV | 33 | 867 | >> >> Signed-off-by: Bhuvanchandra DV > Looks fine to me, but I'll need an Ack from Fugang on this one > as I don't know or have the part I'm afraid. Can you please give your ACK if the patch looks fine. Best regards, Bhuvan > > Jonathan >> --- >> drivers/iio/adc/vf610_adc.c | 19 ++++++++++++++----- >> 1 file changed, 14 insertions(+), 5 deletions(-) >> >> diff --git a/drivers/iio/adc/vf610_adc.c b/drivers/iio/adc/vf610_adc.c >> index f4df2a7..e7abc13 100644 >> --- a/drivers/iio/adc/vf610_adc.c >> +++ b/drivers/iio/adc/vf610_adc.c >> @@ -103,6 +103,13 @@ >> >> #define DEFAULT_SAMPLE_TIME 1000 >> >> +/* V at 25°C of 696 mV */ >> +#define VF610_VTEMP25_3V0 950 >> +/* V at 25°C of 699 mV */ >> +#define VF610_VTEMP25_3V3 867 >> +/* Typical sensor slope coefficient at all temperatures */ >> +#define VF610_TEMP_SLOPE_COEFF 1840 >> + >> enum clk_sel { >> VF610_ADCIOC_BUSCLK_SET, >> VF610_ADCIOC_ALTCLK_SET, >> @@ -636,11 +643,13 @@ static int vf610_read_raw(struct iio_dev *indio_dev, >> break; >> case IIO_TEMP: >> /* >> - * Calculate in degree Celsius times 1000 >> - * Using sensor slope of 1.84 mV/°C and >> - * V at 25°C of 696 mV >> - */ >> - *val = 25000 - ((int)info->value - 864) * 1000000 / 1840; >> + * Calculate in degree Celsius times 1000 >> + * Using the typical sensor slope of 1.84 mV/°C >> + * and VREFH_ADC at 3.3V, V at 25°C of 699 mV >> + */ >> + *val = 25000 - ((int)info->value - VF610_VTEMP25_3V3) * >> + 1000000 / VF610_TEMP_SLOPE_COEFF; >> + >> break; >> default: >> mutex_unlock(&indio_dev->mlock); >>