Changes since v3 - the naming scheme has been fixed to remove double underscores and use standard variable names - the locking has been updated to protect the entire read/modify operations. Regarding the suggested use of the generic MMIO library, I noticed that bgpio_init only allows for either dirin or dirout to be set, never both. But since our controller has 2 separate registers, using bgpio_init might not be possible here. Shravan Kumar Ramani (1): gpio: add driver for Mellanox BlueField GPIO controller drivers/gpio/Kconfig | 6 ++ drivers/gpio/Makefile | 1 + drivers/gpio/gpio-mlxbf.c | 222 ++++++++++++++++++++++++++++++++++++++++++++++ 3 files changed, 229 insertions(+) create mode 100644 drivers/gpio/gpio-mlxbf.c -- 2.1.2