drivers: gpio: xec: Apply initialization value after pin config.
Update GPIO grouped output after pin control is updated. Signed-off-by: Jose Alberto Meza <jose.a.meza.arellano@intel.com>
This commit is contained in:
parent
6b41ce5b67
commit
8fa9659aea
1 changed files with 8 additions and 5 deletions
|
@ -75,11 +75,6 @@ static int gpio_xec_configure(struct device *dev,
|
||||||
mask |= MCHP_GPIO_CTRL_DIR_MASK;
|
mask |= MCHP_GPIO_CTRL_DIR_MASK;
|
||||||
mask |= MCHP_GPIO_CTRL_INPAD_DIS_MASK;
|
mask |= MCHP_GPIO_CTRL_INPAD_DIS_MASK;
|
||||||
if ((flags & GPIO_OUTPUT) != 0U) {
|
if ((flags & GPIO_OUTPUT) != 0U) {
|
||||||
if ((flags & GPIO_OUTPUT_INIT_HIGH) != 0U) {
|
|
||||||
*gpio_out_reg |= BIT(pin);
|
|
||||||
} else if ((flags & GPIO_OUTPUT_INIT_LOW) != 0U) {
|
|
||||||
*gpio_out_reg &= ~BIT(pin);
|
|
||||||
}
|
|
||||||
pcr1 |= MCHP_GPIO_CTRL_DIR_OUTPUT;
|
pcr1 |= MCHP_GPIO_CTRL_DIR_OUTPUT;
|
||||||
} else {
|
} else {
|
||||||
/* GPIO_INPUT */
|
/* GPIO_INPUT */
|
||||||
|
@ -122,6 +117,14 @@ static int gpio_xec_configure(struct device *dev,
|
||||||
current_pcr1 = config->pcr1_base + pin;
|
current_pcr1 = config->pcr1_base + pin;
|
||||||
*current_pcr1 = (*current_pcr1 & ~mask) | pcr1;
|
*current_pcr1 = (*current_pcr1 & ~mask) | pcr1;
|
||||||
|
|
||||||
|
if ((flags & GPIO_OUTPUT) != 0U) {
|
||||||
|
if ((flags & GPIO_OUTPUT_INIT_HIGH) != 0U) {
|
||||||
|
*gpio_out_reg |= BIT(pin);
|
||||||
|
} else if ((flags & GPIO_OUTPUT_INIT_LOW) != 0U) {
|
||||||
|
*gpio_out_reg &= ~BIT(pin);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue