[External] Re: pinctrl in phosphor-hwmon

Derek Lin23 dlin23 at lenovo.com
Thu Dec 19 19:37:18 AEDT 2019


Hi all:

          We’ve met the similar situation, so use this thread to follow-up.

          We have two fan tachs that share the same PWM, and we have a GPIO mux which switches between the two fan tachs.
          We would like to setup two different sensors, e.g. fan_a1 and fan_a2, but use the same GPIO mux to identify the fan_input should link to one of the two sensors.
          For example, when the mux is high, then fan_a1 gets RPM readings from fanx_input, and when the mux is low, then fan_a2 gets RPM readings from the same fanx_input.

          Please provide some ideas.

Thank you,

Derek

From: openbmc <openbmc-bounces+dlin23=lenovo.com at lists.ozlabs.org> On Behalf Of Deng Tyler
Sent: Tuesday, December 17, 2019 8:28 PM
To: Kun Yi <kunyi at google.com>
Cc: OpenBMC Maillist <openbmc at lists.ozlabs.org>; Matt Spinler <mspinler at linux.ibm.com>
Subject: [External] Re: pinctrl in phosphor-hwmon

Hi Kun
    Thank for your response and that's highly appreciated.
I patch the async read support but it still not working, following is my configuration. Anything I missing?
LABEL_fan0=fan1A
LABEL_fan1=fan1B
LABEL_fan2=fan2A
LABEL_fan3=fan2B
LABEL_fan4=fan3A
LABEL_fan5=fan3B
LABEL_fan6=fan4A
LABEL_fan7=fan4B
LABEL_fan8=fan5A
LABEL_fan9=fan5B
LABEL_fan10=fan6A
LABEL_fan11=fan6B
ASYNC_READ_TIMEOUT_fan0 = "3000"
ASYNC_READ_TIMEOUT_fan1 = "3000"
ASYNC_READ_TIMEOUT_fan2 = "3000"
ASYNC_READ_TIMEOUT_fan3 = "3000"
ASYNC_READ_TIMEOUT_fan4 = "3000"
ASYNC_READ_TIMEOUT_fan5 = "3000"
ASYNC_READ_TIMEOUT_fan6 = "3000"
ASYNC_READ_TIMEOUT_fan7 = "3000"
ASYNC_READ_TIMEOUT_fan8 = "3000"
ASYNC_READ_TIMEOUT_fan9 = "3000"
ASYNC_READ_TIMEOUT_fan10 = "3000"
ASYNC_READ_TIMEOUT_fan11 = "3000"
INTERVAL=10000000

Tyler

Kun Yi <kunyi at google.com<mailto:kunyi at google.com>> 於 2019年12月13日 週五 上午5:15寫道:


On Thu, Dec 12, 2019 at 12:34 PM Matt Spinler <mspinler at linux.ibm.com<mailto:mspinler at linux.ibm.com>> wrote:


On 12/11/2019 12:40 AM, Deng Tyler wrote:
> I added gpio control in my fan driver but I still met some problem.
> While phosphor-hwmon reading fan0_input, the fan tach driver change 2
> gpio pin and sleep 2 seconds to return rpm value for stable. There are
> 12 fan sensors in my platform so the phosphor-hwmon need wait 24
> senconds at least to get rpm. The waiting time cause dbus hang while
> issuing ipmi sensor command. Do you have any suggestions?

I vaguely remember someone else had this problem before, and it turned
out to be a device driver
problem as the reason it was so slow.

Yea the best test is to read from the kernel sysfs interface and post how long it takes. If the device is misbehaving or the physical bus (i2c/fantach) is not working properly, the delay could easily be O(seconds)


Otherwise, the reads could probably be changed to be asynchronous, but
that could be a pretty big
change to the application.

There is some work-in-progress patch to add async read support. The patch works, although the code change is not clean enough.
https://gerrit.openbmc-project.xyz/c/openbmc/phosphor-hwmon/+/24337



>
> Tyler
>
> Matt Spinler <mspinler at linux.ibm.com<mailto:mspinler at linux.ibm.com> <mailto:mspinler at linux.ibm.com<mailto:mspinler at linux.ibm.com>>>
> 於 2019年12月11日 週三 上午12:29寫道:
>
>
>
>     On 12/9/2019 11:08 PM, Deng Tyler wrote:
>     > Hi Matt:
>     >     Thank for your response that's really helpful. I check the link
>     > and it seems allow a gpio set to high before/after reading a
>     > correspond sensor. Is it possible change 2 gpio to high/low for
>     > reading a correspond sensor?
>
>     That isn't possible in the current code, but I don't see why someone
>     couldn't add that feature.
>
>     >
>     > Regards,
>     > Tyler
>     >
>     > Matt Spinler <mspinler at linux.ibm.com<mailto:mspinler at linux.ibm.com>
>     <mailto:mspinler at linux.ibm.com<mailto:mspinler at linux.ibm.com>> <mailto:mspinler at linux.ibm.com<mailto:mspinler at linux.ibm.com>
>     <mailto:mspinler at linux.ibm.com<mailto:mspinler at linux.ibm.com>>>>
>     > 於 2019年12月9日 週一 下午10:58寫道:
>     >
>     >
>     >
>     >     On 12/9/2019 6:15 AM, Deng Tyler wrote:
>     >     > Hi all:
>     >     >     Does phosphor-hwmon support changing gpio pin before read
>     >     > /sys/class/hwmon/hwmon0/fan*_input while monitoring fan
>     sensor?
>     >     In my
>     >     > platform, fans gpio are connect to pin-mux and I need
>     control gpio
>     >     > before get fan tach rpm.
>     >
>     >     It does have the ability to modify a GPIO before/after a
>     reading:
>     >
>     https://github.com/openbmc/phosphor-hwmon/blob/master/mainloop.cpp#L447
>     >
>     >     configured by some lines in the conf file, like:
>     >
>     https://github.com/openbmc/meta-ibm/blob/master/meta-romulus/recipes-phosphor/sensors/phosphor-hwmon/obmc/hwmon/iio-hwmon-battery.conf#L4
>     >
>     >     >
>     >     > Regards,
>     >     > Tyler
>     >
>


--
Regards,
Kun
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.ozlabs.org/pipermail/openbmc/attachments/20191219/ffebd033/attachment-0001.htm>


More information about the openbmc mailing list