Re: [PATCH v2 4/4] Exynos4 NURI: support for NTC thermistor

MyungJoo Ham
2011-06-22T05:00:41Z

On Tue, Jun 21, 2011 at 7:50 PM, Mark Brown
<broonie@opensource.wolfsonmicro.com> wrote:
> On Tue, Jun 21, 2011 at 11:07:13AM +0900, MyungJoo Ham wrote:
>
>> +#include <linux/platform_data/ntc_thermistor.h>
>
> This doesn't appear to be in mainline.

Right, not just yet. I should've added comment about the patch just
being applied to "next".

I've added it as it was told to be applied to "next" in lm-sensors by
Guenter Roeck yesterday.
http://comments.gmane.org/gmane.linux.drivers.sensors/26475

Should I surround them with "#ifdef CONFIG_NTC_THERMISTOR"?

>
>> +/* NTC Thermistor */
>> +static struct platform_device nuri_ncp15wb473_thermistor;
>> +static int read_thermistor_uV(void)
>
> Blank line between these two.
>

got it.

>> +{
>> +     static struct s3c_adc_client *adc;
>> +     int val;
>> +     s64 converted;
>> +
>> +     if (!adc) {
>> +             adc = s3c_adc_register(&nuri_ncp15wb473_thermistor,
>> +                             NULL, NULL, 0);
>> +             if (IS_ERR_OR_NULL(adc)) {
>> +                     pr_err("%s: Cannot get adc.\n", __func__);
>> +                     return adc ? PTR_ERR(adc) : -ENODEV;
>> +             }
>> +     }
>
> Why not do this in an initcall or in the device registration?  This
> looks like working around a limitation of the ntc_thermistor driver
> which should be fixed as part of a mainline merge for that.

Um... I think I can put this away to a common plat-samsung/dev-ntc.c
as I've seen many S5PC110/S5PV210/Exynos4 devices using NTC attached
to the CPU's ADC ports.

However, I won't be able to put that part into the NTC driver because
using S3C-ADC is plat-samsung specific method and NTC thermistor
itself is a general thermistor device not specific to S3C. Maybe, I
can do so after we've got a common ADC framework.

>
>> +
>> +     if (IS_ERR_OR_NULL(adc))
>> +             return adc ? PTR_ERR(adc) : -ENODEV;
>> +
>> +     val = s3c_adc_read(adc, 6);
>> +
>> +     converted = 3300000LL * (s64) val;
>> +     converted >>= 12;
>> +
>> +     pr_emerg("%s: %d -> %llduV\n", __func__, val, converted);
>
> This looks like debug that was left in by mistake.
>

Oh.. yes.. thanks. I need to remove that.

--
MyungJoo Ham (함명주), Ph.D.
Mobile Software Platform Lab,
Digital Media and Communications (DMC) Business
Samsung Electronics
cell: 82-10-6714-2858