Horatiu Vultur
baf927a833
pinctrl: microchip-sgpio: Fix support for regmap
...
Initially the driver accessed the registers using u32 __iomem but then
in the blamed commit it changed it to use regmap. The problem is that now
the offset of the registers is not calculated anymore at word offset but
at byte offset. Therefore make sure to multiply the offset with word size.
Acked-by: Steen Hegelund <Steen.Hegelund@microchip.com >
Reviewed-by: Colin Foster <colin.foster@in-advantage.com >
Fixes: 2afbbab45c ("pinctrl: microchip-sgpio: update to support regmap")
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com >
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20220131085201.307031-1-horatiu.vultur@microchip.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2022-01-31 12:07:31 +01:00
Colin Foster
2afbbab45c
pinctrl: microchip-sgpio: update to support regmap
...
Adopt regmap instead of a direct memory map so that custom regmaps and
other interfaces can be supported.
Signed-off-by: Colin Foster <colin.foster@in-advantage.com >
Link: https://lore.kernel.org/r/20211119195928.2498441-5-colin.foster@in-advantage.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-11-22 01:07:02 +01:00
Horatiu Vultur
0b90315af7
pinctrl: microchip sgpio: use reset driver
...
On lan966x platform when the switch gets reseted then also the sgpio
gets reseted. The fix for this is to extend also the sgpio driver to
call the reset driver which will be reseted only once by the first
driver that is probed.
Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com >
Reviewed-by: Steen Hegelund <steen.hegelund@microchip.com >
Reviewed-by: Philipp Zabel <p.zabel@pengutronix.de >
Link: https://lore.kernel.org/r/20211018085754.1066056-3-horatiu.vultur@microchip.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-10-24 23:03:26 +02:00
Marc Zyngier
a9cb09b7be
pinctrl: Bulk conversion to generic_handle_domain_irq()
...
Wherever possible, replace constructs that match either
generic_handle_irq(irq_find_mapping()) or
generic_handle_irq(irq_linear_revmap()) to a single call to
generic_handle_domain_irq().
Acked-by: Krzysztof Kozlowski <krzysztof.kozlowski@canonical.com >
Acked-by: Linus Walleij <linus.walleij@linaro.org >
Signed-off-by: Marc Zyngier <maz@kernel.org >
2021-08-12 11:39:39 +01:00
Andy Shevchenko
76b7f8fae3
pinctrl: microchip-sgpio: Put fwnode in error case during ->probe()
...
device_for_each_child_node() bumps a reference counting of a returned variable.
We have to balance it whenever we return to the caller.
Fixes: 7e5ea974e6 ("pinctrl: pinctrl-microchip-sgpio: Add pinctrl driver for Microsemi Serial GPIO")
Cc: Lars Povlsen <lars.povlsen@microchip.com >
Signed-off-by: Andy Shevchenko <andy.shevchenko@gmail.com >
Link: https://lore.kernel.org/r/20210606191940.29312-1-andy.shevchenko@gmail.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-06-18 11:17:47 +02:00
Lars Povlsen
5d5f291927
pinctrl: microchip-sgpio: Fix wrong register offset for IRQ trigger
...
This patch fixes using a wrong register offset when configuring an IRQ
trigger type.
Fixes: be2dc859ab ("pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5)")
Reported-by: Gustavo A. R. Silva <gustavoars@kernel.org >
Signed-off-by: Lars Povlsen <lars.povlsen@microchip.com >
Reviewed-by: Gustavo A. R. Silva <gustavoars@kernel.org >
Link: https://lore.kernel.org/r/20210203123825.611576-1-lars.povlsen@microchip.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2021-03-10 14:41:24 +01:00
Lars Povlsen
be2dc859ab
pinctrl: pinctrl-microchip-sgpio: Add irq support (for sparx5)
...
This adds 'interrupt-controller' features for the signals available on
the Microchip SGPIO controller, however only for controller versions
on the Sparx5 platform (or later).
Signed-off-by: Lars Povlsen <lars.povlsen@microchip.com >
Link: https://lore.kernel.org/r/20201209142753.683208-2-lars.povlsen@microchip.com
[Select GPIOLIB_IRQCHIP in Kconfig]
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2020-12-11 23:48:52 +01:00
Zou Wei
d05b769190
pinctrl: pinctrl-microchip-sgpio: Mark some symbols with static keyword
...
Fix the following sparse warnings:
drivers/pinctrl/pinctrl-microchip-sgpio.c:63:31: warning: symbol 'properties_luton' was not declared. Should it be static?
drivers/pinctrl/pinctrl-microchip-sgpio.c:68:31: warning: symbol 'properties_ocelot' was not declared. Should it be static?
drivers/pinctrl/pinctrl-microchip-sgpio.c:73:31: warning: symbol 'properties_sparx5' was not declared. Should it be static?
Signed-off-by: Zou Wei <zou_wei@huawei.com >
Link: https://lore.kernel.org/r/1606218173-3722-1-git-send-email-zou_wei@huawei.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2020-12-04 09:55:58 +01:00
Lars Povlsen
7e5ea974e6
pinctrl: pinctrl-microchip-sgpio: Add pinctrl driver for Microsemi Serial GPIO
...
This adds a pinctrl driver for the Microsemi/Microchip Serial GPIO
(SGPIO) device used in various SoC's.
The driver is added as a pinctrl driver, albeit only having just GPIO
support currently. The hardware supports other functions that will be
added following.
Signed-off-by: Lars Povlsen <lars.povlsen@microchip.com >
Link: https://lore.kernel.org/r/20201113145151.68900-3-lars.povlsen@microchip.com
Signed-off-by: Linus Walleij <linus.walleij@linaro.org >
2020-12-02 00:09:48 +01:00