Nuno Sá
adf4932bc9
dt-bindings: mfd: adp5585: add properties for input events
...
Add properties related to input events. These devices can act as
keyboards and can support events either via a keymap Matrix or through
GPIs. Note that the device needs to be an interrupt controller for GPIs
based events.
We specifically need a property specifying the pins used by the keymap
matrix since these devices have no requirement for rows and columns to be
contiguous without holes which is enforced by the standard input
properties.
Reviewed-by: "Rob Herring (Arm)" <robh@kernel.org >
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-11-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:51 +01:00
Nuno Sá
75024f97e8
pwm: adp5585: add support for adp5589
...
Add support for the adp5589 I/O expander. From a PWM point of view it is
pretty similar to adp5585. Main difference is the address
of registers meaningful for configuring the PWM.
Acked-by: Uwe Kleine-König <ukleinek@kernel.org >
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-10-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:51 +01:00
Nuno Sá
9f425bf713
gpio: adp5585: add support for the adp5589 expander
...
Support the adp5589 I/O expander which supports up to 19 pins. We need
to add a chip_info based struct since accessing register "banks"
and "bits" differs between devices.
Also some register addresses are different.
While at it move ADP558X_GPIO_MAX defines to the main header file and
rename them. That information will be needed by the top level device in
a following change.
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-9-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:51 +01:00
Nuno Sá
7077fb501b
mfd: adp5585: Add a per chip reg struture
...
There are some differences in the register map between the devices.
Hence, add a register structure per device. This will be needed in
following patches.
On top of that adp5585_fill_regmap_config() is renamed and reworked so
that the current struct adp5585_info act as template (they indeed
contain all the different data between variants) which can then be
complemented depending on the device (as identified by the id register).
This is done like this since a lot of the data is pretty much the same
between variants of the same device.
Reviewed-by: Lee Jones <lee@kernel.org >
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-8-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:51 +01:00
Nuno Sá
0190a72f28
mfd: adp5585: Add support for adp5589
...
The ADP5589 is a 19 I/O port expander with built-in keypad matrix decoder,
programmable logic, reset generator, and PWM generator.
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-7-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:51 +01:00
Nuno Sá
1a4eabf662
mfd: adp5585: Refactor how regmap defaults are handled
...
The only thing changing between variants is the regmap default
registers. Hence, instead of having a regmap configuration for every
variant (duplicating lots of fields), add a chip info type of structure
with a regmap ID to identify which defaults to use and populate
regmap_config at runtime given a template plus the id. Also note that
between variants, the defaults can be the same which means the chip info
structure can be used in more than one compatible.
This will also make it simpler adding new chips with more variants.
Also note that the chip info structures are deliberately not const as
they will also contain lots of members that are the same between the
different devices variants and so we will fill those at runtime.
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-6-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:50 +01:00
Nuno Sá
e65e2b0d0f
dt-bindings: mfd: adp5585: document adp5589 I/O expander
...
The ADP5589 is a 19 I/O port expander with built-in keypad matrix decoder,
programmable logic, reset generator, and PWM generator.
We can't really have adp5589 devices fallback to adp5585 (which have
less pins) because there are some significant differences in the register
map.
Reviewed-by: "Rob Herring (Arm)" <robh@kernel.org >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-5-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:50 +01:00
Nuno Sá
e6545bdb1b
mfd: adp5585: Make use of MFD_CELL_NAME()
...
Use the helper macro. No functional change intended...
Whilst we're at it, now seems like a good time to update the Copyright.
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-4-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:50 +01:00
Nuno Sá
e551760164
mfd: adp5585: Enable oscillator during probe
...
Make sure to enable the oscillator in the top device. This will allow to
not control this in the child PWM device as that would not work with
future support for keyboard matrix where the oscillator needs to be
always enabled (and so cannot be disabled by disabling PWM).
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Acked-by: Uwe Kleine-König <ukleinek@kernel.org >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-3-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:50 +01:00
Nuno Sá
175f199085
mfd: adp5585: Only add devices given in FW
...
Not all devices (features) of the adp5585 device are mandatory to be
used in all platforms. Hence, check what's given in FW and dynamically
create the mfd_cell array to be given to devm_mfd_add_devices().
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-2-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:50 +01:00
Nuno Sá
09d55a54b4
dt-bindings: mfd: adp5585: ease on the required properties
...
It is not mandatory to use all the capabilities of the device. One can
very well only use it as a gpio controller without the PWM support. This
will be even more evident when support for the matrix keymap is added.
Hence drop the requirements for PWM and GPIO.
Acked-by: "Rob Herring (Arm)" <robh@kernel.org >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Signed-off-by: Nuno Sá <nuno.sa@analog.com >
Link: https://lore.kernel.org/r/20250701-dev-adp5589-fw-v7-1-b1fcfe9e9826@analog.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-07-01 21:50:50 +01:00
Bartosz Golaszewski
26981e8906
gpio: make gpiod_is_equal() arguments stricter
...
It makes no sense for a GPIO descriptor comparator to return true when
the arguments passed to it are NULL or IS_ERR(). Let's validate both and
return false unless both are valid GPIO descriptors.
Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com >
Link: https://lore.kernel.org/all/Z_aFBfjb17JxOwyk@black.fi.intel.com/
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Acked-by: Andy Shevchenko <andriy.shevchenko@intel.com >
Link: https://lore.kernel.org/r/20250620-gpiod-is-equal-improv-v1-2-a75060505d2c@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-30 08:58:26 +02:00
Bartosz Golaszewski
08ad63bbd6
gpio: constify arguments of gpiod_is_equal()
...
This function is not meant to modify the GPIO descriptors in any way so
we can safely constify both arguments.
Link: https://lore.kernel.org/r/20250620-gpiod-is-equal-improv-v1-1-a75060505d2c@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-30 08:58:26 +02:00
Geert Uytterhoeven
3315e39e56
gpio: rcar: Use new line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
integers, so they can indicate failures. Convert the driver to using
them.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com >
Link: https://lore.kernel.org/r/f09a0481fc0ddafb9aa05d903fbb42ef52332c03.1750838486.git.geert+renesas@glider.be
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-26 10:52:04 +02:00
Geert Uytterhoeven
28a9ab01f6
gpio: rcar: Remove checks for empty bankmasks
...
The GPIO core never passes empty bankmasks to the callbacks for handling
multiple signals at once. Remove the superfluous checks, and refactor
the code.
Signed-off-by: Geert Uytterhoeven <geert+renesas@glider.be >
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com >
Link: https://lore.kernel.org/r/29fb200d3f92e79cdd5ce4048d2847c265f337b4.1750838486.git.geert+renesas@glider.be
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-26 10:52:04 +02:00
Bartosz Golaszewski
23b33cf124
gpio: clps711x: drop unneeded platform_set_drvdata()
...
There's no corresponding platform_get_drvdata() used in this module or
the higher-level gpio-mmio. Let's remove the unneeded call to
platform_set_drvdata().
Link: https://lore.kernel.org/r/20250618074653.25555-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-25 09:53:51 +02:00
Bartosz Golaszewski
cb908f3699
gpio: sa1100: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-12-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
d68ddf651d
gpio: rtd: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-11-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
6731ad96e8
gpio: rockchip: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Reviewed-by: Heiko Stuebner <heiko@sntech.de >
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-10-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
76033f1f92
gpio: rdc321x: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-8-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
309ea58111
gpio: rc5t583: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-7-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
f1ff31c8ef
gpio: pxa: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-6-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
fecdef830c
gpio: pmic-eic-sprd: drop unneeded .set() callback
...
The lines on this chip are input-only. GPIO core can handle the missing
.set() callback so there's no need to implement a dummy here. Drop it.
Reviewed-by: Baolin Wang <baolin.wang@linux.alibaba.com >
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-5-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
201e0f24a5
gpio: pl061: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-4-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
74260fb09c
gpio: pch: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Reviewed-by: Andy Shevchenko <andy@kernel.org >
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-3-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
4027438be8
gpio: pcf857x: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-2-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:46 +02:00
Bartosz Golaszewski
40b71f1171
gpio: pca9570: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250619-gpiochip-set-rv-gpio-v2-1-74abf689fbd8@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:25:45 +02:00
Daniel Sullivan
a0cfbc67d7
gpio: ts5500: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Daniel Sullivan <danieljsullivan7@gmail.com >
Link: https://lore.kernel.org/r/aFdKce3Go9iF4A6m@danv-Standard-PC-Q35-ICH9-2009
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:17:44 +02:00
Antonio Quartulli
e6bb78570f
gpio: sysfs: fix use-after-free in error path
...
When invoking device_create_with_groups(), its return value is stored
in `data->cdev_base`. However, in case of faiure, `data` is first freed
and then derefernced in order to return `data->cdev_base`.
Fix the use-after-free by extracting the error code before free'ing
`data`.
Fixes: fd19792851 ("gpio: sysfs: remove the mockdev pointer from struct gpio_device")
Addresses-Coverity-ID: 1644512 ("Memory - illegal accesses (USE_AFTER_FREE)")
Signed-off-by: Antonio Quartulli <antonio@mandelbit.com >
Link: https://lore.kernel.org/r/20250622220221.28025-1-antonio@mandelbit.com
[Bartosz: added Fixes: tag, tweaked commit message]
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-23 09:14:15 +02:00
Bartosz Golaszewski
fd19792851
gpio: sysfs: remove the mockdev pointer from struct gpio_device
...
The usage of the mockdev pointer in struct gpio_device is limited to the
GPIO sysfs code. There's no reason to keep it in this top-level
structure. Create a separate structure containing the reference to the
GPIO device and the dummy class device that will be passed to
device_create_with_groups(). The !gdev->mockdev checks can be removed as
long as we make sure that all operations on the GPIO class are protected
with the sysfs lock.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250610-gpio-sysfs-chip-export-v1-6-a8c7aa4478b1@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-20 09:29:15 +02:00
Bartosz Golaszewski
982ec96c38
gpio: sysfs: remove unneeded headers
...
No symbols from the linux/idr.h or linux/spinlock.h headers are used in
this file so remove them. We also don't technically need linux/list.h
currently but one of the follow-up commits will start using it so let's
leave it.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250610-gpio-sysfs-chip-export-v1-5-a8c7aa4478b1@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-20 09:29:14 +02:00
Bartosz Golaszewski
dc665b5248
gpio: sysfs: refactor the coding style
...
Update the code to be more consistent with the rest of the codebase.
Mostly correctly align line-breaks, remove unneeded tabs, stray newlines
& spaces and tweak the comment style.
No functional change.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250610-gpio-sysfs-chip-export-v1-4-a8c7aa4478b1@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-20 09:29:14 +02:00
Bartosz Golaszewski
e1f02b40a7
gpio: sysfs: call mutex_destroy() in gpiod_unexport()
...
While not critical, it's useful to have the corresponding call to
mutex_destroy() whenever we use mutex_init(). Add the call right before
kfreeing the GPIO data.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250610-gpio-sysfs-chip-export-v1-3-a8c7aa4478b1@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-20 09:29:14 +02:00
Bartosz Golaszewski
1ae8603074
Documentation: gpio: document the active_low field in the sysfs ABI
...
Exported GPIO lines also have the active_low attribute which is not
documented. Add a short mention for it.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250610-gpio-sysfs-chip-export-v1-2-a8c7aa4478b1@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-20 09:29:14 +02:00
Bartosz Golaszewski
5ed0d32805
Documentation: gpio: undocument removed behavior
...
Since commit 700cdf7ed0 ("gpio: sysfs: make the sysfs export behavior
consistent"), named GPIO lines are no longer exported in sysfs as links
named after the them. Drop the misleading bit from the ABI docs.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250610-gpio-sysfs-chip-export-v1-1-a8c7aa4478b1@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-20 09:29:14 +02:00
Bartosz Golaszewski
9da895e970
platform: cznic: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Signed-off-by: Marek Behún <kabel@kernel.org >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Acked-by: Marek Behún <kabel@kernel.org >
Link: https://lore.kernel.org/r/20250610-gpiochip-set-rv-platform-cznic-v1-1-30afd2444756@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-19 09:15:05 +02:00
Bartosz Golaszewski
cbb887a76b
gpio: mmio: don't use legacy GPIO chip setters
...
We've converted this driver to using the new GPIO line value setters but
missed the instances where the legacy callback is accessed directly using
the function pointer. This will lead to a NULL-pointer dereference as
this pointer is no longer populated. The issue needs fixing locally as
well as in the already converted previously users of gpio-mmio.
Fixes: b908d35d00 ("gpio: mmio: use new GPIO line value setter callbacks")
Reported-by: Klara Modin <klarasmodin@gmail.com >
Closes: https://lore.kernel.org/all/2rw2sncevdiyirpdovotztlg77apcq2btzytuv5jnm55aqhlne@swtts3hl53tw/
Tested-by: Klara Modin <klarasmodin@gmail.com >
Tested-by: Marek Szyprowski <m.szyprowski@samsung.com >
Tested-by: Mark Brown <broonie@kernel.org >
Link: https://lore.kernel.org/r/20250618-gpio-mmio-fix-setter-v1-2-2578ffb77019@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-19 09:13:44 +02:00
Bartosz Golaszewski
1fd7d21095
gpio: npcm-sgpio: don't use legacy GPIO chip setters
...
We've converted this driver to using the new GPIO line value setters but
missed the instance where the legacy callback is accessed directly using
the function pointer. This will lead to a NULL-pointer dereference as
this pointer is no longer populated. Fix it.
Fixes: 0e1a8930c9 ("gpio: npcm-sgpio: use new GPIO line value setter callbacks")
Link: https://lore.kernel.org/r/20250618-gpio-mmio-fix-setter-v1-1-2578ffb77019@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-19 09:13:44 +02:00
Bartosz Golaszewski
0a00514881
Merge tag 'gpio-mmio-bgpiof-no-input-flag-for-v6.17' into gpio/for-next
...
Immutable tag for the pinctrl tree to pull from
Add the BGPIOF_NO_INPUT to the gpio-mmio API.
2025-06-19 09:10:20 +02:00
Clément Le Goffic
deefc70834
gpio: mmio: add BGPIOF_NO_INPUT flag for GPO gpiochip
...
When using bgpio_init with a gpiochip acting as a GPO (output only), the
gpiochip ops `direction_input` was set to `bgpio_simple_dir_in` by
default but we have no input ability.
Adding this flag allows to set a valid ops for the `direction_output`
ops without setting a valid ops for `direction_input` by default.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Clément Le Goffic <clement.legoffic@foss.st.com >
Link: https://lore.kernel.org/r/20250613-hdp-upstream-v5-1-6fd6f0dc527c@foss.st.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-19 09:05:33 +02:00
Sakari Ailus
cd4da713f9
Documentation: PM: *_autosuspend() functions update last busy time
...
Document that the *_autosuspend() variants of the Runtime PM functions
update the last busy timestamp.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patch.msgid.link/20250616061212.2286741-7-sakari.ailus@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
2025-06-18 21:41:08 +02:00
Sakari Ailus
18c1fe53d1
PM: runtime: Mark last busy stamp in pm_request_autosuspend()
...
Set device's last busy timestamp to current time in
pm_request_autosuspend().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patch.msgid.link/20250616061212.2286741-6-sakari.ailus@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
2025-06-18 21:41:08 +02:00
Sakari Ailus
08071e64cb
PM: runtime: Mark last busy stamp in pm_runtime_autosuspend()
...
Set device's last busy timestamp to current time in
pm_runtime_autosuspend().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patch.msgid.link/20250616061212.2286741-5-sakari.ailus@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
2025-06-18 21:41:08 +02:00
Sakari Ailus
e24e0630b5
PM: runtime: Mark last busy stamp in pm_runtime_put_sync_autosuspend()
...
Set device's last busy timestamp to current time in
pm_runtime_put_sync_autosuspend().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patch.msgid.link/20250616061212.2286741-4-sakari.ailus@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
2025-06-18 21:41:08 +02:00
Sakari Ailus
b3db492e83
PM: runtime: Mark last busy stamp in pm_runtime_put_autosuspend()
...
Set device's last busy timestamp to current time in
pm_runtime_put_autosuspend(). Callers wishing not to do that will need to
use __pm_runtime_put_autosuspend().
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com >
Reviewed-by: Laurent Pinchart <laurent.pinchart@ideasonboard.com >
Link: https://patch.msgid.link/20250616061212.2286741-3-sakari.ailus@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
2025-06-18 21:41:08 +02:00
Sakari Ailus
271ff96d60
PM: runtime: Document return values of suspend-related API functions
...
Document return values for device suspend and idle related API
functions.
Signed-off-by: Sakari Ailus <sakari.ailus@linux.intel.com >
Link: https://patch.msgid.link/20250616061212.2286741-2-sakari.ailus@linux.intel.com
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com >
2025-06-18 21:41:08 +02:00
Rob Herring (Arm)
7b20980ffc
dt-bindings: gpio: arm,pl061: Drop interrupt properties as required
...
It is possible that the PL061 doesn't have any interrupt connected and
can't be an interrupt provider, so drop the interrupt properties as
required.
The LG LG131x SoCs are one example of this.
Signed-off-by: Rob Herring (Arm) <robh@kernel.org >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250609220900.3035642-1-robh@kernel.org
[Bartosz: g/pl011/pl061/]
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-18 12:21:31 +02:00
Bartosz Golaszewski
f3763403a6
gpio: palmas: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250610-gpiochip-set-rv-gpio-v1-12-3a9a3c1472ff@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-17 11:09:31 +02:00
Bartosz Golaszewski
57065d62e6
gpio: omap: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250610-gpiochip-set-rv-gpio-v1-11-3a9a3c1472ff@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-17 11:09:31 +02:00
Bartosz Golaszewski
f026145614
gpio: octeon: use new GPIO line value setter callbacks
...
struct gpio_chip now has callbacks for setting line values that return
an integer, allowing to indicate failures. Convert the driver to using
them.
Link: https://lore.kernel.org/r/20250610-gpiochip-set-rv-gpio-v1-10-3a9a3c1472ff@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-06-17 11:09:31 +02:00