From patchwork Sun May 3 14:41:18 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Peng Fan X-Patchwork-Id: 1282002 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (sender SPF authorized) smtp.mailfrom=lists.denx.de (client-ip=85.214.62.61; helo=phobos.denx.de; envelope-from=u-boot-bounces@lists.denx.de; receiver=) Authentication-Results: ozlabs.org; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: ozlabs.org; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.a=rsa-sha256 header.s=selector2 header.b=IFr5tegf; dkim-atps=neutral Received: from phobos.denx.de (phobos.denx.de [85.214.62.61]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits)) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 49FSmn0t6sz9sRY for ; Mon, 4 May 2020 00:19:53 +1000 (AEST) Received: from h2850616.stratoserver.net (localhost [IPv6:::1]) by phobos.denx.de (Postfix) with ESMTP id 59CA081F35; Sun, 3 May 2020 16:18:51 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=u-boot-bounces@lists.denx.de Authentication-Results: phobos.denx.de; dkim=pass (1024-bit key; unprotected) header.d=nxp.com header.i=@nxp.com header.b="IFr5tegf"; dkim-atps=neutral Received: by phobos.denx.de (Postfix, from userid 109) id EDF2B81F2E; Sun, 3 May 2020 16:18:42 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.2 (2018-09-13) on phobos.denx.de X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,FORGED_SPF_HELO,MSGID_FROM_MTA_HEADER, SPF_HELO_PASS,URIBL_BLOCKED autolearn=no autolearn_force=no version=3.4.2 Received: from EUR05-AM6-obe.outbound.protection.outlook.com (mail-am6eur05on20617.outbound.protection.outlook.com [IPv6:2a01:111:f400:7e1b::617]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by phobos.denx.de (Postfix) with ESMTPS id 7E73681F2A for ; Sun, 3 May 2020 16:18:38 +0200 (CEST) Authentication-Results: phobos.denx.de; dmarc=pass (p=none dis=none) header.from=nxp.com Authentication-Results: phobos.denx.de; spf=pass smtp.mailfrom=peng.fan@nxp.com ARC-Seal: i=1; a=rsa-sha256; s=arcselector9901; d=microsoft.com; cv=none; b=aw1i2hd4X+vNzvb8XDfrJvMOIM9/gQYZDm/chnfPcyayf2b6A6bANn+RWDW1fd2xGa6WAab35oPMsm3k4ASJL3r6qLx8F9SqOS8szx+Ru024nOz8fNepLD2kopGLmhMxSR5zjjRW+lHxqtOpCvQDYfiODVGFK1S2vYgaUdls4WlUh+d/1y0UmdxFJDusLtahsTrSFxaWB+T3iUOpe5ZpPZniuBAQzSBUYZelI9rskqyJtEYero6dpaQpeJR7X/69Y/u+HmKDVzKDk2xbgc27i/2AJuy902AVClGPgzfOMnz91ayeKiEcIXTLs5fvTJxOWuHlqANCZvOgpe7M2m4oug== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=microsoft.com; s=arcselector9901; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4NRy1BNVqF2A/VTjR7oazeYlF2C3k5b1CZ7uJ1sRLHQ=; b=PcHRfnpcE1oAm14G4wRC3yvNmAZ7N+W5brHrM/I7Iy0rG/rnmQKiDpybppEv2a1X/1b0hnsbS5IsxnuyDWK7QZEcipJxyU7Kyi/vygIMFVotF5w52NYyt7eZqgw64MYFz3vjyGbQNKLfHQPwJ7fOiZMsiaJhTYKMHvY9AQKgnjGHRe7j2FIZPjC6FxvpStzMsU4tkU8dpBRlNIvKtaoTDznGANrCM5HsEDXrGOpt7Wh1Cb6YLrcYwkQ3jXaafrpXPXI2+K1GxAirkiNx80LkDTSpAYXKvFZNZgR6C6J0eEnW93qSx7NUQXTomlLOKD2nI0VrMGK83vQKzHiHE7cQ2g== ARC-Authentication-Results: i=1; mx.microsoft.com 1; spf=pass smtp.mailfrom=nxp.com; dmarc=pass action=none header.from=nxp.com; dkim=pass header.d=nxp.com; arc=none DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=nxp.com; s=selector2; h=From:Date:Subject:Message-ID:Content-Type:MIME-Version:X-MS-Exchange-SenderADCheck; bh=4NRy1BNVqF2A/VTjR7oazeYlF2C3k5b1CZ7uJ1sRLHQ=; b=IFr5tegf0RUCUHs7gMUai1tJ4IWw1s/IbBq7p3xLNLUND63R28dxWKdQ8AGRqTdWA9KT4xKNbNk95xjeJyGxrfljlCqKkE6VNjrqKN0bXSl+LgSCYEeGfy1EG3hMW3g1Gd/F1jVaYdpgaNnviYziu+ZjQLEPeuM+b/S8avOv1aQ= Authentication-Results: ni.com; dkim=none (message not signed) header.d=none;ni.com; dmarc=none action=none header.from=nxp.com; Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) by DB6PR0402MB2902.eurprd04.prod.outlook.com (2603:10a6:4:9a::13) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2958.20; Sun, 3 May 2020 14:18:36 +0000 Received: from DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::d17b:d767:19c3:b871]) by DB6PR0402MB2760.eurprd04.prod.outlook.com ([fe80::d17b:d767:19c3:b871%6]) with mapi id 15.20.2958.029; Sun, 3 May 2020 14:18:36 +0000 From: Peng Fan To: joe.hershberger@ni.com Cc: sbabic@denx.de, ccaione@baylibre.com, u-boot@lists.denx.de, uboot-imx@nxp.com, Fugang Duan , Peng Fan Subject: [PATCH V2 6/8] net: eqos: implement callbaks to get interface and set txclk rate Date: Sun, 3 May 2020 22:41:18 +0800 Message-Id: <20200503144120.30038-6-peng.fan@nxp.com> X-Mailer: git-send-email 2.16.4 In-Reply-To: <20200503144120.30038-1-peng.fan@nxp.com> References: <20200503144120.30038-1-peng.fan@nxp.com> X-ClientProxiedBy: SG2PR03CA0090.apcprd03.prod.outlook.com (2603:1096:4:7c::18) To DB6PR0402MB2760.eurprd04.prod.outlook.com (2603:10a6:4:a1::14) MIME-Version: 1.0 X-MS-Exchange-MessageSentRepresentingType: 1 Received: from linux-1xn6.ap.freescale.net (119.31.174.71) by SG2PR03CA0090.apcprd03.prod.outlook.com (2603:1096:4:7c::18) with Microsoft SMTP Server (version=TLS1_2, cipher=TLS_ECDHE_RSA_WITH_AES_256_GCM_SHA384) id 15.20.2979.14 via Frontend Transport; Sun, 3 May 2020 14:18:34 +0000 X-Mailer: git-send-email 2.16.4 X-Originating-IP: [119.31.174.71] X-MS-PublicTrafficType: Email X-MS-Office365-Filtering-HT: Tenant X-MS-Office365-Filtering-Correlation-Id: 33e8e97d-b5f0-406b-9414-08d7ef6cde63 X-MS-TrafficTypeDiagnostic: DB6PR0402MB2902:|DB6PR0402MB2902: X-MS-Exchange-Transport-Forked: True X-Microsoft-Antispam-PRVS: X-MS-Oob-TLC-OOBClassifiers: OLM:187; X-Forefront-PRVS: 0392679D18 X-MS-Exchange-SenderADCheck: 1 X-Microsoft-Antispam: BCL:0; X-Microsoft-Antispam-Message-Info: hvVxILGtMqGOruw3Se0BBqaTk/s6br5NwiTFdHixSuuBgFPD/REVuqpqqQgsvb5AffMxDIJ9lgnFqzR6BjNqXp0VEjKYnwHWhDR+lhma6yXpe4n37pH0B6je5cJ00fWLYPU1mG7Nri3KitXsM/UYTW1Glqyew03k35+yzrm9k2xmhfAR0647XBHf69ybehKrLXW89CHqql+2nchwAEOVeHGeAZE+PVgU94RbX6WEae4+3kr5DVtEC1nv8UoeM63EPcDtg171/A3F7NEGKfdz5XWw+tzyzW7wlDZugPWV0Mmz3WXPA3G2etq1lG5TtFtmylLbQEQHTqPKODd/SGv7Icdx4xV9izpgoV2U3ZTXrUVXNRFOlMOoVcdpxRN/80eNdlKvvL4XsSVi/2zC53QOwickolCwUsPP3LFAHB3yyYttc/P6bFuEggIzoKYgCEHP X-Forefront-Antispam-Report: CIP:255.255.255.255; CTRY:; LANG:en; SCL:1; SRV:; IPV:NLI; SFV:NSPM; H:DB6PR0402MB2760.eurprd04.prod.outlook.com; PTR:; CAT:NONE; SFTY:; SFS:(4636009)(346002)(376002)(136003)(39860400002)(396003)(366004)(44832011)(36756003)(8676002)(956004)(2616005)(2906002)(1076003)(26005)(66946007)(16526019)(186003)(66476007)(66556008)(6506007)(6512007)(6916009)(4326008)(6486002)(52116002)(54906003)(5660300002)(86362001)(316002)(6666004)(8936002)(478600001); DIR:OUT; SFP:1101; X-MS-Exchange-AntiSpam-MessageData: IX1gwG2gt0V0jp7aQrQdpp12/6D59knT49fwu6jpabOQsPWMfl2NwxvdC8Aj3/lur1MpsvXKuM6+2StDlhPNBnD2tZNva/ozWbmMRrArunDaPA+/viZ8voz8se2LbXVOrE3pZDmVYmXW6er5MvBYyXWMmPuD1qEkW6pxBnnif2QsArEyh/f0+I9mDD7dIPkThSYAWbUwoY6kfpElsKVObhmCnlq2KjZIv1GHeFPIf4lfbbYrg+OcOi7lz17FKwhxg7YlYZWh8q3co2CCc/0aNZPy0XDsvFX2IBAvLPO86iUt44FU306Vs3LivQGeBs3Ev5Xv8vUyNWk7S4BytZ4sSCIWQ5+Qu32EP2LwCZbjpo2xbbLN4+zAIvxuxNvycg6FFj5nfHssTFvYWkHav+V1liChPSTuU4cs9FYN6tjVfNeLkE8NU1JqRbDvi3i+Utsov2WTAG8S4+C0E7X0AKWZ+W1z5NSz0lsTPD2Q2a0emGAyu7fSOm80g0Syl0Tw6/hmpJ0wsNPpvE/+No9g3/53ZkiQNMmL+UNcb2QsfvH30lkzQel7dZfK+eaOQ5qRCyo8rPWPplyZdGcmjBA7LHgJqi+auKDWDP/iUAr+EpjMX97LDiuw2PSUI9vQAW4dYBuz2dMpPtumV9PZ5qO6HEBt4/aDNUfjqv0jRyfvnuXlCUCWJKLiViudiTSzZm6j9IJPjnk0Yyl49eNUptKiVRz/9pVEpyKa06GbFXfXtlaN4ch8XudId/cFt5Ewx71ka8gezKgS6X+la8mn6e71m9n/jgjbvp8uYbo6trufw6fxngk= X-OriginatorOrg: nxp.com X-MS-Exchange-CrossTenant-Network-Message-Id: 33e8e97d-b5f0-406b-9414-08d7ef6cde63 X-MS-Exchange-CrossTenant-OriginalArrivalTime: 03 May 2020 14:18:36.4897 (UTC) X-MS-Exchange-CrossTenant-FromEntityHeader: Hosted X-MS-Exchange-CrossTenant-Id: 686ea1d3-bc2b-4c6f-a92c-d99c5c301635 X-MS-Exchange-CrossTenant-MailboxType: HOSTED X-MS-Exchange-CrossTenant-UserPrincipalName: PhD63Z0xpQM4sXSM8Q13CsAr7fZrWy/VmWQo0an/YvGii96jkIZTm1pvCU1FZ1vSKRLW1qWsIanfvb7uMpatSw== X-MS-Exchange-Transport-CrossTenantHeadersStamped: DB6PR0402MB2902 X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.30rc1 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" X-Virus-Scanned: clamav-milter 0.102.2 at phobos.denx.de X-Virus-Status: Clean From: Fugang Duan Implement the callbacks to get phy mode interface and txclk rate configuration. Reviewed-by: Ye Li Signed-off-by: Fugang Duan Signed-off-by: Peng Fan --- V2: Fix build break drivers/net/dwc_eth_qos.c | 55 ++++++++++++++++++++++++++++++++++++++++++++--- 1 file changed, 52 insertions(+), 3 deletions(-) diff --git a/drivers/net/dwc_eth_qos.c b/drivers/net/dwc_eth_qos.c index 3cdc6f1ae9..15dae20e57 100644 --- a/drivers/net/dwc_eth_qos.c +++ b/drivers/net/dwc_eth_qos.c @@ -42,6 +42,10 @@ #include #include #include +#ifdef CONFIG_ARCH_IMX8M +#include +#include +#endif /* Core registers */ @@ -867,11 +871,19 @@ static ulong eqos_get_tick_clk_rate_stm32(struct udevice *dev) #endif } -static ulong eqos_get_tick_clk_rate_imx(struct udevice *dev) +__weak u32 imx_get_eqos_csr_clk(void) { - /* TODO: retrieve from CSR clock */ return 100 * 1000000; } +__weak int imx_eqos_txclk_set_rate(unsigned long rate) +{ + return 0; +} + +static ulong eqos_get_tick_clk_rate_imx(struct udevice *dev) +{ + return imx_get_eqos_csr_clk(); +} static int eqos_calibrate_pads_stm32(struct udevice *dev) { @@ -996,6 +1008,33 @@ static int eqos_set_tx_clk_speed_stm32(struct udevice *dev) static int eqos_set_tx_clk_speed_imx(struct udevice *dev) { + struct eqos_priv *eqos = dev_get_priv(dev); + ulong rate; + int ret; + + debug("%s(dev=%p):\n", __func__, dev); + + switch (eqos->phy->speed) { + case SPEED_1000: + rate = 125 * 1000 * 1000; + break; + case SPEED_100: + rate = 25 * 1000 * 1000; + break; + case SPEED_10: + rate = 2.5 * 1000 * 1000; + break; + default: + pr_err("invalid speed %d", eqos->phy->speed); + return -EINVAL; + } + + ret = imx_eqos_txclk_set_rate(rate); + if (ret < 0) { + pr_err("imx (tx_clk, %lu) failed: %d", rate, ret); + return ret; + } + return 0; } @@ -1865,7 +1904,17 @@ static int eqos_probe_resources_imx(struct udevice *dev) static phy_interface_t eqos_get_interface_imx(struct udevice *dev) { - return PHY_INTERFACE_MODE_RGMII; + const char *phy_mode; + phy_interface_t interface = PHY_INTERFACE_MODE_NONE; + + debug("%s(dev=%p):\n", __func__, dev); + + phy_mode = fdt_getprop(gd->fdt_blob, dev_of_offset(dev), "phy-mode", + NULL); + if (phy_mode) + interface = phy_get_interface_by_name(phy_mode); + + return interface; } static int eqos_remove_resources_tegra186(struct udevice *dev)