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 1:11 PM, Guenter Roeck <linux@xxxxxxxxxxxx> wrote:
> On Fri, May 18, 2018 at 12:06:01PM -0700, Rail Shafigulin wrote:
>> 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?
>>
>
> That is quite unlikely. The driver has not been touched since v4.3.
> Also, the Xilinx repository at https://github.com/Xilinx/linux-xlnx
> includes it. Did you check under "PMBus support" ?

Well, it is embarrassing to say but it turns out it is our team's
fault. We were not compiling the kernel properly. Had some files from
old compilations and it turns out that is what was used instead of the
right ones. Guenter, I really appreciate your help with this.

>
> Guenter
>
>>
>>
>> >
>> > 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/>
>>
>>
>>
>>



-- 
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