Conor Dooley
bc06114363
gpio: mpfs: fix setting gpio direction to output
...
mpfs_gpio_direction_output() actually sets the line to input mode.
Use the correct register settings for output mode so that this function
actually works as intended.
This was a copy-paste mistake made when converting to regmap during the
driver submission process. It went unnoticed because my test for output
mode is toggling LEDs on an Icicle kit which functions with the
incorrect code. The internal reporter has yet to test the patch, but on
their system the incorrect setting may be the reason for failures to
drive the GPIO lines on the BeagleV-fire board.
CC: stable@vger.kernel.org
Fixes: a987b78f36 ("gpio: mpfs: add polarfire soc gpio support")
Signed-off-by: Conor Dooley <conor.dooley@microchip.com >
Link: https://lore.kernel.org/r/20250925-boogieman-carrot-82989ff75d10@spud
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-26 11:56:26 +02:00
Bartosz Golaszewski
2235b26c1b
gpio: generic: move GPIO_GENERIC_ flags to the correct header
...
These flags are specific to gpio-mmio and belong in linux/gpio/generic.h
so move them there.
Link: https://lore.kernel.org/r/20250917-gpio-generic-flags-v1-2-69f51fee8c89@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-24 13:52:35 +02:00
Bartosz Golaszewski
64f89f6e1f
gpio: generic: rename BGPIOF_ flags to GPIO_GENERIC_
...
Make the flags passed to gpio_generic_chip_init() use the same prefix as
the rest of the modernized generic GPIO chip API.
Link: https://lore.kernel.org/r/20250917-gpio-generic-flags-v1-1-69f51fee8c89@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-24 13:52:35 +02:00
Bartosz Golaszewski
fc51149710
Merge tag 'ib-mfd-gpio-input-pinctrl-pwm-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
...
Pull changes from the immutable branch between MFD, GPIO, Input, Pinctrl
and PWM trees containing the GPIO driver for max7360.
2025-09-18 12:39:22 +02:00
Bartosz Golaszewski
b80c59af75
Merge tag 'ib-mfd-gpio-hwmon-i2c-can-rtc-watchdog-v6.18' of git://git.kernel.org/pub/scm/linux/kernel/git/lee/mfd into gpio/for-next
...
Pull changes from the immutable branch between MFD, GPIO, HWMON, I2C,
CAN, RTC and Watchdog trees containing GPIO support for Nuvoton NCT6694.
2025-09-18 12:36:22 +02:00
Bartosz Golaszewski
0b1619c386
gpio: nomadik: fix the debugfs helper stub
...
Commit ddeb66d2cb ("gpio: nomadik: don't print out global GPIO numbers
in debugfs callbacks") failed to also update the stub of the debugfs
helper for !CONFIG_DEBUG_FS. Fix the resulting build failure.
Fixes: ddeb66d2cb ("gpio: nomadik: don't print out global GPIO numbers in debugfs callbacks")
Reported-by: kernel test robot <lkp@intel.com >
Closes: https://lore.kernel.org/oe-kbuild-all/202509132232.12viPUPB-lkp@intel.com/
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250915091007.28438-1-brgl@bgdev.pl
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-17 10:55:57 +02:00
Mathieu Dubois-Briand
32d4cedd24
MAINTAINERS: Add entry on MAX7360 driver
...
Add myself as maintainer of Maxim MAX7360 driver and device-tree bindings.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-10-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Mathieu Dubois-Briand
229c15e9a6
input: misc: Add support for MAX7360 rotary
...
Add driver for Maxim Integrated MAX7360 rotary encoder controller,
supporting a single rotary switch.
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com >
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-9-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Mathieu Dubois-Briand
fa6a23f1c5
input: keyboard: Add support for MAX7360 keypad
...
Add driver for Maxim Integrated MAX7360 keypad controller, providing
support for up to 64 keys, with a matrix of 8 columns and 8 rows.
Acked-by: Dmitry Torokhov <dmitry.torokhov@gmail.com >
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-8-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Mathieu Dubois-Briand
b1a7433d85
gpio: max7360: Add MAX7360 gpio support
...
Add driver for Maxim Integrated MAX7360 GPIO/GPO controller.
Two sets of GPIOs are provided by the device:
- Up to 8 GPIOs, shared with the PWM and rotary encoder functionalities.
These GPIOs also provide interrupts on input changes.
- Up to 6 GPOs, on unused keypad columns pins.
Co-developed-by: Kamel Bouhara <kamel.bouhara@bootlin.com >
Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com >
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-7-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Mathieu Dubois-Briand
0627b71fa5
gpio: regmap: Allow to provide init_valid_mask callback
...
Allows to populate the gpio_regmap_config structure with
init_valid_mask() callback to set on the final gpio_chip structure.
Reviewed-by: Michael Walle <mwalle@kernel.org >
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-6-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Mathieu Dubois-Briand
553b75d4bf
gpio: regmap: Allow to allocate regmap-irq device
...
GPIO controller often have support for IRQ: allow to easily allocate
both gpio-regmap and regmap-irq in one operation.
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-5-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Kamel Bouhara
d93a75d94b
pwm: max7360: Add MAX7360 PWM support
...
Add driver for Maxim Integrated MAX7360 PWM controller, supporting up to
8 independent PWM outputs.
Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com >
Co-developed-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Acked-by: Uwe Kleine-König <ukleinek@kernel.org >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-4-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Mathieu Dubois-Briand
b4b993c0e3
pinctrl: Add MAX7360 pinctrl driver
...
Add driver for Maxim Integrated MAX7360 pinctrl on the PORT pins. Pins
can be used either for GPIO, PWM or rotary encoder functionalities.
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-3-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Kamel Bouhara
a22ddeef55
mfd: Add max7360 support
...
Add core driver to support MAX7360 i2c chip, multi function device
with keypad, GPIO, PWM, GPO and rotary encoder submodules.
Signed-off-by: Kamel Bouhara <kamel.bouhara@bootlin.com >
Co-developed-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-2-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Mathieu Dubois-Briand
aee814458f
dt-bindings: mfd: gpio: Add MAX7360
...
Add device tree bindings for Maxim Integrated MAX7360 device with
support for keypad, rotary, gpios and pwm functionalities.
Reviewed-by: "Rob Herring (Arm)" <robh@kernel.org >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Signed-off-by: Mathieu Dubois-Briand <mathieu.dubois-briand@bootlin.com >
Link: https://lore.kernel.org/r/20250824-mdb-max7360-support-v14-1-435cfda2b1ea@bootlin.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 15:24:48 +01:00
Ming Yu
d463bb1405
rtc: Add Nuvoton NCT6694 RTC support
...
This driver supports RTC functionality for NCT6694 MFD device
based on USB interface.
Acked-by: Alexandre Belloni <alexandre.belloni@bootlin.com >
Signed-off-by: Ming Yu <a0282524688@gmail.com >
Link: https://lore.kernel.org/r/20250912091952.1169369-8-a0282524688@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 14:41:58 +01:00
Ming Yu
197e779d29
hwmon: Add Nuvoton NCT6694 HWMON support
...
This driver supports Hardware monitor functionality for NCT6694 MFD
device based on USB interface.
Reviewed-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Ming Yu <a0282524688@gmail.com >
Link: https://lore.kernel.org/r/20250912091952.1169369-7-a0282524688@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 14:41:57 +01:00
Ming Yu
f9d737a7d8
watchdog: Add Nuvoton NCT6694 WDT support
...
This driver supports Watchdog timer functionality for NCT6694 MFD
device based on USB interface.
Acked-by: Guenter Roeck <linux@roeck-us.net >
Signed-off-by: Ming Yu <a0282524688@gmail.com >
Link: https://lore.kernel.org/r/20250912091952.1169369-6-a0282524688@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 14:41:57 +01:00
Ming Yu
8a204684d0
can: Add Nuvoton NCT6694 CANFD support
...
This driver supports Socket CANFD functionality for NCT6694 MFD
device based on USB interface.
Reviewed-by: Marc Kleine-Budde <mkl@pengutronix.de >
Reviewed-by: Vincent Mailhol <mailhol.vincent@wanadoo.fr >
Signed-off-by: Ming Yu <a0282524688@gmail.com >
Link: https://lore.kernel.org/r/20250912091952.1169369-5-a0282524688@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 14:41:57 +01:00
Ming Yu
c5cf27dbae
i2c: Add Nuvoton NCT6694 I2C support
...
This driver supports I2C adapter functionality for NCT6694 MFD
device based on USB interface.
Each I2C controller uses the default baudrate of 100kHz, which
can be overridden via module parameters.
Acked-by: Andi Shyti <andi.shyti@kernel.org >
Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com >
Signed-off-by: Ming Yu <a0282524688@gmail.com >
Link: https://lore.kernel.org/r/20250912091952.1169369-4-a0282524688@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 14:41:57 +01:00
Ming Yu
611a995e8a
gpio: Add Nuvoton NCT6694 GPIO support
...
This driver supports GPIO and IRQ functionality for NCT6694 MFD
device based on USB interface.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Acked-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
Signed-off-by: Ming Yu <a0282524688@gmail.com >
Link: https://lore.kernel.org/r/20250912091952.1169369-3-a0282524688@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 14:41:57 +01:00
Ming Yu
51dad33ede
mfd: Add core driver for Nuvoton NCT6694
...
The Nuvoton NCT6694 provides an USB interface to the host to
access its features.
Sub-devices can use the USB functions nct6694_read_msg() and
nct6694_write_msg() to issue a command. They can also request
interrupt that will be called when the USB device receives its
interrupt pipe.
Signed-off-by: Ming Yu <a0282524688@gmail.com >
Link: https://lore.kernel.org/r/20250912091952.1169369-2-a0282524688@gmail.com
Signed-off-by: Lee Jones <lee@kernel.org >
2025-09-16 14:41:57 +01:00
Ioana Ciornei
17628f1abb
dt-bindings: gpio: fix trivial-gpio's schema id
...
In case the trivial-gpio schema is referenced through a $ref like
/schemas/trivial-gpio.yaml to match its current schema ID, the following
error message is displayed:
Error in referenced schema matching $id: http://devicetree.org/schemas/trivial-gpio.yaml
Tried these paths (check schema $id if path is wrong):
/path/to/linux/Documentation/devicetree/bindings/trivial-gpio.yaml
/path/to/dtchema/schemas/trivial-gpio.yaml
Fix this by adding the 'gpio' folder to the schema's ID to match its
file path.
Fixes: f03a7f20b2 ("dt-bindings: gpio: Create a trivial GPIO schema")
Signed-off-by: Ioana Ciornei <ioana.ciornei@nxp.com >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Link: https://lore.kernel.org/r/20250912165916.3098215-1-ioana.ciornei@nxp.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-16 11:45:24 +02:00
Bartosz Golaszewski
9b90afa6d6
gpio: move gpio-mmio-specific fields out of struct gpio_chip
...
With all users of bgpio_init() converted to using the modernized generic
GPIO chip API, we can now move the gpio-mmio-specific fields out of
struct gpio_chip and into the dedicated struct gpio_generic_chip. To
that end: adjust the gpio-mmio driver to the new layout, update the
docs, etc.
The changes in gpio-mlxbf2.c and gpio-mpc8xxx.c are here and not in their
respective conversion commits because the former passes the address of
the generic chip's lock to the __releases() annotation and we cannot
really hide it while gpio-mpc8xxx.c accesses the shadow registers in a
driver-specific workaround and there's no reason to make them available
in a public API.
Also: drop the relevant task from TODO as it's now done.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-15-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:45 +02:00
Bartosz Golaszewski
e43e94fa19
gpio: mmio: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-14-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:45 +02:00
Bartosz Golaszewski
ae9a52990b
gpio: sodaville: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Andy Shevchenko <andy@kernel.org >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-13-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:45 +02:00
Bartosz Golaszewski
063411108d
gpio: spacemit-k1: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Yixun Lan <dlan@gentoo.org >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-12-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:45 +02:00
Bartosz Golaszewski
8e1c8ccc1d
gpio: sifive: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Samuel Holland <samuel.holland@sifive.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-11-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
b24489af45
gpio: menz127: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-10-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
2c1f22fa54
gpio: mt7621: use the generic GPIO chip lock for IRQ handling
...
This driver uses its own spinlock in interrupt routines while the
generic GPIO chip callbacks use a separate one. This is, of course, racy
so use the fact that the lock in generic GPIO chip is also a spinlock and
convert the interrupt handling functions in this module to using the
provided generic GPIO chip locking API.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-9-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
80fd7e96d6
gpio: mt7621: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-8-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
e8bd2a6a50
gpio: brcmstb: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com >
Tested-by: Florian Fainelli <florian.fainelli@broadcom.com >
Acked-by: Doug Berger <opendmb@gmail.com >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-7-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
36f30f7ffc
gpio: xgene-sb: use generic GPIO chip register read and write APIs
...
The conversion to using the modernized generic GPIO chip API was
incomplete without also converting the direct calls to write/read_reg()
callbacks. Use the provided wrappers from linux/gpio/generic.h.
Fixes: 38d98a822c ("gpio: xgene-sb: use new generic GPIO chip API")
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-6-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
e7a3a1be11
gpio: ath79: use the generic GPIO chip lock for IRQ handling
...
This driver uses its own raw spinlock in interrupt routines while the
generic GPIO chip callbacks use a separate one. This is, of course, racy
so use the fact that the lock in generic GPIO chip is also a raw
spinlock and convert the interrupt handling functions in this module to
using the provided generic GPIO chip locking API.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-5-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
551a097118
gpio: ath79: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-4-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
43dffacf6b
gpio: hlwd: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-3-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
116eadc92b
gpio: loongson1: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-2-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
80d7319c7a
gpio: loongson1: allow building the module with COMPILE_TEST enabled
...
Increase build coverage by allowing the module to be built with
COMPILE_TEST=y.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250910-gpio-mmio-gpio-conv-part4-v2-1-f3d1a4c57124@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:22:44 +02:00
Bartosz Golaszewski
571c65bb2f
gpiolib: add a common prefix to GPIO descriptor flags
...
While these flags are private within drivers/gpio/, when looking at the
code, it's not really clear they are GPIO-specific. Since these are GPIO
descriptor flags, prepend their names with a common "GPIOD" prefix.
While at it: update the flags' docs: make spelling consistent, correct
outdated information, etc.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250909-rename-gpio-flags-v1-1-bda208a40856@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:20:38 +02:00
Bartosz Golaszewski
7eee64e8be
gpio: use more common syntax for compound literals
...
The (typeof(foo)) construct is unusual in the kernel, use a more typical
syntax by explicitly spelling out the type.
Link: https://lore.kernel.org/all/20250909-gpio-mmio-gpio-conv-part4-v1-13-9f723dc3524a@linaro.org/
Suggested-by: Andy Shevchenko <andriy.shevchenko@intel.com >
Reviewed-by: Andy Shevchenko <andriy.shevchenko@intel.com >
Link: https://lore.kernel.org/r/20250910-make-compound-literals-normal-again-v1-3-076ee7738a0b@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-12 09:19:56 +02:00
Colin Ian King
4c91b0ee35
gpio: loongson-64bit: Fix a less than zero check on an unsigned int struct field
...
Currently the error check from the call to platform_get_irq is always
false because an unsigned int chip->irq.parents[i] is being used to
to perform the less than zero error check. Fix this by using the int
variable ret to perform the check.
Fixes: 03c146cb6c ("gpio: loongson-64bit: Add support for Loongson-2K0300 SoC")
Signed-off-by: Colin Ian King <colin.i.king@gmail.com >
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn >
Reviewed-by: Yao Zi <ziyao@disroot.org >
Link: https://lore.kernel.org/r/20250909190356.870000-1-colin.i.king@gmail.com
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-10 10:15:01 +02:00
Chen Ni
52bdd69671
gpio: loongson-64bit: Remove unneeded semicolon
...
Remove unnecessary semicolons reported by Coccinelle/coccicheck and the
semantic patch at scripts/coccinelle/misc/semicolon.cocci.
Signed-off-by: Chen Ni <nichen@iscas.ac.cn >
Link: https://lore.kernel.org/r/20250909065913.4011133-1-nichen@iscas.ac.cn
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-09 11:36:42 +02:00
Christophe JAILLET
474014cdec
gpio: pisosr: Use devm_mutex_init()
...
Use devm_mutex_init() instead of hand-writing it.
This saves some LoC, improves readability and saves some space in the
generated .o file.
Before:
======
text data bss dec hex filename
8431 1808 192 10431 28bf drivers/gpio/gpio-pisosr.o
After:
=====
text data bss dec hex filename
8112 1736 192 10040 2738 drivers/gpio/gpio-pisosr.o
Signed-off-by: Christophe JAILLET <christophe.jaillet@wanadoo.fr >
Acked-by: Andrew Davis <afd@ti.com >
Link: https://lore.kernel.org/r/01910ebdaba7d8d0cdc4ac60eb70da8e29cb85f1.1757251512.git.christophe.jaillet@wanadoo.fr
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-08 09:38:27 +02:00
Yao Zi
03c146cb6c
gpio: loongson-64bit: Add support for Loongson-2K0300 SoC
...
This controller's input and output logic is similar to previous
generations of SoCs. Additionally, it's capable of interrupt masking,
and could be configured to detect levels and edges, and is supplied with
a distinct reset signal.
The interrupt functionality is implemented through an irqchip, whose
operations are written with previous generation SoCs in mind and could
be reused. Since all Loongson SoCs with similar interrupt capability
(LS2K1500, LS2K2000) support byte-control mode, these operations are for
byte-control mode only for simplicity.
Signed-off-by: Yao Zi <ziyao@disroot.org >
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250904013438.2405-3-ziyao@disroot.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-08 09:36:00 +02:00
Yao Zi
084d01a173
dt-bindings: gpio: loongson: Document GPIO controller of LS2K0300 SoC
...
Loongson-2K0300 ships a GPIO controller whose input/output control logic
is similar to previous generation of SoCs. Additionally, it acts as an
interrupt-controller supporting both level and edge interrupts and has a
distinct reset signal.
Describe its compatible in devicetree. We enlarge the maximum value of
ngpios to 128, since the controller technically supports at most 128
pins, although only 106 are routed out of the package. Properties for
interrupt-controllers and resets are introduced and limited as LS2K0300
only.
Signed-off-by: Yao Zi <ziyao@disroot.org >
Reviewed-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org >
Reviewed-by: Huacai Chen <chenhuacai@loongson.cn >
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250904013438.2405-2-ziyao@disroot.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-08 09:36:00 +02:00
Akhilesh Patil
d3e7efad8f
gpio: Kconfig: Update help for GPIO_PCA953X
...
Update help description with supported ICs from gpio-pca953x.c
Include missing IC names.
Signed-off-by: Akhilesh Patil <akhilesh@ee.iitb.ac.in >
Link: https://lore.kernel.org/r/aLmtOWjAWPtWe/gH@bhairav-test.ee.iitb.ac.in
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-08 09:35:11 +02:00
Bartosz Golaszewski
f3c19e70eb
gpio: mlxbf3: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250903-gpio-mmio-gpio-conv-part3-v1-12-ff346509f408@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-08 09:17:02 +02:00
Bartosz Golaszewski
ab61c8b613
gpio: ep93xx: use new generic GPIO chip API
...
Convert the driver to using the new generic GPIO chip interfaces from
linux/gpio/generic.h.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250903-gpio-mmio-gpio-conv-part3-v1-11-ff346509f408@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-08 09:17:02 +02:00
Bartosz Golaszewski
a685ac6539
gpio: ep93xx: order includes alphabetically
...
For better readability and easier maintenance, order the includes
alphabetically.
Reviewed-by: Linus Walleij <linus.walleij@linaro.org >
Link: https://lore.kernel.org/r/20250903-gpio-mmio-gpio-conv-part3-v1-10-ff346509f408@linaro.org
Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@linaro.org >
2025-09-08 09:17:02 +02:00