Skip to content

Commit

Permalink
stmmac: Add support for SIMATIC IOT2000 platform
Browse files Browse the repository at this point in the history
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>
Reviewed-by: Andy Shevchenko <andy.shevchenko@gmail.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
  • Loading branch information
Jan Kiszka authored and David S. Miller committed May 2, 2017
1 parent 412b65d commit 212c7fd
Showing 1 changed file with 25 additions and 1 deletion.
26 changes: 25 additions & 1 deletion drivers/net/ethernet/stmicro/stmmac/stmmac_pci.c
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
*/
struct stmmac_pci_dmi_data {
const char *name;
const char *asset_tag;
unsigned int func;
int phy_addr;
};
Expand All @@ -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;

Expand All @@ -57,8 +59,12 @@ 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 (!strcmp(dmi->name, name) && dmi->func == func) {
/* If asset tag is provided, match on it as well. */
if (dmi->asset_tag && strcmp(dmi->asset_tag, asset_tag))
continue;
return dmi->phy_addr;
}
}

return -ENODEV;
Expand Down Expand Up @@ -153,6 +159,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,
},
{}
};

Expand Down

0 comments on commit 212c7fd

Please sign in to comment.