drivers: gpio: pca95xx: do not write to output regs if pin is input
Remove unconditional write to PCA95xx output registers in setup_pin_dir, and only write to output registers if selected pin is configured as an output. Fixes #45774 Signed-off-by: Daniel DeGrasse <daniel.degrasse@nxp.com>
This commit is contained in:
parent
e15523d198
commit
2675fb4ce3
1 changed files with 5 additions and 5 deletions
|
@ -1,6 +1,7 @@
|
|||
/*
|
||||
* Copyright (c) 2015 Intel Corporation.
|
||||
* Copyright (c) 2020 Norbit ODM AS
|
||||
* Copyright 2022 NXP
|
||||
*
|
||||
* SPDX-License-Identifier: Apache-2.0
|
||||
*/
|
||||
|
@ -263,16 +264,15 @@ static int setup_pin_dir(const struct device *dev, uint32_t pin, int flags)
|
|||
} else if ((flags & GPIO_OUTPUT_INIT_LOW) != 0U) {
|
||||
reg_out &= ~BIT(pin);
|
||||
}
|
||||
ret = update_output_regs(dev, reg_out);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
reg_dir &= ~BIT(pin);
|
||||
} else {
|
||||
reg_dir |= BIT(pin);
|
||||
}
|
||||
|
||||
ret = update_output_regs(dev, reg_out);
|
||||
if (ret != 0) {
|
||||
return ret;
|
||||
}
|
||||
|
||||
ret = update_direction_regs(dev, reg_dir);
|
||||
|
||||
return ret;
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue