From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1756756AbdGXPrP (ORCPT ); Mon, 24 Jul 2017 11:47:15 -0400 Received: from mail1.bemta5.messagelabs.com ([195.245.231.149]:16223 "EHLO mail1.bemta5.messagelabs.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756493AbdGXPmC (ORCPT ); Mon, 24 Jul 2017 11:42:02 -0400 X-Brightmail-Tracker: H4sIAAAAAAAAA+NgFrrGIsWRWlGSWpSXmKPExsVyeL7SP10P0bJ Igw1HhC3O3z3EbPHkQDujxZzzLSwWv94dYbdYNXUni8XCtiUsFpd3zWGzOLZAzGLWkf1MDpwe W1beZPLYOesuu8fOHZ+ZPBb3TWb16P9r4HFl41wmj8+b5ALYo1gz85LyKxJYM55veMdU8Jy/4 szys0wNjNt5uxi5OIQE1jJKTFhzhwXCWcAoseXDduYuRk4ONgFjiV3TNzOB2CwCKhLtuxaygt jCAi4S1xp+M4I0iAi8Z5T4MHsXWBGzgKLEqufnwZp5BQQlTs58wgIRl5A4+OIFVNxNYt3He2w gtpCAjMTkJZOBejk4JATkJc4dKAIJSwjESWxa+4J5AiPvLCSTZiGZtICRaRWjRnFqUVlqka6h mV5SUWZ6RkluYmaOrqGBqV5uanFxYnpqTmJSsV5yfu4mRmAYMwDBDsbzpz0PMUpyMCmJ8goxl UUK8SXlp1RmJBZnxBeV5qQWH2KU4eBQkuAVEwHKCRalpqdWpGXmACMKJi3BwaMkwisEkuYtLk jMLc5Mh0idYtTlmPJ/zRcmIZa8/LxUKXHeXmGgIgGQoozSPLgRsOi+xCgrJczLCHSUEE9BalF uZgmq/CtGcQ5GJWFeOZApPJl5JXCbXgEdwQR0xJwZpSBHlCQipKQaGPk9ksNXvdBsWhwieo05 QGFV+U5O2QMlcvsXRkq8C6uy/aDLp2lWcXJ36A0+ka/7WU63pD7lk+PcFa3d+fFS0+yrelaFX 0SbeEojiiy4RGPTA00FwmSWMp8+prSvat8GwfN5BQKVpqFnnJN9GDsNDh/5tfpwcg/f3KNVh5 znPAt5vlT7sbu1EktxRqKhFnNRcSIAjw3muekCAAA= X-Env-Sender: Egil.Hjelmeland@zenitel.com X-Msg-Ref: server-16.tower-178.messagelabs.com!1500910920!107566553!1 X-Originating-IP: [195.159.34.254] X-StarScan-Received: X-StarScan-Version: 9.4.25; banners=zenitel.com,-,- X-VirusChecked: Checked From: Egil Hjelmeland Date: Fri, 9 Jun 2017 15:18:55 +0200 Subject: [PATCH 04/13] net: dsa: lan9303: Added adjust_link() method To: , , , , , , , , CC: MIME-Version: 1.0 Content-Type: text/plain Message-ID: <2a218123dc984b93b1732d851896abb5@nooslMX1.zenitelcss.com> X-Originating-IP: [10.5.202.90] X-ClientProxiedBy: nooslMX1.zenitelcss.com (10.5.2.91) To nooslMX1.zenitelcss.com (10.5.2.91) Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org This makes the driver react to device tree "fixed-link" declaration on CPU port. - turn off autonegotiation - force speed 10 or 100 mb/s - force duplex mode Signed-off-by: Egil Hjelmeland --- drivers/net/dsa/lan9303-core.c | 33 +++++++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/drivers/net/dsa/lan9303-core.c b/drivers/net/dsa/lan9303-core.c index 0806a0684d55..be6d78f45a5f 100644 --- a/drivers/net/dsa/lan9303-core.c +++ b/drivers/net/dsa/lan9303-core.c @@ -17,6 +17,7 @@ #include #include #include +#include #include "lan9303.h" @@ -746,6 +747,37 @@ static int lan9303_phy_write(struct dsa_switch *ds, int phy, int regnum, return chip->ops->phy_write(chip, phy, regnum, val); } +static void lan9303_adjust_link(struct dsa_switch *ds, int port, + struct phy_device *phydev) +{ + struct lan9303 *chip = ds->priv; + + int ctl, res; + + ctl = lan9303_phy_read(ds, port, MII_BMCR); + + if (!phy_is_pseudo_fixed_link(phydev)) + return; + + ctl &= ~BMCR_ANENABLE; + if (phydev->speed == SPEED_100) + ctl |= BMCR_SPEED100; + + if (phydev->duplex == DUPLEX_FULL) + ctl |= BMCR_FULLDPLX; + + res = lan9303_phy_write(ds, port, MII_BMCR, ctl); + + if (port == chip->phy_addr_sel_strap) { + /* Virtual Phy: Remove Turbo 200Mbit mode */ + lan9303_read(chip->regmap, LAN9303_VIRT_SPECIAL_CTRL, &ctl); + + ctl &= ~(1 << 10); // TURBO BIT + res = regmap_write(chip->regmap, + LAN9303_VIRT_SPECIAL_CTRL, ctl); + } +} + static int lan9303_port_enable(struct dsa_switch *ds, int port, struct phy_device *phy) { @@ -789,6 +821,7 @@ static struct dsa_switch_ops lan9303_switch_ops = { .get_strings = lan9303_get_strings, .phy_read = lan9303_phy_read, .phy_write = lan9303_phy_write, + .adjust_link = lan9303_adjust_link, .get_ethtool_stats = lan9303_get_ethtool_stats, .get_sset_count = lan9303_get_sset_count, .port_enable = lan9303_port_enable, -- 2.11.0 DISCLAIMER: This e-mail may contain confidential and privileged material for the sole use of the intended recipient. Any review, use, distribution or disclosure by others is strictly prohibited. If you are not the intended recipient (or authorized to receive for the recipient), please contact the sender by reply e-mail and delete all copies of this message.