From patchwork Sat Nov 28 22:54:23 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrien Grassein X-Patchwork-Id: 1407753 Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=nmHd2Tev; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4Ck6KV2LQcz9sTR for ; Sun, 29 Nov 2020 09:55:42 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731463AbgK1WzT (ORCPT ); Sat, 28 Nov 2020 17:55:19 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51236 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727070AbgK1WzR (ORCPT ); Sat, 28 Nov 2020 17:55:17 -0500 Received: from mail-wr1-x444.google.com (mail-wr1-x444.google.com [IPv6:2a00:1450:4864:20::444]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 2984EC0613D3; Sat, 28 Nov 2020 14:54:37 -0800 (PST) Received: by mail-wr1-x444.google.com with SMTP id l1so9764231wrb.9; Sat, 28 Nov 2020 14:54:37 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=pK9Ea/lgfc3fvgVFGg7cOxa+M9VALejH1ACdbsPKEMs=; b=nmHd2TevB8pFTfshsA8RnxSQyuL2AAIj267/vJnzTiOWPNVDN8ceOlhKFYYg1C0RL5 qkNHODFKbPacJYAqBbVyE1R1kxyXkiEsq9VDr6T3F0Pzjcv3h8G1W2mWR+gWduYNCPwx PUH9IEUtRTA+3IVJoalQn3Zzfn2jLeL5shsDjgTFlGZgvtdedcav0t+cjw54FwdgmQPX 6TV3LSA4YbH2zZSZHR6EfFc7STj7asKszDqDGShb49q9WVZuJbt/u+7MX15xV7VDo3FN kqwh3UIPOczUpMMvTXvSKhNz5/9YV9dtpaOXbiqAgw5Lt2TKqfuLKzARKOI3wicNeXmb 6y0g== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=pK9Ea/lgfc3fvgVFGg7cOxa+M9VALejH1ACdbsPKEMs=; b=PlpGihDmR+7NyU+z6PGn64xAFL7I8vnNshjcOomCNmkZ6jWTSCLTcpedBEk1ATmhWn CwAHmYh1y9JsJmVidLqhtGgLRW7/8pw3QQwPD+i3vSopjOZsYNN+2UV5ZGBAZQxLUnfT NlE6Stv3y8DJQe+vhr+2n39YhLpn6XHsaoxsFlbWwFEe6qedu9HiOMr5Vt8lHRw6sXsb cQNpcjNbLhz+oBXRXj2A+N1BbsaTp8IBUtYN9pN9E1il35ZNTGNknNMwA+7w/QGrnbj3 zsS6HUPCXU6Ox8wGhc03jYUYLyzrrlY9n9AUI5El9FasZIDWKaSotuSTN+TINYpLH7+K hz5A== X-Gm-Message-State: AOAM532cEWrUBqFM02Ho68h8JBFvhqV0TVJh8/smU3Wu+55AvvfNuMAR LMnGLlquYm8kN2pJmiik2KU= X-Google-Smtp-Source: ABdhPJzdyErr8cs5tsLS+ZbaWXTssjqNORLamAngXh3vqxJSdBmE2QgGccfdpJqXKCravltxrU9DSw== X-Received: by 2002:a05:6000:347:: with SMTP id e7mr19715253wre.35.1606604075863; Sat, 28 Nov 2020 14:54:35 -0800 (PST) Received: from adgra-XPS-15-9570.home (lfbn-idf1-1-1007-144.w86-238.abo.wanadoo.fr. [86.238.83.144]) by smtp.gmail.com with ESMTPSA id d13sm24231506wrb.39.2020.11.28.14.54.35 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 14:54:35 -0800 (PST) From: Adrien Grassein Cc: fugang.duan@nxp.com, davem@davemloft.net, kuba@kernel.org, robh+dt@kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Adrien Grassein Subject: [PATCH 1/3] dt-bindings: net: fsl-fec add mdc/mdio bitbang option Date: Sat, 28 Nov 2020 23:54:23 +0100 Message-Id: <20201128225425.19300-1-adrien.grassein@gmail.com> X-Mailer: git-send-email 2.20.1 MIME-Version: 1.0 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Add dt-bindings explanation for the two new gpios (mdio and mdc) used for bitbanging. Signed-off-by: Adrien Grassein --- Documentation/devicetree/bindings/net/fsl-fec.txt | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/Documentation/devicetree/bindings/net/fsl-fec.txt b/Documentation/devicetree/bindings/net/fsl-fec.txt index 9b543789cd52..e9fa992354b7 100644 --- a/Documentation/devicetree/bindings/net/fsl-fec.txt +++ b/Documentation/devicetree/bindings/net/fsl-fec.txt @@ -22,6 +22,10 @@ Optional properties: - fsl,err006687-workaround-present: If present indicates that the system has the hardware workaround for ERR006687 applied and does not need a software workaround. +- mdc-gpios: Bitbanged MDIO Management Data Clock GPIO. If specified, +mdio-gpios should be specified too. +- mdio-gpios: Bitbanged MDIO Management Data I/O GPIO. If specified, +mdc-gpios should be specified too. - fsl,stop-mode: register bits of stop mode control, the format is <&gpr req_gpr req_bit>. gpr is the phandle to general purpose register node. From patchwork Sat Nov 28 22:54:24 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrien Grassein X-Patchwork-Id: 1407751 Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=Q0Ikrstg; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4Ck6KS5hwcz9sSf for ; Sun, 29 Nov 2020 09:55:40 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1731978AbgK1WzU (ORCPT ); Sat, 28 Nov 2020 17:55:20 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51242 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727070AbgK1WzT (ORCPT ); Sat, 28 Nov 2020 17:55:19 -0500 Received: from mail-wr1-x442.google.com (mail-wr1-x442.google.com [IPv6:2a00:1450:4864:20::442]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 64979C0613D4; Sat, 28 Nov 2020 14:54:39 -0800 (PST) Received: by mail-wr1-x442.google.com with SMTP id 64so9767749wra.11; Sat, 28 Nov 2020 14:54:39 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=+hA6KnCpaVRYBYlmVzT05cPi3Z+v4s6dEdVUnk8Iwns=; b=Q0IkrstgoTVsCos1T41nWGErgb54PIxXqqJ8y4HAUTQT+6zk4SLXJX9fOhLaZhaw0Z 7ywF6hcetO0yNhvhFg65dFmK9fl9EsQzBpAXCiqIQ9V0XSC6sA0HN48ChAtbz0WovLGc f6q/RWyAi/bx8/FKacTz4T1w0geZDGdO7MuPq68+mEXpYhoD/hEyu336+dn7WrwNJEnD GX9ci424WktGwQAq2JER/rJTe35HoGNZED4z6XVw2eMoaE8mmzLJ86YLI/je6OsLRPy+ sWj5BmVooUvB9qhgu2xD34AEmJ0MVI8PjDuzve589MnDcsmfGBmgk7C/xj819w63gMT+ 5T3w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=+hA6KnCpaVRYBYlmVzT05cPi3Z+v4s6dEdVUnk8Iwns=; b=R0Ph2woEttebW9h/IOUjtqZv3OsPSGYw5cpkQr9JS9CPjdRBMZjkpSSMWRmtbHX5aH q9VK8nxw/jpHNahR3qDlfDDBtTPAR3NwEDkNveEynKBKw/7MONowuFPCrW9dPwT+uXcZ Y5Lk5ihJz5Wlf9EukTC+4cRMgJbQy04ZppVkGvDRDofxOzpXHGx53AOMe7rGpYd3Jj0x 6Caz54sVP5oZfiiEEnxTscTCpCj5Y54S258/eD8swP3lw6eLBFAR0uiv+Qjs4mIn9dyl T1gcm7E++9S5Ab2ORTyBdcQDtfYejl4Ng4CHTtPB24AqWTiuy3RUVq2Kq1HDdkjbKruL UoJg== X-Gm-Message-State: AOAM532+PF13r3pRxV1Qo8DCYnNLFuFHsfEXXDe/5rAtEA6P8MJ2jgdI +adXqvIH045V65E6DAzDIZI= X-Google-Smtp-Source: ABdhPJwAN1gb9XhYo7FDh0QLdRDPzVgnoEoZTywB3TVXd2H3+lP2G9LXKdi5XO/fkK/1Pjd0zOFoYA== X-Received: by 2002:a05:6000:187:: with SMTP id p7mr19323582wrx.240.1606604078187; Sat, 28 Nov 2020 14:54:38 -0800 (PST) Received: from adgra-XPS-15-9570.home (lfbn-idf1-1-1007-144.w86-238.abo.wanadoo.fr. [86.238.83.144]) by smtp.gmail.com with ESMTPSA id d13sm24231506wrb.39.2020.11.28.14.54.37 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 14:54:37 -0800 (PST) From: Adrien Grassein Cc: fugang.duan@nxp.com, davem@davemloft.net, kuba@kernel.org, robh+dt@kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Adrien Grassein Subject: [PATCH 2/3] net: fsl: fec: add mdc/mdio bitbang option Date: Sat, 28 Nov 2020 23:54:24 +0100 Message-Id: <20201128225425.19300-2-adrien.grassein@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201128225425.19300-1-adrien.grassein@gmail.com> References: <20201128225425.19300-1-adrien.grassein@gmail.com> MIME-Version: 1.0 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds the ability for the fec to use the mdc/mdio bitbang protocol to communicate with its phy. It adds two new optional parameters in the devicetree definition for the two needed GPIO (mdc and mdio). It uses the mdio-bitbang generic implementation. Signed-off-by: Adrien Grassein --- drivers/net/ethernet/freescale/fec.h | 5 ++ drivers/net/ethernet/freescale/fec_main.c | 91 ++++++++++++++++++++--- 2 files changed, 87 insertions(+), 9 deletions(-) diff --git a/drivers/net/ethernet/freescale/fec.h b/drivers/net/ethernet/freescale/fec.h index c527f4ee1d3a..84bf9be4c6f5 100644 --- a/drivers/net/ethernet/freescale/fec.h +++ b/drivers/net/ethernet/freescale/fec.h @@ -15,6 +15,7 @@ /****************************************************************************/ #include +#include #include #include #include @@ -590,6 +591,10 @@ struct fec_enet_private { int pps_enable; unsigned int next_counter; + struct mdiobb_ctrl fec_main_bb_ctrl; + struct gpio_desc *gd_mdc; + struct gpio_desc *gd_mdio; + u64 ethtool_stats[]; }; diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index 04f24c66cf36..e5c0a5da9965 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -2050,6 +2050,48 @@ static int fec_enet_mii_probe(struct net_device *ndev) return 0; } +static void fec_main_bb_ctrl_set_mdc(struct mdiobb_ctrl *ctrl, int level) +{ + struct fec_enet_private *fep = container_of(ctrl, + struct fec_enet_private, fec_main_bb_ctrl); + if (level) + gpiod_direction_input(fep->gd_mdc); + else + gpiod_direction_output(fep->gd_mdc, 0); +} + +static void fec_main_bb_ctrl_set_mdio_dir(struct mdiobb_ctrl *ctrl, int output) +{ + struct fec_enet_private *fep = container_of(ctrl, + struct fec_enet_private, fec_main_bb_ctrl); + if (output) + gpiod_direction_output(fep->gd_mdio, 0); + else + gpiod_direction_input(fep->gd_mdio); +} + +static void fec_main_bb_ctrl_set_mdio_data(struct mdiobb_ctrl *ctrl, int value) +{ + struct fec_enet_private *fep = container_of(ctrl, + struct fec_enet_private, fec_main_bb_ctrl); + gpiod_direction_output(fep->gd_mdio, value); +} + +static int fec_main_bb_ctrl_get_mdio_data(struct mdiobb_ctrl *ctrl) +{ + struct fec_enet_private *fep = container_of(ctrl, + struct fec_enet_private, fec_main_bb_ctrl); + return gpiod_get_value(fep->gd_mdio); +} + +static const struct mdiobb_ops fec_main_bb_ops = { + .owner = THIS_MODULE, + .set_mdc = fec_main_bb_ctrl_set_mdc, + .set_mdio_dir = fec_main_bb_ctrl_set_mdio_dir, + .set_mdio_data = fec_main_bb_ctrl_set_mdio_data, + .get_mdio_data = fec_main_bb_ctrl_get_mdio_data, +}; + static int fec_enet_mii_init(struct platform_device *pdev) { static struct mii_bus *fec0_mii_bus; @@ -2150,18 +2192,27 @@ static int fec_enet_mii_init(struct platform_device *pdev) /* Clear any pending transaction complete indication */ writel(FEC_ENET_MII, fep->hwp + FEC_IEVENT); - fep->mii_bus = mdiobus_alloc(); - if (fep->mii_bus == NULL) { - err = -ENOMEM; - goto err_out; - } + if (fep->gd_mdc && fep->gd_mdio) { + fep->fec_main_bb_ctrl.ops = &fec_main_bb_ops; + fep->mii_bus = alloc_mdio_bitbang(&fep->fec_main_bb_ctrl); + if (!fep->mii_bus) { + err = -ENOMEM; + goto err_out; + } + } else { + fep->mii_bus = mdiobus_alloc(); + if (!fep->mii_bus) { + err = -ENOMEM; + goto err_out; + } + fep->mii_bus->read = fec_enet_mdio_read; + fep->mii_bus->write = fec_enet_mdio_write; - fep->mii_bus->name = "fec_enet_mii_bus"; - fep->mii_bus->read = fec_enet_mdio_read; - fep->mii_bus->write = fec_enet_mdio_write; + fep->mii_bus->priv = fep; + } snprintf(fep->mii_bus->id, MII_BUS_ID_SIZE, "%s-%x", pdev->name, fep->dev_id + 1); - fep->mii_bus->priv = fep; + fep->mii_bus->name = "fec_enet_mii_bus"; fep->mii_bus->parent = &pdev->dev; err = of_mdiobus_register(fep->mii_bus, node); @@ -3525,6 +3576,8 @@ fec_probe(struct platform_device *pdev) char irq_name[8]; int irq_cnt; struct fec_devinfo *dev_info; + struct gpio_desc *gd; + fec_enet_get_queue_num(pdev, &num_tx_qs, &num_rx_qs); @@ -3575,6 +3628,26 @@ fec_probe(struct platform_device *pdev) !of_property_read_bool(np, "fsl,err006687-workaround-present")) fep->quirks |= FEC_QUIRK_ERR006687; + gd = devm_gpiod_get_optional(&pdev->dev, "mdc", GPIOD_IN); + if (IS_ERR(gd)) { + if (PTR_ERR(gd) != -EPROBE_DEFER) + dev_err(&pdev->dev, "Failed to get mdc gpio: %ld\n", + PTR_ERR(gd)); + ret = PTR_ERR(gd); + goto failed_ioremap; + } + fep->gd_mdc = gd; + + gd = devm_gpiod_get_optional(&pdev->dev, "mdio", GPIOD_IN); + if (IS_ERR(gd)) { + if (PTR_ERR(gd) != -EPROBE_DEFER) + dev_err(&pdev->dev, "Failed to get mdio gpio: %ld\n", + PTR_ERR(gd)); + ret = PTR_ERR(gd); + goto failed_ioremap; + } + fep->gd_mdio = gd; + if (of_get_property(np, "fsl,magic-packet", NULL)) fep->wol_flag |= FEC_WOL_HAS_MAGIC_PACKET; From patchwork Sat Nov 28 22:54:25 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Adrien Grassein X-Patchwork-Id: 1407752 Return-Path: X-Original-To: patchwork-incoming-netdev@ozlabs.org Delivered-To: patchwork-incoming-netdev@ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=vger.kernel.org (client-ip=23.128.96.18; helo=vger.kernel.org; envelope-from=netdev-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=gmail.com Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.a=rsa-sha256 header.s=20161025 header.b=qm5mslSv; dkim-atps=neutral Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by ozlabs.org (Postfix) with ESMTP id 4Ck6KT6qPpz9sSf for ; Sun, 29 Nov 2020 09:55:41 +1100 (AEDT) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732357AbgK1WzX (ORCPT ); Sat, 28 Nov 2020 17:55:23 -0500 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:51250 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1727070AbgK1WzW (ORCPT ); Sat, 28 Nov 2020 17:55:22 -0500 Received: from mail-wr1-x443.google.com (mail-wr1-x443.google.com [IPv6:2a00:1450:4864:20::443]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 9B2E0C0617A7; Sat, 28 Nov 2020 14:54:41 -0800 (PST) Received: by mail-wr1-x443.google.com with SMTP id e7so9790792wrv.6; Sat, 28 Nov 2020 14:54:41 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id:in-reply-to:references :mime-version:content-transfer-encoding; bh=IRkMx7ynKm/yM0ch5pBsS12yNk9GRJdtum4GLiNHEJc=; b=qm5mslSvMdUBojxedLrGXh1DWlvwNDRbalZDfnEgF6qgnev418PVBXJmKFVDXFPxqx IPv3ddQ7g7/QV8tLpBVgV7O0f0IQlSWOcG9upCOk+PiOGM9L5azm6oMozbEgvwwdHk5F WHE22H9/61e/g9JxY6dfUMpQkt3Yvi722RhMJtNwMTxe8m/zAVj/Z75gkeGIK7oUgsUu UxmhdBkBRC9CFrivux/3tc3V8jy7FFwQaRjUmUbOuYYBeeWVYLK56PAhCPnFsGvLPvCL T3I4FTaCt7OAp/UcS5qhqnPhgZpzVTyMy6pKSLvP332u3ms8jxJbR/C3q8zdQgLYv7rt Cx8w== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:in-reply-to :references:mime-version:content-transfer-encoding; bh=IRkMx7ynKm/yM0ch5pBsS12yNk9GRJdtum4GLiNHEJc=; b=DIWE7lEPPWx3cxr2oaXT4GwEdPQuRAuNRbdLwxxO1Xxw+yS0Pvi8odGuBmsARjj2YE gqv4FUCSjDwai9mzuV2N/urp1mYWlSaC1UibQ7kb7mVDbAgSXHAeAIEXwO9oznQGBFts mr3vPjmzmjoxlzuymAfv/9J4qPLByu2wgt2RBzq5F86D8v2G+JAcDbYryLXexs/QdaUH fH3K1jaQkNXGJRoBM5zkauj13/L2uiCTgVoFqCliQLtNivrX3hrS+1as/UoiWd2Z0qU9 bSzJsSJLPdMb5Ef7LimcLdBm8gDmcLdh0+C0eM3AY1EuZoyKFLTozbNNJbloNXE6h7oj SYlA== X-Gm-Message-State: AOAM5319QqZwX+j3JGHisiM24JO/HSxVbPAS/Rn4AalRpCJsgQQ6Bl0U fe9/G9DpKB0T0O4czjXSMnk= X-Google-Smtp-Source: ABdhPJw/PY5xI6P8Zh3sO6jtAXPj7BSsmSNtXjs694JDjXR4kYu9nvTS8Z9JkGtgax+0rK4NWt8pjg== X-Received: by 2002:adf:b64f:: with SMTP id i15mr20021633wre.125.1606604080437; Sat, 28 Nov 2020 14:54:40 -0800 (PST) Received: from adgra-XPS-15-9570.home (lfbn-idf1-1-1007-144.w86-238.abo.wanadoo.fr. [86.238.83.144]) by smtp.gmail.com with ESMTPSA id d13sm24231506wrb.39.2020.11.28.14.54.39 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256); Sat, 28 Nov 2020 14:54:40 -0800 (PST) From: Adrien Grassein Cc: fugang.duan@nxp.com, davem@davemloft.net, kuba@kernel.org, robh+dt@kernel.org, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, Adrien Grassein Subject: [PATCH 3/3] net: fsl: fec: add imx8mq support. Date: Sat, 28 Nov 2020 23:54:25 +0100 Message-Id: <20201128225425.19300-3-adrien.grassein@gmail.com> X-Mailer: git-send-email 2.20.1 In-Reply-To: <20201128225425.19300-1-adrien.grassein@gmail.com> References: <20201128225425.19300-1-adrien.grassein@gmail.com> MIME-Version: 1.0 To: unlisted-recipients:; (no To-header on input) Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org This patch adds the imx8mq support to the fsl fec driver. Quirks are extracted from the NXP driver (5.4). Signed-off-by: Adrien Grassein --- drivers/net/ethernet/freescale/fec_main.c | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/drivers/net/ethernet/freescale/fec_main.c b/drivers/net/ethernet/freescale/fec_main.c index e5c0a5da9965..92ad5b86d31c 100644 --- a/drivers/net/ethernet/freescale/fec_main.c +++ b/drivers/net/ethernet/freescale/fec_main.c @@ -131,6 +131,14 @@ static const struct fec_devinfo fec_imx6ul_info = { FEC_QUIRK_HAS_COALESCE | FEC_QUIRK_CLEAR_SETUP_MII, }; +static const struct fec_devinfo fec_imx8mq_info = { + .quirks = FEC_QUIRK_ENET_MAC | FEC_QUIRK_HAS_GBIT | + FEC_QUIRK_HAS_BUFDESC_EX | FEC_QUIRK_HAS_CSUM | + FEC_QUIRK_HAS_VLAN | FEC_QUIRK_HAS_AVB | + FEC_QUIRK_ERR007885 | FEC_QUIRK_BUG_CAPTURE | + FEC_QUIRK_HAS_RACC | FEC_QUIRK_HAS_COALESCE +}; + static struct platform_device_id fec_devtype[] = { { /* keep it for coldfire */ @@ -158,6 +166,11 @@ static struct platform_device_id fec_devtype[] = { .name = "imx6ul-fec", .driver_data = (kernel_ulong_t)&fec_imx6ul_info, }, { + .name = "imx8mq-fec", + .driver_data = (kernel_ulong_t)&fec_imx8mq_info, + }, + + { /* sentinel */ } }; @@ -171,6 +184,7 @@ enum imx_fec_type { MVF600_FEC, IMX6SX_FEC, IMX6UL_FEC, + IMX8MQ_FEC, }; static const struct of_device_id fec_dt_ids[] = { @@ -181,6 +195,8 @@ static const struct of_device_id fec_dt_ids[] = { { .compatible = "fsl,mvf600-fec", .data = &fec_devtype[MVF600_FEC], }, { .compatible = "fsl,imx6sx-fec", .data = &fec_devtype[IMX6SX_FEC], }, { .compatible = "fsl,imx6ul-fec", .data = &fec_devtype[IMX6UL_FEC], }, + { .compatible = "fsl,imx8mq-fec", .data = &fec_devtype[IMX8MQ_FEC], }, + { /* sentinel */ } }; MODULE_DEVICE_TABLE(of, fec_dt_ids);