* [PATCH v2 1/2] dt-bindings: pinctrl: ocelot: add reset property
2022-04-19 23:03 [PATCH v2 0/2] pinctrl: ocelot: add shared reset Michael Walle
@ 2022-04-19 23:03 ` Michael Walle
2022-04-19 23:03 ` [PATCH v2 2/2] pinctrl: ocelot: add optional shared reset Michael Walle
2022-04-28 22:37 ` [PATCH v2 0/2] pinctrl: ocelot: add " Linus Walleij
2 siblings, 0 replies; 5+ messages in thread
From: Michael Walle @ 2022-04-19 23:03 UTC (permalink / raw)
To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Philipp Zabel,
Alexandre Belloni, Lars Povlsen
Cc: linux-gpio, devicetree, linux-kernel, Horatiu Vultur,
Michael Walle, Rob Herring
On the LAN966x SoC the GPIO controller will be resetted together with
the SGPIO and the switch core. Add a phandle to register the shared
reset line.
Signed-off-by: Michael Walle <michael@walle.cc>
Acked-by: Rob Herring <robh@kernel.org>
---
.../devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml | 8 ++++++++
1 file changed, 8 insertions(+)
diff --git a/Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml b/Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml
index 7149a6655623..98d547c34ef3 100644
--- a/Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml
+++ b/Documentation/devicetree/bindings/pinctrl/mscc,ocelot-pinctrl.yaml
@@ -42,6 +42,14 @@ properties:
"#interrupt-cells":
const: 2
+ resets:
+ maxItems: 1
+
+ reset-names:
+ description: Optional shared switch reset.
+ items:
+ - const: switch
+
patternProperties:
'-pins$':
type: object
--
2.30.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* [PATCH v2 2/2] pinctrl: ocelot: add optional shared reset
2022-04-19 23:03 [PATCH v2 0/2] pinctrl: ocelot: add shared reset Michael Walle
2022-04-19 23:03 ` [PATCH v2 1/2] dt-bindings: pinctrl: ocelot: add reset property Michael Walle
@ 2022-04-19 23:03 ` Michael Walle
2022-04-20 6:21 ` Horatiu Vultur
2022-04-28 22:37 ` [PATCH v2 0/2] pinctrl: ocelot: add " Linus Walleij
2 siblings, 1 reply; 5+ messages in thread
From: Michael Walle @ 2022-04-19 23:03 UTC (permalink / raw)
To: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Philipp Zabel,
Alexandre Belloni, Lars Povlsen
Cc: linux-gpio, devicetree, linux-kernel, Horatiu Vultur, Michael Walle
On the LAN9668 there is a shared reset line which affects GPIO, SGPIO
and the switch core. Add support for this shared reset line.
Signed-off-by: Michael Walle <michael@walle.cc>
---
drivers/pinctrl/pinctrl-ocelot.c | 9 +++++++++
1 file changed, 9 insertions(+)
diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
index 1bdced67464b..b25eb04e4e1d 100644
--- a/drivers/pinctrl/pinctrl-ocelot.c
+++ b/drivers/pinctrl/pinctrl-ocelot.c
@@ -19,6 +19,7 @@
#include <linux/pinctrl/pinconf-generic.h>
#include <linux/platform_device.h>
#include <linux/regmap.h>
+#include <linux/reset.h>
#include <linux/slab.h>
#include "core.h"
@@ -1912,6 +1913,7 @@ static int ocelot_pinctrl_probe(struct platform_device *pdev)
{
struct device *dev = &pdev->dev;
struct ocelot_pinctrl *info;
+ struct reset_control *reset;
struct regmap *pincfg;
void __iomem *base;
int ret;
@@ -1927,6 +1929,13 @@ static int ocelot_pinctrl_probe(struct platform_device *pdev)
info->desc = (struct pinctrl_desc *)device_get_match_data(dev);
+ reset = devm_reset_control_get_optional_shared(dev, "switch");
+ if (IS_ERR(reset)) {
+ dev_err(dev, "Failed to get reset\n");
+ return PTR_ERR(reset);
+ }
+ reset_control_reset(reset);
+
base = devm_ioremap_resource(dev,
platform_get_resource(pdev, IORESOURCE_MEM, 0));
if (IS_ERR(base))
--
2.30.2
^ permalink raw reply related [flat|nested] 5+ messages in thread
* Re: [PATCH v2 2/2] pinctrl: ocelot: add optional shared reset
2022-04-19 23:03 ` [PATCH v2 2/2] pinctrl: ocelot: add optional shared reset Michael Walle
@ 2022-04-20 6:21 ` Horatiu Vultur
0 siblings, 0 replies; 5+ messages in thread
From: Horatiu Vultur @ 2022-04-20 6:21 UTC (permalink / raw)
To: Michael Walle
Cc: Linus Walleij, Rob Herring, Krzysztof Kozlowski, Philipp Zabel,
Alexandre Belloni, Lars Povlsen, linux-gpio, devicetree,
linux-kernel
The 04/20/2022 01:03, Michael Walle wrote:
Hi Michael,
>
> On the LAN9668 there is a shared reset line which affects GPIO, SGPIO
> and the switch core. Add support for this shared reset line.
I have just a small comment below. Otherwise:
Tested-by: Horatiu Vultur <horatiu.vultur@microchip.com>
>
> Signed-off-by: Michael Walle <michael@walle.cc>
> ---
> drivers/pinctrl/pinctrl-ocelot.c | 9 +++++++++
> 1 file changed, 9 insertions(+)
>
> diff --git a/drivers/pinctrl/pinctrl-ocelot.c b/drivers/pinctrl/pinctrl-ocelot.c
> index 1bdced67464b..b25eb04e4e1d 100644
> --- a/drivers/pinctrl/pinctrl-ocelot.c
> +++ b/drivers/pinctrl/pinctrl-ocelot.c
> @@ -19,6 +19,7 @@
> #include <linux/pinctrl/pinconf-generic.h>
> #include <linux/platform_device.h>
> #include <linux/regmap.h>
> +#include <linux/reset.h>
> #include <linux/slab.h>
>
> #include "core.h"
> @@ -1912,6 +1913,7 @@ static int ocelot_pinctrl_probe(struct platform_device *pdev)
> {
> struct device *dev = &pdev->dev;
> struct ocelot_pinctrl *info;
> + struct reset_control *reset;
> struct regmap *pincfg;
> void __iomem *base;
> int ret;
> @@ -1927,6 +1929,13 @@ static int ocelot_pinctrl_probe(struct platform_device *pdev)
>
> info->desc = (struct pinctrl_desc *)device_get_match_data(dev);
>
> + reset = devm_reset_control_get_optional_shared(dev, "switch");
> + if (IS_ERR(reset)) {
> + dev_err(dev, "Failed to get reset\n");
> + return PTR_ERR(reset);
Can you use dev_err_probe here?
> + }
> + reset_control_reset(reset);
> +
> base = devm_ioremap_resource(dev,
> platform_get_resource(pdev, IORESOURCE_MEM, 0));
> if (IS_ERR(base))
> --
> 2.30.2
>
--
/Horatiu
^ permalink raw reply [flat|nested] 5+ messages in thread
* Re: [PATCH v2 0/2] pinctrl: ocelot: add shared reset
2022-04-19 23:03 [PATCH v2 0/2] pinctrl: ocelot: add shared reset Michael Walle
2022-04-19 23:03 ` [PATCH v2 1/2] dt-bindings: pinctrl: ocelot: add reset property Michael Walle
2022-04-19 23:03 ` [PATCH v2 2/2] pinctrl: ocelot: add optional shared reset Michael Walle
@ 2022-04-28 22:37 ` Linus Walleij
2 siblings, 0 replies; 5+ messages in thread
From: Linus Walleij @ 2022-04-28 22:37 UTC (permalink / raw)
To: Michael Walle
Cc: Rob Herring, Krzysztof Kozlowski, Philipp Zabel,
Alexandre Belloni, Lars Povlsen, linux-gpio, devicetree,
linux-kernel, Horatiu Vultur
On Wed, Apr 20, 2022 at 1:03 AM Michael Walle <michael@walle.cc> wrote:
> On LAN966x SoCs, there is an internal reset which is used to reset the
> switch core. But this will also reset the GPIO and the SGPIO. Thus add
> support for this shared reset line.
>
> changes since v1:
> - rebased onto linus' devel tree, former patch was still based on
> v1 of the YAML conversion patch
Patches applied!
Yours,
Linus Walleij
^ permalink raw reply [flat|nested] 5+ messages in thread