From patchwork Wed Jul 12 21:31:45 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Fabio Estevam X-Patchwork-Id: 787439 X-Patchwork-Delegate: sbabic@denx.de Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Received: from lists.denx.de (dione.denx.de [81.169.180.215]) by ozlabs.org (Postfix) with ESMTP id 3x7Bx12400z9ryr for ; Thu, 13 Jul 2017 07:32:04 +1000 (AEST) Authentication-Results: ozlabs.org; dkim=fail reason="signature verification failed" (2048-bit key; unprotected) header.d=gmail.com header.i=@gmail.com header.b="QO/gyJLc"; dkim-atps=neutral Received: by lists.denx.de (Postfix, from userid 105) id 1E4CEC21D8C; Wed, 12 Jul 2017 21:31:59 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on lists.denx.de X-Spam-Level: X-Spam-Status: No, score=-0.0 required=5.0 tests=FREEMAIL_FROM, RCVD_IN_DNSWL_NONE, RCVD_IN_MSPIKE_H3, RCVD_IN_MSPIKE_WL, T_DKIM_INVALID autolearn=unavailable autolearn_force=no version=3.4.0 Received: from lists.denx.de (localhost [IPv6:::1]) by lists.denx.de (Postfix) with ESMTP id 7A3E4C21C5A; Wed, 12 Jul 2017 21:31:57 +0000 (UTC) Received: by lists.denx.de (Postfix, from userid 105) id 1FFFEC21C5A; Wed, 12 Jul 2017 21:31:56 +0000 (UTC) Received: from mail-qt0-f195.google.com (mail-qt0-f195.google.com [209.85.216.195]) by lists.denx.de (Postfix) with ESMTPS id 8E666C21C44 for ; Wed, 12 Jul 2017 21:31:55 +0000 (UTC) Received: by mail-qt0-f195.google.com with SMTP id m54so3795289qtb.1 for ; Wed, 12 Jul 2017 14:31:55 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20161025; h=from:to:cc:subject:date:message-id; bh=3UcHnri/sHu8ukFwiHTLpuBSp2kHV66jBkUgc+c9Lf8=; b=QO/gyJLcDySrLjseHGZLQF0MUCATjP9ouSZ+zpfMgY/XZO3zEwFM2a/TkXr0EpYVza hEs78fKm2N0I9raNnXkwvQSP2jv1GozG/EX2jjnIt9Ovvp7whW9tfgr4v8HwWLPP8lm4 /Rn/CnyPRcFMjz/4g60+q+I2WVkcrzEBtzLqIafyguo0KS6MLAhv3xdN+htlq95s4yPF cX2ue4r1aus3BPG75M4mIrDtEvzC4//CEfuBYWp9zIBdERfmwJ7xEjus2n/51IzeutyD ul+NaNgsGwUgRysn94QrEaYwvQ2j0ecC+Bhv1rTObA9tr1DOMpbpeakTo9ciiUqZsEAK JpgQ== 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; bh=3UcHnri/sHu8ukFwiHTLpuBSp2kHV66jBkUgc+c9Lf8=; b=OPhDRTLwWsXUZa/s6KWgYyAxD6VvlGOw9NnTdfUaQdlt11EuFxEoJEvRYqLOPh2kS1 OUff+jICI47f+xb76XYlAWeJ3tknq8fanorttU5pFOyHCX6Zs54RgF7iAUBKRKLyqg9l Rys+KvD5Z0dMTn3qfLfBbVb7Ihg/d4YvY/1Qp7OcaRVEw20g2ZFdfXUzkBwBDygAVDx1 UrUIRQy71T+cP2ISZoRGtts5Gek0ENvQu2bJvPUiMYiytrP0h6sKj0wiLFomD1wx47nM sZ7+gMf4Cji4vnORFhMVsPsCnyqJZW2S3ogc3aWeVDKbSxazk9lIn/r68t16/YC8QXOU zaLw== X-Gm-Message-State: AIVw111XX3o83nKddfg1eUSG6nLxF1zl3/n/7BoRD5fNqX1hUOPXQo89 d2482VQzOHFCzA== X-Received: by 10.200.54.108 with SMTP id n41mr859597qtb.219.1499895114233; Wed, 12 Jul 2017 14:31:54 -0700 (PDT) Received: from localhost.localdomain ([189.61.213.245]) by smtp.gmail.com with ESMTPSA id d17sm2955776qtb.47.2017.07.12.14.31.52 (version=TLS1_2 cipher=ECDHE-RSA-AES128-SHA bits=128/128); Wed, 12 Jul 2017 14:31:53 -0700 (PDT) From: Fabio Estevam To: sbabic@denx.de Date: Wed, 12 Jul 2017 18:31:45 -0300 Message-Id: <1499895105-6190-1-git-send-email-festevam@gmail.com> X-Mailer: git-send-email 2.7.4 Cc: Fabio Estevam , u-boot@lists.denx.de Subject: [U-Boot] [PATCH] mx6sabreauto: Make Ethernet functional again X-BeenThere: u-boot@lists.denx.de X-Mailman-Version: 2.1.18 Precedence: list List-Id: U-Boot discussion List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , MIME-Version: 1.0 Errors-To: u-boot-bounces@lists.denx.de Sender: "U-Boot" From: Fabio Estevam Since commit ce412b79e7255770 ("drivers: net: phy: atheros: add separate config for AR8031") Ethernet does not work on mx6sabreauto. This commit correctly assigns ar8031_config() as the configuration function for AR8031 in the same way as done in the Linux kernel. However, on mx6sabreauto design we need some additional configurations, such as enabling the 125 MHz AR8031 output and setting the TX clock delay that need to be done in the board file. This is the equivalent fix from commit 4b6035da482c ("mx6sabresd: Make Ethernet functional again"). Reported-by: Miquel RAYNAL Signed-off-by: Fabio Estevam --- board/freescale/mx6sabreauto/mx6sabreauto.c | 33 +++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/board/freescale/mx6sabreauto/mx6sabreauto.c b/board/freescale/mx6sabreauto/mx6sabreauto.c index a8fe251..a5703a3 100644 --- a/board/freescale/mx6sabreauto/mx6sabreauto.c +++ b/board/freescale/mx6sabreauto/mx6sabreauto.c @@ -433,6 +433,39 @@ u32 get_board_rev(void) return (get_cpu_rev() & ~(0xF << 8)) | rev; } +static int ar8031_phy_fixup(struct phy_device *phydev) +{ + unsigned short val; + + /* To enable AR8031 ouput a 125MHz clk from CLK_25M */ + phy_write(phydev, MDIO_DEVAD_NONE, 0xd, 0x7); + phy_write(phydev, MDIO_DEVAD_NONE, 0xe, 0x8016); + phy_write(phydev, MDIO_DEVAD_NONE, 0xd, 0x4007); + + val = phy_read(phydev, MDIO_DEVAD_NONE, 0xe); + val &= 0xffe3; + val |= 0x18; + phy_write(phydev, MDIO_DEVAD_NONE, 0xe, val); + + /* introduce tx clock delay */ + phy_write(phydev, MDIO_DEVAD_NONE, 0x1d, 0x5); + val = phy_read(phydev, MDIO_DEVAD_NONE, 0x1e); + val |= 0x0100; + phy_write(phydev, MDIO_DEVAD_NONE, 0x1e, val); + + return 0; +} + +int board_phy_config(struct phy_device *phydev) +{ + ar8031_phy_fixup(phydev); + + if (phydev->drv->config) + phydev->drv->config(phydev); + + return 0; +} + #if defined(CONFIG_VIDEO_IPUV3) static void disable_lvds(struct display_info_t const *dev) {