From patchwork Mon Aug 10 22:06:41 2020 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: =?utf-8?q?Marek_Beh=C3=BAn?= X-Patchwork-Id: 262614 Return-Path: X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on aws-us-west-2-korg-lkml-1.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-7.1 required=3.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID, DKIM_VALID_AU, HEADER_FROM_DIFFERENT_DOMAINS, MAILING_LIST_MULTI, SPF_HELO_NONE, SPF_PASS, USER_AGENT_GIT autolearn=no autolearn_force=no version=3.4.0 Received: from mail.kernel.org (mail.kernel.org [198.145.29.99]) by smtp.lore.kernel.org (Postfix) with ESMTP id C0FECC433E0 for ; Mon, 10 Aug 2020 22:06:54 +0000 (UTC) Received: from vger.kernel.org (vger.kernel.org [23.128.96.18]) by mail.kernel.org (Postfix) with ESMTP id 916B92073E for ; Mon, 10 Aug 2020 22:06:54 +0000 (UTC) Authentication-Results: mail.kernel.org; dkim=pass (1024-bit key) header.d=nic.cz header.i=@nic.cz header.b="VD8qj+Or" Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726918AbgHJWGx (ORCPT ); Mon, 10 Aug 2020 18:06:53 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:41074 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726766AbgHJWGt (ORCPT ); Mon, 10 Aug 2020 18:06:49 -0400 Received: from mail.nic.cz (lists.nic.cz [IPv6:2001:1488:800:400::400]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 73552C06174A for ; Mon, 10 Aug 2020 15:06:49 -0700 (PDT) Received: from dellmb.labs.office.nic.cz (unknown [IPv6:2001:1488:fffe:6:cac7:3539:7f1f:463]) by mail.nic.cz (Postfix) with ESMTP id 79A5C140A11; Tue, 11 Aug 2020 00:06:46 +0200 (CEST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=nic.cz; s=default; t=1597097206; bh=tf2BkipgAegb0Bz0MTZMSQbkd/revEZbs1jACrnaBvs=; h=From:To:Date; b=VD8qj+OrhNFPJhRLVxkrxyBIM/WEHFhxVBo864tVy1ZNhzjsz10pTpXAMjBiKmMOh 2mU9tTL4/sOu3tu5ZbCMHuZfNbSPoj8ROVQRrBUbRClOBZOanHeFkksdvC8sFY45Zk C0hCMyjH+llSlX6gyt3pdD6C/ABT3njjhGomZZvU= From: =?utf-8?q?Marek_Beh=C3=BAn?= To: Russell King Cc: Andrew Lunn , Maxime Chevallier , Baruch Siach , Chris Healy , Florian Fainelli , netdev@vger.kernel.org, =?utf-8?q?Marek_Beh=C3=BAn?= Subject: [PATCH RFC russell-king 0/4] Support for RollBall 10G copper SFP modules Date: Tue, 11 Aug 2020 00:06:41 +0200 Message-Id: <20200810220645.19326-1-marek.behun@nic.cz> X-Mailer: git-send-email 2.26.2 MIME-Version: 1.0 X-Spamd-Bar: / X-Virus-Scanned: clamav-milter 0.102.2 at mail X-Virus-Status: Clean Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi Russell, this series should apply on linux-arm git repository, on branch clearfog. Some internet providers are already starting to offer 2.5G copper connectivity to their users. On Turris Omnia the SFP port is capable of 2.5G speed, so we tested some copper SFP modules. This adds support to the SFP subsystem for 10G RollBall copper modules which contain a Marvell 88X3310 PHY. By default these modules are configured in 10GKR only mode on the host interface, and also contain some bad information in EEPROM (the extended_cc byte). The PHY in these modules is also accessed via a different I2C protocol than the standard one. Patch 1 adds support for this different I2C MDIO bus. Patch 2 adds support for these modules into the SFP driver. Patch 3 adds support for chaning MACTYPE in marvell10g PHY driver so that the PHY will connect to the host interface on Turris Omnia even though it only supports SGMII/1000base-x/2500base-x modes. Patch 4 changes phylink code so that a PHY can be attached even though 802.3z mode is requested. Marek Marek BehĂșn (4): net: phy: add I2C mdio bus for RollBall compatible SFPs net: phy: sfp: add support for multigig RollBall modules net: phy: marvell10g: change MACTYPE according to phydev->interface net: phylink: don't fail attaching phy on 1000base-x/2500base-x mode drivers/net/phy/Makefile | 2 +- drivers/net/phy/marvell10g.c | 32 +++- drivers/net/phy/mdio-i2c-rollball.c | 238 ++++++++++++++++++++++++++++ drivers/net/phy/mdio-i2c.h | 1 + drivers/net/phy/phylink.c | 4 +- drivers/net/phy/sfp.c | 62 ++++++-- include/linux/sfp.h | 5 + 7 files changed, 322 insertions(+), 22 deletions(-) create mode 100644 drivers/net/phy/mdio-i2c-rollball.c