Просмотр исходного кода

pinctrl: qcom-spmi: Fix pin direction configuration

Pin direction configuration was incorrectly overwritten
by output and function values in set_mux(). Fix this.

Signed-off-by: Ivan T. Ivanov <ivan.ivanov@linaro.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Ivan T. Ivanov 10 лет назад
Родитель
Сommit
dc391502fd
2 измененных файлов с 2 добавлено и 0 удалено
  1. 1 0
      drivers/pinctrl/qcom/pinctrl-spmi-gpio.c
  2. 1 0
      drivers/pinctrl/qcom/pinctrl-spmi-mpp.c

+ 1 - 0
drivers/pinctrl/qcom/pinctrl-spmi-gpio.c

@@ -260,6 +260,7 @@ static int pmic_gpio_set_mux(struct pinctrl_dev *pctldev, unsigned function,
 			val = 1;
 			val = 1;
 	}
 	}
 
 
+	val = val << PMIC_GPIO_REG_MODE_DIR_SHIFT;
 	val |= pad->function << PMIC_GPIO_REG_MODE_FUNCTION_SHIFT;
 	val |= pad->function << PMIC_GPIO_REG_MODE_FUNCTION_SHIFT;
 	val |= pad->out_value & PMIC_GPIO_REG_MODE_VALUE_SHIFT;
 	val |= pad->out_value & PMIC_GPIO_REG_MODE_VALUE_SHIFT;
 
 

+ 1 - 0
drivers/pinctrl/qcom/pinctrl-spmi-mpp.c

@@ -370,6 +370,7 @@ static int pmic_mpp_set_mux(struct pinctrl_dev *pctldev, unsigned function,
 		}
 		}
 	}
 	}
 
 
+	val = val << PMIC_MPP_REG_MODE_DIR_SHIFT;
 	val |= pad->function << PMIC_MPP_REG_MODE_FUNCTION_SHIFT;
 	val |= pad->function << PMIC_MPP_REG_MODE_FUNCTION_SHIFT;
 	val |= pad->out_value & PMIC_MPP_REG_MODE_VALUE_MASK;
 	val |= pad->out_value & PMIC_MPP_REG_MODE_VALUE_MASK;