linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v4 0/3] gpio: gpio-regmap: Support few custom operations
@ 2021-05-26  6:02 Matti Vaittinen
  2021-05-26  6:10 ` [PATCH v4 1/3] gpio: regmap: Support few IC specific operations Matti Vaittinen
                   ` (4 more replies)
  0 siblings, 5 replies; 21+ messages in thread
From: Matti Vaittinen @ 2021-05-26  6:02 UTC (permalink / raw)
  To: Matti Vaittinen, Matti Vaittinen
  Cc: Linus Walleij, Bartosz Golaszewski, Matti Vaittinen,
	Michael Walle, Florian Fainelli, bcm-kernel-feedback-list,
	Jonas Gorski, Álvaro Fernández Rojas, linux-gpio,
	linux-kernel, linux-power, linux-arm-kernel, Andy Shevchenko

[-- Attachment #1: Type: text/plain, Size: 3045 bytes --]

Support providing some IC specific operations at gpio_regmap registration.

Implementation of few GPIO related functionalities are likely to be
very IC specific. For example the pin-configuration registers and the
pin validity checks. Allow IC driver to provide IC specific functions
which gpio-regmap can utilize for these IC specific configurations.
This should help broaden the gpio-regmap IC coverage without the need
of exposing the registered gpio_chip or struct gpio_regmap to IC drivers.

The set_config and init_valid_mask are used by ROHM BD71815 GPIO driver.
Convert the BD71815 GPIO driver to use gpio-regmap and get rid of some
code. Rest of the ROHM GPIO drivers are to be reworked after the
mechanism of adding IC specific functions is settled.

Some preliminary discussion can be seen here:
https://lore.kernel.org/linux-gpio/c4faac648d3e0c7f3dcb50f7e24c8b322e8c6974.camel@fi.rohmeurope.com/

I did also prepare change where the getters for drvdata and regmap
are used. It can also work - but it does not scale quite as well
if (when) IC drivers need some register information to do custom
operations. Interested people can see the:
https://github.com/M-Vaittinen/linux/commits/gpio-regmap-getters
for comparison.

Changelog v4:
 - Convert also the existing users.

Changelog v3:
 - divide gpio_regmap into private part and part which contains
   user-visible configurations. This should allow keeping the internal
   data internal to gpio_regmap - while allowing the IC driver to re-use
   configurations it has provided to gpio-regmap without a need of
   storing them to private-data. Furthermore avoid implementing dummy
   'getter-functions' for regmap, driver-data, register details,
   firmware node etc.
 - change devm_add_action() to devm_add_action_or_reset()
 - the bd71815 GPIO driver, completely drop private-data.

Changelog v2:
 - Add cover-letter
 - Drop unnecessary checks for callback function validity
 - drop driver_data setting function as it is likely to be a
   race-condition-by-design

---

Matti Vaittinen (3):
  gpio: regmap: Support few IC specific operations
  gpio: gpio-regmap: Use devm_add_action_or_reset()
  gpio: bd71815: Use gpio-regmap

 drivers/gpio/Kconfig                  |   1 +
 drivers/gpio/gpio-bd71815.c           | 121 ++++-----------
 drivers/gpio/gpio-regmap.c            | 212 +++++++++++++++-----------
 drivers/gpio/gpio-sl28cpld.c          |   3 +-
 drivers/pinctrl/bcm/pinctrl-bcm63xx.c |   8 +-
 include/linux/gpio/regmap.h           |  51 +++++--
 6 files changed, 194 insertions(+), 202 deletions(-)


base-commit: c4681547bcce777daf576925a966ffa824edd09d
-- 
2.25.4


-- 
Matti Vaittinen, Linux device drivers
ROHM Semiconductors, Finland SWDC
Kiviharjunlenkki 1E
90220 OULU
FINLAND

~~~ "I don't think so," said Rene Descartes. Just then he vanished ~~~
Simon says - in Latin please.
~~~ "non cogito me" dixit Rene Descarte, deinde evanescavit ~~~
Thanks to Simon Glass for the translation =] 

[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]

^ permalink raw reply	[flat|nested] 21+ messages in thread

end of thread, other threads:[~2021-06-03  7:40 UTC | newest]

Thread overview: 21+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-05-26  6:02 [PATCH v4 0/3] gpio: gpio-regmap: Support few custom operations Matti Vaittinen
2021-05-26  6:10 ` [PATCH v4 1/3] gpio: regmap: Support few IC specific operations Matti Vaittinen
2021-05-26  6:10 ` [PATCH v4 2/3] gpio: gpio-regmap: Use devm_add_action_or_reset() Matti Vaittinen
2021-05-28 17:17   ` Michael Walle
2021-06-02 11:54     ` Bartosz Golaszewski
2021-06-03  4:26       ` Matti Vaittinen
2021-06-03  7:40         ` Michael Walle
2021-05-26  6:10 ` [PATCH v4 3/3] gpio: bd71815: Use gpio-regmap Matti Vaittinen
2021-05-26  8:42 ` [PATCH v4 0/3] gpio: gpio-regmap: Support few custom operations Andy Shevchenko
2021-05-26  9:07   ` Michael Walle
2021-05-26  9:44     ` Matti Vaittinen
2021-05-26 10:27       ` Michael Walle
2021-05-26 11:00         ` Matti Vaittinen
2021-05-26 22:46 ` Linus Walleij
2021-05-27  6:32   ` Matti Vaittinen
2021-05-28  0:53     ` Linus Walleij
2021-05-28  6:33       ` Vaittinen, Matti
2021-05-28 14:31         ` Bartosz Golaszewski
2021-05-28 15:42           ` Vaittinen, Matti
2021-05-28 17:23             ` Michael Walle
2021-05-31  7:42               ` Vaittinen, Matti

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).