linux-kernel.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH] stmmac: Add support for SIMATIC IOT2000 platform
@ 2017-04-24 19:27 Jan Kiszka
  2017-04-24 21:27 ` Andy Shevchenko
  2017-04-28 16:09 ` David Miller
  0 siblings, 2 replies; 13+ messages in thread
From: Jan Kiszka @ 2017-04-24 19:27 UTC (permalink / raw)
  To: Giuseppe Cavallaro, Alexandre Torgue
  Cc: netdev, Linux Kernel Mailing List, Sascha Weisenberger

The IOT2000 is industrial controller platform, derived from the Intel
Galileo Gen2 board. The variant IOT2020 comes with one LAN port, the
IOT2040 has two of them. They can be told apart based on the board asset
tag in the DMI table.

Based on patch by Sascha Weisenberger.

Signed-off-by: Jan Kiszka <jan.kiszka@siemens.com>
Signed-off-by: Sascha Weisenberger <sascha.weisenberger@siemens.com>
---
 drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c | 23 ++++++++++++++++++++++-
 1 file changed, 22 insertions(+), 1 deletion(-)

diff --git a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
index 5c9e462276b9..de87c329fb5c 100644
--- a/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
+++ b/drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
@@ -32,6 +32,7 @@
  */
 struct stmmac_pci_dmi_data {
 	const char *name;
+	const char *asset_tag;
 	unsigned int func;
 	int phy_addr;
 };
@@ -46,6 +47,7 @@ struct stmmac_pci_info {
 static int stmmac_pci_find_phy_addr(struct stmmac_pci_info *info)
 {
 	const char *name = dmi_get_system_info(DMI_BOARD_NAME);
+	const char *asset_tag = dmi_get_system_info(DMI_BOARD_ASSET_TAG);
 	unsigned int func = PCI_FUNC(info->pdev->devfn);
 	struct stmmac_pci_dmi_data *dmi;
 
@@ -57,7 +59,8 @@ static int stmmac_pci_find_phy_addr(struct stmmac_pci_info *info)
 		return 1;
 
 	for (dmi = info->dmi; dmi->name && *dmi->name; dmi++) {
-		if (!strcmp(dmi->name, name) && dmi->func == func)
+		if (dmi->func == func && !strcmp(dmi->name, name) &&
+		    (!dmi->asset_tag || !strcmp(dmi->asset_tag, asset_tag)))
 			return dmi->phy_addr;
 	}
 
@@ -142,6 +145,24 @@ static struct stmmac_pci_dmi_data quark_pci_dmi_data[] = {
 		.func = 6,
 		.phy_addr = 1,
 	},
+	{
+		.name = "SIMATIC IOT2000",
+		.asset_tag = "6ES7647-0AA00-0YA2",
+		.func = 6,
+		.phy_addr = 1,
+	},
+	{
+		.name = "SIMATIC IOT2000",
+		.asset_tag = "6ES7647-0AA00-1YA2",
+		.func = 6,
+		.phy_addr = 1,
+	},
+	{
+		.name = "SIMATIC IOT2000",
+		.asset_tag = "6ES7647-0AA00-1YA2",
+		.func = 7,
+		.phy_addr = 1,
+	},
 	{}
 };
 

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

end of thread, other threads:[~2017-04-28 16:09 UTC | newest]

Thread overview: 13+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2017-04-24 19:27 [PATCH] stmmac: Add support for SIMATIC IOT2000 platform Jan Kiszka
2017-04-24 21:27 ` Andy Shevchenko
2017-04-25  5:44   ` Jan Kiszka
2017-04-25  7:30     ` Andy Shevchenko
2017-04-25  9:00       ` Jan Kiszka
2017-04-25  9:46         ` Andy Shevchenko
2017-04-25 10:07           ` Jan Kiszka
2017-04-25 10:09             ` Jan Kiszka
2017-04-25 11:42               ` Andy Shevchenko
2017-04-25 12:15                 ` Jan Kiszka
2017-04-26 18:29                   ` Andy Shevchenko
2017-04-25 11:40             ` Andy Shevchenko
2017-04-28 16:09 ` David Miller

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).