Received: by 2002:ac0:a5a7:0:0:0:0:0 with SMTP id m36-v6csp3913808imm; Mon, 30 Jul 2018 05:47:56 -0700 (PDT) X-Google-Smtp-Source: AAOMgpch1ICF+jXmBXYqLSB4O2svUnIhCeTcE6cWnJ0RGr0KwRWMUXx6WVej8CvZ/9jgYSBqddlt X-Received: by 2002:a62:5d55:: with SMTP id r82-v6mr17870585pfb.150.1532954876492; Mon, 30 Jul 2018 05:47:56 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1532954876; cv=none; d=google.com; s=arc-20160816; b=F4EuYvD8pVGKbrnlr1aceBhMtVcIny3JBtXbCcCHnGA40ndxbjTRguggielAYz611h RZJFAVEiTh8+CtS12RWhMg32bhuXVORb99pHr2JzR1phozd+jJPyB5kIvQF2XcfLr/5f 6F8LoQ8qN1wy5pSw1aRq+Z/sk052wgDokAsC5zqpMxA0cTQhBHB5VaRJ+KNnC3MQRNzj 85DmEnBLSEu6pYuj9zejoSz8jyKfHhqCWzVsxw2a/V6IOjIJd1GMlv0J91by+UKVK/2w IloJNbHsan2evGulTI9Y5k29j1JnRYJLA4txs3RCz3yF6yiqoKEHkXkM43Vc+bgoyAZT wEvw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:message-id:date:subject:cc:to:from :arc-authentication-results; bh=4LtMHs5cS9QeiF5wXNFmomXUCbQl14hld46Igd/4euI=; b=Xoy1y32Hs79RVAGXlqBcLr/R1B933dtXSkxg/PNhjUT2Jxex9H14JTg/h8VHrDwtHw Gr3rkck7fyYJTLaJrCV31NP5kOySyJpPEqyxljZHK0xX8WSPBgKnQp3Sp4IvTaBkwVPO 1//BSLCl8clKnIl9uWCwmwLpG586i2hEdIP5977suye7EQbw34RMcq9q/g3+w/ycu+q/ cEAhKyYkIRdZyJ/aAJY4UjHevbkHzgAfoU+WONNz+/R3YQtbNh+JPGJCRqJQZtrmbgAv pDdXswIGzDvzQQrkvo2phzVktB0aILvXlNwrRRWkYxNuMUPqyCq4TqJzkWa1Ab4hL0mg /IBw== ARC-Authentication-Results: i=1; mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id 193-v6si11200060pgh.407.2018.07.30.05.47.42; Mon, 30 Jul 2018 05:47:56 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1729578AbeG3OTO (ORCPT + 99 others); Mon, 30 Jul 2018 10:19:14 -0400 Received: from mail.bootlin.com ([62.4.15.54]:58374 "EHLO mail.bootlin.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728798AbeG3OTO (ORCPT ); Mon, 30 Jul 2018 10:19:14 -0400 Received: by mail.bootlin.com (Postfix, from userid 110) id 4D37D207F4; Mon, 30 Jul 2018 14:44:23 +0200 (CEST) X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on mail.bootlin.com X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=ALL_TRUSTED,SHORTCIRCUIT shortcircuit=ham autolearn=disabled version=3.4.0 Received: from localhost.localdomain (AAubervilliers-681-1-89-120.w90-88.abo.wanadoo.fr [90.88.30.120]) by mail.bootlin.com (Postfix) with ESMTPSA id E0D1420765; Mon, 30 Jul 2018 14:44:22 +0200 (CEST) From: Quentin Schulz To: alexandre.belloni@bootlin.com, ralf@linux-mips.org, paul.burton@mips.com, jhogan@kernel.org, robh+dt@kernel.org, mark.rutland@arm.com, davem@davemloft.net Cc: kishon@ti.com, andrew@lunn.ch, f.fainelli@gmail.com, linux-mips@linux-mips.org, devicetree@vger.kernel.org, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, allan.nielsen@microsemi.com, thomas.petazzoni@bootlin.com, Quentin Schulz Subject: [PATCH 00/10] mscc: ocelot: add support for SerDes muxing configuration Date: Mon, 30 Jul 2018 14:43:45 +0200 Message-Id: X-Mailer: git-send-email 2.17.1 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org The Ocelot switch has currently a hardcoded SerDes muxing that suits only a particular use case. Any other board setup will fail to work. To prepare for upcoming boards' support that do not have the same muxing, create a PHY driver that will handle all possible cases. A SerDes can work in SGMII, QSGMII or PCIe and is also muxed to use a given port depending on the selected mode or board design. The SerDes configuration is in the middle of an address space (HSIO) that is used to configure some parts in the MAC controller driver, that is why we need to use a syscon so that we can write to the same address space from different drivers safely using regmap. Patches from generic PHY and net should be safe to be merged separately. I suggest patches 1 to 5 and 10 go through net while the others (6 to 9) go through the generic PHY subsystem. Thanks, Quentin Quentin Schulz (10): MIPS: mscc: ocelot: make HSIO registers address range a syscon dt-bindings: net: ocelot: remove hsio from the list of register address spaces net: mscc: ocelot: get HSIO regmap from syscon net: mscc: ocelot: move the HSIO header to include/soc net: mscc: ocelot: simplify register access for PLL5 configuration phy: add QSGMII and PCIE modes dt-bindings: phy: add DT binding for Microsemi Ocelot SerDes muxing MIPS: mscc: ocelot: add SerDes mux DT node phy: add driver for Microsemi Ocelot SerDes muxing net: mscc: ocelot: make use of SerDes PHYs for handling their configuration Documentation/devicetree/bindings/mips/mscc.txt | 16 +- Documentation/devicetree/bindings/net/mscc-ocelot.txt | 9 +- Documentation/devicetree/bindings/phy/phy-ocelot-serdes.txt | 42 +- arch/mips/boot/dts/mscc/ocelot.dtsi | 19 +- drivers/net/ethernet/mscc/Kconfig | 2 +- drivers/net/ethernet/mscc/ocelot.c | 16 +- drivers/net/ethernet/mscc/ocelot.h | 79 +- drivers/net/ethernet/mscc/ocelot_board.c | 54 +- drivers/net/ethernet/mscc/ocelot_hsio.h | 785 +------ drivers/net/ethernet/mscc/ocelot_regs.c | 93 +- drivers/phy/Kconfig | 1 +- drivers/phy/Makefile | 1 +- drivers/phy/mscc/Kconfig | 11 +- drivers/phy/mscc/Makefile | 5 +- drivers/phy/mscc/phy-ocelot-serdes.c | 314 +++- include/linux/phy/phy.h | 2 +- include/soc/mscc/ocelot_hsio.h | 859 +++++++- 17 files changed, 1343 insertions(+), 965 deletions(-) create mode 100644 Documentation/devicetree/bindings/phy/phy-ocelot-serdes.txt delete mode 100644 drivers/net/ethernet/mscc/ocelot_hsio.h create mode 100644 drivers/phy/mscc/Kconfig create mode 100644 drivers/phy/mscc/Makefile create mode 100644 drivers/phy/mscc/phy-ocelot-serdes.c create mode 100644 include/soc/mscc/ocelot_hsio.h base-commit: d6e74c71c4de5222f147b64bf747e8a3c523c690 -- git-series 0.9.1