Re: Units for measurements and page 1 temperature for LTM4676A

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



On Fri, May 18, 2018 at 11:51 AM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> On Fri, May 18, 2018 at 11:00:53AM -0700, Rail Shafigulin wrote:
>> On Wed, May 16, 2018 at 5:34 PM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
>> > On 05/16/2018 02:39 PM, Rail Shafigulin wrote:
>> >>
>> >> My team is working on a custom board. We have LTM4676A on it. I'm trying
>> >> to understand what are the units of measurement for a given register. For
>> >> example:
>> >>
>> >> root@custom-board:/sys/class/i2c-adapter/i2c-1/1-0044/hwmon/hwmon2# ls -l
>> >> total 0
>> >> lrwxrwxrwx 1 root root    0 Apr 12 07:51 device -> ../../../1-0044
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in1_crit
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in1_crit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in1_highest
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in1_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in1_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in1_lowest
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in1_min
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in1_min_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in1_reset_history
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in2_crit
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in2_crit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in2_highest
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in2_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in2_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in2_lcrit
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in2_lcrit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in2_max
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in2_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in2_min
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in2_min_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in2_reset_history
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in3_crit
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in3_crit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in3_highest
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in3_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in3_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in3_lcrit
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in3_lcrit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in3_max
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in3_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in3_min
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in3_min_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in3_reset_history
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in4_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in4_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in4_reset_history
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in5_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in5_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in5_reset_history
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in6_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in6_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in6_reset_history
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in7_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in7_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in7_reset_history
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in8_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in8_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in8_reset_history
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in9_input
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 in9_label
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:51 in9_reset_history
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:51 name
>> >> drwxr-xr-x 2 root root    0 Apr 12 07:51 power
>> >> lrwxrwxrwx 1 root root    0 Apr 12 07:51 subsystem ->
>> >> ../../../../../../../../class/hwmon
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:50 temp1_crit
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:50 temp1_crit_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:50 temp1_input
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:50 temp1_lcrit
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:50 temp1_lcrit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:50 temp1_max
>> >> -r--r--r-- 1 root root 4096 Apr 12 07:50 temp1_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 12 07:49 uevent
>> >>
>> >> root@custom-board:/sys/class/i2c-adapter/i2c-1/1-0044/hwmon/hwmon2# cat
>> >> name
>> >> ltm4676
>> >>
>> >> root@custom-board:/sys/class/i2c-adapter/i2c-1/1-0044/hwmon/hwmon2# cat
>> >> in1_label
>> >> vin
>> >>
>> >> root@custom-board:/sys/class/i2c-adapter/i2c-1/1-0044/hwmon/hwmon2# cat
>> >> in1_input
>> >> 11953
>> >>
>> >> root@custom-board:/sys/class/i2c-adapter/i2c-1/1-0044/hwmon/hwmon2# cat
>> >> temp1_input
>> >> 40937
>> >>
>> >>
>> >> What are the units of in1_input and temp1_input? Are those milli-volts
>> >> (10^-3 V) and milli-celcius (10^-3 C)? Or these are raw values and I need to
>> >> do a conversion?
>> >>
>> >
>> > Please read Documentation/hwmon/sysfs-interface. Are the units listed
>> > there ambiguous ?
>> Didn't look at that folder. Went for
>> https://github.com/torvalds/linux/blob/master/Documentation/hwmon/pmbus.
>> Units make sense now.
>>
>> >
>> > The values are values as measured by the chip on the chip's input pins.
>> >
>> > The output above is completely messed up. The chip doesn't have 9
>> > voltage sensors. I have no idea how such output would be possible,
>> > unless this is a different chip. An interesting detail is that the
>> > output below (which looks at least almost ok) is from i2c address
>> > 0x41, while the output above is from i2c address 0x44, both on the
>> > same bus. So, whatever the chips are, the output is not from the
>> > same chip. This makes it quite difficult to compare.
>> We have 4 LTM4676A installed on the board. I wanted to try different
>> drivers. Chip at address 0x41 uses pmbus driver
>> (https://github.com/torvalds/linux/blob/master/drivers/hwmon/pmbus/pmbus.c)
>> , chip at address 0x44 uses LTM 4676 driver
>> (https://github.com/torvalds/linux/blob/master/drivers/hwmon/pmbus/ltc2978.c).
>>
>> I don't know why the chip at 0x44 comes up with 9 voltage sensors. All I did was
>>
>> 1. compile ltc2978.c
>> 2. insmod ltc2978.ko
>> 3. echo ltm4676 0x44 > /sys/class/i2c-adapter/i2c-1/new_device
>>
>> There is another issue. Documentation states that I'm supposed to see
>> temp1_input, temp2_input, and temp3_input
>> (https://github.com/torvalds/linux/blob/3acf4e395260e3bd30a6fa29ba7eada4bf7566ca/Documentation/hwmon/ltc2978#L148-L150).
>> Right now I see only temp1_input. Could this be a bug in the driver?
>>
> Sure it could be. Given the odd output with the 9 voltage sensors,
> I would suspect that this is the least of your problems, though.
> My primary suspicion is that there is a header file and/or kernel version
> mismatch, but of course that is just a very wild guess.
>
> Why do you build the file in the first place ? LTM4676 support was added
> a long time ago. If your kernel is that old that it doesn't have support
> for this chip on its own, you would probably have to backport all pmbus
> drivers, not just one.

Hmm... That's odd. We are using 4.9 kernel. Here is the output of uname -a

Linux custom-board 4.9.0-xilinx-v2017.4 #1 SMP PREEMPT Mon May 14
17:06:48 PDT 2018 armv7l armv7l armv7l GNU/Linux. When we run
menuconfig for the kernel, LTC2978 is not part of the driver list. Is
it possible that Xilinx may have forgotten to include it in their
Kernel?



>
> Guenter
>
>>
>> >
>> > Guenter
>> >
>> >> LTM4676A and LTM4676 have 2 pages for reporting READ_TEMPERATURE_1
>> >> register. How do I change a page value? The LTM4676 driver also doesn't seem
>> >> to be aware that there should be a READ_TEMPERATURE_2 register. At least I
>> >> don't see it in sysfs.
>> >>
>> >> I tried using a generic driver, pmbus, and here is what I got
>> >>
>> >> root@custom-board:/sys/class/i2c-adapter/i2c-1/1-0041/hwmon/hwmon0# ls -l
>> >> total 0
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr1_input
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr1_label
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 curr1_max
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr1_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 curr2_crit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr2_crit_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr2_input
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr2_label
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 curr2_max
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr2_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 curr3_crit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr3_crit_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr3_input
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr3_label
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 curr3_max
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 curr3_max_alarm
>> >> lrwxrwxrwx 1 root root    0 Apr 11 03:04 device -> ../../../1-0041
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in1_crit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in1_crit_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in1_input
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in1_label
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in1_min
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in1_min_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in2_crit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in2_crit_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in2_input
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in2_label
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in2_lcrit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in2_lcrit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in2_max
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in2_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in2_min
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in2_min_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in3_crit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in3_crit_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in3_input
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in3_label
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in3_lcrit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in3_lcrit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in3_max
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in3_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 in3_min
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 in3_min_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 name
>> >> drwxr-xr-x 2 root root    0 Apr 11 03:04 power
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 power1_input
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 power1_label
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 power2_input
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 power2_label
>> >> lrwxrwxrwx 1 root root    0 Apr 11 03:04 subsystem ->
>> >> ../../../../../../../../class/hwmon
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 temp1_crit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 temp1_crit_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 temp1_input
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 temp1_lcrit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 temp1_lcrit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 temp1_max
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 temp1_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 temp2_crit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 temp2_crit_alarm
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 temp2_input
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 temp2_lcrit
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 temp2_lcrit_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 temp2_max
>> >> -r--r--r-- 1 root root 4096 Apr 11 03:04 temp2_max_alarm
>> >> -rw-r--r-- 1 root root 4096 Apr 11 03:04 uevent
>> >>
>> >> This one does seem to be aware that there is READ_TEMPERATURE_2 register,
>> >> but when it comes to READ_TEMPERATURE_1 I see the same problem. How do I
>> >> know for which page this is reported and what are the units?
>> >> > Any help is appreciated.
>> >>
>> >> --
>> >> Rail Shafigulin
>> >> Software Engineer
>> >> Esencia Technologies
>> >>
>> >>
>> >> *ESENCIA TECHNOLOGIES, INC.
>> >> *2350 Mission College Blvd. Suite #490
>> >> Santa Clara CA 95054
>> >> ________________________________________________________
>> >>
>> >> Phone: +1 408 736 8284 Fax: +1 408 519 3475
>> >> http://www.esenciatech.com <http://www.esenciatech.com/>|
>> >> http://www.lnttechservices.com <http://www.lnttechservices.com/>
>> >>
>> >>
>> >
>>
>>
>>
>> --
>> Rail Shafigulin
>> Software Engineer
>> Esencia Technologies
>>
>> --
>>
>>
>>
>>
>>
>>
>>
>> *ESENCIA
>> TECHNOLOGIES, INC.
>> *2350 Mission College Blvd. Suite #490
>>
>> Santa Clara CA 95054
>>
>> ________________________________________________________
>>
>> Phone: +1 408 736
>> 8284 Fax: +1 408 519 3475
>> http://www.esenciatech.com
>> <http://www.esenciatech.com/>
>> | http://www.lnttechservices.com
>> <http://www.lnttechservices.com/>
>>
>>
>>
>>



-- 
Rail Shafigulin
Software Engineer
Esencia Technologies

-- 







*ESENCIA
TECHNOLOGIES, INC.
*2350 Mission College Blvd. Suite #490

Santa Clara CA 95054

________________________________________________________

Phone: +1 408 736 
8284 Fax: +1 408 519 3475 
http://www.esenciatech.com 
<http://www.esenciatech.com/>
| http://www.lnttechservices.com 
<http://www.lnttechservices.com/>




--
To unsubscribe from this list: send the line "unsubscribe linux-hwmon" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [LM Sensors]     [Linux Sound]     [ALSA Users]     [ALSA Devel]     [Linux Audio Users]     [Linux Media]     [Kernel]     [Gimp]     [Yosemite News]     [Linux Media]

  Powered by Linux