linux-sg2042/drivers/pinctrl/freescale
Dong Aisheng a5c771e6cb pinctrl: imx: remove gpio_request_enable and gpio_disable_free
gpio_request_enable/disable_free actually are not quite necessary as
standard IMX pinctrl binding already sets GPIO mux from device tree,
e.g. VF610_PAD_PTB20__GPIO_42 or MX7D_PAD_SD2_CD_B__GPIO5_IO9
No need to do it again in gpio_request_enable.

And according to Stefan:
"For all GPIO I checked in upstream device trees we assign a pinctrl
to the same node, so in all cases gpio_request_enable/disable is really
unnecessary."

So it should be safe to simply remove it.

Note that this changes semantics for Vybrid, e.g.
"The two functions have been introduced for Vybrid (through
SHARE_MUX_CONF_REG) and mux pins as GPIOs automatically when a GPIO
gets requested. The automatic mux is optional by the pinmux/gpio
subsystem semantics, and other NXP devices do not use it, instead an
explicit pinctrl node is added in the device tree to mux GPIOs where
required. Hence this change aligns Vybrid to other NXP (i.MX) devices.

Note that all upstream device tree assign proper pinctrl properties
where GPIOs are used so no change is necessary for device trees."

Cc: Alexandre Courbot <gnurou@gmail.com>
Cc: Shawn Guo <shawnguo@kernel.org>
Cc: Fugang Duan <fugang.duan@nxp.com>
Cc: Bai Ping <ping.bai@nxp.com>
Acked-by: Stefan Agner <stefan@agner.ch>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
2017-08-14 15:01:01 +02:00
..
Kconfig pinctrl: imx: add imx7ulp driver 2017-08-14 15:01:01 +02:00
Makefile pinctrl: imx: add imx7ulp driver 2017-08-14 15:01:01 +02:00
pinctrl-imx.c pinctrl: imx: remove gpio_request_enable and gpio_disable_free 2017-08-14 15:01:01 +02:00
pinctrl-imx.h pinctrl: imx: add soc specific mux_mode mask and shift property 2017-05-22 11:05:19 +02:00
pinctrl-imx1-core.c pinctrl: freescale: remove needless module.h include 2016-06-29 09:30:10 +02:00
pinctrl-imx1.c pinctrl: imx1: make it explicitly non-modular 2016-06-29 09:31:03 +02:00
pinctrl-imx1.h pinctrl: imxl: Use devm_pinctrl_register() for pinctrl registration 2016-04-21 00:02:21 +02:00
pinctrl-imx6dl.c pinctrl: imx6dl: make it explicitly non-modular 2016-06-29 09:38:40 +02:00
pinctrl-imx6q.c pinctrl: imx6q: make it explicitly non-modular 2016-06-29 09:49:20 +02:00
pinctrl-imx6sl.c pinctrl: imx6sl: make it explicitly non-modular 2016-06-29 09:50:10 +02:00
pinctrl-imx6sx.c pinctrl: imx6sx: make it explicitly non-modular 2016-06-29 09:51:08 +02:00
pinctrl-imx6ul.c pinctrl: imx6ul: make it explicitly non-modular 2016-06-29 09:52:01 +02:00
pinctrl-imx7d.c pinctrl: freescale: imx7d: make of_device_ids const. 2017-06-29 14:56:36 +02:00
pinctrl-imx7ulp.c pinctrl: imx: add imx7ulp driver 2017-08-14 15:01:01 +02:00
pinctrl-imx21.c pinctrl: imx21: Remove the MODULE_DEVICE_TABLE() macro 2016-07-06 15:41:31 +02:00
pinctrl-imx23.c pinctrl: imx23: make it explicitly non-modular 2016-06-29 09:54:37 +02:00
pinctrl-imx25.c pinctrl: imx25: make it explicitly non-modular 2016-06-29 09:32:59 +02:00
pinctrl-imx27.c pinctrl: imx27: make it explicitly non-modular 2016-06-29 09:34:01 +02:00
pinctrl-imx28.c pinctrl: imx28: make it explicitly non-modular 2016-06-29 09:55:30 +02:00
pinctrl-imx35.c pinctrl: imx35: make it explicitly non-modular 2016-06-29 09:34:52 +02:00
pinctrl-imx50.c pinctrl: imx50: make it explicitly non-modular 2016-06-29 09:35:48 +02:00
pinctrl-imx51.c pinctrl: imx51: make it explicitly non-modular 2016-06-29 09:36:53 +02:00
pinctrl-imx53.c pinctrl: imx53: make it explicitly non-modular 2016-06-29 09:37:44 +02:00
pinctrl-mxs.c pinctrl: mxs: atomically switch mux and drive strength config 2017-05-23 11:27:53 +02:00
pinctrl-mxs.h pinctrl: remove orphaned exported ".remove" function 2016-06-29 09:56:28 +02:00
pinctrl-vf610.c pinctrl: imx: add soc specific mux_mode mask and shift property 2017-05-22 11:05:19 +02:00