devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support
@ 2024-01-30  8:34 Philippe Schenker
  2024-01-30  8:34 ` [PATCH net-next v3 2/2] " Philippe Schenker
                   ` (3 more replies)
  0 siblings, 4 replies; 7+ messages in thread
From: Philippe Schenker @ 2024-01-30  8:34 UTC (permalink / raw)
  To: netdev
  Cc: Paolo Abeni, linux-kernel, Marek Vasut, Vladimir Oltean,
	Woojung Huh, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Andrew Lunn, UNGLinuxDriver, devicetree, David S . Miller,
	Florian Fainelli, stefan.portmann, Eric Dumazet, Jakub Kicinski,
	Philippe Schenker, Conor Dooley

From: Philippe Schenker <philippe.schenker@impulsing.ch>

This commit adds the dt-binding for KSZ8567, a robust 7-port
Ethernet switch. The KSZ8567 features two RGMII/MII/RMII interfaces,
each capable of gigabit speeds, complemented by five 10/100 Mbps
MAC/PHYs.

This binding is necessary to set specific capabilities for this switch
chip that are necessary due to the ksz dsa driver only accepting
specific chip ids.
The KSZ8567 is very similar to KSZ9567 however only containing 100 Mbps
phys on its downstream ports.

Signed-off-by: Philippe Schenker <philippe.schenker@impulsing.ch>
Acked-by: Conor Dooley <conor.dooley@microchip.com>

---

(no changes since v2)

Changes in v2:
- Describe in commit message why this is necessary
- Add Conor's Acked-by. Thanks!

 Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml | 1 +
 1 file changed, 1 insertion(+)

diff --git a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
index c963dc09e8e1..52acc15ebcbf 100644
--- a/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
+++ b/Documentation/devicetree/bindings/net/dsa/microchip,ksz.yaml
@@ -31,6 +31,7 @@ properties:
       - microchip,ksz9893
       - microchip,ksz9563
       - microchip,ksz8563
+      - microchip,ksz8567
 
   reset-gpios:
     description:
-- 
2.34.1


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

* [PATCH net-next v3 2/2] net: dsa: Add KSZ8567 switch support
  2024-01-30  8:34 [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support Philippe Schenker
@ 2024-01-30  8:34 ` Philippe Schenker
  2024-01-31 15:24   ` Andrew Lunn
  2024-01-31 17:22   ` Florian Fainelli
  2024-01-31 15:24 ` [PATCH net-next v3 1/2] dt-bindings: " Andrew Lunn
                   ` (2 subsequent siblings)
  3 siblings, 2 replies; 7+ messages in thread
From: Philippe Schenker @ 2024-01-30  8:34 UTC (permalink / raw)
  To: netdev
  Cc: Paolo Abeni, linux-kernel, Marek Vasut, Vladimir Oltean,
	Woojung Huh, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Andrew Lunn, UNGLinuxDriver, devicetree, David S . Miller,
	Florian Fainelli, stefan.portmann, Eric Dumazet, Jakub Kicinski,
	Philippe Schenker, Arun Ramadoss

From: Philippe Schenker <philippe.schenker@impulsing.ch>

This commit introduces support for the KSZ8567, a robust 7-port
Ethernet switch. The KSZ8567 features two RGMII/MII/RMII interfaces,
each capable of gigabit speeds, complemented by five 10/100 Mbps
MAC/PHYs.

Signed-off-by: Philippe Schenker <philippe.schenker@impulsing.ch>
Acked-by: Arun Ramadoss <arun.ramadoss@microchip.com>

---

Changes in v3:
- Move KSZ8567_CHIP_ID also next to KSZ9567 in microchip-ksz.h
- Fix 80 chars warning.
- Add Arun's Acked-by. Thanks!

Changes in v2:
- Move the definition of KSZ8567 next to similar KSZ9567

 drivers/net/dsa/microchip/ksz9477_i2c.c     |  4 ++
 drivers/net/dsa/microchip/ksz_common.c      | 43 ++++++++++++++++++++-
 drivers/net/dsa/microchip/ksz_common.h      |  1 +
 drivers/net/dsa/microchip/ksz_spi.c         |  5 +++
 include/linux/platform_data/microchip-ksz.h |  1 +
 5 files changed, 53 insertions(+), 1 deletion(-)

diff --git a/drivers/net/dsa/microchip/ksz9477_i2c.c b/drivers/net/dsa/microchip/ksz9477_i2c.c
index cac4a607e54a..82bebee4615c 100644
--- a/drivers/net/dsa/microchip/ksz9477_i2c.c
+++ b/drivers/net/dsa/microchip/ksz9477_i2c.c
@@ -103,6 +103,10 @@ static const struct of_device_id ksz9477_dt_ids[] = {
 		.compatible = "microchip,ksz8563",
 		.data = &ksz_switch_chips[KSZ8563]
 	},
+	{
+		.compatible = "microchip,ksz8567",
+		.data = &ksz_switch_chips[KSZ8567]
+	},
 	{
 		.compatible = "microchip,ksz9567",
 		.data = &ksz_switch_chips[KSZ9567]
diff --git a/drivers/net/dsa/microchip/ksz_common.c b/drivers/net/dsa/microchip/ksz_common.c
index 245dfb7a7a31..6ae08de54061 100644
--- a/drivers/net/dsa/microchip/ksz_common.c
+++ b/drivers/net/dsa/microchip/ksz_common.c
@@ -1476,6 +1476,39 @@ const struct ksz_chip_data ksz_switch_chips[] = {
 		.gbit_capable = {true, true, true},
 	},
 
+	[KSZ8567] = {
+		.chip_id = KSZ8567_CHIP_ID,
+		.dev_name = "KSZ8567",
+		.num_vlans = 4096,
+		.num_alus = 4096,
+		.num_statics = 16,
+		.cpu_ports = 0x7F,	/* can be configured as cpu port */
+		.port_cnt = 7,		/* total port count */
+		.port_nirqs = 3,
+		.num_tx_queues = 4,
+		.tc_cbs_supported = true,
+		.tc_ets_supported = true,
+		.ops = &ksz9477_dev_ops,
+		.mib_names = ksz9477_mib_names,
+		.mib_cnt = ARRAY_SIZE(ksz9477_mib_names),
+		.reg_mib_cnt = MIB_COUNTER_NUM,
+		.regs = ksz9477_regs,
+		.masks = ksz9477_masks,
+		.shifts = ksz9477_shifts,
+		.xmii_ctrl0 = ksz9477_xmii_ctrl0,
+		.xmii_ctrl1 = ksz9477_xmii_ctrl1,
+		.supports_mii	= {false, false, false, false,
+				   false, true, true},
+		.supports_rmii	= {false, false, false, false,
+				   false, true, true},
+		.supports_rgmii = {false, false, false, false,
+				   false, true, true},
+		.internal_phy	= {true, true, true, true,
+				   true, false, false},
+		.gbit_capable	= {false, false, false, false, false,
+				   true, true},
+	},
+
 	[KSZ9567] = {
 		.chip_id = KSZ9567_CHIP_ID,
 		.dev_name = "KSZ9567",
@@ -2649,6 +2682,7 @@ static void ksz_port_teardown(struct dsa_switch *ds, int port)
 
 	switch (dev->chip_id) {
 	case KSZ8563_CHIP_ID:
+	case KSZ8567_CHIP_ID:
 	case KSZ9477_CHIP_ID:
 	case KSZ9563_CHIP_ID:
 	case KSZ9567_CHIP_ID:
@@ -2705,7 +2739,8 @@ static enum dsa_tag_protocol ksz_get_tag_protocol(struct dsa_switch *ds,
 	    dev->chip_id == KSZ9563_CHIP_ID)
 		proto = DSA_TAG_PROTO_KSZ9893;
 
-	if (dev->chip_id == KSZ9477_CHIP_ID ||
+	if (dev->chip_id == KSZ8567_CHIP_ID ||
+	    dev->chip_id == KSZ9477_CHIP_ID ||
 	    dev->chip_id == KSZ9896_CHIP_ID ||
 	    dev->chip_id == KSZ9897_CHIP_ID ||
 	    dev->chip_id == KSZ9567_CHIP_ID)
@@ -2813,6 +2848,7 @@ static int ksz_max_mtu(struct dsa_switch *ds, int port)
 	case KSZ8830_CHIP_ID:
 		return KSZ8863_HUGE_PACKET_SIZE - VLAN_ETH_HLEN - ETH_FCS_LEN;
 	case KSZ8563_CHIP_ID:
+	case KSZ8567_CHIP_ID:
 	case KSZ9477_CHIP_ID:
 	case KSZ9563_CHIP_ID:
 	case KSZ9567_CHIP_ID:
@@ -2839,6 +2875,7 @@ static int ksz_validate_eee(struct dsa_switch *ds, int port)
 
 	switch (dev->chip_id) {
 	case KSZ8563_CHIP_ID:
+	case KSZ8567_CHIP_ID:
 	case KSZ9477_CHIP_ID:
 	case KSZ9563_CHIP_ID:
 	case KSZ9567_CHIP_ID:
@@ -3183,6 +3220,7 @@ static int ksz_switch_detect(struct ksz_device *dev)
 		case KSZ9896_CHIP_ID:
 		case KSZ9897_CHIP_ID:
 		case KSZ9567_CHIP_ID:
+		case KSZ8567_CHIP_ID:
 		case LAN9370_CHIP_ID:
 		case LAN9371_CHIP_ID:
 		case LAN9372_CHIP_ID:
@@ -3220,6 +3258,7 @@ static int ksz_cls_flower_add(struct dsa_switch *ds, int port,
 
 	switch (dev->chip_id) {
 	case KSZ8563_CHIP_ID:
+	case KSZ8567_CHIP_ID:
 	case KSZ9477_CHIP_ID:
 	case KSZ9563_CHIP_ID:
 	case KSZ9567_CHIP_ID:
@@ -3239,6 +3278,7 @@ static int ksz_cls_flower_del(struct dsa_switch *ds, int port,
 
 	switch (dev->chip_id) {
 	case KSZ8563_CHIP_ID:
+	case KSZ8567_CHIP_ID:
 	case KSZ9477_CHIP_ID:
 	case KSZ9563_CHIP_ID:
 	case KSZ9567_CHIP_ID:
@@ -4142,6 +4182,7 @@ static int ksz_parse_drive_strength(struct ksz_device *dev)
 	case KSZ8794_CHIP_ID:
 	case KSZ8765_CHIP_ID:
 	case KSZ8563_CHIP_ID:
+	case KSZ8567_CHIP_ID:
 	case KSZ9477_CHIP_ID:
 	case KSZ9563_CHIP_ID:
 	case KSZ9567_CHIP_ID:
diff --git a/drivers/net/dsa/microchip/ksz_common.h b/drivers/net/dsa/microchip/ksz_common.h
index 15612101a155..060c5de9aa05 100644
--- a/drivers/net/dsa/microchip/ksz_common.h
+++ b/drivers/net/dsa/microchip/ksz_common.h
@@ -187,6 +187,7 @@ struct ksz_device {
 /* List of supported models */
 enum ksz_model {
 	KSZ8563,
+	KSZ8567,
 	KSZ8795,
 	KSZ8794,
 	KSZ8765,
diff --git a/drivers/net/dsa/microchip/ksz_spi.c b/drivers/net/dsa/microchip/ksz_spi.c
index 6f6d878e742c..c8166fb440ab 100644
--- a/drivers/net/dsa/microchip/ksz_spi.c
+++ b/drivers/net/dsa/microchip/ksz_spi.c
@@ -164,6 +164,10 @@ static const struct of_device_id ksz_dt_ids[] = {
 		.compatible = "microchip,ksz8563",
 		.data = &ksz_switch_chips[KSZ8563]
 	},
+	{
+		.compatible = "microchip,ksz8567",
+		.data = &ksz_switch_chips[KSZ8567]
+	},
 	{
 		.compatible = "microchip,ksz9567",
 		.data = &ksz_switch_chips[KSZ9567]
@@ -204,6 +208,7 @@ static const struct spi_device_id ksz_spi_ids[] = {
 	{ "ksz9893" },
 	{ "ksz9563" },
 	{ "ksz8563" },
+	{ "ksz8567" },
 	{ "ksz9567" },
 	{ "lan9370" },
 	{ "lan9371" },
diff --git a/include/linux/platform_data/microchip-ksz.h b/include/linux/platform_data/microchip-ksz.h
index f177416635a2..8c659db4da6b 100644
--- a/include/linux/platform_data/microchip-ksz.h
+++ b/include/linux/platform_data/microchip-ksz.h
@@ -33,6 +33,7 @@ enum ksz_chip_id {
 	KSZ9897_CHIP_ID = 0x00989700,
 	KSZ9893_CHIP_ID = 0x00989300,
 	KSZ9563_CHIP_ID = 0x00956300,
+	KSZ8567_CHIP_ID = 0x00856700,
 	KSZ9567_CHIP_ID = 0x00956700,
 	LAN9370_CHIP_ID = 0x00937000,
 	LAN9371_CHIP_ID = 0x00937100,
-- 
2.34.1


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

* Re: [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support
  2024-01-30  8:34 [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support Philippe Schenker
  2024-01-30  8:34 ` [PATCH net-next v3 2/2] " Philippe Schenker
@ 2024-01-31 15:24 ` Andrew Lunn
  2024-01-31 17:21 ` Florian Fainelli
  2024-02-01 10:30 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 7+ messages in thread
From: Andrew Lunn @ 2024-01-31 15:24 UTC (permalink / raw)
  To: Philippe Schenker
  Cc: netdev, Paolo Abeni, linux-kernel, Marek Vasut, Vladimir Oltean,
	Woojung Huh, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	UNGLinuxDriver, devicetree, David S . Miller, Florian Fainelli,
	stefan.portmann, Eric Dumazet, Jakub Kicinski, Philippe Schenker,
	Conor Dooley

On Tue, Jan 30, 2024 at 09:34:18AM +0100, Philippe Schenker wrote:
> From: Philippe Schenker <philippe.schenker@impulsing.ch>
> 
> This commit adds the dt-binding for KSZ8567, a robust 7-port
> Ethernet switch. The KSZ8567 features two RGMII/MII/RMII interfaces,
> each capable of gigabit speeds, complemented by five 10/100 Mbps
> MAC/PHYs.
> 
> This binding is necessary to set specific capabilities for this switch
> chip that are necessary due to the ksz dsa driver only accepting
> specific chip ids.
> The KSZ8567 is very similar to KSZ9567 however only containing 100 Mbps
> phys on its downstream ports.
> 
> Signed-off-by: Philippe Schenker <philippe.schenker@impulsing.ch>
> Acked-by: Conor Dooley <conor.dooley@microchip.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

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

* Re: [PATCH net-next v3 2/2] net: dsa: Add KSZ8567 switch support
  2024-01-30  8:34 ` [PATCH net-next v3 2/2] " Philippe Schenker
@ 2024-01-31 15:24   ` Andrew Lunn
  2024-01-31 17:22   ` Florian Fainelli
  1 sibling, 0 replies; 7+ messages in thread
From: Andrew Lunn @ 2024-01-31 15:24 UTC (permalink / raw)
  To: Philippe Schenker
  Cc: netdev, Paolo Abeni, linux-kernel, Marek Vasut, Vladimir Oltean,
	Woojung Huh, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	UNGLinuxDriver, devicetree, David S . Miller, Florian Fainelli,
	stefan.portmann, Eric Dumazet, Jakub Kicinski, Philippe Schenker,
	Arun Ramadoss

On Tue, Jan 30, 2024 at 09:34:19AM +0100, Philippe Schenker wrote:
> From: Philippe Schenker <philippe.schenker@impulsing.ch>
> 
> This commit introduces support for the KSZ8567, a robust 7-port
> Ethernet switch. The KSZ8567 features two RGMII/MII/RMII interfaces,
> each capable of gigabit speeds, complemented by five 10/100 Mbps
> MAC/PHYs.
> 
> Signed-off-by: Philippe Schenker <philippe.schenker@impulsing.ch>
> Acked-by: Arun Ramadoss <arun.ramadoss@microchip.com>

Reviewed-by: Andrew Lunn <andrew@lunn.ch>

    Andrew

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

* Re: [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support
  2024-01-30  8:34 [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support Philippe Schenker
  2024-01-30  8:34 ` [PATCH net-next v3 2/2] " Philippe Schenker
  2024-01-31 15:24 ` [PATCH net-next v3 1/2] dt-bindings: " Andrew Lunn
@ 2024-01-31 17:21 ` Florian Fainelli
  2024-02-01 10:30 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 7+ messages in thread
From: Florian Fainelli @ 2024-01-31 17:21 UTC (permalink / raw)
  To: Philippe Schenker, netdev
  Cc: Paolo Abeni, linux-kernel, Marek Vasut, Vladimir Oltean,
	Woojung Huh, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Andrew Lunn, UNGLinuxDriver, devicetree, David S . Miller,
	stefan.portmann, Eric Dumazet, Jakub Kicinski, Philippe Schenker,
	Conor Dooley

On 1/30/24 00:34, Philippe Schenker wrote:
> From: Philippe Schenker <philippe.schenker@impulsing.ch>
> 
> This commit adds the dt-binding for KSZ8567, a robust 7-port
> Ethernet switch. The KSZ8567 features two RGMII/MII/RMII interfaces,
> each capable of gigabit speeds, complemented by five 10/100 Mbps
> MAC/PHYs.
> 
> This binding is necessary to set specific capabilities for this switch
> chip that are necessary due to the ksz dsa driver only accepting
> specific chip ids.
> The KSZ8567 is very similar to KSZ9567 however only containing 100 Mbps
> phys on its downstream ports.
> 
> Signed-off-by: Philippe Schenker <philippe.schenker@impulsing.ch>
> Acked-by: Conor Dooley <conor.dooley@microchip.com>

Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-- 
Florian


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

* Re: [PATCH net-next v3 2/2] net: dsa: Add KSZ8567 switch support
  2024-01-30  8:34 ` [PATCH net-next v3 2/2] " Philippe Schenker
  2024-01-31 15:24   ` Andrew Lunn
@ 2024-01-31 17:22   ` Florian Fainelli
  1 sibling, 0 replies; 7+ messages in thread
From: Florian Fainelli @ 2024-01-31 17:22 UTC (permalink / raw)
  To: Philippe Schenker, netdev
  Cc: Paolo Abeni, linux-kernel, Marek Vasut, Vladimir Oltean,
	Woojung Huh, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Andrew Lunn, UNGLinuxDriver, devicetree, David S . Miller,
	stefan.portmann, Eric Dumazet, Jakub Kicinski, Philippe Schenker,
	Arun Ramadoss

On 1/30/24 00:34, Philippe Schenker wrote:
> From: Philippe Schenker <philippe.schenker@impulsing.ch>
> 
> This commit introduces support for the KSZ8567, a robust 7-port
> Ethernet switch. The KSZ8567 features two RGMII/MII/RMII interfaces,
> each capable of gigabit speeds, complemented by five 10/100 Mbps
> MAC/PHYs.
> 
> Signed-off-by: Philippe Schenker <philippe.schenker@impulsing.ch>
> Acked-by: Arun Ramadoss <arun.ramadoss@microchip.com>

Reviewed-by: Florian Fainelli <florian.fainelli@broadcom.com>
-- 
Florian


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

* Re: [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support
  2024-01-30  8:34 [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support Philippe Schenker
                   ` (2 preceding siblings ...)
  2024-01-31 17:21 ` Florian Fainelli
@ 2024-02-01 10:30 ` patchwork-bot+netdevbpf
  3 siblings, 0 replies; 7+ messages in thread
From: patchwork-bot+netdevbpf @ 2024-02-01 10:30 UTC (permalink / raw)
  To: Philippe Schenker
  Cc: netdev, pabeni, linux-kernel, marex, olteanv, woojung.huh,
	robh+dt, krzysztof.kozlowski+dt, conor+dt, andrew, UNGLinuxDriver,
	devicetree, davem, f.fainelli, stefan.portmann, edumazet, kuba,
	philippe.schenker, conor.dooley

Hello:

This series was applied to netdev/net-next.git (main)
by Paolo Abeni <pabeni@redhat.com>:

On Tue, 30 Jan 2024 09:34:18 +0100 you wrote:
> From: Philippe Schenker <philippe.schenker@impulsing.ch>
> 
> This commit adds the dt-binding for KSZ8567, a robust 7-port
> Ethernet switch. The KSZ8567 features two RGMII/MII/RMII interfaces,
> each capable of gigabit speeds, complemented by five 10/100 Mbps
> MAC/PHYs.
> 
> [...]

Here is the summary with links:
  - [net-next,v3,1/2] dt-bindings: net: dsa: Add KSZ8567 switch support
    https://git.kernel.org/netdev/net-next/c/5f8066d45782
  - [net-next,v3,2/2] net: dsa: Add KSZ8567 switch support
    https://git.kernel.org/netdev/net-next/c/3723b56d6f73

You are awesome, thank you!
-- 
Deet-doot-dot, I am a bot.
https://korg.docs.kernel.org/patchwork/pwbot.html



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

end of thread, other threads:[~2024-02-01 10:30 UTC | newest]

Thread overview: 7+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-01-30  8:34 [PATCH net-next v3 1/2] dt-bindings: net: dsa: Add KSZ8567 switch support Philippe Schenker
2024-01-30  8:34 ` [PATCH net-next v3 2/2] " Philippe Schenker
2024-01-31 15:24   ` Andrew Lunn
2024-01-31 17:22   ` Florian Fainelli
2024-01-31 15:24 ` [PATCH net-next v3 1/2] dt-bindings: " Andrew Lunn
2024-01-31 17:21 ` Florian Fainelli
2024-02-01 10:30 ` patchwork-bot+netdevbpf

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).