From: AKASHI Takahiro <takahiro.akashi@linaro.org> To: sudeep.holla@arm.com, cristian.marussi@arm.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, linus.walleij@linaro.org Cc: Oleksii_Moisieiev@epam.com, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, AKASHI Takahiro <takahiro.akashi@linaro.org> Subject: [RFC v2 3/5] pinctrl: add pinctrl_gpio_get_config() Date: Thu, 5 Oct 2023 11:58:41 +0900 [thread overview] Message-ID: <20231005025843.508689-4-takahiro.akashi@linaro.org> (raw) In-Reply-To: <20231005025843.508689-1-takahiro.akashi@linaro.org> This is a counterpart of pinctrl_gpio_set_config() which will be used, at least initially, to implement gpio_get interface in pin controller based generic gpio driver. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> --- RFC (Oct 2, 2023) --- drivers/pinctrl/core.c | 19 +++++++++++++++++++ include/linux/pinctrl/consumer.h | 8 ++++++++ 2 files changed, 27 insertions(+) diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index e9dc9638120a..2f9c2efdfe0e 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c @@ -926,6 +926,25 @@ int pinctrl_gpio_set_config(unsigned gpio, unsigned long config) } EXPORT_SYMBOL_GPL(pinctrl_gpio_set_config); +int pinctrl_gpio_get_config(unsigned int gpio, unsigned long *config) +{ + struct pinctrl_gpio_range *range; + struct pinctrl_dev *pctldev; + int ret, pin; + + ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range); + if (ret) + return ret; + + mutex_lock(&pctldev->mutex); + pin = gpio_to_pin(range, gpio); + ret = pin_config_get_for_pin(pctldev, pin, config); + mutex_unlock(&pctldev->mutex); + + return ret; +} +EXPORT_SYMBOL_GPL(pinctrl_gpio_get_config); + static struct pinctrl_state *find_state(struct pinctrl *p, const char *name) { diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h index 4729d54e8995..852fac97a79b 100644 --- a/include/linux/pinctrl/consumer.h +++ b/include/linux/pinctrl/consumer.h @@ -31,6 +31,8 @@ extern void pinctrl_gpio_free(unsigned gpio); extern int pinctrl_gpio_direction_input(unsigned gpio); extern int pinctrl_gpio_direction_output(unsigned gpio); extern int pinctrl_gpio_set_config(unsigned gpio, unsigned long config); +extern int pinctrl_gpio_get_config(unsigned int gpio, + unsigned long *config); extern struct pinctrl * __must_check pinctrl_get(struct device *dev); extern void pinctrl_put(struct pinctrl *p); @@ -92,6 +94,12 @@ static inline int pinctrl_gpio_set_config(unsigned gpio, unsigned long config) return 0; } +static inline int pinctrl_gpio_get_config(unsigned int gpio, + unsigned long *config) +{ + return 0; +} + static inline struct pinctrl * __must_check pinctrl_get(struct device *dev) { return NULL; -- 2.34.1
WARNING: multiple messages have this Message-ID (diff)
From: AKASHI Takahiro <takahiro.akashi@linaro.org> To: sudeep.holla@arm.com, cristian.marussi@arm.com, robh+dt@kernel.org, krzysztof.kozlowski+dt@linaro.org, conor+dt@kernel.org, linus.walleij@linaro.org Cc: Oleksii_Moisieiev@epam.com, linux-arm-kernel@lists.infradead.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, linux-gpio@vger.kernel.org, AKASHI Takahiro <takahiro.akashi@linaro.org> Subject: [RFC v2 3/5] pinctrl: add pinctrl_gpio_get_config() Date: Thu, 5 Oct 2023 11:58:41 +0900 [thread overview] Message-ID: <20231005025843.508689-4-takahiro.akashi@linaro.org> (raw) In-Reply-To: <20231005025843.508689-1-takahiro.akashi@linaro.org> This is a counterpart of pinctrl_gpio_set_config() which will be used, at least initially, to implement gpio_get interface in pin controller based generic gpio driver. Signed-off-by: AKASHI Takahiro <takahiro.akashi@linaro.org> Reviewed-by: Linus Walleij <linus.walleij@linaro.org> --- RFC (Oct 2, 2023) --- drivers/pinctrl/core.c | 19 +++++++++++++++++++ include/linux/pinctrl/consumer.h | 8 ++++++++ 2 files changed, 27 insertions(+) diff --git a/drivers/pinctrl/core.c b/drivers/pinctrl/core.c index e9dc9638120a..2f9c2efdfe0e 100644 --- a/drivers/pinctrl/core.c +++ b/drivers/pinctrl/core.c @@ -926,6 +926,25 @@ int pinctrl_gpio_set_config(unsigned gpio, unsigned long config) } EXPORT_SYMBOL_GPL(pinctrl_gpio_set_config); +int pinctrl_gpio_get_config(unsigned int gpio, unsigned long *config) +{ + struct pinctrl_gpio_range *range; + struct pinctrl_dev *pctldev; + int ret, pin; + + ret = pinctrl_get_device_gpio_range(gpio, &pctldev, &range); + if (ret) + return ret; + + mutex_lock(&pctldev->mutex); + pin = gpio_to_pin(range, gpio); + ret = pin_config_get_for_pin(pctldev, pin, config); + mutex_unlock(&pctldev->mutex); + + return ret; +} +EXPORT_SYMBOL_GPL(pinctrl_gpio_get_config); + static struct pinctrl_state *find_state(struct pinctrl *p, const char *name) { diff --git a/include/linux/pinctrl/consumer.h b/include/linux/pinctrl/consumer.h index 4729d54e8995..852fac97a79b 100644 --- a/include/linux/pinctrl/consumer.h +++ b/include/linux/pinctrl/consumer.h @@ -31,6 +31,8 @@ extern void pinctrl_gpio_free(unsigned gpio); extern int pinctrl_gpio_direction_input(unsigned gpio); extern int pinctrl_gpio_direction_output(unsigned gpio); extern int pinctrl_gpio_set_config(unsigned gpio, unsigned long config); +extern int pinctrl_gpio_get_config(unsigned int gpio, + unsigned long *config); extern struct pinctrl * __must_check pinctrl_get(struct device *dev); extern void pinctrl_put(struct pinctrl *p); @@ -92,6 +94,12 @@ static inline int pinctrl_gpio_set_config(unsigned gpio, unsigned long config) return 0; } +static inline int pinctrl_gpio_get_config(unsigned int gpio, + unsigned long *config) +{ + return 0; +} + static inline struct pinctrl * __must_check pinctrl_get(struct device *dev) { return NULL; -- 2.34.1 _______________________________________________ linux-arm-kernel mailing list linux-arm-kernel@lists.infradead.org http://lists.infradead.org/mailman/listinfo/linux-arm-kernel
next prev parent reply other threads:[~2023-10-05 16:34 UTC|newest] Thread overview: 68+ messages / expand[flat|nested] mbox.gz Atom feed top 2023-10-05 2:58 [RFC v2 0/5] gpio: add pinctrl based generic gpio driver AKASHI Takahiro 2023-10-05 2:58 ` AKASHI Takahiro 2023-10-05 2:58 ` [RFC v2 1/5] pinctrl: define PIN_CONFIG_INPUT AKASHI Takahiro 2023-10-05 2:58 ` AKASHI Takahiro 2023-10-10 11:53 ` Linus Walleij 2023-10-10 11:53 ` Linus Walleij 2023-10-05 2:58 ` [RFC v2 2/5] pinctrl: always export pin_config_get_for_pin() AKASHI Takahiro 2023-10-05 2:58 ` AKASHI Takahiro 2023-10-10 11:54 ` Linus Walleij 2023-10-10 11:54 ` Linus Walleij 2023-10-05 2:58 ` AKASHI Takahiro [this message] 2023-10-05 2:58 ` [RFC v2 3/5] pinctrl: add pinctrl_gpio_get_config() AKASHI Takahiro 2023-10-05 2:58 ` [RFC v2 4/5] gpio: add pinctrl based generic gpio driver AKASHI Takahiro 2023-10-05 2:58 ` AKASHI Takahiro 2023-10-10 12:00 ` Linus Walleij 2023-10-10 12:00 ` Linus Walleij 2023-10-12 1:08 ` AKASHI Takahiro 2023-10-12 1:08 ` AKASHI Takahiro 2023-10-05 2:58 ` [RFC v2 5/5] dt-bindings: gpio: Add bindings for " AKASHI Takahiro 2023-10-05 2:58 ` AKASHI Takahiro 2023-10-05 19:48 ` Krzysztof Kozlowski 2023-10-05 19:48 ` Krzysztof Kozlowski 2023-10-12 1:15 ` AKASHI Takahiro 2023-10-12 1:15 ` AKASHI Takahiro 2023-10-12 7:27 ` Krzysztof Kozlowski 2023-10-12 7:27 ` Krzysztof Kozlowski 2023-10-06 13:18 ` Rob Herring 2023-10-06 13:18 ` Rob Herring 2023-10-06 13:23 ` Rob Herring 2023-10-06 13:23 ` Rob Herring 2023-10-09 7:49 ` Linus Walleij 2023-10-09 7:49 ` Linus Walleij 2023-10-09 9:08 ` Cristian Marussi 2023-10-09 9:08 ` Cristian Marussi 2023-10-09 13:13 ` Linus Walleij 2023-10-09 13:13 ` Linus Walleij 2023-10-09 15:08 ` Cristian Marussi 2023-10-09 15:08 ` Cristian Marussi 2023-10-10 5:14 ` AKASHI Takahiro 2023-10-10 5:14 ` AKASHI Takahiro 2023-10-10 5:25 ` AKASHI Takahiro 2023-10-10 5:25 ` AKASHI Takahiro 2023-10-12 7:25 ` Linus Walleij 2023-10-12 7:25 ` Linus Walleij 2023-10-17 2:32 ` AKASHI Takahiro 2023-10-17 2:32 ` AKASHI Takahiro 2023-10-23 8:12 ` Linus Walleij 2023-10-23 8:12 ` Linus Walleij 2023-10-24 7:12 ` AKASHI Takahiro 2023-10-24 7:12 ` AKASHI Takahiro 2023-10-24 9:40 ` Linus Walleij 2023-10-24 9:40 ` Linus Walleij 2023-10-24 10:55 ` Cristian Marussi 2023-10-24 10:55 ` Cristian Marussi 2023-10-24 13:01 ` Linus Walleij 2023-10-24 13:01 ` Linus Walleij 2023-10-24 11:09 ` AKASHI Takahiro 2023-10-24 11:09 ` AKASHI Takahiro 2023-10-24 13:12 ` Linus Walleij 2023-10-24 13:12 ` Linus Walleij 2023-10-24 13:42 ` AKASHI Takahiro 2023-10-24 13:42 ` AKASHI Takahiro 2023-11-05 22:15 ` Linus Walleij 2023-11-05 22:15 ` Linus Walleij 2023-10-19 21:27 ` [RFC v2 0/5] gpio: add " andy.shevchenko 2023-10-19 21:27 ` andy.shevchenko 2023-10-20 0:21 ` AKASHI Takahiro 2023-10-20 0:21 ` AKASHI Takahiro
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=20231005025843.508689-4-takahiro.akashi@linaro.org \ --to=takahiro.akashi@linaro.org \ --cc=Oleksii_Moisieiev@epam.com \ --cc=conor+dt@kernel.org \ --cc=cristian.marussi@arm.com \ --cc=devicetree@vger.kernel.org \ --cc=krzysztof.kozlowski+dt@linaro.org \ --cc=linus.walleij@linaro.org \ --cc=linux-arm-kernel@lists.infradead.org \ --cc=linux-gpio@vger.kernel.org \ --cc=linux-kernel@vger.kernel.org \ --cc=robh+dt@kernel.org \ --cc=sudeep.holla@arm.com \ /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.