diff mbox series

[1/2] pinctrl: stmfx: Fix pin configuration issue

Message ID 20210120124340.23612-1-patrice.chotard@foss.st.com
State Accepted
Commit 54f5bf3d61084c15a9e364ac7a5fdede7c1c780e
Delegated to: Patrick Delaunay
Headers show
Series [1/2] pinctrl: stmfx: Fix pin configuration issue | expand

Commit Message

Patrice Chotard Jan. 20, 2021, 12:43 p.m. UTC
pin-controller pin's name must be equal to pin's name used in device
tree with "pins" DT property.

Issue detected on stm32mp157c-ev1 board with goodix touchscreen.
In DT, the goodix's pin is declared in DT with the node:

        goodix_pins: goodix {
		pins = "gpio14";
		bias-pull-down;
	};

Whereas in stmfx pin-controller driver, pin's name are equal to
"stmfx_gpioxx" where xx is the pin number.
This lead to not configure stmfx's pins at probe because pins is
identified by its name (see pinctrl_pin_name_to_selector() in
pinctrl-generic.c) and stmfx pin "gpio14" can't be found.

To fix this issue, come back to the original stmfx pin's name.

Revert "pinctrl: stmfx: update pin name"

This reverts commit 38d30cdcd65c73eeefac5efa328ad444a53b77dd.

Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
Tested-by: Patrick DELAUNAY <patrick.delaunay@st.com>
---

 drivers/pinctrl/pinctrl-stmfx.c | 8 ++++----
 1 file changed, 4 insertions(+), 4 deletions(-)

Comments

Patrick Delaunay Jan. 27, 2021, 2:05 p.m. UTC | #1
Hi Patrice,

On 1/20/21 1:43 PM, Patrice Chotard wrote:
> pin-controller pin's name must be equal to pin's name used in device
> tree with "pins" DT property.
>
> Issue detected on stm32mp157c-ev1 board with goodix touchscreen.
> In DT, the goodix's pin is declared in DT with the node:
>
>          goodix_pins: goodix {
> 		pins = "gpio14";
> 		bias-pull-down;
> 	};
>
> Whereas in stmfx pin-controller driver, pin's name are equal to
> "stmfx_gpioxx" where xx is the pin number.
> This lead to not configure stmfx's pins at probe because pins is
> identified by its name (see pinctrl_pin_name_to_selector() in
> pinctrl-generic.c) and stmfx pin "gpio14" can't be found.
>
> To fix this issue, come back to the original stmfx pin's name.
>
> Revert "pinctrl: stmfx: update pin name"
>
> This reverts commit 38d30cdcd65c73eeefac5efa328ad444a53b77dd.
>
> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
> Tested-by: Patrick DELAUNAY <patrick.delaunay@st.com>
> ---
>
>   drivers/pinctrl/pinctrl-stmfx.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
>

Reviewed-by: Patrick Delaunay <patrick.delaunay@foss.st.com>

Thanks

Patrick
Patrick Delaunay Feb. 9, 2021, 9:27 a.m. UTC | #2
Hi,

On 1/20/21 1:43 PM, Patrice Chotard wrote:
> pin-controller pin's name must be equal to pin's name used in device
> tree with "pins" DT property.
>
> Issue detected on stm32mp157c-ev1 board with goodix touchscreen.
> In DT, the goodix's pin is declared in DT with the node:
>
>          goodix_pins: goodix {
> 		pins = "gpio14";
> 		bias-pull-down;
> 	};
>
> Whereas in stmfx pin-controller driver, pin's name are equal to
> "stmfx_gpioxx" where xx is the pin number.
> This lead to not configure stmfx's pins at probe because pins is
> identified by its name (see pinctrl_pin_name_to_selector() in
> pinctrl-generic.c) and stmfx pin "gpio14" can't be found.
>
> To fix this issue, come back to the original stmfx pin's name.
>
> Revert "pinctrl: stmfx: update pin name"
>
> This reverts commit 38d30cdcd65c73eeefac5efa328ad444a53b77dd.
>
> Signed-off-by: Patrice Chotard <patrice.chotard@foss.st.com>
> Tested-by: Patrick DELAUNAY <patrick.delaunay@st.com>
> ---
>
>   drivers/pinctrl/pinctrl-stmfx.c | 8 ++++----
>   1 file changed, 4 insertions(+), 4 deletions(-)
>

Applied to u-boot-stm/master, thanks!

Regards

Patrick
diff mbox series

Patch

diff --git a/drivers/pinctrl/pinctrl-stmfx.c b/drivers/pinctrl/pinctrl-stmfx.c
index a62be44d2d..b789f3686c 100644
--- a/drivers/pinctrl/pinctrl-stmfx.c
+++ b/drivers/pinctrl/pinctrl-stmfx.c
@@ -343,8 +343,8 @@  static int stmfx_pinctrl_get_pins_count(struct udevice *dev)
 }
 
 /*
- * STMFX pins[15:0] are called "stmfx_gpio[15:0]"
- * and STMFX pins[23:16] are called "stmfx_agpio[7:0]"
+ * STMFX pins[15:0] are called "gpio[15:0]"
+ * and STMFX pins[23:16] are called "agpio[7:0]"
  */
 #define MAX_PIN_NAME_LEN 7
 static char pin_name[MAX_PIN_NAME_LEN];
@@ -352,9 +352,9 @@  static const char *stmfx_pinctrl_get_pin_name(struct udevice *dev,
 					      unsigned int selector)
 {
 	if (selector < STMFX_MAX_GPIO)
-		snprintf(pin_name, MAX_PIN_NAME_LEN, "stmfx_gpio%u", selector);
+		snprintf(pin_name, MAX_PIN_NAME_LEN, "gpio%u", selector);
 	else
-		snprintf(pin_name, MAX_PIN_NAME_LEN, "stmfx_agpio%u", selector - 16);
+		snprintf(pin_name, MAX_PIN_NAME_LEN, "agpio%u", selector - 16);
 	return pin_name;
 }