All of lore.kernel.org
 help / color / mirror / Atom feed
* [PATCH v2 0/2] Extend Sparx5 switch reset driver for lan966x
@ 2021-10-12 11:42 ` Horatiu Vultur
  0 siblings, 0 replies; 10+ messages in thread
From: Horatiu Vultur @ 2021-10-12 11:42 UTC (permalink / raw)
  To: p.zabel, robh+dt, andrew, lars.povlsen, Steen.Hegelund,
	UNGLinuxDriver, devicetree, linux-kernel, linux-arm-kernel
  Cc: Horatiu Vultur

This patch serie extends the Microchip Sparx5 reset driver to support
lan966x

v1->v2:
  - add reviewed-by tag
  - extend driver to be able to release the reset also for external PHYs

Horatiu Vultur (2):
  dt-bindings: reset: Add lan966x support
  reset: mchp: sparx5: Extend support for lan966x

 .../bindings/reset/microchip,rst.yaml         | 14 +++-
 drivers/reset/Kconfig                         |  2 +-
 drivers/reset/reset-microchip-sparx5.c        | 80 +++++++++++++++++--
 3 files changed, 86 insertions(+), 10 deletions(-)

-- 
2.33.0


^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 0/2] Extend Sparx5 switch reset driver for lan966x
@ 2021-10-12 11:42 ` Horatiu Vultur
  0 siblings, 0 replies; 10+ messages in thread
From: Horatiu Vultur @ 2021-10-12 11:42 UTC (permalink / raw)
  To: p.zabel, robh+dt, andrew, lars.povlsen, Steen.Hegelund,
	UNGLinuxDriver, devicetree, linux-kernel, linux-arm-kernel
  Cc: Horatiu Vultur

This patch serie extends the Microchip Sparx5 reset driver to support
lan966x

v1->v2:
  - add reviewed-by tag
  - extend driver to be able to release the reset also for external PHYs

Horatiu Vultur (2):
  dt-bindings: reset: Add lan966x support
  reset: mchp: sparx5: Extend support for lan966x

 .../bindings/reset/microchip,rst.yaml         | 14 +++-
 drivers/reset/Kconfig                         |  2 +-
 drivers/reset/reset-microchip-sparx5.c        | 80 +++++++++++++++++--
 3 files changed, 86 insertions(+), 10 deletions(-)

-- 
2.33.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* [PATCH v2 1/2] dt-bindings: reset: Add lan966x support
  2021-10-12 11:42 ` Horatiu Vultur
@ 2021-10-12 11:42   ` Horatiu Vultur
  -1 siblings, 0 replies; 10+ messages in thread
From: Horatiu Vultur @ 2021-10-12 11:42 UTC (permalink / raw)
  To: p.zabel, robh+dt, andrew, lars.povlsen, Steen.Hegelund,
	UNGLinuxDriver, devicetree, linux-kernel, linux-arm-kernel
  Cc: Horatiu Vultur

This adds support for lan966x.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
---
 .../devicetree/bindings/reset/microchip,rst.yaml   | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/reset/microchip,rst.yaml b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
index 370579aeeca1..622cf3d0455d 100644
--- a/Documentation/devicetree/bindings/reset/microchip,rst.yaml
+++ b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
@@ -20,7 +20,11 @@ properties:
     pattern: "^reset-controller@[0-9a-f]+$"
 
   compatible:
-    const: microchip,sparx5-switch-reset
+    oneOf:
+      - items:
+          - const: microchip,sparx5-switch-reset
+      - items:
+          - const: microchip,lan966x-switch-reset
 
   reg:
     items:
@@ -37,6 +41,14 @@ properties:
     $ref: "/schemas/types.yaml#/definitions/phandle"
     description: syscon used to access CPU reset
 
+  cuphy-syscon:
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+    description: syscon used to access CuPHY
+
+  gpios:
+    description: used for release of reset of the external PHY
+    maxItems: 1
+
 required:
   - compatible
   - reg
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 1/2] dt-bindings: reset: Add lan966x support
@ 2021-10-12 11:42   ` Horatiu Vultur
  0 siblings, 0 replies; 10+ messages in thread
From: Horatiu Vultur @ 2021-10-12 11:42 UTC (permalink / raw)
  To: p.zabel, robh+dt, andrew, lars.povlsen, Steen.Hegelund,
	UNGLinuxDriver, devicetree, linux-kernel, linux-arm-kernel
  Cc: Horatiu Vultur

This adds support for lan966x.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
---
 .../devicetree/bindings/reset/microchip,rst.yaml   | 14 +++++++++++++-
 1 file changed, 13 insertions(+), 1 deletion(-)

diff --git a/Documentation/devicetree/bindings/reset/microchip,rst.yaml b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
index 370579aeeca1..622cf3d0455d 100644
--- a/Documentation/devicetree/bindings/reset/microchip,rst.yaml
+++ b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
@@ -20,7 +20,11 @@ properties:
     pattern: "^reset-controller@[0-9a-f]+$"
 
   compatible:
-    const: microchip,sparx5-switch-reset
+    oneOf:
+      - items:
+          - const: microchip,sparx5-switch-reset
+      - items:
+          - const: microchip,lan966x-switch-reset
 
   reg:
     items:
@@ -37,6 +41,14 @@ properties:
     $ref: "/schemas/types.yaml#/definitions/phandle"
     description: syscon used to access CPU reset
 
+  cuphy-syscon:
+    $ref: "/schemas/types.yaml#/definitions/phandle"
+    description: syscon used to access CuPHY
+
+  gpios:
+    description: used for release of reset of the external PHY
+    maxItems: 1
+
 required:
   - compatible
   - reg
-- 
2.33.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/2] reset: mchp: sparx5: Extend support for lan966x
  2021-10-12 11:42 ` Horatiu Vultur
@ 2021-10-12 11:42   ` Horatiu Vultur
  -1 siblings, 0 replies; 10+ messages in thread
From: Horatiu Vultur @ 2021-10-12 11:42 UTC (permalink / raw)
  To: p.zabel, robh+dt, andrew, lars.povlsen, Steen.Hegelund,
	UNGLinuxDriver, devicetree, linux-kernel, linux-arm-kernel
  Cc: Horatiu Vultur

This patch extends sparx5 driver to support also the lan966x. The
process to reset the switch is the same only it has different offsets.
Therefore make the driver more generic and add support for lan966x.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/reset/Kconfig                  |  2 +-
 drivers/reset/reset-microchip-sparx5.c | 80 +++++++++++++++++++++++---
 2 files changed, 73 insertions(+), 9 deletions(-)

diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
index be799a5abf8a..36ce6c8bcf1e 100644
--- a/drivers/reset/Kconfig
+++ b/drivers/reset/Kconfig
@@ -116,7 +116,7 @@ config RESET_LPC18XX
 
 config RESET_MCHP_SPARX5
 	bool "Microchip Sparx5 reset driver"
-	depends on ARCH_SPARX5 || COMPILE_TEST
+	depends on ARCH_SPARX5 || SOC_LAN966 || COMPILE_TEST
 	default y if SPARX5_SWITCH
 	select MFD_SYSCON
 	help
diff --git a/drivers/reset/reset-microchip-sparx5.c b/drivers/reset/reset-microchip-sparx5.c
index f01e7db8e83b..6594ab5c15fe 100644
--- a/drivers/reset/reset-microchip-sparx5.c
+++ b/drivers/reset/reset-microchip-sparx5.c
@@ -6,6 +6,7 @@
  * The Sparx5 Chip Register Model can be browsed at this location:
  * https://github.com/microchip-ung/sparx-5_reginfo
  */
+#include <linux/gpio/consumer.h>
 #include <linux/mfd/syscon.h>
 #include <linux/of_device.h>
 #include <linux/module.h>
@@ -13,15 +14,22 @@
 #include <linux/regmap.h>
 #include <linux/reset-controller.h>
 
-#define PROTECT_REG    0x84
-#define PROTECT_BIT    BIT(10)
-#define SOFT_RESET_REG 0x00
-#define SOFT_RESET_BIT BIT(1)
+struct reset_props {
+	u32 protect_reg;
+	u32 protect_bit;
+	u32 reset_reg;
+	u32 reset_bit;
+	u32 cuphy_reg;
+	u32 cuphy_bit;
+};
 
 struct mchp_reset_context {
 	struct regmap *cpu_ctrl;
 	struct regmap *gcb_ctrl;
+	struct regmap *cuphy_ctrl;
 	struct reset_controller_dev rcdev;
+	const struct reset_props *props;
+	struct gpio_desc *reset_gpio;
 };
 
 static struct regmap_config sparx5_reset_regmap_config = {
@@ -36,17 +44,39 @@ static int sparx5_switch_reset(struct reset_controller_dev *rcdev,
 	struct mchp_reset_context *ctx =
 		container_of(rcdev, struct mchp_reset_context, rcdev);
 	u32 val;
+	int err;
 
 	/* Make sure the core is PROTECTED from reset */
-	regmap_update_bits(ctx->cpu_ctrl, PROTECT_REG, PROTECT_BIT, PROTECT_BIT);
+	regmap_update_bits(ctx->cpu_ctrl, ctx->props->protect_reg,
+			   ctx->props->protect_bit, ctx->props->protect_bit);
 
 	/* Start soft reset */
-	regmap_write(ctx->gcb_ctrl, SOFT_RESET_REG, SOFT_RESET_BIT);
+	regmap_write(ctx->gcb_ctrl, ctx->props->reset_reg,
+		     ctx->props->reset_bit);
 
 	/* Wait for soft reset done */
-	return regmap_read_poll_timeout(ctx->gcb_ctrl, SOFT_RESET_REG, val,
-					(val & SOFT_RESET_BIT) == 0,
+	err = regmap_read_poll_timeout(ctx->gcb_ctrl, ctx->props->reset_reg, val,
+					(val & ctx->props->reset_bit) == 0,
 					1, 100);
+	if (err)
+		return err;
+
+	if (!ctx->cuphy_ctrl)
+		return 0;
+
+	/* In case there are external PHYs toggle the GPIO to release the reset
+	 * of the PHYs
+	 */
+	if (ctx->reset_gpio) {
+		gpiod_direction_output(ctx->reset_gpio, 1);
+		gpiod_set_value(ctx->reset_gpio, 0);
+		gpiod_set_value(ctx->reset_gpio, 1);
+		gpiod_set_value(ctx->reset_gpio, 0);
+	}
+
+	/* Release the reset of internal PHY */
+	return regmap_update_bits(ctx->cuphy_ctrl, ctx->props->cuphy_reg,
+				  ctx->props->cuphy_bit, ctx->props->cuphy_bit);
 }
 
 static const struct reset_control_ops sparx5_reset_ops = {
@@ -111,17 +141,51 @@ static int mchp_sparx5_reset_probe(struct platform_device *pdev)
 	if (err)
 		return err;
 
+	/* This resource is required on lan966x, to take the internal PHYs out
+	 * of reset
+	 */
+	err = mchp_sparx5_map_syscon(pdev, "cuphy-syscon", &ctx->cuphy_ctrl);
+	if (err && err != -ENODEV)
+		return err;
+
 	ctx->rcdev.owner = THIS_MODULE;
 	ctx->rcdev.nr_resets = 1;
 	ctx->rcdev.ops = &sparx5_reset_ops;
 	ctx->rcdev.of_node = dn;
+	ctx->props = device_get_match_data(&pdev->dev);
+
+	ctx->reset_gpio = devm_gpiod_get_optional(&pdev->dev, NULL, GPIOD_OUT_LOW);
+	if (IS_ERR(ctx->reset_gpio)) {
+		dev_err(&pdev->dev, "Could not get reset GPIO\n");
+		return PTR_ERR(ctx->reset_gpio);
+	}
 
 	return devm_reset_controller_register(&pdev->dev, &ctx->rcdev);
 }
 
+static const struct reset_props reset_props_sparx5 = {
+	.protect_reg    = 0x84,
+	.protect_bit    = BIT(10),
+	.reset_reg      = 0x0,
+	.reset_bit      = BIT(1),
+};
+
+static const struct reset_props reset_props_lan966x = {
+	.protect_reg    = 0x88,
+	.protect_bit    = BIT(5),
+	.reset_reg      = 0x0,
+	.reset_bit      = BIT(1),
+	.cuphy_reg       = 0x10,
+	.cuphy_bit       = BIT(0),
+};
+
 static const struct of_device_id mchp_sparx5_reset_of_match[] = {
 	{
 		.compatible = "microchip,sparx5-switch-reset",
+		.data = &reset_props_sparx5,
+	}, {
+		.compatible = "microchip,lan966x-switch-reset",
+		.data = &reset_props_lan966x,
 	},
 	{ }
 };
-- 
2.33.0


^ permalink raw reply related	[flat|nested] 10+ messages in thread

* [PATCH v2 2/2] reset: mchp: sparx5: Extend support for lan966x
@ 2021-10-12 11:42   ` Horatiu Vultur
  0 siblings, 0 replies; 10+ messages in thread
From: Horatiu Vultur @ 2021-10-12 11:42 UTC (permalink / raw)
  To: p.zabel, robh+dt, andrew, lars.povlsen, Steen.Hegelund,
	UNGLinuxDriver, devicetree, linux-kernel, linux-arm-kernel
  Cc: Horatiu Vultur

This patch extends sparx5 driver to support also the lan966x. The
process to reset the switch is the same only it has different offsets.
Therefore make the driver more generic and add support for lan966x.

Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
Reviewed-by: Andrew Lunn <andrew@lunn.ch>
---
 drivers/reset/Kconfig                  |  2 +-
 drivers/reset/reset-microchip-sparx5.c | 80 +++++++++++++++++++++++---
 2 files changed, 73 insertions(+), 9 deletions(-)

diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
index be799a5abf8a..36ce6c8bcf1e 100644
--- a/drivers/reset/Kconfig
+++ b/drivers/reset/Kconfig
@@ -116,7 +116,7 @@ config RESET_LPC18XX
 
 config RESET_MCHP_SPARX5
 	bool "Microchip Sparx5 reset driver"
-	depends on ARCH_SPARX5 || COMPILE_TEST
+	depends on ARCH_SPARX5 || SOC_LAN966 || COMPILE_TEST
 	default y if SPARX5_SWITCH
 	select MFD_SYSCON
 	help
diff --git a/drivers/reset/reset-microchip-sparx5.c b/drivers/reset/reset-microchip-sparx5.c
index f01e7db8e83b..6594ab5c15fe 100644
--- a/drivers/reset/reset-microchip-sparx5.c
+++ b/drivers/reset/reset-microchip-sparx5.c
@@ -6,6 +6,7 @@
  * The Sparx5 Chip Register Model can be browsed at this location:
  * https://github.com/microchip-ung/sparx-5_reginfo
  */
+#include <linux/gpio/consumer.h>
 #include <linux/mfd/syscon.h>
 #include <linux/of_device.h>
 #include <linux/module.h>
@@ -13,15 +14,22 @@
 #include <linux/regmap.h>
 #include <linux/reset-controller.h>
 
-#define PROTECT_REG    0x84
-#define PROTECT_BIT    BIT(10)
-#define SOFT_RESET_REG 0x00
-#define SOFT_RESET_BIT BIT(1)
+struct reset_props {
+	u32 protect_reg;
+	u32 protect_bit;
+	u32 reset_reg;
+	u32 reset_bit;
+	u32 cuphy_reg;
+	u32 cuphy_bit;
+};
 
 struct mchp_reset_context {
 	struct regmap *cpu_ctrl;
 	struct regmap *gcb_ctrl;
+	struct regmap *cuphy_ctrl;
 	struct reset_controller_dev rcdev;
+	const struct reset_props *props;
+	struct gpio_desc *reset_gpio;
 };
 
 static struct regmap_config sparx5_reset_regmap_config = {
@@ -36,17 +44,39 @@ static int sparx5_switch_reset(struct reset_controller_dev *rcdev,
 	struct mchp_reset_context *ctx =
 		container_of(rcdev, struct mchp_reset_context, rcdev);
 	u32 val;
+	int err;
 
 	/* Make sure the core is PROTECTED from reset */
-	regmap_update_bits(ctx->cpu_ctrl, PROTECT_REG, PROTECT_BIT, PROTECT_BIT);
+	regmap_update_bits(ctx->cpu_ctrl, ctx->props->protect_reg,
+			   ctx->props->protect_bit, ctx->props->protect_bit);
 
 	/* Start soft reset */
-	regmap_write(ctx->gcb_ctrl, SOFT_RESET_REG, SOFT_RESET_BIT);
+	regmap_write(ctx->gcb_ctrl, ctx->props->reset_reg,
+		     ctx->props->reset_bit);
 
 	/* Wait for soft reset done */
-	return regmap_read_poll_timeout(ctx->gcb_ctrl, SOFT_RESET_REG, val,
-					(val & SOFT_RESET_BIT) == 0,
+	err = regmap_read_poll_timeout(ctx->gcb_ctrl, ctx->props->reset_reg, val,
+					(val & ctx->props->reset_bit) == 0,
 					1, 100);
+	if (err)
+		return err;
+
+	if (!ctx->cuphy_ctrl)
+		return 0;
+
+	/* In case there are external PHYs toggle the GPIO to release the reset
+	 * of the PHYs
+	 */
+	if (ctx->reset_gpio) {
+		gpiod_direction_output(ctx->reset_gpio, 1);
+		gpiod_set_value(ctx->reset_gpio, 0);
+		gpiod_set_value(ctx->reset_gpio, 1);
+		gpiod_set_value(ctx->reset_gpio, 0);
+	}
+
+	/* Release the reset of internal PHY */
+	return regmap_update_bits(ctx->cuphy_ctrl, ctx->props->cuphy_reg,
+				  ctx->props->cuphy_bit, ctx->props->cuphy_bit);
 }
 
 static const struct reset_control_ops sparx5_reset_ops = {
@@ -111,17 +141,51 @@ static int mchp_sparx5_reset_probe(struct platform_device *pdev)
 	if (err)
 		return err;
 
+	/* This resource is required on lan966x, to take the internal PHYs out
+	 * of reset
+	 */
+	err = mchp_sparx5_map_syscon(pdev, "cuphy-syscon", &ctx->cuphy_ctrl);
+	if (err && err != -ENODEV)
+		return err;
+
 	ctx->rcdev.owner = THIS_MODULE;
 	ctx->rcdev.nr_resets = 1;
 	ctx->rcdev.ops = &sparx5_reset_ops;
 	ctx->rcdev.of_node = dn;
+	ctx->props = device_get_match_data(&pdev->dev);
+
+	ctx->reset_gpio = devm_gpiod_get_optional(&pdev->dev, NULL, GPIOD_OUT_LOW);
+	if (IS_ERR(ctx->reset_gpio)) {
+		dev_err(&pdev->dev, "Could not get reset GPIO\n");
+		return PTR_ERR(ctx->reset_gpio);
+	}
 
 	return devm_reset_controller_register(&pdev->dev, &ctx->rcdev);
 }
 
+static const struct reset_props reset_props_sparx5 = {
+	.protect_reg    = 0x84,
+	.protect_bit    = BIT(10),
+	.reset_reg      = 0x0,
+	.reset_bit      = BIT(1),
+};
+
+static const struct reset_props reset_props_lan966x = {
+	.protect_reg    = 0x88,
+	.protect_bit    = BIT(5),
+	.reset_reg      = 0x0,
+	.reset_bit      = BIT(1),
+	.cuphy_reg       = 0x10,
+	.cuphy_bit       = BIT(0),
+};
+
 static const struct of_device_id mchp_sparx5_reset_of_match[] = {
 	{
 		.compatible = "microchip,sparx5-switch-reset",
+		.data = &reset_props_sparx5,
+	}, {
+		.compatible = "microchip,lan966x-switch-reset",
+		.data = &reset_props_lan966x,
 	},
 	{ }
 };
-- 
2.33.0


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply related	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: reset: Add lan966x support
  2021-10-12 11:42   ` Horatiu Vultur
@ 2021-10-12 13:35     ` Philipp Zabel
  -1 siblings, 0 replies; 10+ messages in thread
From: Philipp Zabel @ 2021-10-12 13:35 UTC (permalink / raw)
  To: Horatiu Vultur, robh+dt, andrew, lars.povlsen, Steen.Hegelund,
	UNGLinuxDriver, devicetree, linux-kernel, linux-arm-kernel

Hi Horatiu,

On Tue, 2021-10-12 at 13:42 +0200, Horatiu Vultur wrote:
> This adds support for lan966x.
> 
> Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
> ---
>  .../devicetree/bindings/reset/microchip,rst.yaml   | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/reset/microchip,rst.yaml b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> index 370579aeeca1..622cf3d0455d 100644
> --- a/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> +++ b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> @@ -20,7 +20,11 @@ properties:
>      pattern: "^reset-controller@[0-9a-f]+$"
>  
>    compatible:
> -    const: microchip,sparx5-switch-reset
> +    oneOf:
> +      - items:
> +          - const: microchip,sparx5-switch-reset
> +      - items:
> +          - const: microchip,lan966x-switch-reset
>  
>    reg:
>      items:
> @@ -37,6 +41,14 @@ properties:
>      $ref: "/schemas/types.yaml#/definitions/phandle"
>      description: syscon used to access CPU reset
>  
> +  cuphy-syscon:
> +    $ref: "/schemas/types.yaml#/definitions/phandle"
> +    description: syscon used to access CuPHY
> +
> +  gpios:

From the description I'd expect this to be called phy-reset-gpios.

> +    description: used for release of reset of the external PHY
> +    maxItems: 1
> +

Shouldn't an external PHY be described as a separate DT node, with its
own reset gpio?

regards
Philipp

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: reset: Add lan966x support
@ 2021-10-12 13:35     ` Philipp Zabel
  0 siblings, 0 replies; 10+ messages in thread
From: Philipp Zabel @ 2021-10-12 13:35 UTC (permalink / raw)
  To: Horatiu Vultur, robh+dt, andrew, lars.povlsen, Steen.Hegelund,
	UNGLinuxDriver, devicetree, linux-kernel, linux-arm-kernel

Hi Horatiu,

On Tue, 2021-10-12 at 13:42 +0200, Horatiu Vultur wrote:
> This adds support for lan966x.
> 
> Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
> ---
>  .../devicetree/bindings/reset/microchip,rst.yaml   | 14 +++++++++++++-
>  1 file changed, 13 insertions(+), 1 deletion(-)
> 
> diff --git a/Documentation/devicetree/bindings/reset/microchip,rst.yaml b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> index 370579aeeca1..622cf3d0455d 100644
> --- a/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> +++ b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> @@ -20,7 +20,11 @@ properties:
>      pattern: "^reset-controller@[0-9a-f]+$"
>  
>    compatible:
> -    const: microchip,sparx5-switch-reset
> +    oneOf:
> +      - items:
> +          - const: microchip,sparx5-switch-reset
> +      - items:
> +          - const: microchip,lan966x-switch-reset
>  
>    reg:
>      items:
> @@ -37,6 +41,14 @@ properties:
>      $ref: "/schemas/types.yaml#/definitions/phandle"
>      description: syscon used to access CPU reset
>  
> +  cuphy-syscon:
> +    $ref: "/schemas/types.yaml#/definitions/phandle"
> +    description: syscon used to access CuPHY
> +
> +  gpios:

From the description I'd expect this to be called phy-reset-gpios.

> +    description: used for release of reset of the external PHY
> +    maxItems: 1
> +

Shouldn't an external PHY be described as a separate DT node, with its
own reset gpio?

regards
Philipp

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: reset: Add lan966x support
  2021-10-12 13:35     ` Philipp Zabel
@ 2021-10-12 14:40       ` Horatiu Vultur
  -1 siblings, 0 replies; 10+ messages in thread
From: Horatiu Vultur @ 2021-10-12 14:40 UTC (permalink / raw)
  To: Philipp Zabel
  Cc: robh+dt, andrew, lars.povlsen, Steen.Hegelund, UNGLinuxDriver,
	devicetree, linux-kernel, linux-arm-kernel

The 10/12/2021 15:35, Philipp Zabel wrote:

Hi Philipp,
> 
> Hi Horatiu,
> 
> On Tue, 2021-10-12 at 13:42 +0200, Horatiu Vultur wrote:
> > This adds support for lan966x.
> >
> > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
> > ---
> >  .../devicetree/bindings/reset/microchip,rst.yaml   | 14 +++++++++++++-
> >  1 file changed, 13 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/devicetree/bindings/reset/microchip,rst.yaml b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> > index 370579aeeca1..622cf3d0455d 100644
> > --- a/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> > +++ b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> > @@ -20,7 +20,11 @@ properties:
> >      pattern: "^reset-controller@[0-9a-f]+$"
> >
> >    compatible:
> > -    const: microchip,sparx5-switch-reset
> > +    oneOf:
> > +      - items:
> > +          - const: microchip,sparx5-switch-reset
> > +      - items:
> > +          - const: microchip,lan966x-switch-reset
> >
> >    reg:
> >      items:
> > @@ -37,6 +41,14 @@ properties:
> >      $ref: "/schemas/types.yaml#/definitions/phandle"
> >      description: syscon used to access CPU reset
> >
> > +  cuphy-syscon:
> > +    $ref: "/schemas/types.yaml#/definitions/phandle"
> > +    description: syscon used to access CuPHY
> > +
> > +  gpios:
> 
> From the description I'd expect this to be called phy-reset-gpios.

Yes, I can rename this.

> 
> > +    description: used for release of reset of the external PHY
> > +    maxItems: 1
> > +
> 
> Shouldn't an external PHY be described as a separate DT node, with its
> own reset gpio?

I am not sure, this is more board specific than PHY specific. On lan966x
ung8290 board, the external PHYs are kept in reset until this GPIO is toggled.

> 
> regards
> Philipp

-- 
/Horatiu

^ permalink raw reply	[flat|nested] 10+ messages in thread

* Re: [PATCH v2 1/2] dt-bindings: reset: Add lan966x support
@ 2021-10-12 14:40       ` Horatiu Vultur
  0 siblings, 0 replies; 10+ messages in thread
From: Horatiu Vultur @ 2021-10-12 14:40 UTC (permalink / raw)
  To: Philipp Zabel
  Cc: robh+dt, andrew, lars.povlsen, Steen.Hegelund, UNGLinuxDriver,
	devicetree, linux-kernel, linux-arm-kernel

The 10/12/2021 15:35, Philipp Zabel wrote:

Hi Philipp,
> 
> Hi Horatiu,
> 
> On Tue, 2021-10-12 at 13:42 +0200, Horatiu Vultur wrote:
> > This adds support for lan966x.
> >
> > Signed-off-by: Horatiu Vultur <horatiu.vultur@microchip.com>
> > ---
> >  .../devicetree/bindings/reset/microchip,rst.yaml   | 14 +++++++++++++-
> >  1 file changed, 13 insertions(+), 1 deletion(-)
> >
> > diff --git a/Documentation/devicetree/bindings/reset/microchip,rst.yaml b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> > index 370579aeeca1..622cf3d0455d 100644
> > --- a/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> > +++ b/Documentation/devicetree/bindings/reset/microchip,rst.yaml
> > @@ -20,7 +20,11 @@ properties:
> >      pattern: "^reset-controller@[0-9a-f]+$"
> >
> >    compatible:
> > -    const: microchip,sparx5-switch-reset
> > +    oneOf:
> > +      - items:
> > +          - const: microchip,sparx5-switch-reset
> > +      - items:
> > +          - const: microchip,lan966x-switch-reset
> >
> >    reg:
> >      items:
> > @@ -37,6 +41,14 @@ properties:
> >      $ref: "/schemas/types.yaml#/definitions/phandle"
> >      description: syscon used to access CPU reset
> >
> > +  cuphy-syscon:
> > +    $ref: "/schemas/types.yaml#/definitions/phandle"
> > +    description: syscon used to access CuPHY
> > +
> > +  gpios:
> 
> From the description I'd expect this to be called phy-reset-gpios.

Yes, I can rename this.

> 
> > +    description: used for release of reset of the external PHY
> > +    maxItems: 1
> > +
> 
> Shouldn't an external PHY be described as a separate DT node, with its
> own reset gpio?

I am not sure, this is more board specific than PHY specific. On lan966x
ung8290 board, the external PHYs are kept in reset until this GPIO is toggled.

> 
> regards
> Philipp

-- 
/Horatiu

_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

^ permalink raw reply	[flat|nested] 10+ messages in thread

end of thread, other threads:[~2021-10-12 14:41 UTC | newest]

Thread overview: 10+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2021-10-12 11:42 [PATCH v2 0/2] Extend Sparx5 switch reset driver for lan966x Horatiu Vultur
2021-10-12 11:42 ` Horatiu Vultur
2021-10-12 11:42 ` [PATCH v2 1/2] dt-bindings: reset: Add lan966x support Horatiu Vultur
2021-10-12 11:42   ` Horatiu Vultur
2021-10-12 13:35   ` Philipp Zabel
2021-10-12 13:35     ` Philipp Zabel
2021-10-12 14:40     ` Horatiu Vultur
2021-10-12 14:40       ` Horatiu Vultur
2021-10-12 11:42 ` [PATCH v2 2/2] reset: mchp: sparx5: Extend support for lan966x Horatiu Vultur
2021-10-12 11:42   ` Horatiu Vultur

This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.