mirror of
git://git.yoctoproject.org/linux-yocto.git
synced 2025-10-22 15:03:53 +02:00
hwmon: (pmbus/ucd9000) Fix error in ucd9000_gpio_set
The GPIO output functionality does not work as intended. The ucd9000_gpio_set function should set UCD9000_GPIO_CONFIG_OUT_VALUE (bit 2) in order to change the output value of the selected GPIO. Instead UCD9000_GPIO_CONFIG_STATUS (bit 3) is set, but this is a read-only value. This patch fixes the mistake and provides the intended functionality of the GPIOs. See UCD90xxx Sequencer and System Health Controller PMBus Command SLVU352C section 10.43 for reference. Signed-off-by: Torben Nielsen <t8927095@gmail.com> Link: https://lore.kernel.org/r/20250718093644.356085-2-t8927095@gmail.com Signed-off-by: Guenter Roeck <linux@roeck-us.net>
This commit is contained in:
parent
3e8e93cbb8
commit
ce3cf7c8a1
|
|
@ -226,15 +226,15 @@ static int ucd9000_gpio_set(struct gpio_chip *gc, unsigned int offset,
|
|||
}
|
||||
|
||||
if (value) {
|
||||
if (ret & UCD9000_GPIO_CONFIG_STATUS)
|
||||
if (ret & UCD9000_GPIO_CONFIG_OUT_VALUE)
|
||||
return 0;
|
||||
|
||||
ret |= UCD9000_GPIO_CONFIG_STATUS;
|
||||
ret |= UCD9000_GPIO_CONFIG_OUT_VALUE;
|
||||
} else {
|
||||
if (!(ret & UCD9000_GPIO_CONFIG_STATUS))
|
||||
if (!(ret & UCD9000_GPIO_CONFIG_OUT_VALUE))
|
||||
return 0;
|
||||
|
||||
ret &= ~UCD9000_GPIO_CONFIG_STATUS;
|
||||
ret &= ~UCD9000_GPIO_CONFIG_OUT_VALUE;
|
||||
}
|
||||
|
||||
ret |= UCD9000_GPIO_CONFIG_ENABLE;
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user