From patchwork Thu Jun 27 09:50:45 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 8bit X-Patchwork-Submitter: Miquel Raynal X-Patchwork-Id: 11019249 Return-Path: Received: from mail.wl.linuxfoundation.org (pdx-wl-mail.web.codeaurora.org [172.30.200.125]) by pdx-korg-patchwork-2.web.codeaurora.org (Postfix) with ESMTP id 73B881575 for ; Thu, 27 Jun 2019 09:51:50 +0000 (UTC) Received: from mail.wl.linuxfoundation.org (localhost [127.0.0.1]) by mail.wl.linuxfoundation.org (Postfix) with ESMTP id 6174D203B9 for ; Thu, 27 Jun 2019 09:51:50 +0000 (UTC) Received: by mail.wl.linuxfoundation.org (Postfix, from userid 486) id 5510A289F2; Thu, 27 Jun 2019 09:51:50 +0000 (UTC) X-Spam-Checker-Version: SpamAssassin 3.3.1 (2010-03-16) on pdx-wl-mail.web.codeaurora.org X-Spam-Level: X-Spam-Status: No, score=-5.2 required=2.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,MAILING_LIST_MULTI,RCVD_IN_DNSWL_MED autolearn=ham version=3.3.1 Received: from bombadil.infradead.org (bombadil.infradead.org [198.137.202.133]) (using TLSv1.2 with cipher AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.wl.linuxfoundation.org (Postfix) with ESMTPS id D352C28A00 for ; Thu, 27 Jun 2019 09:51:49 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender: Content-Transfer-Encoding:Content-Type:Cc:List-Subscribe:List-Help:List-Post: List-Archive:List-Unsubscribe:List-Id:MIME-Version:Message-Id:Date:Subject:To :From:Reply-To:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=H3Dg8QPPXg8W9MEM/dGlmZxP+pErvzOM+sUQB9zedOI=; b=QF7PlUqe2GQCfU 26zVdSu1aRYauLlNz6vLiQlXA8YYUzfpqiRubkuVJvdJgsiChYuB7R/P0K76BuoJTYHy3NaA9cBrx kaIAn7/JotVPdPRKrfibaM7B0s4EIMP0lqo2jxVQ5TasXUnaWTfQddP26BNC/mUnJldgLV1IQVJX9 TFUCr0VLP11Hhc3bGVcvTIUNO9UMZb5VqwyrDDnox6KcIxZ7uFIWNryIWDweNtLHb4wR3z/qNGzp5 5Gwi3rrVBAvEF9uxPg7Y8VcFyA5wxLo+Iw6GMRiOU2Pt/SYJVXg/mVoIvEZCAkR8jSzaOKzabt37L PFsRJqHcqnpY8REO6Phw==; Received: from localhost ([127.0.0.1] helo=bombadil.infradead.org) by bombadil.infradead.org with esmtp (Exim 4.92 #3 (Red Hat Linux)) id 1hgR49-0003Hr-PW; Thu, 27 Jun 2019 09:51:41 +0000 Received: from relay1-d.mail.gandi.net ([217.70.183.193]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hgR3p-000330-TM for linux-arm-kernel@lists.infradead.org; Thu, 27 Jun 2019 09:51:24 +0000 X-Originating-IP: 86.250.200.211 Received: from localhost.localdomain (lfbn-1-17395-211.w86-250.abo.wanadoo.fr [86.250.200.211]) (Authenticated sender: miquel.raynal@bootlin.com) by relay1-d.mail.gandi.net (Postfix) with ESMTPSA id 341AA240002; Thu, 27 Jun 2019 09:51:06 +0000 (UTC) From: Miquel Raynal To: Gregory Clement , Jason Cooper , Andrew Lunn , Sebastian Hesselbarth , Kishon Vijay Abraham I Subject: [PATCH v2 00/19] Enhance CP110 COMPHY support Date: Thu, 27 Jun 2019 11:50:45 +0200 Message-Id: <20190627095104.22529-1-miquel.raynal@bootlin.com> X-Mailer: git-send-email 2.19.1 MIME-Version: 1.0 X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190627_025122_257133_DED9550E X-CRM114-Status: GOOD ( 14.98 ) X-BeenThere: linux-arm-kernel@lists.infradead.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Cc: devicetree@vger.kernel.org, Antoine Tenart , Grzegorz Jaszczyk , Russell King , Maxime Chevallier , Nadav Haklai , Rob Herring , Thomas Petazzoni , Miquel Raynal , linux-arm-kernel@lists.infradead.org Sender: "linux-arm-kernel" Errors-To: linux-arm-kernel-bounces+patchwork-linux-arm=patchwork.kernel.org@lists.infradead.org X-Virus-Scanned: ClamAV using ClamSMTP Armada CP110 have a COMPHY IP which supports configuring SERDES lanes in one mode, either: - SATA - USB3 host - PCIe (several width) - Ethernet (several modes) As of today, only a few Ethernet modes are supported and the code is embedded in the Linux driver. A more complete COMPHY driver that can be used by both Linux and U-Boot is embedded in the firmware and can be run through SMC calls. First the current COMPHY driver is updated to use SMC calls but fallbacks to the already existing functions if the firmware is not up-to-date. Then, more Ethernet modes are added (through SMC calls only). SATA, USB3H and PCIe modes are also supported one by one. There is one subtle difference with the PCIe functions: we must tell the firmware the number of lanes to configure (x1, x2 or x4). This parameter depends on the number of entries in the 'phys' property describing the PCIe PHY. We use the "submode" parameter of the generic PHY API to carry this value. The Armada-8k PCIe driver has been updated to follow this idea and this change has been merged already: http://patchwork.ozlabs.org/patch/1072763/ Thanks, Miquèl Changes since v1: ----------------- - All modes report their errors to the user. - If the firmware is too old, advise the user to update it. - Credit Grzegorz for his work. - Fix wrong speed in Ethernet modes. - Add COMPHY necessary clocks. - Update bindings. - The security flaw related to the fact that we must give the CP address to the firmware has been mitigated by the addition of extra checks in ATF recently. Grzegorz Jaszczyk (5): phy: mvebu-cp110-comphy: Add SMC call support phy: mvebu-cp110-comphy: Add RXAUI support phy: mvebu-cp110-comphy: Add USB3 host/device support phy: mvebu-cp110-comphy: Add SATA support phy: mvebu-cp110-comphy: Add PCIe support Miquel Raynal (14): phy: mvebu-cp110-comphy: Add clocks support phy: mvebu-cp110-comphy: Explicitly initialize the lane submode phy: mvebu-cp110-comphy: List already supported Ethernet modes phy: mvebu-cp110-comphy: Rename the macro handling only Ethernet modes phy: mvebu-cp110-comphy: Allow non-Ethernet modes to be configured phy: mvebu-cp110-comphy: Cosmetic change in a helper phy: mvebu-cp110-comphy: Update comment about powering off all lanes at boot dt-bindings: phy: Add Marvell COMPHY clocks dt-bindings: pci: add PHY properties to Armada 7K/8K controller bindings arm64: dts: marvell: Add CP110 COMPHY clocks arm64: dts: marvell: Add 7k/8k per-port PHYs in SATA nodes arm64: dts: marvell: Add 7k/8k PHYs in USB3 nodes arm64: dts: marvell: Add 7k/8k PHYs in PCIe nodes arm64: dts: marvell: Convert 7k/8k usb-phy properties to phy-supply .../devicetree/bindings/pci/pci-armada8k.txt | 4 + .../bindings/phy/phy-mvebu-comphy.txt | 10 + .../arm64/boot/dts/marvell/armada-7040-db.dts | 37 +- .../marvell/armada-8040-clearfog-gt-8k.dts | 22 +- .../arm64/boot/dts/marvell/armada-8040-db.dts | 43 +- .../boot/dts/marvell/armada-8040-mcbin.dtsi | 38 +- arch/arm64/boot/dts/marvell/armada-cp110.dtsi | 13 + drivers/phy/marvell/phy-mvebu-cp110-comphy.c | 409 +++++++++++++++--- 8 files changed, 494 insertions(+), 82 deletions(-)