- several refactoring patches of the core gpiolib code
- add support for NXP PCAL9554B/C to gpio-pca953x
- allow probing mockup devices from device tree
- refactoring and improvements to gpio-rcar
- improvements to locking in gpio-tegra
- code shrink in gpiolib devres
- get the irq offset from device tree in gpio-sifive
- major refactoring of gpio-exar
- convert gpio-mvebu pwm access to regmap
- create a new submenu for virtual GPIO drivers
- fix clang fall-through warnings treewide
- minor driver refactoring and tweaks sprinkled all over
-----BEGIN PGP SIGNATURE-----
iQIzBAABCAAdFiEEFp3rbAvDxGAT0sefEacuoBRx13IFAl/QnM8ACgkQEacuoBRx
13LkDw/+NKHc32hKgMJmSsLLFHgZ8XB+7Y775G5Ejxj+4Z0hVY9LdqL0zSYwrzCg
D2dKwrKMtM83T8vf0bVbPdZ/9uuqrljvocGYt2CFmDqQa3sSlJkyDiSak2HAqjK/
p9cgDQaUIlDrg2xh/1kSqELQoONmp4m82i++bItIwxIqAwPWfjSHVD7EQznDu0QD
MJ7eYSuVlpeBhMwfyGCYSuUFhd4wN+nTkLTYw3nNlU4PHCKpdgYd7SBCJjSsLAhM
8FOQ+PBspS6t8lPIEa4Mt+TOWUbbboGUBy40GPNU8QcUjbzj3TwPIBJu/0SIdSOy
fBrk+GRjWtJ9shSlz0WQ19mG+qMjIiw4xLY1Jh3Tr4b75bQ3a4pk50aPWNE6bbHV
NP1wZer/s06f1TQFKjfuDVFsOoRLyrTuOzlW0COAHoqFOdgimZi36xtjaS3AL3lE
POBiBxFo9VaQ0enD99QMBt3940IP3ekRmlqRxeR1t8C0gE5np8IMZ5Dti8Fh4eCN
hUQTDDuWQadluOdhMdLCBh5cA3VfZY8xksAMBzAYnSUHzM2D8TcKVjfJeegCEuZd
kapAV3nLUv1/ZU36okFpMaHaKBL+xGDv8gtV2ro7rptkm6khNPQ3hxKvRbCRCG+S
fO6IKThwozZEL/uVvsZLRKvN47g89oAGYYfasqq49932WChVKf8=
=RmnM
-----END PGP SIGNATURE-----
Merge tag 'gpio-updates-for-v5.11' of git://git.kernel.org/pub/scm/linux/kernel/git/brgl/linux into devel
gpio updates for v5.11-rc1
- several refactoring patches of the core gpiolib code
- add support for NXP PCAL9554B/C to gpio-pca953x
- allow probing mockup devices from device tree
- refactoring and improvements to gpio-rcar
- improvements to locking in gpio-tegra
- code shrink in gpiolib devres
- get the irq offset from device tree in gpio-sifive
- major refactoring of gpio-exar
- convert gpio-mvebu pwm access to regmap
- create a new submenu for virtual GPIO drivers
- fix clang fall-through warnings treewide
- minor driver refactoring and tweaks sprinkled all over
When reporting the state of a GPIO to userspace, we never check
for the actual validity of the line, meaning we report invalid
lines as being usable. A subsequent request will fail though,
which is an inconsistent behaviour from a userspace perspective.
Instead, let's check for the validity of the line and report it
as used if it is invalid. This allows a tool such as gpioinfo
to report something sensible:
gpiochip3 - 4 lines:
line 0: unnamed unused input active-high
line 1: unnamed kernel input active-high [used]
line 2: unnamed kernel input active-high [used]
line 3: unnamed unused input active-high
In this example, lines 1 and 2 are invalid, and cannot be used by
userspace.
Signed-off-by: Marc Zyngier <maz@kernel.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20201204164739.781812-2-maz@kernel.org
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Since we already have a few virtual GPIO drivers, and more to come,
this category deserves its own submenu.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
For logging in device contexts, dev_*() functions are preferred over
raw printk(), which also print out device name.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Link: https://lore.kernel.org/r/20201203182423.5499-2-info@metux.net
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
For logging in device contexts, dev_*() functions are preferred over
raw printk(), which also print out device name.
Signed-off-by: Enrico Weigelt, metux IT consult <info@metux.net>
Link: https://lore.kernel.org/r/20201203182423.5499-1-info@metux.net
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
The idea to create a debugfs to replace the aging and
dangerous sysfs ABI for hacking and tinkering came up
on the list.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Geert Uytterhoeven <geert+renesas@glider.be>
Cc: Geert Uytterhoeven <geert+renesas@glider.be>
Link: https://lore.kernel.org/r/20201204083533.65830-1-linus.walleij@linaro.org
When trying to export an nonexisting gpio ID, the kernel prints out a
big warning w/ stacktrace, sounding like a huge problem. In fact it's
a pretty normal situation, like file or device not found.
So, just print a more relaxed warning instead.
changes v2: drop defining pr_fmt()
Signed-off-by: Enrico Weigelt <info@metux.net>
Link: https://lore.kernel.org/r/20201202133754.32045-1-info@metux.net
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Using CLOCK_REALTIME as the source for event timestamps is crucial for
some specific applications, particularly those requiring timetamps
relative to a PTP clock, so provide an option to switch the event
timestamp source from the default CLOCK_MONOTONIC to CLOCK_REALTIME.
Note that CLOCK_REALTIME was the default source clock for GPIO until
Linux 5.7 when it was changed to CLOCK_MONOTONIC due to issues with the
shifting of the realtime clock.
Providing this option maintains the CLOCK_MONOTONIC as the default,
while also providing a path forward for those dependent on the pre-5.7
behaviour.
Suggested-by: Jack Winch <sunt.un.morcov@gmail.com>
Signed-off-by: Kent Gibson <warthog618@gmail.com>
Link: https://lore.kernel.org/r/20201014231158.34117-2-warthog618@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This adds a driver that supports the GPIO block found in
MStar/SigmaStar ARMv7 SoCs.
The controller seems to have enough register for 128 lines
but where they are wired up differs between chips and
no currently known chip uses anywhere near 128 lines so there
needs to be some per-chip data to collect together what lines
actually have physical pins attached and map the right names to them.
The core peripherals seem to use the same lines on the
currently known chips but the lines used for the sensor
interface, lcd controller etc pins seem to be totally
different between the infinity and mercury chips
The code tries to collect all of the re-usable names,
offsets etc together so that it's easy to build the extra
per-chip data for other chips in the future.
So far this only supports the MSC313 and MSC313E chips.
Support for the SSC8336N (mercury5) is trivial to add once
all of the lines have been mapped out.
Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Link: https://lore.kernel.org/r/20201129110803.2461700-4-daniel@0x0f.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Add a binding description for the MStar/SigmaStar GPIO controller
found in the MSC313 and later ARMv7 SoCs.
Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201129110803.2461700-3-daniel@0x0f.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Header adds defines for the gpio number of each pad from the driver view.
The gpio block seems to have enough registers for 128 lines but what line
is mapped to a physical pin depends on the chip. The gpio block also seems
to contain some registers that are not related to gpio but needed somewhere
to go.
Because of the above the driver itself uses the index of a pin's offset in
an array of the possible offsets for a chip as the gpio number.
Signed-off-by: Daniel Palmer <daniel@0x0f.com>
Reviewed-by: Rob Herring <robh@kernel.org>
Link: https://lore.kernel.org/r/20201129110803.2461700-2-daniel@0x0f.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Use a unique include guard for the Tegra186 GPIO DT bindings header to
avoid clashes with the DT bindings header for earlier chips.
Signed-off-by: Thierry Reding <treding@nvidia.com>
Link: https://lore.kernel.org/r/20201127140852.123192-2-thierry.reding@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
The "Interacting With the Legacy GPIO Subsystem" of the documentation
was unclear at best, and even included a sentence that seems to say the
opposite of what it should say about the lifetime of the return value of
the conversion functions.
Try to clarify things a bit and hopefully make that section more
readable.
Reported-by: Andy Shevchenko <andy.shevchenko@gmail.com>
BugLink: https://stackoverflow.com/q/64455505/2511795
Signed-off-by: Alexandre Courbot <gnurou@gmail.com>
Link: https://lore.kernel.org/r/20201122092548.61979-1-gnurou@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
mxs is a devicetree-only platform and hence it does not make use
of the id_table mechanism.
Get rid of the .id_table as it is unused.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Link: https://lore.kernel.org/r/20201118191938.32693-1-festevam@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
This assigns the .irq_set_affinity to the parent callback.
I assume the Tegra186 is an SMP system so this would be
beneficial.
I used the pattern making the hirerarchy tolerant for missing
parent as in Marc's earlier patch.
Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Cc: Thierry Reding <treding@nvidia.com>
Cc: Vidya Sagar <vidyas@nvidia.com>
Link: https://lore.kernel.org/r/20201117213351.249668-2-linus.walleij@linaro.org
This assigns the .irq_set_affinity to the parent callback.
I assume the sifive GPIO can be used in systems with
SMP.
I used the pattern making the hirerarchy tolerant for missing
parent as in Marc's earlier patches.
Suggested-by: Marc Zyngier <maz@kernel.org>
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Cc: Yash Shah <yash.shah@sifive.com>
Cc: Wesley W. Terpstra <wesley@sifive.com>
Link: https://lore.kernel.org/r/20201117213351.249668-1-linus.walleij@linaro.org
If users select sysfs support they get the character device
as well so that end-users cannot complain that they
"only have sysfs on my system". They should have the
character device at all times.
If someone is in so dire need of stripping out the
character device while still enabling the sysfs ABI they
can very well patch the kernel.
Also only show this obsolete option to expert users.
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
Link: https://lore.kernel.org/r/20201110142724.14760-1-linus.walleij@linaro.org
Commit 2233bf7a92 ("gpio: mvebu: switch to regmap for register access")
changed most readl/writel registers access calls to the regmap API in
preparation for Armada 7K/8K support. PWM duration registers were left using
readl/writel, as the driver does not support PWM for Armada 7K/8K.
Switch PWM duration registers to regmap as first step in adding Armada 7K/8K
PWM functionality support.
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
Signed-off-by: Baruch Siach <baruch@tkos.co.il>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
The gpiochip may have dependencies from pinmux and so got deferred. Now it
will print error message every time -EPROBE_DEFER is returned which is
unnecessary:
"gpiochip_add_data_with_key: GPIOs 0..31 (gpio-0-31) failed to register, -517"
Hence, do suppress error message for -EPROBE_DEFER case.
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
In preparation to enable -Wimplicit-fallthrough for Clang, fix a
warning by explicitly adding a fallthrough pseudo-keyword to indicate
that the code is intended to fall through to the next case.
Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
In preparation to enable -Wimplicit-fallthrough for Clang, fix a warning
by explicitly adding a break statement instead of letting the code fall
through to the next case.
Link: https://github.com/KSPP/linux/issues/115
Signed-off-by: Gustavo A. R. Silva <gustavoars@kernel.org>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
The gpiochip_add_data() may return -EPROBE_DEFER which is not handled
properly by TI GPIO driver and causes unnecessary boot log messages.
Hence, add proper deferred probe handling with new dev_err_probe() API.
Signed-off-by: Grygorii Strashko <grygorii.strashko@ti.com>
Acked-by: Tony Lindgren <tony@atomide.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
There is no matching spi_get_drvdata() call in the driver, so there is no
need to do spi_set_drvdata(). This looks like it probably was copied from a
driver that used both spi_set_drvdata() & spi_get_drvdata().
Signed-off-by: Alexandru Ardelean <alexandru.ardelean@analog.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
In dwapb_get_reset(), if devm_reset_control_get_optional_shared() fails,
an error message is printed even if the failure is the benign
EPROBE_DEFER error due to the reset controller not yet being
initialized. Use dev_err_probe() to handle
devm_reset_control_get_optional_shared() errors to avoid unnecessarilly
printing an error message for the deferred probe error.
Signed-off-by: Damien Le Moal <damien.lemoal@wdc.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
We can simplify the error path in probe() and drop remove() entirely if
we provide a devm action for freeing the device ID.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
We can simplify the code in gpio-exar by using regmap. This allows us to
drop the mutex (regmap provides its own locking) and we can also reuse
regmap's bit operations instead of implementing our own update function.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Provide and use helpers for calculating the register address and bit
offset instead of hand coding it in every function.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
It's more elegant to use a helper local variable to store the address
of the underlying struct device than to dereference pdev everywhere. It
also has the benefit of avoiding unnecessary line breaks.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
We don't need to specify any ranges when allocating IDs so we can switch
to ida_alloc() and ida_free() instead of the ida_simple_ counterparts.
ida_simple_get(ida, 0, 0, gfp) is equivalent to
ida_alloc_range(ida, 0, UINT_MAX, gfp) which is equivalent to
ida_alloc(ida, gfp). Note: IDR will never actually allocate an ID
larger than INT_MAX.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
This driver uses IDA APIs but doesn't include the relevant header. This
fixes it.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
It's customary to have a newline between the copyright header and the
includes. Add one to gpio-exar.
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
We can get hwirq number of the gpio by its irq_data->hwirq so that we don't
need to add more macros for different platforms. This patch is tested in
SiFive Unleashed board and SiFive Unmatched board.
Signed-off-by: Greentime Hu <greentime.hu@sifive.com>
Signed-off-by: Bartosz Golaszewski <bgolaszewski@baylibre.com>
Since 5.10-rc1 i.MX is a devicetree-only platform, so simplify the code
by removing the unused non-DT support.
Signed-off-by: Fabio Estevam <festevam@gmail.com>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Link: https://lore.kernel.org/r/20201117105917.27591-1-festevam@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
In two different instances the return value of "of_property_read_u32"
API was neither captured nor checked.
Fixed it by capturing the return value and then checking for any error.
Signed-off-by: Srinivas Neeli <srinivas.neeli@xilinx.com>
Acked-by: Michal Simek <michal.simek@xilinx.com>
Addresses-Coverity: "check_return"
Link: https://lore.kernel.org/r/1605201148-4508-9-git-send-email-srinivas.neeli@xilinx.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org>
* Refactor GPIO library to support bias and debounce ACPI settings
The following is an automated git shortlog grouped by driver:
gpiolib:
- acpi: Make Intel GPIO tree official for GPIO ACPI work
- acpi: Use BIT() macro to increase readability
- acpi: Convert pin_index to be u16
- acpi: Extract acpi_request_own_gpiod() helper
- acpi: Make acpi_gpio_to_gpiod_flags() usable for GpioInt()
- acpi: Set initial value for output pin based on bias and polarity
- acpi: Move acpi_gpio_to_gpiod_flags() upper in the code
- acpi: Move non-critical code outside of critical section
- acpi: Take into account debounce settings
- acpi: Use named item for enum gpiod_flags variable
- acpi: Respect bias settings for GpioInt() resource
- Introduce gpio_set_debounce_timeout() for internal use
- Extract gpio_set_config_with_argument_optional() helper
- move bias related code from gpio_set_config() to gpio_set_bias()
- Extract gpio_set_config_with_argument() for future use
- use proper API to pack pin configuration parameters
- add missed break statement
- Replace unsigned by unsigned int
Merge tag 'intel-pinctrl-v5.10-2' into HEAD:
- Merge tag 'intel-pinctrl-v5.10-2' into HEAD
pinctrl:
- intel: Set default bias in case no particular value given
- intel: Fix 2 kOhm bias which is 833 Ohm
-----BEGIN PGP SIGNATURE-----
iQIzBAABCgAdFiEEqaflIX74DDDzMJJtb7wzTHR8rCgFAl+ymNoACgkQb7wzTHR8
rCg4hA//ehlYJqZZHccn6DCqk5n6K8jbSI7duuYMYLs4yapn1M+eJEfdDjLZdz8n
aEFH+qyE2q/PiiRa2ZssvNvrH+nQIdFulADvM1El9BZAYE2CX1z5160JHl6iY1sj
eENwCMM5N5Ob1KgRFHSnbVBYlcyeXyjp8ZZQPdOXH3CsFqc6SK4K3fEx+DkW3ctr
QM0/jA1JA+Y+jNRpYmH4oheLwWKhezJ+nwVmi6Uw0iUpzqSSfl09JGFltWKAzNBP
nEF3i8CakPx66NEjHkfKQnueqDWrdgapXDxcHTZ1O4UQJaNWPKxcU7ulQMULYC4W
nlgiD9Td3/I8jsIjqrKy/SfrOrDZOjCgUAkKctCGOZ4xmvK0nYRrIq+Mt70782fK
3XZh4/KVDh4nhqjCRbLOZokmlwuQN1xOcxTOLMRX6UZ2BHcYn+dPP2q8RxUSnTQS
ttlysCgT5oZcMzbNAzYZGcWjN6WuQTvbIebVS1q/6lG6cvbkehn3DcPb4CX8GSjU
Srn8TUFh2B7dBOyZI2DXZLvNzs+QFzfJy1N9WIMo5pEIZ8I+rBb00OlP7HGONAx9
5jWxDREIHO+2Qy7yqewE88QtnDK9xIwtE5vL2mzHBx2zUX56nUDWYU8VuydzaZuH
gBmNw3hue0xgDl64vSdSHoLJ1Ob8za0mEOnbF5mD4KAylnH3qf4=
=YamF
-----END PGP SIGNATURE-----
Merge tag 'intel-gpio-v5.11-1' of gitolite.kernel.org:pub/scm/linux/kernel/git/andy/linux-gpio-intel into devel
intel-gpio for v5.11-1
* Refactor GPIO library to support bias and debounce ACPI settings
The following is an automated git shortlog grouped by driver:
gpiolib:
- acpi: Make Intel GPIO tree official for GPIO ACPI work
- acpi: Use BIT() macro to increase readability
- acpi: Convert pin_index to be u16
- acpi: Extract acpi_request_own_gpiod() helper
- acpi: Make acpi_gpio_to_gpiod_flags() usable for GpioInt()
- acpi: Set initial value for output pin based on bias and polarity
- acpi: Move acpi_gpio_to_gpiod_flags() upper in the code
- acpi: Move non-critical code outside of critical section
- acpi: Take into account debounce settings
- acpi: Use named item for enum gpiod_flags variable
- acpi: Respect bias settings for GpioInt() resource
- Introduce gpio_set_debounce_timeout() for internal use
- Extract gpio_set_config_with_argument_optional() helper
- move bias related code from gpio_set_config() to gpio_set_bias()
- Extract gpio_set_config_with_argument() for future use
- use proper API to pack pin configuration parameters
- add missed break statement
- Replace unsigned by unsigned int
Merge tag 'intel-pinctrl-v5.10-2' into HEAD:
- Merge tag 'intel-pinctrl-v5.10-2' into HEAD
pinctrl:
- intel: Set default bias in case no particular value given
- intel: Fix 2 kOhm bias which is 833 Ohm
Make Intel GPIO tree official for GPIO ACPI work.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
We may use BIT() macro to increase readability in
acpi_gpio_adr_space_handler().
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
As specified by ACPI the pin index is 16-bit unsigned integer.
Define the variable, which holds it, accordingly.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
It appears that we are using similar code excerpts for ACPI OpRegion
and event handling. Deduplicate those excerpts by extracting a new
acpi_request_own_gpiod() helper.
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>
GpioInt() implies input configuration of the pin. Add this to
the acpi_gpio_to_gpiod_flags() and make usable for GpioInt().
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Acked-by: Linus Walleij <linus.walleij@linaro.org>
Reviewed-by: Hans de Goede <hdegoede@redhat.com>
Reviewed-by: Mika Westerberg <mika.westerberg@linux.intel.com>