From: Dong Aisheng <aisheng.dong@nxp.com> To: linux-gpio@vger.kernel.org Cc: linux-arm-kernel@lists.infradead.org, linus.walleij@linaro.org, shawnguo@kernel.org, stefan@agner.ch, ping.bai@nxp.com, fugang.duan@nxp.com, kernel@pengutronix.de, Dong Aisheng <aisheng.dong@nxp.com>, Alexandre Courbot <gnurou@gmail.com> Subject: [PATCH V4 7/7] pinctrl: pinctrl-imx7ulp: add gpio_set_direction support Date: Wed, 21 Jun 2017 19:59:55 +0800 [thread overview] Message-ID: <1498046395-30001-8-git-send-email-aisheng.dong@nxp.com> (raw) In-Reply-To: <1498046395-30001-1-git-send-email-aisheng.dong@nxp.com> Add gpio_set_direction support. This makes the driver support GPIO input/output dynamically change from userspace. Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Alexandre Courbot <gnurou@gmail.com> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Stefan Agner <stefan@agner.ch> Cc: Fugang Duan <fugang.duan@nxp.com> Cc: Bai Ping <ping.bai@nxp.com> Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> --- ChangeLog: * New patch. Derived from the original: [PATCH 1/2] pinctrl: pinctrl-imx: add IBE and OBE SoC property --- drivers/pinctrl/freescale/pinctrl-imx7ulp.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/pinctrl/freescale/pinctrl-imx7ulp.c b/drivers/pinctrl/freescale/pinctrl-imx7ulp.c index 96127dc..b7bebb2 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx7ulp.c +++ b/drivers/pinctrl/freescale/pinctrl-imx7ulp.c @@ -259,6 +259,8 @@ static const struct pinctrl_pin_desc imx7ulp_pinctrl_pads[] = { IMX_PINCTRL_PIN(IMX7ULP_PAD_PTF19), }; +#define BM_OBE_ENABLED BIT(17) +#define BM_IBE_ENABLED BIT(16) #define BM_LK_ENABLED BIT(15) #define BM_MUX_MODE 0xf00 #define BP_MUX_MODE 8 @@ -300,10 +302,34 @@ static void imx7ulp_cfg_params_fixup(unsigned long *configs, } } +static int imx7ulp_pmx_gpio_set_direction(struct pinctrl_dev *pctldev, + struct pinctrl_gpio_range *range, + unsigned offset, bool input) +{ + struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); + struct imx_pinctrl_soc_info *info = ipctl->info; + const struct imx_pin_reg *pin_reg; + u32 reg; + + pin_reg = &info->pin_regs[offset]; + if (pin_reg->mux_reg == -1) + return -EINVAL; + + reg = readl(ipctl->base + pin_reg->mux_reg); + if (input) + reg = (reg & ~BM_OBE_ENABLED) | BM_IBE_ENABLED; + else + reg = (reg & ~BM_IBE_ENABLED) | BM_OBE_ENABLED; + writel(reg, ipctl->base + pin_reg->mux_reg); + + return 0; +} + static struct imx_pinctrl_soc_info imx7ulp_pinctrl_info = { .pins = imx7ulp_pinctrl_pads, .npins = ARRAY_SIZE(imx7ulp_pinctrl_pads), .flags = ZERO_OFFSET_VALID | SHARE_MUX_CONF_REG, + .gpio_set_direction = imx7ulp_pmx_gpio_set_direction, .mux_mask = BM_MUX_MODE, .mux_shift = BP_MUX_MODE, .generic_pinconf = true, -- 2.7.4
WARNING: multiple messages have this Message-ID (diff)
From: aisheng.dong@nxp.com (Dong Aisheng) To: linux-arm-kernel@lists.infradead.org Subject: [PATCH V4 7/7] pinctrl: pinctrl-imx7ulp: add gpio_set_direction support Date: Wed, 21 Jun 2017 19:59:55 +0800 [thread overview] Message-ID: <1498046395-30001-8-git-send-email-aisheng.dong@nxp.com> (raw) In-Reply-To: <1498046395-30001-1-git-send-email-aisheng.dong@nxp.com> Add gpio_set_direction support. This makes the driver support GPIO input/output dynamically change from userspace. Cc: Linus Walleij <linus.walleij@linaro.org> Cc: Alexandre Courbot <gnurou@gmail.com> Cc: Shawn Guo <shawnguo@kernel.org> Cc: Stefan Agner <stefan@agner.ch> Cc: Fugang Duan <fugang.duan@nxp.com> Cc: Bai Ping <ping.bai@nxp.com> Signed-off-by: Dong Aisheng <aisheng.dong@nxp.com> --- ChangeLog: * New patch. Derived from the original: [PATCH 1/2] pinctrl: pinctrl-imx: add IBE and OBE SoC property --- drivers/pinctrl/freescale/pinctrl-imx7ulp.c | 26 ++++++++++++++++++++++++++ 1 file changed, 26 insertions(+) diff --git a/drivers/pinctrl/freescale/pinctrl-imx7ulp.c b/drivers/pinctrl/freescale/pinctrl-imx7ulp.c index 96127dc..b7bebb2 100644 --- a/drivers/pinctrl/freescale/pinctrl-imx7ulp.c +++ b/drivers/pinctrl/freescale/pinctrl-imx7ulp.c @@ -259,6 +259,8 @@ static const struct pinctrl_pin_desc imx7ulp_pinctrl_pads[] = { IMX_PINCTRL_PIN(IMX7ULP_PAD_PTF19), }; +#define BM_OBE_ENABLED BIT(17) +#define BM_IBE_ENABLED BIT(16) #define BM_LK_ENABLED BIT(15) #define BM_MUX_MODE 0xf00 #define BP_MUX_MODE 8 @@ -300,10 +302,34 @@ static void imx7ulp_cfg_params_fixup(unsigned long *configs, } } +static int imx7ulp_pmx_gpio_set_direction(struct pinctrl_dev *pctldev, + struct pinctrl_gpio_range *range, + unsigned offset, bool input) +{ + struct imx_pinctrl *ipctl = pinctrl_dev_get_drvdata(pctldev); + struct imx_pinctrl_soc_info *info = ipctl->info; + const struct imx_pin_reg *pin_reg; + u32 reg; + + pin_reg = &info->pin_regs[offset]; + if (pin_reg->mux_reg == -1) + return -EINVAL; + + reg = readl(ipctl->base + pin_reg->mux_reg); + if (input) + reg = (reg & ~BM_OBE_ENABLED) | BM_IBE_ENABLED; + else + reg = (reg & ~BM_IBE_ENABLED) | BM_OBE_ENABLED; + writel(reg, ipctl->base + pin_reg->mux_reg); + + return 0; +} + static struct imx_pinctrl_soc_info imx7ulp_pinctrl_info = { .pins = imx7ulp_pinctrl_pads, .npins = ARRAY_SIZE(imx7ulp_pinctrl_pads), .flags = ZERO_OFFSET_VALID | SHARE_MUX_CONF_REG, + .gpio_set_direction = imx7ulp_pmx_gpio_set_direction, .mux_mask = BM_MUX_MODE, .mux_shift = BP_MUX_MODE, .generic_pinconf = true, -- 2.7.4
next prev parent reply other threads:[~2017-06-21 12:01 UTC|newest] Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top 2017-06-21 11:59 [PATCH V4 0/7] pinctrl: imx: add imx7ulp pinctrl support Dong Aisheng 2017-06-21 11:59 ` Dong Aisheng [not found] ` <1498046395-30001-1-git-send-email-aisheng.dong-3arQi8VN3Tc@public.gmane.org> 2017-06-21 11:59 ` [PATCH V4 1/7] dt-bindings: pinctrl: extend the pinmux property to support integers array Dong Aisheng 2017-06-21 11:59 ` Dong Aisheng [not found] ` <1498046395-30001-2-git-send-email-aisheng.dong-3arQi8VN3Tc@public.gmane.org> 2017-06-21 21:50 ` jmondi 2017-06-21 21:50 ` jmondi 2017-06-22 14:35 ` A.s. Dong 2017-06-22 14:35 ` A.s. Dong 2017-06-22 14:49 ` [PATCH V5 1/1] " Dong Aisheng 2017-06-22 14:49 ` Dong Aisheng [not found] ` <1498142940-7982-1-git-send-email-aisheng.dong-3arQi8VN3Tc@public.gmane.org> 2017-06-26 18:49 ` Rob Herring 2017-06-26 18:49 ` Rob Herring 2017-06-29 12:35 ` Linus Walleij 2017-06-29 12:35 ` Linus Walleij 2017-06-21 11:59 ` [PATCH V4 2/7] dt-bindings: pinctrl: add imx7ulp pinctrl binding doc Dong Aisheng 2017-06-21 11:59 ` Dong Aisheng [not found] ` <1498046395-30001-3-git-send-email-aisheng.dong-3arQi8VN3Tc@public.gmane.org> 2017-06-26 18:02 ` Rob Herring 2017-06-26 18:02 ` Rob Herring 2017-06-21 11:59 ` [PATCH V4 3/7] pinctrl: imx: switch to use the generic pinmux property Dong Aisheng 2017-06-21 11:59 ` Dong Aisheng 2017-07-12 13:57 ` A.s. Dong 2017-07-12 13:57 ` A.s. Dong 2017-07-13 8:43 ` Shawn Guo 2017-07-13 8:43 ` Shawn Guo 2017-06-21 11:59 ` [PATCH V4 4/7] pinctrl: imx: add imx7ulp driver Dong Aisheng 2017-06-21 11:59 ` Dong Aisheng 2017-06-21 11:59 ` [PATCH V4 5/7] pinctrl: imx: remove gpio_request_enable and gpio_disable_free Dong Aisheng 2017-06-21 11:59 ` Dong Aisheng 2017-06-27 3:47 ` Stefan Agner 2017-06-27 3:47 ` Stefan Agner 2017-06-27 5:27 ` A.s. Dong 2017-06-27 5:27 ` A.s. Dong 2017-06-21 11:59 ` [PATCH V4 6/7] pinctrl: imx: make imx_pmx_ops.gpio_set_direction platform specific callbacks Dong Aisheng 2017-06-21 11:59 ` Dong Aisheng 2017-06-27 3:53 ` Stefan Agner 2017-06-27 3:53 ` Stefan Agner 2017-06-21 11:59 ` Dong Aisheng [this message] 2017-06-21 11:59 ` [PATCH V4 7/7] pinctrl: pinctrl-imx7ulp: add gpio_set_direction support Dong Aisheng 2017-07-12 13:59 ` A.s. Dong 2017-07-12 13:59 ` A.s. Dong 2017-07-13 8:46 ` Shawn Guo 2017-07-13 8:46 ` Shawn Guo 2017-07-03 10:36 ` [PATCH V4 0/7] pinctrl: imx: add imx7ulp pinctrl support A.s. Dong 2017-07-03 10:36 ` A.s. Dong 2017-07-12 11:59 ` Linus Walleij 2017-07-12 11:59 ` Linus Walleij 2017-07-12 13:54 ` A.s. Dong 2017-07-12 13:54 ` A.s. Dong
Reply instructions: You may reply publicly to this message via plain-text email using any one of the following methods: * Save the following mbox file, import it into your mail client, and reply-to-all from there: mbox Avoid top-posting and favor interleaved quoting: https://en.wikipedia.org/wiki/Posting_style#Interleaved_style * Reply using the --to, --cc, and --in-reply-to switches of git-send-email(1): git send-email \ --in-reply-to=1498046395-30001-8-git-send-email-aisheng.dong@nxp.com \ --to=aisheng.dong@nxp.com \ --cc=fugang.duan@nxp.com \ --cc=gnurou@gmail.com \ --cc=kernel@pengutronix.de \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=ping.bai@nxp.com \ --cc=shawnguo@kernel.org \ --cc=stefan@agner.ch \ /path/to/YOUR_REPLY https://kernel.org/pub/software/scm/git/docs/git-send-email.html * If your mail client supports setting the In-Reply-To header via mailto: links, try the mailto: linkBe sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes, see mirroring instructions on how to clone and mirror all data and code used by this external index.