diff options
author | Dong Aisheng <aisheng.dong@nxp.com> | 2017-09-05 20:35:16 +0800 |
---|---|---|
committer | Leonard Crestez <leonard.crestez@nxp.com> | 2018-08-24 12:41:33 +0300 |
commit | 8526f5c38ce8f2ec82df7ca2d30e59e8f43a6704 (patch) | |
tree | 262322180442db485a8ecc14e5866cfd3bb226e1 /drivers/pinctrl/freescale | |
parent | a8224b75fee8ff94f99ed012511b52025c536184 (diff) |
MLK-17491-8 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.
Fixes: 5d7a13220ade ("MLK-15128-3 pinctrl: freescale: support scu and memmap pinctrl together")
Fixes: 07787c40ff3b ("MLK-13485-3 pinctrl: imx: modify the imx pinctrl to support imx7ulp gpio")
Cc: Fugang Duan <fugang.duan@nxp.com>
Reviewed-by: Peng Fan <peng.fan@nxp.com>
Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com>
Diffstat (limited to 'drivers/pinctrl/freescale')
-rw-r--r-- | drivers/pinctrl/freescale/pinctrl-imx.c | 26 | ||||
-rw-r--r-- | drivers/pinctrl/freescale/pinctrl-imx.h | 28 | ||||
-rw-r--r-- | drivers/pinctrl/freescale/pinctrl-memmap.c | 66 | ||||
-rw-r--r-- | drivers/pinctrl/freescale/pinctrl-scu.c | 12 |
4 files changed, 0 insertions, 132 deletions
diff --git a/drivers/pinctrl/freescale/pinctrl-imx.c b/drivers/pinctrl/freescale/pinctrl-imx.c index 15960e8b796b..565b27f81553 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx.c +++ b/drivers/pinctrl/freescale/pinctrl-imx.c @@ -244,30 +244,6 @@ static int imx_pmx_get_groups(struct pinctrl_dev *pctldev, unsigned selector, return 0; } -static int imx_pmx_gpio_request_enable(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset) -{ - struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); - const struct imx_pinctrl_soc_info *info = ipctl->info; - - if (info->flags & IMX8_USE_SCU) - return imx_pmx_backend_gpio_request_enable_scu(pctldev, range, offset); - else - return imx_pmx_backend_gpio_request_enable_mem(pctldev, range, offset); -} - -static void imx_pmx_gpio_disable_free(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset) -{ - struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); - const struct imx_pinctrl_soc_info *info = ipctl->info; - - if (info->flags & IMX8_USE_SCU) - imx_pmx_backend_gpio_disable_free_scu(pctldev, range, offset); - else - imx_pmx_backend_gpio_disable_free_mem(pctldev, range, offset); -} - static int imx_pmx_gpio_set_direction(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset, bool input) { @@ -287,8 +263,6 @@ static const struct pinmux_ops imx_pmx_ops = { .get_function_name = imx_pmx_get_func_name, .get_function_groups = imx_pmx_get_groups, .set_mux = imx_pmx_set, - .gpio_request_enable = imx_pmx_gpio_request_enable, - .gpio_disable_free = imx_pmx_gpio_disable_free, .gpio_set_direction = imx_pmx_gpio_set_direction, }; diff --git a/drivers/pinctrl/freescale/pinctrl-imx.h b/drivers/pinctrl/freescale/pinctrl-imx.h index 33991633c74e..a66c07c4e0fd 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx.h +++ b/drivers/pinctrl/freescale/pinctrl-imx.h @@ -140,10 +140,6 @@ int imx_pinctrl_resume(struct device *dev); #ifdef CONFIG_PINCTRL_IMX_MEMMAP int imx_pmx_set_one_pin_mem(struct imx_pinctrl *ipctl, struct imx_pin *pin); -int imx_pmx_backend_gpio_request_enable_mem(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset); -void imx_pmx_backend_gpio_disable_free_mem(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset); int imx_pmx_backend_gpio_set_direction_mem(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset, bool input); int imx_pinconf_backend_get_mem(struct pinctrl_dev *pctldev, unsigned pin_id, @@ -157,16 +153,6 @@ static inline int imx_pmx_set_one_pin_mem(struct imx_pinctrl *ipctl, struct imx_ { return 0; } -static inline int imx_pmx_backend_gpio_request_enable_mem(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset) -{ - return 0; -} -static inline void imx_pmx_backend_gpio_disable_free_mem(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset) -{ - return; -} static inline int imx_pmx_backend_gpio_set_direction_mem(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset, bool input) { @@ -191,10 +177,6 @@ static inline int imx_pinctrl_parse_pin_mem(struct imx_pinctrl_soc_info *info, #ifdef CONFIG_PINCTRL_IMX_SCU int imx_pmx_set_one_pin_scu(struct imx_pinctrl *ipctl, struct imx_pin *pin); -int imx_pmx_backend_gpio_request_enable_scu(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset); -void imx_pmx_backend_gpio_disable_free_scu(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset); int imx_pmx_backend_gpio_set_direction_scu(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset, bool input); int imx_pinconf_backend_get_scu(struct pinctrl_dev *pctldev, unsigned pin_id, @@ -208,16 +190,6 @@ static inline int imx_pmx_set_one_pin_scu(struct imx_pinctrl *ipctl, struct imx_ { return 0; } -static inline int imx_pmx_backend_gpio_request_enable_scu(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset) -{ - return 0; -} -static inline void imx_pmx_backend_gpio_disable_free_scu(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset) -{ - return; -} static inline int imx_pmx_backend_gpio_set_direction_scu(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset, bool input) { diff --git a/drivers/pinctrl/freescale/pinctrl-memmap.c b/drivers/pinctrl/freescale/pinctrl-memmap.c index ad1f1b1a6005..501f35b1c41f 100644 --- a/drivers/pinctrl/freescale/pinctrl-memmap.c +++ b/drivers/pinctrl/freescale/pinctrl-memmap.c @@ -108,72 +108,6 @@ int imx_pmx_set_one_pin_mem(struct imx_pinctrl *ipctl, struct imx_pin *pin) return 0; } -int imx_pmx_backend_gpio_request_enable_mem(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset) -{ - struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); - const struct imx_pinctrl_soc_info *info = ipctl->info; - const struct imx_pin_reg *pin_reg; - struct imx_pin_group *grp; - struct imx_pin *imx_pin; - unsigned int pin, group; - u32 reg; - - /* Currently implementation only for shared mux/conf register */ - if (!(info->flags & SHARE_MUX_CONF_REG)) - return 0; - - pin_reg = &info->pin_regs[offset]; - if (pin_reg->mux_reg == -1) - return -EINVAL; - - /* Find the pinctrl config with GPIO mux mode for the requested pin */ - for (group = 0; group < info->ngroups; group++) { - grp = &info->groups[group]; - for (pin = 0; pin < grp->npins; pin++) { - imx_pin = &grp->pins[pin]; - if (imx_pin->pin == offset) - goto mux_pin; - } - } - - return -EINVAL; - -mux_pin: - reg = readl(ipctl->base + pin_reg->mux_reg); - reg &= ~info->mux_mask; - reg |= (imx_pin->pin_conf.pin_memmap.mux_mode << info->mux_shift); - imx_pin->pin_conf.pin_memmap.config &= ~info->mux_mask; - reg |= imx_pin->pin_conf.pin_memmap.config; - writel(reg, ipctl->base + pin_reg->mux_reg); - - return 0; -} - -void imx_pmx_backend_gpio_disable_free_mem(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, - unsigned offset) -{ - struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); - const struct imx_pinctrl_soc_info *info = ipctl->info; - const struct imx_pin_reg *pin_reg; - u32 reg; - /* - * Only Vybrid has the input/output buffer enable flags (IBE/OBE) - * They are part of the shared mux/conf register. - */ - if (!(info->flags & SHARE_MUX_CONF_REG)) - return; - - pin_reg = &info->pin_regs[offset]; - if (pin_reg->mux_reg == -1) - return; - - /* Clear IBE/OBE/PUE to disable the pin (Hi-Z) */ - reg = readl(ipctl->base + pin_reg->mux_reg); - reg &= ~0x7; - writel(reg, ipctl->base + pin_reg->mux_reg); -} int imx_pmx_backend_gpio_set_direction_mem(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset, bool input) diff --git a/drivers/pinctrl/freescale/pinctrl-scu.c b/drivers/pinctrl/freescale/pinctrl-scu.c index b7dcf56a99b2..b3667d033cbb 100644 --- a/drivers/pinctrl/freescale/pinctrl-scu.c +++ b/drivers/pinctrl/freescale/pinctrl-scu.c @@ -36,18 +36,6 @@ int imx_pmx_set_one_pin_scu(struct imx_pinctrl *ipctl, struct imx_pin *pin) return 0; } -int imx_pmx_backend_gpio_request_enable_scu(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, unsigned offset) -{ - return -EINVAL; -} - -void imx_pmx_backend_gpio_disable_free_scu(struct pinctrl_dev *pctldev, - struct pinctrl_gpio_range *range, - unsigned offset) -{ -} - int imx_pmx_backend_gpio_set_direction_scu(struct pinctrl_dev *pctldev, struct pinctrl_gpio_range *range, unsigned offset, bool input) { |