mirror of https://github.com/torvalds/linux.git
GPIO core:
- defer probe on software node lookups when the remote software node
exists but has not been registered as a firmware node yet
- unify GPIO hog handling by moving code duplicated in OF and ACPI
modules into GPIO core and allow setting up hogs with software nodes
- allow matching GPIO controllers by secondary firmware node if matching
by primary does not succeed
- demote deferral warnings to debug level as they are quite normal when
using software nodes which don't support fw_devlink yet
- disable the legacy GPIO character device uAPI v1 supprt in Kconfig by
default
- rework several core functions in preparation for the upcoming Revocable
helper library for protecting resources against sudden removal, this
reduces the number of SRCU dereferences in GPIO core
- simplify file descriptor logic in GPIO character device code by using
FD_PREPARE()
- introduce a header defining symbols used by both GPIO consumers and
providers to avoid having to include provider-specific headers from
drivers which only consume GPIOs
- replace snprintf() with strscpy() where formatting is not required
New drivers:
- add the gpio-by-pinctrl generic driver using the ARM SCMI protocol to
control GPIOs (along with SCMI changes pulled from the pinctrl tree)
- add a driver providing support for handling of platform events via
GPIO-signalled ACPI events (used on Intel Nova Lake and later platforms)
Driver changes:
- extend the gpio-kempld driver with support for more recent models,
interrupts and setting/getting multiple values at once
- improve interrupt handling in gpio-brcmstb
- add support for multi-SoC systems in gpio-tegra186
- make sure we return correct values from the .get() callbacks in several
GPIO drivers by normalizing any values other than 0, 1 or negative error
numbers
- use flexible arrays in several drivers to reduce the number of required
memory allocations
- simplify synchronous waiting for virtual drivers to probe and remove the
dedicated, a bit overengineered helper library dev-sync-probe
- remove unneeded Kconfig dependencies on OF_GPIO in several drivers and
subsystems
- convert the two remaining users of of_get_named_gpio() to using GPIO
descriptors and remove the (no longer used) function along with the
header that declares it
- add missing includes in gpio-mmio
- shrink and simplify code in gpio-max732x by using guard(mutex)
- remove duplicated code handling the 'ngpios' property from gpio-ts4800,
it's already handled in GPIO core
- use correct variable type in gpio-aspeed
- add support for a new model in gpio-realtek-otto
- allow to specify the active-low setting of simulated hogs over the
configfs interface (in addition to existing devicetree support) in
gpio-sim
Bug fixes:
- clear the OF_POPULATED flag on hog nodes in GPIO chip remove path on
OF systems
- fix resource leaks in error path in gpiochip_add_data_with_key()
- drop redundant device reference in gpio-mpsse
Tests:
- add selftests for use-after-free cases in GPIO character device code
DT bindings:
- add a DT binding document for SCMI based, gpio-over-pinctrl devices
- fix interrupt description in microchip,mpfs-gpio
- add new compatible for gpio-realtek-otto
- describe the resets of the mpfs-gpio controller
- fix maintainer's email in gpio-delay bindings
- remove the binding document for cavium,thunder-8890 as the corresponding
device is bound over PCI and not firmware nodes
Documentation:
- update the recommended way of converting legacy boards to using software
nodes for GPIO description
- describe GPIO line value semantics
- misc updates to kerneldocs
Misc:
- convert OMAP1 ams-delta board to using GPIO hogs described with software
nodes
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEkeUTLeW1Rh17omX8BZ0uy/82hMMFAmnYsngACgkQBZ0uy/82
hMO+Tw/+N8eX1GOWkEdZBZRzd6QW+2qjmeMgvizMUu2CzfYpcuO9kpOqiSjguj2S
6hODOajwU6EDdrxEHy7zJrAc6Tw1xIQeCnmSsFjC+4OePsCP6bU0QBgdb0V5waIx
3kEdBsM3Msw48SCDFTUQJ0XyUD/VP4TZXzhDmU0X1OJsGYDSMchiBytNpZrFt18q
qTq/NJm6mT6h5XlTeTCmfBcf/TG7MZhAPzXw8YZp+ZIgDsTRtD/P6CAZgJ0OU9f4
MQwJO5+JFkTO7XhL+qOfJcnKnC2lRHaa7mJiSQ+XS43NOqO7NGeGH2l7hU/Lx/fR
NIIZk27uBRV1akpnMGtgbqL2A8SFeH5yj3/o6S4rp9IzDwOouN+1seaL2RUHpTns
TgIm037MNIZI8eQ2lSA9/+f4vwF1bml8mA/6lVBGHI9ZcaZbcUyWjXPcsuVIyiqY
HlV+A3sVjchpaH9Eie78nbVm2X7Wm5slEazXAl3zVjlekQut+Fp+xoBWwulEjp+H
7PZXqLP2hV/Xw4C2mn/zwwokzj+1S1DPW5Inn5Y7Qi6/j4GmvdVmI1zBculrf7jj
GE6UUz+Vm9v6oE+q19jsksudVrDPapASYV/TLGQZk48IXhy+KxB8lep6L2rEAQtS
YgBltnjJlbrx99u1sZkPECzgCRYSgm59Lt0aOv93CL2fURI1Seg=
=VknJ
-----END PGP SIGNATURE-----
Merge tag 'gpio-updates-for-v7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux
Pull gpio updates from Bartosz Golaszewski:
"For this merge window we have two new drivers: support for
GPIO-signalled ACPI events on Intel platforms and a generic
GPIO-over-pinctrl driver using the ARM SCMI protocol for
controlling pins.
Several things have been reworked in GPIO core: we unduplicated GPIO
hog handling, reduced the number of SRCU locks and dereferences,
improved support for software-node-based lookup and removed more
legacy code after converting remaining users to modern alternatives.
There's also a number of driver reworks and refactoring, documentation
updates, some bug-fixes and new tests.
GPIO core:
- defer probe on software node lookups when the remote software node
exists but has not been registered as a firmware node yet
- unify GPIO hog handling by moving code duplicated in OF and ACPI
modules into GPIO core and allow setting up hogs with software
nodes
- allow matching GPIO controllers by secondary firmware node if
matching by primary does not succeed
- demote deferral warnings to debug level as they are quite normal
when using software nodes which don't support fw_devlink yet
- disable the legacy GPIO character device uAPI v1 supprt in Kconfig
by default
- rework several core functions in preparation for the upcoming
Revocable helper library for protecting resources against sudden
removal, this reduces the number of SRCU dereferences in GPIO core
- simplify file descriptor logic in GPIO character device code by
using FD_PREPARE()
- introduce a header defining symbols used by both GPIO consumers and
providers to avoid having to include provider-specific headers from
drivers which only consume GPIOs
- replace snprintf() with strscpy() where formatting is not required
New drivers:
- add the gpio-by-pinctrl generic driver using the ARM SCMI protocol
to control GPIOs (along with SCMI changes pulled from the pinctrl
tree)
- add a driver providing support for handling of platform events via
GPIO-signalled ACPI events (used on Intel Nova Lake and later
platforms)
Driver changes:
- extend the gpio-kempld driver with support for more recent models,
interrupts and setting/getting multiple values at once
- improve interrupt handling in gpio-brcmstb
- add support for multi-SoC systems in gpio-tegra186
- make sure we return correct values from the .get() callbacks in
several GPIO drivers by normalizing any values other than 0, 1 or
negative error numbers
- use flexible arrays in several drivers to reduce the number of
required memory allocations
- simplify synchronous waiting for virtual drivers to probe and
remove the dedicated, a bit overengineered helper library
dev-sync-probe
- remove unneeded Kconfig dependencies on OF_GPIO in several drivers
and subsystems
- convert the two remaining users of of_get_named_gpio() to using
GPIO descriptors and remove the (no longer used) function along
with the header that declares it
- add missing includes in gpio-mmio
- shrink and simplify code in gpio-max732x by using guard(mutex)
- remove duplicated code handling the 'ngpios' property from
gpio-ts4800, it's already handled in GPIO core
- use correct variable type in gpio-aspeed
- add support for a new model in gpio-realtek-otto
- allow to specify the active-low setting of simulated hogs over the
configfs interface (in addition to existing devicetree support) in
gpio-sim
Bug fixes:
- clear the OF_POPULATED flag on hog nodes in GPIO chip remove path
on OF systems
- fix resource leaks in error path in gpiochip_add_data_with_key()
- drop redundant device reference in gpio-mpsse
Tests:
- add selftests for use-after-free cases in GPIO character device
code
DT bindings:
- add a DT binding document for SCMI based, gpio-over-pinctrl devices
- fix interrupt description in microchip,mpfs-gpio
- add new compatible for gpio-realtek-otto
- describe the resets of the mpfs-gpio controller
- fix maintainer's email in gpio-delay bindings
- remove the binding document for cavium,thunder-8890 as the
corresponding device is bound over PCI and not firmware nodes
Documentation:
- update the recommended way of converting legacy boards to using
software nodes for GPIO description
- describe GPIO line value semantics
- misc updates to kerneldocs
Misc:
- convert OMAP1 ams-delta board to using GPIO hogs described with
software nodes"
* tag 'gpio-updates-for-v7.1-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux: (79 commits)
gpio: swnode: defer probe on references to unregistered software nodes
dt-bindings: gpio: cavium,thunder-8890: Remove DT binding
Documentation: gpio: update the preferred method for using software node lookup
gpio: gpio-by-pinctrl: s/used to do/is used to do/
gpio: aspeed: fix unsigned long int declaration
gpio: rockchip: convert to dynamic GPIO base allocation
gpio: remove dev-sync-probe
gpio: virtuser: stop using dev-sync-probe
gpio: aggregator: stop using dev-sync-probe
gpio: sim: stop using dev-sync-probe
gpio: Add Intel Nova Lake ACPI GPIO events driver
gpiolib: Make deferral warnings debug messages
gpiolib: fix hogs with multiple lines
gpio: fix up CONFIG_OF dependencies
gpio: gpio-by-pinctrl: add pinctrl based generic GPIO driver
gpio: dt-bindings: Add GPIO on top of generic pin control
firmware: arm_scmi: Allow PINCTRL_REQUEST to return EOPNOTSUPP
pinctrl: scmi: ignore PIN_CONFIG_PERSIST_STATE
pinctrl: scmi: Delete PIN_CONFIG_OUTPUT_IMPEDANCE_OHMS support
pinctrl: scmi: Add SCMI_PIN_INPUT_VALUE
...
|
||
|---|---|---|
| .. | ||
| 88pg86x.c | ||
| 88pm800-regulator.c | ||
| 88pm886-regulator.c | ||
| 88pm8607.c | ||
| Kconfig | ||
| Makefile | ||
| aat2870-regulator.c | ||
| ab8500-ext.c | ||
| ab8500.c | ||
| act8865-regulator.c | ||
| act8945a-regulator.c | ||
| ad5398.c | ||
| adp5055-regulator.c | ||
| anatop-regulator.c | ||
| arizona-ldo1.c | ||
| arizona-micsupp.c | ||
| as3711-regulator.c | ||
| as3722-regulator.c | ||
| atc260x-regulator.c | ||
| aw37503-regulator.c | ||
| axp20x-regulator.c | ||
| bcm590xx-regulator.c | ||
| bd718x7-regulator.c | ||
| bd9571mwv-regulator.c | ||
| bd9576-regulator.c | ||
| bd71815-regulator.c | ||
| bd71828-regulator.c | ||
| bd96801-regulator.c | ||
| bq257xx-regulator.c | ||
| core.c | ||
| cpcap-regulator.c | ||
| cros-ec-regulator.c | ||
| da903x-regulator.c | ||
| da9052-regulator.c | ||
| da9055-regulator.c | ||
| da9062-regulator.c | ||
| da9063-regulator.c | ||
| da9121-regulator.c | ||
| da9121-regulator.h | ||
| da9210-regulator.c | ||
| da9210-regulator.h | ||
| da9211-regulator.c | ||
| da9211-regulator.h | ||
| db8500-prcmu.c | ||
| dbx500-prcmu.c | ||
| dbx500-prcmu.h | ||
| devres.c | ||
| dummy.c | ||
| dummy.h | ||
| event.c | ||
| fan53555.c | ||
| fan53880.c | ||
| fixed-helper.c | ||
| fixed.c | ||
| fp9931.c | ||
| gpio-regulator.c | ||
| helpers.c | ||
| hi655x-regulator.c | ||
| hi6421-regulator.c | ||
| hi6421v530-regulator.c | ||
| hi6421v600-regulator.c | ||
| internal.h | ||
| irq_helpers.c | ||
| isl6271a-regulator.c | ||
| isl9305.c | ||
| lm363x-regulator.c | ||
| lochnagar-regulator.c | ||
| lp872x.c | ||
| lp873x-regulator.c | ||
| lp3971.c | ||
| lp3972.c | ||
| lp8755.c | ||
| lp8788-buck.c | ||
| lp8788-ldo.c | ||
| lp87565-regulator.c | ||
| ltc3589.c | ||
| ltc3676.c | ||
| max1586.c | ||
| max5970-regulator.c | ||
| max8649.c | ||
| max8660.c | ||
| max8893.c | ||
| max8907-regulator.c | ||
| max8925-regulator.c | ||
| max8952.c | ||
| max8973-regulator.c | ||
| max8997-regulator.c | ||
| max8998.c | ||
| max14577-regulator.c | ||
| max20086-regulator.c | ||
| max20411-regulator.c | ||
| max77503-regulator.c | ||
| max77541-regulator.c | ||
| max77620-regulator.c | ||
| max77650-regulator.c | ||
| max77675-regulator.c | ||
| max77686-regulator.c | ||
| max77693-regulator.c | ||
| max77802-regulator.c | ||
| max77826-regulator.c | ||
| max77838-regulator.c | ||
| max77857-regulator.c | ||
| mc13xxx-regulator-core.c | ||
| mc13xxx.h | ||
| mc13783-regulator.c | ||
| mc13892-regulator.c | ||
| mcp16502.c | ||
| mp886x.c | ||
| mp5416.c | ||
| mp8859.c | ||
| mpq7920.c | ||
| mpq7920.h | ||
| mt6311-regulator.c | ||
| mt6311-regulator.h | ||
| mt6315-regulator.c | ||
| mt6316-regulator.c | ||
| mt6323-regulator.c | ||
| mt6331-regulator.c | ||
| mt6332-regulator.c | ||
| mt6357-regulator.c | ||
| mt6358-regulator.c | ||
| mt6359-regulator.c | ||
| mt6360-regulator.c | ||
| mt6363-regulator.c | ||
| mt6370-regulator.c | ||
| mt6380-regulator.c | ||
| mt6397-regulator.c | ||
| mtk-dvfsrc-regulator.c | ||
| of_regulator.c | ||
| palmas-regulator.c | ||
| pbias-regulator.c | ||
| pca9450-regulator.c | ||
| pcap-regulator.c | ||
| pf8x00-regulator.c | ||
| pf530x-regulator.c | ||
| pf0900-regulator.c | ||
| pf1550-regulator.c | ||
| pf9453-regulator.c | ||
| pfuze100-regulator.c | ||
| pv88060-regulator.c | ||
| pv88060-regulator.h | ||
| pv88080-regulator.c | ||
| pv88080-regulator.h | ||
| pv88090-regulator.c | ||
| pv88090-regulator.h | ||
| pwm-regulator.c | ||
| qcom-labibb-regulator.c | ||
| qcom-pm8008-regulator.c | ||
| qcom-refgen-regulator.c | ||
| qcom-rpmh-regulator.c | ||
| qcom_rpm-regulator.c | ||
| qcom_smd-regulator.c | ||
| qcom_spmi-regulator.c | ||
| qcom_usb_vbus-regulator.c | ||
| raa215300.c | ||
| rc5t583-regulator.c | ||
| regnl.h | ||
| renesas-usb-vbus-regulator.c | ||
| rk808-regulator.c | ||
| rn5t618-regulator.c | ||
| rohm-regulator.c | ||
| rpi-panel-attiny-regulator.c | ||
| rpi-panel-v2-regulator.c | ||
| rt4801-regulator.c | ||
| rt4803.c | ||
| rt4831-regulator.c | ||
| rt5033-regulator.c | ||
| rt5120-regulator.c | ||
| rt5133-regulator.c | ||
| rt5190a-regulator.c | ||
| rt5739.c | ||
| rt5759-regulator.c | ||
| rt6160-regulator.c | ||
| rt6190-regulator.c | ||
| rt6245-regulator.c | ||
| rt8092.c | ||
| rtmv20-regulator.c | ||
| rtq2134-regulator.c | ||
| rtq2208-regulator.c | ||
| rtq6752-regulator.c | ||
| s2dos05-regulator.c | ||
| s2mpa01.c | ||
| s2mps11.c | ||
| s5m8767.c | ||
| sc2731-regulator.c | ||
| scmi-regulator.c | ||
| sky81452-regulator.c | ||
| slg51000-regulator.c | ||
| slg51000-regulator.h | ||
| spacemit-p1.c | ||
| stm32-booster.c | ||
| stm32-pwr.c | ||
| stm32-vrefbuf.c | ||
| stpmic1_regulator.c | ||
| stw481x-vmmc.c | ||
| sun20i-regulator.c | ||
| sy7636a-regulator.c | ||
| sy8106a-regulator.c | ||
| sy8824x.c | ||
| sy8827n.c | ||
| ti-abb-regulator.c | ||
| tps6105x-regulator.c | ||
| tps6286x-regulator.c | ||
| tps6287x-regulator.c | ||
| tps6507x-regulator.c | ||
| tps6524x-regulator.c | ||
| tps6586x-regulator.c | ||
| tps6594-regulator.c | ||
| tps51632-regulator.c | ||
| tps62360-regulator.c | ||
| tps65023-regulator.c | ||
| tps65086-regulator.c | ||
| tps65090-regulator.c | ||
| tps65132-regulator.c | ||
| tps65185.c | ||
| tps65217-regulator.c | ||
| tps65218-regulator.c | ||
| tps65219-regulator.c | ||
| tps65910-regulator.c | ||
| tps65912-regulator.c | ||
| tps68470-regulator.c | ||
| twl-regulator.c | ||
| twl6030-regulator.c | ||
| uniphier-regulator.c | ||
| userspace-consumer.c | ||
| vctrl-regulator.c | ||
| vexpress-regulator.c | ||
| virtual.c | ||
| vqmmc-ipq4019-regulator.c | ||
| wm831x-dcdc.c | ||
| wm831x-isink.c | ||
| wm831x-ldo.c | ||
| wm8350-regulator.c | ||
| wm8400-regulator.c | ||
| wm8994-regulator.c | ||