gpio: intel_gpio: Clear tx state bit when setting output
authorWolfgang Wallner <wolfgang.wallner@br-automation.com>
Mon, 3 Feb 2020 10:38:05 +0000 (11:38 +0100)
committerBin Meng <bmeng.cn@gmail.com>
Tue, 4 Feb 2020 04:54:55 +0000 (12:54 +0800)
Add missing 'PAD_CFG0_TX_STATE' to the clear mask for pcr_clrsetbits32().
Otherwise this bit cannot be cleared again after it has been set once.

Signed-off-by: Wolfgang Wallner <wolfgang.wallner@br-automation.com>
Reviewed-by: Simon Glass <sjg@chromium.org>
Reviewed-by: Bin Meng <bmeng.cn@gmail.com>
drivers/gpio/intel_gpio.c

index b05cfc4aeda3208ade962b5610924972dce5467a..be91626cc5eae40629998fa709b603247a779773 100644 (file)
@@ -41,7 +41,7 @@ static int intel_gpio_direction_output(struct udevice *dev, uint offset,
 
        pcr_clrsetbits32(pinctrl, config_offset,
                         PAD_CFG0_MODE_MASK | PAD_CFG0_RX_STATE |
-                                 PAD_CFG0_TX_DISABLE,
+                                 PAD_CFG0_TX_DISABLE | PAD_CFG0_TX_STATE,
                         PAD_CFG0_MODE_GPIO | PAD_CFG0_RX_DISABLE |
                                  (value ? PAD_CFG0_TX_STATE : 0));