[PATCH v3 1/2] hwmon: (pmbus) Add Delta AHE-50DC fan control module driver

Guenter Roeck linux at roeck-us.net
Wed Dec 8 11:54:11 AEDT 2021

On 12/7/21 4:41 PM, Zev Weiss wrote:
> On Tue, Dec 07, 2021 at 03:15:18PM PST, Guenter Roeck wrote:
>> On 12/7/21 1:53 PM, Zev Weiss wrote:
>>> On Tue, Dec 07, 2021 at 11:44:01AM PST, Guenter Roeck wrote:
>>>> On 12/7/21 11:22 AM, Zev Weiss wrote:
>>>>> On Tue, Dec 07, 2021 at 09:50:15AM PST, Guenter Roeck wrote:
>>>>>> On Mon, Dec 06, 2021 at 11:15:20PM -0800, Zev Weiss wrote:
>>>>>>> This device is an integrated module of the Delta AHE-50DC Open19 power
>>>>>>> shelf.  For lack of proper documentation, this driver has been developed
>>>>>>> referencing an existing (GPL) driver that was included in a code release
>>>>>>> from LinkedIn [1].  It provides four fan speeds, four temperatures, and
>>>>>>> one voltage reading, as well as a handful of warning and fault
>>>>>>> indicators.
>>>>>>> [1] https://github.com/linkedin/o19-bmc-firmware/blob/master/meta-openbmc/meta-linkedin/meta-deltapower/recipes-kernel/fancontrol-mod/files/fancontrol.c
>>>>>> Hmm, that reference isn't really accurate anymore. I think it would be
>>>>>> better to just say that the device was found to be PMBus compliant.
>>>>> Sure, will do.
>>>> Makes me wonder: How do you know that the referenced driver is for Delta AHE-50DC ?
>>> We'd been waiting for the source code for the software it ships with for a while, and were finally provided with that repo; everything I've observed from the factory software is consistent with the code in that driver.  A sampling:
>> I assume you mean "Delta AHE-50DC" when you refer to "it".
> Yes.
>> [ ... ]
>>>> Can you check this with real hardware, by any chance ?
>>> If you mean running that code on it, yes -- here's the userspace utility that invokes that library routine:
>>>     root at bmc-oob:~# fan-util.sh
>>>     fan1 speed: 7860 RPM
>>>     fan2 speed: 7860 RPM
>>>     fan3 speed: 7620 RPM
>>>     fan4 speed: 7560 RPM
>>>     temperature1: 29.20 C
>>>     temperature2: 27.80 C
>>>     temperature3: 28.50 C
>>>     temperature4: 30.20 C
>>>     vin_undervolt_fault: no
>>>     overtemperature_warning: no
>>>     fan_fault: no
>>>     fan_warning: no
>>>     fan_status: ok
>> That doesn't really tell me anything in the context of the driver you submitted.
>> Would it be possible to install your driver and provide the output from the
>> "sensors" command ? It should match the information from the proprietary
>> driver/tool.
> Thanks, in doing so I realized I'd neglected to prevent reads from unsupported registers in the read_word_data function, which was leading to the driver producing sysfs files for meaningless sensor limits that the device doesn't actually support.  With that fix (which I'll include in v4):

What a surprise. See drivers/hwmon/pmbus/dps920ab.c; that seems to be
a common theme for devices from Delta. I would suggest to add a similar


More information about the openbmc mailing list