* [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION
@ 2019-11-12 14:18 Matti Vaittinen
2019-11-12 17:01 ` Bjorn Andersson
` (4 more replies)
0 siblings, 5 replies; 7+ messages in thread
From: Matti Vaittinen @ 2019-11-12 14:18 UTC (permalink / raw)
To: matti.vaittinen, mazziesaccount
Cc: Linus Walleij, Eric Anholt, Stefan Wahren, Florian Fainelli,
Ray Jui, Scott Branden, bcm-kernel-feedback-list, Sean Wang,
Matthias Brugger, Jason Cooper, Andrew Lunn, Gregory Clement,
Sebastian Hesselbarth, Ludovic Desroches, Nicolas Ferre,
Alexandre Belloni, Chen-Yu Tsai, Paul Cercueil, Neil Armstrong,
Heiko Stuebner, Geert Uytterhoeven, Patrice Chotard,
Maxime Coquelin, Alexandre Torgue, Andy Gross, Bjorn Andersson,
linux-gpio, linux-rpi-kernel, linux-arm-kernel, linux-kernel,
linux-mediatek, linux-oxnas, linux-rockchip, linux-renesas-soc,
linux-stm32, linux-arm-msm
Use newly added GPIO defines GPIO_LINE_DIRECTION_IN and
GPIO_LINE_DIRECTION_OUT instead of using hard-coded 1 and 0.
Main benefit is to make it easier to see which values mean IN and which
OUT. As a side effect this helps GPIO framework to change the direction
defines to something else if ever needed.
Please note that return value from get_direction call on
pinctrl-axp209 driver was changed. Previously pinctrl-axp209 might have
returned value 2 for direction INPUT.
Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com>
---
drivers/pinctrl/bcm/pinctrl-bcm2835.c | 5 ++++-
drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 5 ++++-
drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 5 ++++-
drivers/pinctrl/mediatek/pinctrl-paris.c | 5 ++++-
drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 5 ++++-
drivers/pinctrl/nomadik/pinctrl-nomadik.c | 7 +++++--
drivers/pinctrl/pinctrl-amd.c | 5 ++++-
drivers/pinctrl/pinctrl-at91.c | 5 ++++-
drivers/pinctrl/pinctrl-axp209.c | 7 +++++--
drivers/pinctrl/pinctrl-ingenic.c | 14 ++++++++++----
drivers/pinctrl/pinctrl-ocelot.c | 5 ++++-
drivers/pinctrl/pinctrl-oxnas.c | 5 ++++-
drivers/pinctrl/pinctrl-pic32.c | 5 ++++-
drivers/pinctrl/pinctrl-pistachio.c | 5 ++++-
drivers/pinctrl/pinctrl-rk805.c | 7 +++++--
drivers/pinctrl/pinctrl-rockchip.c | 5 ++++-
drivers/pinctrl/pinctrl-rza1.c | 5 ++++-
drivers/pinctrl/pinctrl-rza2.c | 6 +++---
drivers/pinctrl/pinctrl-st.c | 14 +++++++++++---
drivers/pinctrl/pinctrl-stmfx.c | 17 ++++++++++++++---
drivers/pinctrl/pinctrl-sx150x.c | 9 ++++++---
drivers/pinctrl/qcom/pinctrl-msm.c | 4 ++--
drivers/pinctrl/stm32/pinctrl-stm32.c | 4 ++--
drivers/pinctrl/vt8500/pinctrl-wmt.c | 6 ++++--
24 files changed, 119 insertions(+), 41 deletions(-)
diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
index 0de1a3a96984..d3294964bb4e 100644
--- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c
+++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c
@@ -322,7 +322,10 @@ static int bcm2835_gpio_get_direction(struct gpio_chip *chip, unsigned int offse
if (fsel > BCM2835_FSEL_GPIO_OUT)
return -EINVAL;
- return (fsel == BCM2835_FSEL_GPIO_IN);
+ if (fsel == BCM2835_FSEL_GPIO_IN)
+ return GPIO_LINE_DIRECTION_IN;
+
+ return GPIO_LINE_DIRECTION_OUT;
}
static void bcm2835_gpio_set(struct gpio_chip *chip, unsigned offset, int value)
diff --git a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
index 42f7ab383ad9..3a0a9735ebd4 100644
--- a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
+++ b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c
@@ -357,7 +357,10 @@ static int iproc_gpio_get_direction(struct gpio_chip *gc, unsigned int gpio)
unsigned int offset = IPROC_GPIO_REG(gpio, IPROC_GPIO_OUT_EN_OFFSET);
unsigned int shift = IPROC_GPIO_SHIFT(gpio);
- return !(readl(chip->base + offset) & BIT(shift));
+ if (readl(chip->base + offset) & BIT(shift))
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static void iproc_gpio_set(struct gpio_chip *gc, unsigned gpio, int val)
diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
index 53f52b9a0acd..4c11217e7d25 100644
--- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
+++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c
@@ -804,7 +804,10 @@ static int mtk_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
pctl->devdata->spec_dir_set(®_addr, offset);
regmap_read(pctl->regmap1, reg_addr, &read_val);
- return !(read_val & bit);
+ if (read_val & bit)
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int mtk_gpio_get(struct gpio_chip *chip, unsigned offset)
diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c
index 923264d0e9ef..d70bb3aec2c9 100644
--- a/drivers/pinctrl/mediatek/pinctrl-paris.c
+++ b/drivers/pinctrl/mediatek/pinctrl-paris.c
@@ -699,7 +699,10 @@ static int mtk_gpio_get_direction(struct gpio_chip *chip, unsigned int gpio)
if (err)
return err;
- return !value;
+ if (value)
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio)
diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
index f2f5fcd9a237..73e41515d978 100644
--- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
+++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c
@@ -403,7 +403,10 @@ static int armada_37xx_gpio_get_direction(struct gpio_chip *chip,
mask = BIT(offset);
regmap_read(info->regmap, reg, &val);
- return !(val & mask);
+ if (val & mask)
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int armada_37xx_gpio_direction_output(struct gpio_chip *chip,
diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
index 2a8190b11d10..21f0e044ef2d 100644
--- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c
+++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c
@@ -850,11 +850,14 @@ static int nmk_gpio_get_dir(struct gpio_chip *chip, unsigned offset)
clk_enable(nmk_chip->clk);
- dir = !(readl(nmk_chip->addr + NMK_GPIO_DIR) & BIT(offset));
+ dir = readl(nmk_chip->addr + NMK_GPIO_DIR) & BIT(offset);
clk_disable(nmk_chip->clk);
- return dir;
+ if (dir)
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int nmk_gpio_make_input(struct gpio_chip *chip, unsigned offset)
diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c
index 2c61141519f8..9331a6b84acd 100644
--- a/drivers/pinctrl/pinctrl-amd.c
+++ b/drivers/pinctrl/pinctrl-amd.c
@@ -46,7 +46,10 @@ static int amd_gpio_get_direction(struct gpio_chip *gc, unsigned offset)
pin_reg = readl(gpio_dev->base + offset * 4);
raw_spin_unlock_irqrestore(&gpio_dev->lock, flags);
- return !(pin_reg & BIT(OUTPUT_ENABLE_OFF));
+ if (pin_reg & BIT(OUTPUT_ENABLE_OFF))
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int amd_gpio_direction_input(struct gpio_chip *gc, unsigned offset)
diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c
index d6e7e9f0ddec..a3444c638337 100644
--- a/drivers/pinctrl/pinctrl-at91.c
+++ b/drivers/pinctrl/pinctrl-at91.c
@@ -1414,7 +1414,10 @@ static int at91_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
u32 osr;
osr = readl_relaxed(pio + PIO_OSR);
- return !(osr & mask);
+ if (osr & mask)
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int at91_gpio_direction_input(struct gpio_chip *chip, unsigned offset)
diff --git a/drivers/pinctrl/pinctrl-axp209.c b/drivers/pinctrl/pinctrl-axp209.c
index be5b645815e5..207cbae3a7bf 100644
--- a/drivers/pinctrl/pinctrl-axp209.c
+++ b/drivers/pinctrl/pinctrl-axp209.c
@@ -149,13 +149,16 @@ static int axp20x_gpio_get_direction(struct gpio_chip *chip,
* going to change the value soon anyway. Default to output.
*/
if ((val & AXP20X_GPIO_FUNCTIONS) > 2)
- return 0;
+ return GPIO_LINE_DIRECTION_OUT;
/*
* The GPIO directions are the three lowest values.
* 2 is input, 0 and 1 are output
*/
- return val & 2;
+ if (val & 2)
+ return GPIO_LINE_DIRECTION_IN;
+
+ return GPIO_LINE_DIRECTION_OUT;
}
static int axp20x_gpio_output(struct gpio_chip *chip, unsigned int offset,
diff --git a/drivers/pinctrl/pinctrl-ingenic.c b/drivers/pinctrl/pinctrl-ingenic.c
index 6e2683016c1f..faee2f33792b 100644
--- a/drivers/pinctrl/pinctrl-ingenic.c
+++ b/drivers/pinctrl/pinctrl-ingenic.c
@@ -1643,13 +1643,19 @@ static int ingenic_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
struct ingenic_pinctrl *jzpc = jzgc->jzpc;
unsigned int pin = gc->base + offset;
- if (jzpc->version >= ID_JZ4760)
- return ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1);
+ if (jzpc->version >= ID_JZ4760) {
+ if (ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1))
+ return GPIO_LINE_DIRECTION_IN;
+ return GPIO_LINE_DIRECTION_OUT;
+ }
if (ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_SELECT))
- return true;
+ return GPIO_LINE_DIRECTION_IN;
+
+ if (ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_DIR))
+ return GPIO_LINE_DIRECTION_OUT;
- return !ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_DIR);
+ return GPIO_LINE_DIRECTION_IN;
}
static const struct pinctrl_ops ingenic_pctlops = {
diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
index fb76fb2e9ea5..c3ae4b070c3d 100644
--- a/drivers/pinctrl/pinctrl-ocelot.c
+++ b/drivers/pinctrl/pinctrl-ocelot.c
@@ -604,7 +604,10 @@ static int ocelot_gpio_get_direction(struct gpio_chip *chip,
regmap_read(info->map, REG(OCELOT_GPIO_OE, info, offset), &val);
- return !(val & BIT(offset % 32));
+ if (val & BIT(offset % 32))
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int ocelot_gpio_direction_input(struct gpio_chip *chip,
diff --git a/drivers/pinctrl/pinctrl-oxnas.c b/drivers/pinctrl/pinctrl-oxnas.c
index 55488ca246f1..7d6d17b94ab9 100644
--- a/drivers/pinctrl/pinctrl-oxnas.c
+++ b/drivers/pinctrl/pinctrl-oxnas.c
@@ -756,7 +756,10 @@ static int oxnas_gpio_get_direction(struct gpio_chip *chip,
struct oxnas_gpio_bank *bank = gpiochip_get_data(chip);
u32 mask = BIT(offset);
- return !(readl_relaxed(bank->reg_base + OUTPUT_EN) & mask);
+ if (readl_relaxed(bank->reg_base + OUTPUT_EN) & mask)
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int oxnas_gpio_direction_input(struct gpio_chip *chip,
diff --git a/drivers/pinctrl/pinctrl-pic32.c b/drivers/pinctrl/pinctrl-pic32.c
index e7f6dd5ab578..dd65178fbda2 100644
--- a/drivers/pinctrl/pinctrl-pic32.c
+++ b/drivers/pinctrl/pinctrl-pic32.c
@@ -1990,7 +1990,10 @@ static int pic32_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
{
struct pic32_gpio_bank *bank = gpiochip_get_data(chip);
- return !!(readl(bank->reg_base + TRIS_REG) & BIT(offset));
+ if (readl(bank->reg_base + TRIS_REG) & BIT(offset))
+ return GPIO_LINE_DIRECTION_IN;
+
+ return GPIO_LINE_DIRECTION_OUT;
}
static void pic32_gpio_irq_ack(struct irq_data *data)
diff --git a/drivers/pinctrl/pinctrl-pistachio.c b/drivers/pinctrl/pinctrl-pistachio.c
index 379e9a6a6d89..c33375f5c5ff 100644
--- a/drivers/pinctrl/pinctrl-pistachio.c
+++ b/drivers/pinctrl/pinctrl-pistachio.c
@@ -1166,7 +1166,10 @@ static int pistachio_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
{
struct pistachio_gpio_bank *bank = gpiochip_get_data(chip);
- return !(gpio_readl(bank, GPIO_OUTPUT_EN) & BIT(offset));
+ if (gpio_readl(bank, GPIO_OUTPUT_EN) & BIT(offset))
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int pistachio_gpio_get(struct gpio_chip *chip, unsigned offset)
diff --git a/drivers/pinctrl/pinctrl-rk805.c b/drivers/pinctrl/pinctrl-rk805.c
index 26adbe9d6d42..cccbe072274e 100644
--- a/drivers/pinctrl/pinctrl-rk805.c
+++ b/drivers/pinctrl/pinctrl-rk805.c
@@ -184,7 +184,7 @@ static int rk805_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
/* default output*/
if (!pci->pin_cfg[offset].dir_msk)
- return 0;
+ return GPIO_LINE_DIRECTION_OUT;
ret = regmap_read(pci->rk808->regmap,
pci->pin_cfg[offset].reg,
@@ -194,7 +194,10 @@ static int rk805_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
return ret;
}
- return !(val & pci->pin_cfg[offset].dir_msk);
+ if (val & pci->pin_cfg[offset].dir_msk)
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static const struct gpio_chip rk805_gpio_chip = {
diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c
index dc0bbf198cbc..cf5181ad817e 100644
--- a/drivers/pinctrl/pinctrl-rockchip.c
+++ b/drivers/pinctrl/pinctrl-rockchip.c
@@ -2211,7 +2211,10 @@ static int rockchip_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
data = readl_relaxed(bank->reg_base + GPIO_SWPORT_DDR);
clk_disable(bank->clk);
- return !(data & BIT(offset));
+ if (data & BIT(offset))
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
/*
diff --git a/drivers/pinctrl/pinctrl-rza1.c b/drivers/pinctrl/pinctrl-rza1.c
index 215db220d795..002bd7346562 100644
--- a/drivers/pinctrl/pinctrl-rza1.c
+++ b/drivers/pinctrl/pinctrl-rza1.c
@@ -777,7 +777,10 @@ static int rza1_gpio_get_direction(struct gpio_chip *chip, unsigned int gpio)
{
struct rza1_port *port = gpiochip_get_data(chip);
- return !!rza1_get_bit(port, RZA1_PM_REG, gpio);
+ if (rza1_get_bit(port, RZA1_PM_REG, gpio))
+ return GPIO_LINE_DIRECTION_IN;
+
+ return GPIO_LINE_DIRECTION_OUT;
}
static int rza1_gpio_direction_input(struct gpio_chip *chip,
diff --git a/drivers/pinctrl/pinctrl-rza2.c b/drivers/pinctrl/pinctrl-rza2.c
index 3be1d833bf25..0fca1fbc9480 100644
--- a/drivers/pinctrl/pinctrl-rza2.c
+++ b/drivers/pinctrl/pinctrl-rza2.c
@@ -135,10 +135,10 @@ static int rza2_chip_get_direction(struct gpio_chip *chip, unsigned int offset)
reg16 = (reg16 >> (pin * 2)) & RZA2_PDR_MASK;
if (reg16 == RZA2_PDR_OUTPUT)
- return 0;
+ return GPIO_LINE_DIRECTION_OUT;
if (reg16 == RZA2_PDR_INPUT)
- return 1;
+ return GPIO_LINE_DIRECTION_IN;
/*
* This GPIO controller has a default Hi-Z state that is not input or
@@ -146,7 +146,7 @@ static int rza2_chip_get_direction(struct gpio_chip *chip, unsigned int offset)
*/
rza2_pin_to_gpio(priv->base, offset, 1);
- return 1;
+ return GPIO_LINE_DIRECTION_IN;
}
static int rza2_chip_direction_input(struct gpio_chip *chip,
diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c
index 00db8b9efb2c..aff589ce446f 100644
--- a/drivers/pinctrl/pinctrl-st.c
+++ b/drivers/pinctrl/pinctrl-st.c
@@ -746,7 +746,10 @@ static int st_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
function = st_pctl_get_pin_function(&pc, offset);
if (function) {
st_pinconf_get_direction(&pc, offset, &config);
- return !ST_PINCONF_UNPACK_OE(config);
+ if (ST_PINCONF_UNPACK_OE(config))
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
/*
@@ -758,7 +761,10 @@ static int st_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
direction |= ((value >> offset) & 0x1) << i;
}
- return (direction == ST_GPIO_DIRECTION_IN);
+ if (direction == ST_GPIO_DIRECTION_IN)
+ return GPIO_LINE_DIRECTION_IN;
+
+ return GPIO_LINE_DIRECTION_OUT;
}
/* Pinctrl Groups */
@@ -996,6 +1002,7 @@ static void st_pinconf_dbg_show(struct pinctrl_dev *pctldev,
unsigned int function;
int offset = st_gpio_pin(pin_id);
char f[16];
+ int oe;
mutex_unlock(&pctldev->mutex);
pc = st_get_pio_control(pctldev, pin_id);
@@ -1008,10 +1015,11 @@ static void st_pinconf_dbg_show(struct pinctrl_dev *pctldev,
else
snprintf(f, 5, "GPIO");
+ oe = st_gpio_get_direction(&pc_to_bank(pc)->gpio_chip, offset);
seq_printf(s, "[OE:%d,PU:%ld,OD:%ld]\t%s\n"
"\t\t[retime:%ld,invclk:%ld,clknotdat:%ld,"
"de:%ld,rt-clk:%ld,rt-delay:%ld]",
- !st_gpio_get_direction(&pc_to_bank(pc)->gpio_chip, offset),
+ (oe == GPIO_LINE_DIRECTION_OUT),
ST_PINCONF_UNPACK_PU(config),
ST_PINCONF_UNPACK_OD(config),
f,
diff --git a/drivers/pinctrl/pinctrl-stmfx.c b/drivers/pinctrl/pinctrl-stmfx.c
index 564660028fcc..132a0f217692 100644
--- a/drivers/pinctrl/pinctrl-stmfx.c
+++ b/drivers/pinctrl/pinctrl-stmfx.c
@@ -134,10 +134,14 @@ static int stmfx_gpio_get_direction(struct gpio_chip *gc, unsigned int offset)
ret = regmap_read(pctl->stmfx->map, reg, &val);
/*
* On stmfx, gpio pins direction is (0)input, (1)output.
- * .get_direction returns 0=out, 1=in
*/
+ if (ret)
+ return ret;
- return ret ? ret : !(val & mask);
+ if (val & mask)
+ return GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int stmfx_gpio_direction_input(struct gpio_chip *gc, unsigned int offset)
@@ -223,6 +227,13 @@ static int stmfx_pinconf_get(struct pinctrl_dev *pctldev,
dir = stmfx_gpio_get_direction(&pctl->gpio_chip, pin);
if (dir < 0)
return dir;
+
+ /*
+ * Currently the gpiolib IN is 1 and OUT is 0 but let's not count
+ * on it just to be on the safe side also in the future :)
+ */
+ dir = (dir == GPIO_LINE_DIRECTION_IN) ? 1 : 0;
+
type = stmfx_pinconf_get_type(pctl, pin);
if (type < 0)
return type;
@@ -360,7 +371,7 @@ static void stmfx_pinconf_dbg_show(struct pinctrl_dev *pctldev,
if (val < 0)
return;
- if (!dir) {
+ if (dir == GPIO_LINE_DIRECTION_OUT) {
seq_printf(s, "output %s ", val ? "high" : "low");
if (type)
seq_printf(s, "open drain %s internal pull-up ",
diff --git a/drivers/pinctrl/pinctrl-sx150x.c b/drivers/pinctrl/pinctrl-sx150x.c
index 566665931a04..6e74bd87d959 100644
--- a/drivers/pinctrl/pinctrl-sx150x.c
+++ b/drivers/pinctrl/pinctrl-sx150x.c
@@ -391,13 +391,16 @@ static int sx150x_gpio_get_direction(struct gpio_chip *chip,
int ret;
if (sx150x_pin_is_oscio(pctl, offset))
- return false;
+ return GPIO_LINE_DIRECTION_OUT;
ret = regmap_read(pctl->regmap, pctl->data->reg_dir, &value);
if (ret < 0)
return ret;
- return !!(value & BIT(offset));
+ if (value & BIT(offset))
+ return GPIO_LINE_DIRECTION_IN;
+
+ return GPIO_LINE_DIRECTION_OUT;
}
static int sx150x_gpio_get(struct gpio_chip *chip, unsigned int offset)
@@ -687,7 +690,7 @@ static int sx150x_pinconf_get(struct pinctrl_dev *pctldev, unsigned int pin,
if (ret < 0)
return ret;
- if (ret)
+ if (ret == GPIO_LINE_DIRECTION_IN)
return -EINVAL;
ret = sx150x_gpio_get(&pctl->gpio, pin);
diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c
index 763da0be10d6..8844ca1261d5 100644
--- a/drivers/pinctrl/qcom/pinctrl-msm.c
+++ b/drivers/pinctrl/qcom/pinctrl-msm.c
@@ -485,8 +485,8 @@ static int msm_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
val = msm_readl_ctl(pctrl, g);
- /* 0 = output, 1 = input */
- return val & BIT(g->oe_bit) ? 0 : 1;
+ return val & BIT(g->oe_bit) ? GPIO_LINE_DIRECTION_OUT :
+ GPIO_LINE_DIRECTION_IN;
}
static int msm_gpio_get(struct gpio_chip *chip, unsigned offset)
diff --git a/drivers/pinctrl/stm32/pinctrl-stm32.c b/drivers/pinctrl/stm32/pinctrl-stm32.c
index 2d5e0435af0a..72e0669ca7c8 100644
--- a/drivers/pinctrl/stm32/pinctrl-stm32.c
+++ b/drivers/pinctrl/stm32/pinctrl-stm32.c
@@ -283,9 +283,9 @@ static int stm32_gpio_get_direction(struct gpio_chip *chip, unsigned int offset)
stm32_pmx_get_mode(bank, pin, &mode, &alt);
if ((alt == 0) && (mode == 0))
- ret = 1;
+ ret = GPIO_LINE_DIRECTION_IN;
else if ((alt == 0) && (mode == 1))
- ret = 0;
+ ret = GPIO_LINE_DIRECTION_OUT;
else
ret = -EINVAL;
diff --git a/drivers/pinctrl/vt8500/pinctrl-wmt.c b/drivers/pinctrl/vt8500/pinctrl-wmt.c
index 4d5cd7d8c760..7f2aceba295a 100644
--- a/drivers/pinctrl/vt8500/pinctrl-wmt.c
+++ b/drivers/pinctrl/vt8500/pinctrl-wmt.c
@@ -486,8 +486,10 @@ static int wmt_gpio_get_direction(struct gpio_chip *chip, unsigned offset)
u32 val;
val = readl_relaxed(data->base + reg_dir);
- /* Return 0 == output, 1 == input */
- return !(val & BIT(bit));
+ if (val & BIT(bit))
+ GPIO_LINE_DIRECTION_OUT;
+
+ return GPIO_LINE_DIRECTION_IN;
}
static int wmt_gpio_get_value(struct gpio_chip *chip, unsigned offset)
--
2.21.0
--
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND
~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =]
^ permalink raw reply related [flat|nested] 7+ messages in thread* Re: [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION 2019-11-12 14:18 [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION Matti Vaittinen @ 2019-11-12 17:01 ` Bjorn Andersson 2019-11-12 18:18 ` Geert Uytterhoeven ` (3 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Bjorn Andersson @ 2019-11-12 17:01 UTC (permalink / raw) To: Matti Vaittinen Cc: mazziesaccount, Linus Walleij, Eric Anholt, Stefan Wahren, Florian Fainelli, Ray Jui, Scott Branden, bcm-kernel-feedback-list, Sean Wang, Matthias Brugger, Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Ludovic Desroches, Nicolas Ferre, Alexandre Belloni, Chen-Yu Tsai, Paul Cercueil, Neil Armstrong, Heiko Stuebner, Geert Uytterhoeven, Patrice Chotard, Maxime Coquelin, Alexandre Torgue, Andy Gross, linux-gpio, linux-rpi-kernel, linux-arm-kernel, linux-kernel, linux-mediatek, linux-oxnas, linux-rockchip, linux-renesas-soc, linux-stm32, linux-arm-msm On Tue 12 Nov 06:18 PST 2019, Matti Vaittinen wrote: > diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c > index 763da0be10d6..8844ca1261d5 100644 > --- a/drivers/pinctrl/qcom/pinctrl-msm.c > +++ b/drivers/pinctrl/qcom/pinctrl-msm.c > @@ -485,8 +485,8 @@ static int msm_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > > val = msm_readl_ctl(pctrl, g); > > - /* 0 = output, 1 = input */ > - return val & BIT(g->oe_bit) ? 0 : 1; > + return val & BIT(g->oe_bit) ? GPIO_LINE_DIRECTION_OUT : > + GPIO_LINE_DIRECTION_IN; > } > For pinctrl-msm Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> Regards, Bjorn ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION 2019-11-12 14:18 [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION Matti Vaittinen 2019-11-12 17:01 ` Bjorn Andersson @ 2019-11-12 18:18 ` Geert Uytterhoeven 2019-11-13 6:30 ` kbuild test robot ` (2 subsequent siblings) 4 siblings, 0 replies; 7+ messages in thread From: Geert Uytterhoeven @ 2019-11-12 18:18 UTC (permalink / raw) To: Matti Vaittinen Cc: Matti Vaittinen, Linus Walleij, Eric Anholt, Stefan Wahren, Florian Fainelli, Ray Jui, Scott Branden, bcm-kernel-feedback-list, Sean Wang, Matthias Brugger, Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Ludovic Desroches, Nicolas Ferre, Alexandre Belloni, Chen-Yu Tsai, Paul Cercueil, Neil Armstrong, Heiko Stuebner, Geert Uytterhoeven, Patrice Chotard, Maxime Coquelin, Alexandre Torgue, Andy Gross, Bjorn Andersson, open list:GPIO SUBSYSTEM, linux-rpi-kernel, Linux ARM, Linux Kernel Mailing List, linux-mediatek, linux-oxnas, open list:ARM/Rockchip SoC..., Linux-Renesas, linux-stm32, linux-arm-msm On Tue, Nov 12, 2019 at 3:18 PM Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> wrote: > Use newly added GPIO defines GPIO_LINE_DIRECTION_IN and > GPIO_LINE_DIRECTION_OUT instead of using hard-coded 1 and 0. > > Main benefit is to make it easier to see which values mean IN and which > OUT. As a side effect this helps GPIO framework to change the direction > defines to something else if ever needed. > > Please note that return value from get_direction call on > pinctrl-axp209 driver was changed. Previously pinctrl-axp209 might have > returned value 2 for direction INPUT. > > Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> For: > drivers/pinctrl/pinctrl-rza1.c | 5 ++++- > drivers/pinctrl/pinctrl-rza2.c | 6 +++--- Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be> Acked-by: Geert Uytterhoeven <geert+renesas@glider.be> Gr{oetje,eeting}s, Geert -- Geert Uytterhoeven -- There's lots of Linux beyond ia32 -- geert@linux-m68k.org In personal conversations with technical people, I call myself a hacker. But when I'm talking to journalists I just say "programmer" or something like that. -- Linus Torvalds ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION 2019-11-12 14:18 [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION Matti Vaittinen 2019-11-12 17:01 ` Bjorn Andersson 2019-11-12 18:18 ` Geert Uytterhoeven @ 2019-11-13 6:30 ` kbuild test robot [not found] ` <ac16492e11899ef4ec981f7f2e84714c7d61d2a7.camel@fi.rohmeurope.com> 2019-11-13 8:53 ` Jacopo Mondi 2020-02-15 5:35 ` Bjorn Andersson 4 siblings, 1 reply; 7+ messages in thread From: kbuild test robot @ 2019-11-13 6:30 UTC (permalink / raw) To: Matti Vaittinen Cc: kbuild-all, matti.vaittinen, mazziesaccount, Linus Walleij, Eric Anholt, Stefan Wahren, Florian Fainelli, Ray Jui, Scott Branden, bcm-kernel-feedback-list, Sean Wang, Matthias Brugger, Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Ludovic Desroches, Nicolas Ferre, Alexandre Belloni, Chen-Yu Tsai, Paul Cercueil, Neil Armstrong, Heiko Stuebner, Geert Uytterhoeven, Patrice Chotard, Maxime Coquelin, Alexandre Torgue, Andy Gross, Bjorn Andersson, linux-gpio, linux-rpi-kernel, linux-arm-kernel, linux-kernel, linux-mediatek, linux-oxnas, linux-rockchip, linux-renesas-soc, linux-stm32, linux-arm-msm [-- Attachment #1: Type: text/plain, Size: 2022 bytes --] Hi Matti, Thank you for the patch! Perhaps something to improve: [auto build test WARNING on 70d97e099bb426ecb3ad4bf31e88dbf2ef4b2e4c] url: https://github.com/0day-ci/linux/commits/Matti-Vaittinen/pinctrl-rza1-remove-unnecerssary-static-inline-function/20191113-114104 base: 70d97e099bb426ecb3ad4bf31e88dbf2ef4b2e4c config: arm-allmodconfig (attached as .config) compiler: arm-linux-gnueabi-gcc (GCC) 7.4.0 reproduce: wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross chmod +x ~/bin/make.cross # save the attached .config to linux build tree GCC_VERSION=7.4.0 make.cross ARCH=arm If you fix the issue, kindly add following tag Reported-by: kbuild test robot <lkp@intel.com> All warnings (new ones prefixed by >>): In file included from drivers/pinctrl/vt8500/pinctrl-wmt.c:9:0: drivers/pinctrl/vt8500/pinctrl-wmt.c: In function 'wmt_gpio_get_direction': include/linux/gpio/driver.h:26:33: warning: statement with no effect [-Wunused-value] #define GPIO_LINE_DIRECTION_OUT 0 ^ >> drivers/pinctrl/vt8500/pinctrl-wmt.c:490:3: note: in expansion of macro 'GPIO_LINE_DIRECTION_OUT' GPIO_LINE_DIRECTION_OUT; ^~~~~~~~~~~~~~~~~~~~~~~ vim +/GPIO_LINE_DIRECTION_OUT +490 drivers/pinctrl/vt8500/pinctrl-wmt.c 479 480 static int wmt_gpio_get_direction(struct gpio_chip *chip, unsigned offset) 481 { 482 struct wmt_pinctrl_data *data = gpiochip_get_data(chip); 483 u32 bank = WMT_BANK_FROM_PIN(offset); 484 u32 bit = WMT_BIT_FROM_PIN(offset); 485 u32 reg_dir = data->banks[bank].reg_dir; 486 u32 val; 487 488 val = readl_relaxed(data->base + reg_dir); 489 if (val & BIT(bit)) > 490 GPIO_LINE_DIRECTION_OUT; 491 492 return GPIO_LINE_DIRECTION_IN; 493 } 494 --- 0-DAY kernel test infrastructure Open Source Technology Center https://lists.01.org/hyperkitty/list/kbuild-all@lists.01.org Intel Corporation [-- Attachment #2: .config.gz --] [-- Type: application/gzip, Size: 71989 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
[parent not found: <ac16492e11899ef4ec981f7f2e84714c7d61d2a7.camel@fi.rohmeurope.com>]
[parent not found: <CACRpkdYAmye8wT39fqy=LN+6pXDvrcQ0SyDTCvG7aSgea3Uumw@mail.gmail.com>]
[parent not found: <81f96837457028ad9eeb690776526701d5b1bc8c.camel@fi.rohmeurope.com>]
* Re: [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION [not found] ` <81f96837457028ad9eeb690776526701d5b1bc8c.camel@fi.rohmeurope.com> @ 2020-02-14 13:59 ` Vaittinen, Matti 0 siblings, 0 replies; 7+ messages in thread From: Vaittinen, Matti @ 2020-02-14 13:59 UTC (permalink / raw) To: linus.walleij@linaro.org; +Cc: linux-gpio@vger.kernel.org On Fri, 2020-02-14 at 13:14 +0200, Matti Vaittinen wrote: > Hi-deeee-Ho Peeps! > > > On Wed, 2019-11-13 at 10:40 +0100, Linus Walleij wrote: > > On Wed, Nov 13, 2019 at 7:52 AM Vaittinen, Matti > > <Matti.Vaittinen@fi.rohmeurope.com> wrote: > > > On Wed, 2019-11-13 at 14:30 +0800, kbuild test robot wrote: > > > > Hi Matti, > > > > > > > > Thank you for the patch! Perhaps something to improve: > > > > > > > > [auto build test WARNING on > > > > 70d97e099bb426ecb3ad4bf31e88dbf2ef4b2e4c] > > > > > > > > 480 static int wmt_gpio_get_direction(struct > > > > gpio_chip > > > > *chip, unsigned offset) > > > > 481 { > > > > 482 struct wmt_pinctrl_data *data = > > > > gpiochip_get_data(chip); > > > > 483 u32 bank = WMT_BANK_FROM_PIN(offset); > > > > 484 u32 bit = WMT_BIT_FROM_PIN(offset); > > > > 485 u32 reg_dir = data->banks[bank].reg_dir; > > > > 486 u32 val; > > > > 487 > > > > 488 val = readl_relaxed(data->base + > > > > reg_dir); > > > > 489 if (val & BIT(bit)) > > > > > 490 GPIO_LINE_DIRECTION_OUT; > > > > > > Right. Return is missing. I think I already fixed this - I guess > > > I > > > sent > > > wrong version... Sorry guys. I'll do v3 with only this return > > > added > > > - > > > and I'll send it to limited amount of recipients as I think most > > > of > > > you > > > guys may not be interested. Probably to Linus W, Geert and GPIO > > > list > > > only. Let me know if you want to see the v3 (or other subsequent > > > patches) > > I just noticed this was never merged even though I was sure I sent a > fixed version. It took me a while but I guess I managed to dig out > the > reason... > > First I sent v2 with the return missing: > https://lore.kernel.org/linux-gpio/20191112141819.GA22076@localhost.localdomain/ > > And then I did indeed send a fixed version: > https://lore.kernel.org/linux-gpio/20191113071501.GA22158@localhost.localdomain/#Z30drivers:pinctrl:vt8500:pinctrl-wmt.c > > ...but titled this as v2 too. I guess that's why it never caught > correct attention. > > I tried rebasing this to current gpio/devel. The pinctrl-ingenic.c > had > gained trivial conflict - do you want me to get the pinctrl tree and > do > merging on top of it && resending this or do you want to try applying > it? I decided to do resend as I had the commit sitting there rebased. Sorry for messing this up. v3 is now finally on its way. Best Regards, Matti Vaittinen ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION 2019-11-12 14:18 [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION Matti Vaittinen ` (2 preceding siblings ...) 2019-11-13 6:30 ` kbuild test robot @ 2019-11-13 8:53 ` Jacopo Mondi 2020-02-15 5:35 ` Bjorn Andersson 4 siblings, 0 replies; 7+ messages in thread From: Jacopo Mondi @ 2019-11-13 8:53 UTC (permalink / raw) To: Matti Vaittinen Cc: mazziesaccount, Linus Walleij, Eric Anholt, Stefan Wahren, Florian Fainelli, Ray Jui, Scott Branden, bcm-kernel-feedback-list, Sean Wang, Matthias Brugger, Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Ludovic Desroches, Nicolas Ferre, Alexandre Belloni, Chen-Yu Tsai, Paul Cercueil, Neil Armstrong, Heiko Stuebner, Geert Uytterhoeven, Patrice Chotard, Maxime Coquelin, Alexandre Torgue, Andy Gross, Bjorn Andersson, linux-gpio, linux-rpi-kernel, linux-arm-kernel, linux-kernel, linux-mediatek, linux-oxnas, linux-rockchip, linux-renesas-soc, linux-stm32, linux-arm-msm [-- Attachment #1: Type: text/plain, Size: 21078 bytes --] Hi Matti, On Tue, Nov 12, 2019 at 04:18:19PM +0200, Matti Vaittinen wrote: > Use newly added GPIO defines GPIO_LINE_DIRECTION_IN and > GPIO_LINE_DIRECTION_OUT instead of using hard-coded 1 and 0. > > Main benefit is to make it easier to see which values mean IN and which > OUT. As a side effect this helps GPIO framework to change the direction > defines to something else if ever needed. > > Please note that return value from get_direction call on > pinctrl-axp209 driver was changed. Previously pinctrl-axp209 might have > returned value 2 for direction INPUT. > > Signed-off-by: Matti Vaittinen <matti.vaittinen@fi.rohmeurope.com> > --- > drivers/pinctrl/bcm/pinctrl-bcm2835.c | 5 ++++- > drivers/pinctrl/bcm/pinctrl-iproc-gpio.c | 5 ++++- > drivers/pinctrl/mediatek/pinctrl-mtk-common.c | 5 ++++- > drivers/pinctrl/mediatek/pinctrl-paris.c | 5 ++++- > drivers/pinctrl/mvebu/pinctrl-armada-37xx.c | 5 ++++- > drivers/pinctrl/nomadik/pinctrl-nomadik.c | 7 +++++-- > drivers/pinctrl/pinctrl-amd.c | 5 ++++- > drivers/pinctrl/pinctrl-at91.c | 5 ++++- > drivers/pinctrl/pinctrl-axp209.c | 7 +++++-- > drivers/pinctrl/pinctrl-ingenic.c | 14 ++++++++++---- > drivers/pinctrl/pinctrl-ocelot.c | 5 ++++- > drivers/pinctrl/pinctrl-oxnas.c | 5 ++++- > drivers/pinctrl/pinctrl-pic32.c | 5 ++++- > drivers/pinctrl/pinctrl-pistachio.c | 5 ++++- > drivers/pinctrl/pinctrl-rk805.c | 7 +++++-- > drivers/pinctrl/pinctrl-rockchip.c | 5 ++++- > drivers/pinctrl/pinctrl-rza1.c | 5 ++++- > drivers/pinctrl/pinctrl-rza2.c | 6 +++--- For RZ/A1 RZ/A2: Reviewed-by: Jacopo Mondi <jacopo+renesas@jmondi.org> Thanks j > drivers/pinctrl/pinctrl-st.c | 14 +++++++++++--- > drivers/pinctrl/pinctrl-stmfx.c | 17 ++++++++++++++--- > drivers/pinctrl/pinctrl-sx150x.c | 9 ++++++--- > drivers/pinctrl/qcom/pinctrl-msm.c | 4 ++-- > drivers/pinctrl/stm32/pinctrl-stm32.c | 4 ++-- > drivers/pinctrl/vt8500/pinctrl-wmt.c | 6 ++++-- > 24 files changed, 119 insertions(+), 41 deletions(-) > > diff --git a/drivers/pinctrl/bcm/pinctrl-bcm2835.c b/drivers/pinctrl/bcm/pinctrl-bcm2835.c > index 0de1a3a96984..d3294964bb4e 100644 > --- a/drivers/pinctrl/bcm/pinctrl-bcm2835.c > +++ b/drivers/pinctrl/bcm/pinctrl-bcm2835.c > @@ -322,7 +322,10 @@ static int bcm2835_gpio_get_direction(struct gpio_chip *chip, unsigned int offse > if (fsel > BCM2835_FSEL_GPIO_OUT) > return -EINVAL; > > - return (fsel == BCM2835_FSEL_GPIO_IN); > + if (fsel == BCM2835_FSEL_GPIO_IN) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static void bcm2835_gpio_set(struct gpio_chip *chip, unsigned offset, int value) > diff --git a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c > index 42f7ab383ad9..3a0a9735ebd4 100644 > --- a/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c > +++ b/drivers/pinctrl/bcm/pinctrl-iproc-gpio.c > @@ -357,7 +357,10 @@ static int iproc_gpio_get_direction(struct gpio_chip *gc, unsigned int gpio) > unsigned int offset = IPROC_GPIO_REG(gpio, IPROC_GPIO_OUT_EN_OFFSET); > unsigned int shift = IPROC_GPIO_SHIFT(gpio); > > - return !(readl(chip->base + offset) & BIT(shift)); > + if (readl(chip->base + offset) & BIT(shift)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static void iproc_gpio_set(struct gpio_chip *gc, unsigned gpio, int val) > diff --git a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c > index 53f52b9a0acd..4c11217e7d25 100644 > --- a/drivers/pinctrl/mediatek/pinctrl-mtk-common.c > +++ b/drivers/pinctrl/mediatek/pinctrl-mtk-common.c > @@ -804,7 +804,10 @@ static int mtk_gpio_get_direction(struct gpio_chip *chip, unsigned offset) > pctl->devdata->spec_dir_set(®_addr, offset); > > regmap_read(pctl->regmap1, reg_addr, &read_val); > - return !(read_val & bit); > + if (read_val & bit) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int mtk_gpio_get(struct gpio_chip *chip, unsigned offset) > diff --git a/drivers/pinctrl/mediatek/pinctrl-paris.c b/drivers/pinctrl/mediatek/pinctrl-paris.c > index 923264d0e9ef..d70bb3aec2c9 100644 > --- a/drivers/pinctrl/mediatek/pinctrl-paris.c > +++ b/drivers/pinctrl/mediatek/pinctrl-paris.c > @@ -699,7 +699,10 @@ static int mtk_gpio_get_direction(struct gpio_chip *chip, unsigned int gpio) > if (err) > return err; > > - return !value; > + if (value) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int mtk_gpio_get(struct gpio_chip *chip, unsigned int gpio) > diff --git a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c > index f2f5fcd9a237..73e41515d978 100644 > --- a/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c > +++ b/drivers/pinctrl/mvebu/pinctrl-armada-37xx.c > @@ -403,7 +403,10 @@ static int armada_37xx_gpio_get_direction(struct gpio_chip *chip, > mask = BIT(offset); > regmap_read(info->regmap, reg, &val); > > - return !(val & mask); > + if (val & mask) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int armada_37xx_gpio_direction_output(struct gpio_chip *chip, > diff --git a/drivers/pinctrl/nomadik/pinctrl-nomadik.c b/drivers/pinctrl/nomadik/pinctrl-nomadik.c > index 2a8190b11d10..21f0e044ef2d 100644 > --- a/drivers/pinctrl/nomadik/pinctrl-nomadik.c > +++ b/drivers/pinctrl/nomadik/pinctrl-nomadik.c > @@ -850,11 +850,14 @@ static int nmk_gpio_get_dir(struct gpio_chip *chip, unsigned offset) > > clk_enable(nmk_chip->clk); > > - dir = !(readl(nmk_chip->addr + NMK_GPIO_DIR) & BIT(offset)); > + dir = readl(nmk_chip->addr + NMK_GPIO_DIR) & BIT(offset); > > clk_disable(nmk_chip->clk); > > - return dir; > + if (dir) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int nmk_gpio_make_input(struct gpio_chip *chip, unsigned offset) > diff --git a/drivers/pinctrl/pinctrl-amd.c b/drivers/pinctrl/pinctrl-amd.c > index 2c61141519f8..9331a6b84acd 100644 > --- a/drivers/pinctrl/pinctrl-amd.c > +++ b/drivers/pinctrl/pinctrl-amd.c > @@ -46,7 +46,10 @@ static int amd_gpio_get_direction(struct gpio_chip *gc, unsigned offset) > pin_reg = readl(gpio_dev->base + offset * 4); > raw_spin_unlock_irqrestore(&gpio_dev->lock, flags); > > - return !(pin_reg & BIT(OUTPUT_ENABLE_OFF)); > + if (pin_reg & BIT(OUTPUT_ENABLE_OFF)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int amd_gpio_direction_input(struct gpio_chip *gc, unsigned offset) > diff --git a/drivers/pinctrl/pinctrl-at91.c b/drivers/pinctrl/pinctrl-at91.c > index d6e7e9f0ddec..a3444c638337 100644 > --- a/drivers/pinctrl/pinctrl-at91.c > +++ b/drivers/pinctrl/pinctrl-at91.c > @@ -1414,7 +1414,10 @@ static int at91_gpio_get_direction(struct gpio_chip *chip, unsigned offset) > u32 osr; > > osr = readl_relaxed(pio + PIO_OSR); > - return !(osr & mask); > + if (osr & mask) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int at91_gpio_direction_input(struct gpio_chip *chip, unsigned offset) > diff --git a/drivers/pinctrl/pinctrl-axp209.c b/drivers/pinctrl/pinctrl-axp209.c > index be5b645815e5..207cbae3a7bf 100644 > --- a/drivers/pinctrl/pinctrl-axp209.c > +++ b/drivers/pinctrl/pinctrl-axp209.c > @@ -149,13 +149,16 @@ static int axp20x_gpio_get_direction(struct gpio_chip *chip, > * going to change the value soon anyway. Default to output. > */ > if ((val & AXP20X_GPIO_FUNCTIONS) > 2) > - return 0; > + return GPIO_LINE_DIRECTION_OUT; > > /* > * The GPIO directions are the three lowest values. > * 2 is input, 0 and 1 are output > */ > - return val & 2; > + if (val & 2) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static int axp20x_gpio_output(struct gpio_chip *chip, unsigned int offset, > diff --git a/drivers/pinctrl/pinctrl-ingenic.c b/drivers/pinctrl/pinctrl-ingenic.c > index 6e2683016c1f..faee2f33792b 100644 > --- a/drivers/pinctrl/pinctrl-ingenic.c > +++ b/drivers/pinctrl/pinctrl-ingenic.c > @@ -1643,13 +1643,19 @@ static int ingenic_gpio_get_direction(struct gpio_chip *gc, unsigned int offset) > struct ingenic_pinctrl *jzpc = jzgc->jzpc; > unsigned int pin = gc->base + offset; > > - if (jzpc->version >= ID_JZ4760) > - return ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1); > + if (jzpc->version >= ID_JZ4760) { > + if (ingenic_get_pin_config(jzpc, pin, JZ4760_GPIO_PAT1)) > + return GPIO_LINE_DIRECTION_IN; > + return GPIO_LINE_DIRECTION_OUT; > + } > > if (ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_SELECT)) > - return true; > + return GPIO_LINE_DIRECTION_IN; > + > + if (ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_DIR)) > + return GPIO_LINE_DIRECTION_OUT; > > - return !ingenic_get_pin_config(jzpc, pin, JZ4740_GPIO_DIR); > + return GPIO_LINE_DIRECTION_IN; > } > > static const struct pinctrl_ops ingenic_pctlops = { > diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c > index fb76fb2e9ea5..c3ae4b070c3d 100644 > --- a/drivers/pinctrl/pinctrl-ocelot.c > +++ b/drivers/pinctrl/pinctrl-ocelot.c > @@ -604,7 +604,10 @@ static int ocelot_gpio_get_direction(struct gpio_chip *chip, > > regmap_read(info->map, REG(OCELOT_GPIO_OE, info, offset), &val); > > - return !(val & BIT(offset % 32)); > + if (val & BIT(offset % 32)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int ocelot_gpio_direction_input(struct gpio_chip *chip, > diff --git a/drivers/pinctrl/pinctrl-oxnas.c b/drivers/pinctrl/pinctrl-oxnas.c > index 55488ca246f1..7d6d17b94ab9 100644 > --- a/drivers/pinctrl/pinctrl-oxnas.c > +++ b/drivers/pinctrl/pinctrl-oxnas.c > @@ -756,7 +756,10 @@ static int oxnas_gpio_get_direction(struct gpio_chip *chip, > struct oxnas_gpio_bank *bank = gpiochip_get_data(chip); > u32 mask = BIT(offset); > > - return !(readl_relaxed(bank->reg_base + OUTPUT_EN) & mask); > + if (readl_relaxed(bank->reg_base + OUTPUT_EN) & mask) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int oxnas_gpio_direction_input(struct gpio_chip *chip, > diff --git a/drivers/pinctrl/pinctrl-pic32.c b/drivers/pinctrl/pinctrl-pic32.c > index e7f6dd5ab578..dd65178fbda2 100644 > --- a/drivers/pinctrl/pinctrl-pic32.c > +++ b/drivers/pinctrl/pinctrl-pic32.c > @@ -1990,7 +1990,10 @@ static int pic32_gpio_get_direction(struct gpio_chip *chip, unsigned offset) > { > struct pic32_gpio_bank *bank = gpiochip_get_data(chip); > > - return !!(readl(bank->reg_base + TRIS_REG) & BIT(offset)); > + if (readl(bank->reg_base + TRIS_REG) & BIT(offset)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static void pic32_gpio_irq_ack(struct irq_data *data) > diff --git a/drivers/pinctrl/pinctrl-pistachio.c b/drivers/pinctrl/pinctrl-pistachio.c > index 379e9a6a6d89..c33375f5c5ff 100644 > --- a/drivers/pinctrl/pinctrl-pistachio.c > +++ b/drivers/pinctrl/pinctrl-pistachio.c > @@ -1166,7 +1166,10 @@ static int pistachio_gpio_get_direction(struct gpio_chip *chip, unsigned offset) > { > struct pistachio_gpio_bank *bank = gpiochip_get_data(chip); > > - return !(gpio_readl(bank, GPIO_OUTPUT_EN) & BIT(offset)); > + if (gpio_readl(bank, GPIO_OUTPUT_EN) & BIT(offset)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int pistachio_gpio_get(struct gpio_chip *chip, unsigned offset) > diff --git a/drivers/pinctrl/pinctrl-rk805.c b/drivers/pinctrl/pinctrl-rk805.c > index 26adbe9d6d42..cccbe072274e 100644 > --- a/drivers/pinctrl/pinctrl-rk805.c > +++ b/drivers/pinctrl/pinctrl-rk805.c > @@ -184,7 +184,7 @@ static int rk805_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > > /* default output*/ > if (!pci->pin_cfg[offset].dir_msk) > - return 0; > + return GPIO_LINE_DIRECTION_OUT; > > ret = regmap_read(pci->rk808->regmap, > pci->pin_cfg[offset].reg, > @@ -194,7 +194,10 @@ static int rk805_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > return ret; > } > > - return !(val & pci->pin_cfg[offset].dir_msk); > + if (val & pci->pin_cfg[offset].dir_msk) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static const struct gpio_chip rk805_gpio_chip = { > diff --git a/drivers/pinctrl/pinctrl-rockchip.c b/drivers/pinctrl/pinctrl-rockchip.c > index dc0bbf198cbc..cf5181ad817e 100644 > --- a/drivers/pinctrl/pinctrl-rockchip.c > +++ b/drivers/pinctrl/pinctrl-rockchip.c > @@ -2211,7 +2211,10 @@ static int rockchip_gpio_get_direction(struct gpio_chip *chip, unsigned offset) > data = readl_relaxed(bank->reg_base + GPIO_SWPORT_DDR); > clk_disable(bank->clk); > > - return !(data & BIT(offset)); > + if (data & BIT(offset)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > /* > diff --git a/drivers/pinctrl/pinctrl-rza1.c b/drivers/pinctrl/pinctrl-rza1.c > index 215db220d795..002bd7346562 100644 > --- a/drivers/pinctrl/pinctrl-rza1.c > +++ b/drivers/pinctrl/pinctrl-rza1.c > @@ -777,7 +777,10 @@ static int rza1_gpio_get_direction(struct gpio_chip *chip, unsigned int gpio) > { > struct rza1_port *port = gpiochip_get_data(chip); > > - return !!rza1_get_bit(port, RZA1_PM_REG, gpio); > + if (rza1_get_bit(port, RZA1_PM_REG, gpio)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static int rza1_gpio_direction_input(struct gpio_chip *chip, > diff --git a/drivers/pinctrl/pinctrl-rza2.c b/drivers/pinctrl/pinctrl-rza2.c > index 3be1d833bf25..0fca1fbc9480 100644 > --- a/drivers/pinctrl/pinctrl-rza2.c > +++ b/drivers/pinctrl/pinctrl-rza2.c > @@ -135,10 +135,10 @@ static int rza2_chip_get_direction(struct gpio_chip *chip, unsigned int offset) > reg16 = (reg16 >> (pin * 2)) & RZA2_PDR_MASK; > > if (reg16 == RZA2_PDR_OUTPUT) > - return 0; > + return GPIO_LINE_DIRECTION_OUT; > > if (reg16 == RZA2_PDR_INPUT) > - return 1; > + return GPIO_LINE_DIRECTION_IN; > > /* > * This GPIO controller has a default Hi-Z state that is not input or > @@ -146,7 +146,7 @@ static int rza2_chip_get_direction(struct gpio_chip *chip, unsigned int offset) > */ > rza2_pin_to_gpio(priv->base, offset, 1); > > - return 1; > + return GPIO_LINE_DIRECTION_IN; > } > > static int rza2_chip_direction_input(struct gpio_chip *chip, > diff --git a/drivers/pinctrl/pinctrl-st.c b/drivers/pinctrl/pinctrl-st.c > index 00db8b9efb2c..aff589ce446f 100644 > --- a/drivers/pinctrl/pinctrl-st.c > +++ b/drivers/pinctrl/pinctrl-st.c > @@ -746,7 +746,10 @@ static int st_gpio_get_direction(struct gpio_chip *chip, unsigned offset) > function = st_pctl_get_pin_function(&pc, offset); > if (function) { > st_pinconf_get_direction(&pc, offset, &config); > - return !ST_PINCONF_UNPACK_OE(config); > + if (ST_PINCONF_UNPACK_OE(config)) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > /* > @@ -758,7 +761,10 @@ static int st_gpio_get_direction(struct gpio_chip *chip, unsigned offset) > direction |= ((value >> offset) & 0x1) << i; > } > > - return (direction == ST_GPIO_DIRECTION_IN); > + if (direction == ST_GPIO_DIRECTION_IN) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > /* Pinctrl Groups */ > @@ -996,6 +1002,7 @@ static void st_pinconf_dbg_show(struct pinctrl_dev *pctldev, > unsigned int function; > int offset = st_gpio_pin(pin_id); > char f[16]; > + int oe; > > mutex_unlock(&pctldev->mutex); > pc = st_get_pio_control(pctldev, pin_id); > @@ -1008,10 +1015,11 @@ static void st_pinconf_dbg_show(struct pinctrl_dev *pctldev, > else > snprintf(f, 5, "GPIO"); > > + oe = st_gpio_get_direction(&pc_to_bank(pc)->gpio_chip, offset); > seq_printf(s, "[OE:%d,PU:%ld,OD:%ld]\t%s\n" > "\t\t[retime:%ld,invclk:%ld,clknotdat:%ld," > "de:%ld,rt-clk:%ld,rt-delay:%ld]", > - !st_gpio_get_direction(&pc_to_bank(pc)->gpio_chip, offset), > + (oe == GPIO_LINE_DIRECTION_OUT), > ST_PINCONF_UNPACK_PU(config), > ST_PINCONF_UNPACK_OD(config), > f, > diff --git a/drivers/pinctrl/pinctrl-stmfx.c b/drivers/pinctrl/pinctrl-stmfx.c > index 564660028fcc..132a0f217692 100644 > --- a/drivers/pinctrl/pinctrl-stmfx.c > +++ b/drivers/pinctrl/pinctrl-stmfx.c > @@ -134,10 +134,14 @@ static int stmfx_gpio_get_direction(struct gpio_chip *gc, unsigned int offset) > ret = regmap_read(pctl->stmfx->map, reg, &val); > /* > * On stmfx, gpio pins direction is (0)input, (1)output. > - * .get_direction returns 0=out, 1=in > */ > + if (ret) > + return ret; > > - return ret ? ret : !(val & mask); > + if (val & mask) > + return GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int stmfx_gpio_direction_input(struct gpio_chip *gc, unsigned int offset) > @@ -223,6 +227,13 @@ static int stmfx_pinconf_get(struct pinctrl_dev *pctldev, > dir = stmfx_gpio_get_direction(&pctl->gpio_chip, pin); > if (dir < 0) > return dir; > + > + /* > + * Currently the gpiolib IN is 1 and OUT is 0 but let's not count > + * on it just to be on the safe side also in the future :) > + */ > + dir = (dir == GPIO_LINE_DIRECTION_IN) ? 1 : 0; > + > type = stmfx_pinconf_get_type(pctl, pin); > if (type < 0) > return type; > @@ -360,7 +371,7 @@ static void stmfx_pinconf_dbg_show(struct pinctrl_dev *pctldev, > if (val < 0) > return; > > - if (!dir) { > + if (dir == GPIO_LINE_DIRECTION_OUT) { > seq_printf(s, "output %s ", val ? "high" : "low"); > if (type) > seq_printf(s, "open drain %s internal pull-up ", > diff --git a/drivers/pinctrl/pinctrl-sx150x.c b/drivers/pinctrl/pinctrl-sx150x.c > index 566665931a04..6e74bd87d959 100644 > --- a/drivers/pinctrl/pinctrl-sx150x.c > +++ b/drivers/pinctrl/pinctrl-sx150x.c > @@ -391,13 +391,16 @@ static int sx150x_gpio_get_direction(struct gpio_chip *chip, > int ret; > > if (sx150x_pin_is_oscio(pctl, offset)) > - return false; > + return GPIO_LINE_DIRECTION_OUT; > > ret = regmap_read(pctl->regmap, pctl->data->reg_dir, &value); > if (ret < 0) > return ret; > > - return !!(value & BIT(offset)); > + if (value & BIT(offset)) > + return GPIO_LINE_DIRECTION_IN; > + > + return GPIO_LINE_DIRECTION_OUT; > } > > static int sx150x_gpio_get(struct gpio_chip *chip, unsigned int offset) > @@ -687,7 +690,7 @@ static int sx150x_pinconf_get(struct pinctrl_dev *pctldev, unsigned int pin, > if (ret < 0) > return ret; > > - if (ret) > + if (ret == GPIO_LINE_DIRECTION_IN) > return -EINVAL; > > ret = sx150x_gpio_get(&pctl->gpio, pin); > diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c > index 763da0be10d6..8844ca1261d5 100644 > --- a/drivers/pinctrl/qcom/pinctrl-msm.c > +++ b/drivers/pinctrl/qcom/pinctrl-msm.c > @@ -485,8 +485,8 @@ static int msm_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > > val = msm_readl_ctl(pctrl, g); > > - /* 0 = output, 1 = input */ > - return val & BIT(g->oe_bit) ? 0 : 1; > + return val & BIT(g->oe_bit) ? GPIO_LINE_DIRECTION_OUT : > + GPIO_LINE_DIRECTION_IN; > } > > static int msm_gpio_get(struct gpio_chip *chip, unsigned offset) > diff --git a/drivers/pinctrl/stm32/pinctrl-stm32.c b/drivers/pinctrl/stm32/pinctrl-stm32.c > index 2d5e0435af0a..72e0669ca7c8 100644 > --- a/drivers/pinctrl/stm32/pinctrl-stm32.c > +++ b/drivers/pinctrl/stm32/pinctrl-stm32.c > @@ -283,9 +283,9 @@ static int stm32_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > > stm32_pmx_get_mode(bank, pin, &mode, &alt); > if ((alt == 0) && (mode == 0)) > - ret = 1; > + ret = GPIO_LINE_DIRECTION_IN; > else if ((alt == 0) && (mode == 1)) > - ret = 0; > + ret = GPIO_LINE_DIRECTION_OUT; > else > ret = -EINVAL; > > diff --git a/drivers/pinctrl/vt8500/pinctrl-wmt.c b/drivers/pinctrl/vt8500/pinctrl-wmt.c > index 4d5cd7d8c760..7f2aceba295a 100644 > --- a/drivers/pinctrl/vt8500/pinctrl-wmt.c > +++ b/drivers/pinctrl/vt8500/pinctrl-wmt.c > @@ -486,8 +486,10 @@ static int wmt_gpio_get_direction(struct gpio_chip *chip, unsigned offset) > u32 val; > > val = readl_relaxed(data->base + reg_dir); > - /* Return 0 == output, 1 == input */ > - return !(val & BIT(bit)); > + if (val & BIT(bit)) > + GPIO_LINE_DIRECTION_OUT; > + > + return GPIO_LINE_DIRECTION_IN; > } > > static int wmt_gpio_get_value(struct gpio_chip *chip, unsigned offset) > -- > 2.21.0 > > > -- > Matti Vaittinen, Linux device drivers > ROHM Semiconductors, Finland SWDC > Kiviharjunlenkki 1E > 90220 OULU > FINLAND > > ~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~ > Simon says - in Latin please. > ~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~ > Thanks to Simon Glass for the translation =] [-- Attachment #2: signature.asc --] [-- Type: application/pgp-signature, Size: 833 bytes --] ^ permalink raw reply [flat|nested] 7+ messages in thread
* Re: [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION 2019-11-12 14:18 [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION Matti Vaittinen ` (3 preceding siblings ...) 2019-11-13 8:53 ` Jacopo Mondi @ 2020-02-15 5:35 ` Bjorn Andersson 4 siblings, 0 replies; 7+ messages in thread From: Bjorn Andersson @ 2020-02-15 5:35 UTC (permalink / raw) To: Matti Vaittinen Cc: mazziesaccount, Linus Walleij, Eric Anholt, Stefan Wahren, Florian Fainelli, Ray Jui, Scott Branden, bcm-kernel-feedback-list, Sean Wang, Matthias Brugger, Jason Cooper, Andrew Lunn, Gregory Clement, Sebastian Hesselbarth, Ludovic Desroches, Nicolas Ferre, Alexandre Belloni, Chen-Yu Tsai, Paul Cercueil, Neil Armstrong, Heiko Stuebner, Geert Uytterhoeven, Patrice Chotard, Maxime Coquelin, Alexandre Torgue, Andy Gross, linux-gpio, linux-rpi-kernel, linux-arm-kernel, linux-kernel, linux-mediatek, linux-oxnas, linux-rockchip, linux-renesas-soc, linux-stm32, linux-arm-msm On Tue 12 Nov 06:18 PST 2019, Matti Vaittinen wrote: > diff --git a/drivers/pinctrl/qcom/pinctrl-msm.c b/drivers/pinctrl/qcom/pinctrl-msm.c > index 763da0be10d6..8844ca1261d5 100644 > --- a/drivers/pinctrl/qcom/pinctrl-msm.c > +++ b/drivers/pinctrl/qcom/pinctrl-msm.c > @@ -485,8 +485,8 @@ static int msm_gpio_get_direction(struct gpio_chip *chip, unsigned int offset) > > val = msm_readl_ctl(pctrl, g); > > - /* 0 = output, 1 = input */ > - return val & BIT(g->oe_bit) ? 0 : 1; > + return val & BIT(g->oe_bit) ? GPIO_LINE_DIRECTION_OUT : > + GPIO_LINE_DIRECTION_IN; For pinctrl-msm: Reviewed-by: Bjorn Andersson <bjorn.andersson@linaro.org> > } Regards, Bjorn ^ permalink raw reply [flat|nested] 7+ messages in thread
end of thread, other threads:[~2020-02-15 5:36 UTC | newest]
Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-11-12 14:18 [PATCH 2/2] pinctrl: Use new GPIO_LINE_DIRECTION Matti Vaittinen
2019-11-12 17:01 ` Bjorn Andersson
2019-11-12 18:18 ` Geert Uytterhoeven
2019-11-13 6:30 ` kbuild test robot
[not found] ` <ac16492e11899ef4ec981f7f2e84714c7d61d2a7.camel@fi.rohmeurope.com>
[not found] ` <CACRpkdYAmye8wT39fqy=LN+6pXDvrcQ0SyDTCvG7aSgea3Uumw@mail.gmail.com>
[not found] ` <81f96837457028ad9eeb690776526701d5b1bc8c.camel@fi.rohmeurope.com>
2020-02-14 13:59 ` Vaittinen, Matti
2019-11-13 8:53 ` Jacopo Mondi
2020-02-15 5:35 ` Bjorn Andersson
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox; as well as URLs for NNTP newsgroup(s).