drivers: ethernet: Add promiscuous mode to xmc4xxx

This patch adds promiscuos mode to the XMC4xxx SOC's ethernet driver.

Signed-off-by: Marcelo Roberto Jimenez <marcelo.jimenez@gmail.com>
diff --git a/drivers/ethernet/eth_xmc4xxx.c b/drivers/ethernet/eth_xmc4xxx.c
index 1d2a4f3..31ca10d 100644
--- a/drivers/ethernet/eth_xmc4xxx.c
+++ b/drivers/ethernet/eth_xmc4xxx.c
@@ -905,6 +905,10 @@
 	caps |= ETHERNET_HW_VLAN;
 #endif
 
+#if defined(CONFIG_NET_PROMISCUOUS_MODE)
+	caps |= ETHERNET_PROMISC_MODE;
+#endif
+
 	return caps;
 }
 
@@ -925,6 +929,20 @@
 		net_if_set_link_addr(dev_data->iface, dev_data->mac_addr,
 				     sizeof(dev_data->mac_addr), NET_LINK_ETHERNET);
 		return 0;
+#if defined(CONFIG_NET_PROMISCUOUS_MODE)
+	case ETHERNET_CONFIG_TYPE_PROMISC_MODE: {
+		uint32_t reg = dev_cfg->regs->MAC_FRAME_FILTER;
+
+		if (config->promisc_mode) {
+			reg |= ETH_MAC_FRAME_FILTER_PR_Msk;
+		} else {
+			reg &= ~ETH_MAC_FRAME_FILTER_PR_Msk;
+		}
+		dev_cfg->regs->MAC_FRAME_FILTER = reg;
+
+		return 0;
+	}
+#endif /* CONFIG_NET_PROMISCUOUS_MODE */
 	default:
 		break;
 	}