From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S932086AbcGAGUo (ORCPT ); Fri, 1 Jul 2016 02:20:44 -0400 Received: from mail-cys01nam02on0074.outbound.protection.outlook.com ([104.47.37.74]:19904 "EHLO NAM02-CY1-obe.outbound.protection.outlook.com" rhost-flags-OK-OK-OK-FAIL) by vger.kernel.org with ESMTP id S1752082AbcGAGUY (ORCPT ); Fri, 1 Jul 2016 02:20:24 -0400 Authentication-Results: spf=pass (sender IP is 149.199.60.100) smtp.mailfrom=xilinx.com; vger.kernel.org; dkim=none (message not signed) header.d=none;vger.kernel.org; dmarc=bestguesspass action=none header.from=xilinx.com; From: Kedareswara rao Appana To: , , , , , CC: , Subject: [RFC PATCH 2/2] net: macb: Add gmii2rgmii phy converter support Date: Fri, 1 Jul 2016 11:50:12 +0530 Message-ID: <1467354012-7364-3-git-send-email-appanad@xilinx.com> X-Mailer: git-send-email 2.1.1 In-Reply-To: <1467354012-7364-1-git-send-email-appanad@xilinx.com> References: <1467354012-7364-1-git-send-email-appanad@xilinx.com> X-RCIS-Action: ALLOW X-TM-AS-Product-Ver: IMSS-7.1.0.1224-8.0.0.1202-22422.005 X-TM-AS-User-Approved-Sender: Yes;Yes X-EOPAttributedMessage: 0 X-MS-Office365-Filtering-HT: Tenant X-Forefront-Antispam-Report: CIP:149.199.60.100;IPV:NLI;CTRY:US;EFV:NLI;SFV:NSPM;SFS:(10009020)(6009001)(7916002)(2980300002)(438002)(189002)(199003)(575784001)(86362001)(11100500001)(87936001)(50986999)(2201001)(52956003)(36756003)(7846002)(2950100001)(8936002)(305945005)(76176999)(90966002)(356003)(5003940100001)(50226002)(46386002)(189998001)(19580405001)(47776003)(50466002)(19580395003)(48376002)(45336002)(106466001)(103686003)(4001450100002)(229853001)(81166006)(586003)(81156014)(63266004)(8676002)(4326007)(92566002)(36386004)(42186005)(33646002)(5001770100001)(2906002)(107986001)(217873001)(5001870100001);DIR:OUT;SFP:1101;SCL:1;SRVR:SN1NAM02HT187;H:xsj-pvapsmtpgw02;FPR:;SPF:Pass;PTR:xapps1.xilinx.com,unknown-60-100.xilinx.com;MX:1;A:1;CAT:NONE;LANG:en;CAT:NONE; MIME-Version: 1.0 Content-Type: text/plain X-MS-Office365-Filtering-Correlation-Id: b85e45b6-9404-49df-7315-08d3a177c795 X-Microsoft-Antispam: UriScan:;BCL:0;PCL:0;RULEID:(8251501002);SRVR:SN1NAM02HT187; X-Microsoft-Antispam-PRVS: <5b5d0acf97194372ad8cfb689d0db53b@SN1NAM02HT187.eop-nam02.prod.protection.outlook.com> X-Exchange-Antispam-Report-Test: UriScan:(192813158149592); X-Exchange-Antispam-Report-CFA-Test: BCL:0;PCL:0;RULEID:(601004)(2401047)(13015025)(13024025)(13018025)(13023025)(13017025)(5005006)(8121501046)(10201501046)(3002001)(6055026);SRVR:SN1NAM02HT187;BCL:0;PCL:0;RULEID:;SRVR:SN1NAM02HT187; X-Forefront-PRVS: 0990C54589 X-OriginatorOrg: xilinx.com X-MS-Exchange-CrossTenant-OriginalArrivalTime: 01 Jul 2016 06:20:19.8809 (UTC) X-MS-Exchange-CrossTenant-Id: 657af505-d5df-48d0-8300-c31994686c5c X-MS-Exchange-CrossTenant-OriginalAttributedTenantConnectingIp: TenantId=657af505-d5df-48d0-8300-c31994686c5c;Ip=[149.199.60.100];Helo=[xsj-pvapsmtpgw02] X-MS-Exchange-CrossTenant-FromEntityHeader: HybridOnPrem X-MS-Exchange-Transport-CrossTenantHeadersStamped: SN1NAM02HT187 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This patch adds support for gmii2rgmii phy converter in the macb driver. Signed-off-by: Kedareswara rao Appana --- drivers/net/ethernet/cadence/macb.c | 21 ++++++++++++++++++++- drivers/net/ethernet/cadence/macb.h | 3 +++ 2 files changed, 23 insertions(+), 1 deletions(-) diff --git a/drivers/net/ethernet/cadence/macb.c b/drivers/net/ethernet/cadence/macb.c index cb07d95..de0ad71 100644 --- a/drivers/net/ethernet/cadence/macb.c +++ b/drivers/net/ethernet/cadence/macb.c @@ -257,6 +257,14 @@ static int macb_mdio_write(struct mii_bus *bus, int mii_id, int regnum, return 0; } +static inline void macb_hw_fix_mac_speed(struct macb *bp, + struct phy_device *phydev) +{ + if (likely(bp->converter_phy.fix_mac_speed)) + bp->converter_phy.fix_mac_speed(&bp->converter_phy, + phydev->speed); +} + /** * macb_set_tx_clk() - Set a clock to a new frequency * @clk Pointer to the clock to change @@ -329,6 +337,7 @@ static void macb_handle_link_change(struct net_device *dev) reg |= GEM_BIT(GBE); macb_or_gem_writel(bp, NCFGR, reg); + macb_hw_fix_mac_speed(bp, phydev); bp->speed = phydev->speed; bp->duplex = phydev->duplex; @@ -2884,7 +2893,7 @@ static int macb_probe(struct platform_device *pdev) struct clk **, struct clk **) = macb_clk_init; int (*init)(struct platform_device *) = macb_init; - struct device_node *np = pdev->dev.of_node; + struct device_node *np = pdev->dev.of_node, *np1, *np11; struct device_node *phy_node; const struct macb_config *macb_config = NULL; struct clk *pclk, *hclk = NULL, *tx_clk = NULL; @@ -3011,6 +3020,16 @@ static int macb_probe(struct platform_device *pdev) goto err_out_free_netdev; phydev = bp->phy_dev; + np1 = of_get_next_child(np, NULL); + for_each_child_of_node(np1, np11) { + if (of_device_is_compatible(np11, "xlnx,gmiitorgmii")) { + bp->converter_phy.dev = dev; + bp->converter_phy.mii_bus = bp->mii_bus; + bp->converter_phy.mdio_write = macb_mdio_write; + bp->converter_phy.platform_data = bp->pdev->dev.of_node; + gmii2rgmii_phyprobe(&bp->converter_phy); + } + } netif_carrier_off(dev); diff --git a/drivers/net/ethernet/cadence/macb.h b/drivers/net/ethernet/cadence/macb.h index 8a13824..735bce2 100644 --- a/drivers/net/ethernet/cadence/macb.h +++ b/drivers/net/ethernet/cadence/macb.h @@ -10,6 +10,8 @@ #ifndef _MACB_H #define _MACB_H +#include + #define MACB_GREGS_NBR 16 #define MACB_GREGS_VERSION 2 #define MACB_MAX_QUEUES 8 @@ -846,6 +848,7 @@ struct macb { unsigned int jumbo_max_len; u32 wol; + struct gmii2rgmii converter_phy; }; static inline bool macb_is_gem(struct macb *bp) -- 1.7.1