From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751760AbcFFMlx (ORCPT ); Mon, 6 Jun 2016 08:41:53 -0400 Received: from mail-pf0-f182.google.com ([209.85.192.182]:35564 "EHLO mail-pf0-f182.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750884AbcFFMlv (ORCPT ); Mon, 6 Jun 2016 08:41:51 -0400 From: Pramod Kumar To: Rob Herring , Pawel Moll , Mark Rutland , Ian Campbell , Kumar Gala , Catalin Marinas , Will Deacon , Kishon Vijay Abraham I , "David S. Miller" Cc: devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, bcm-kernel-feedback-list@broadcom.com, linux-kernel@vger.kernel.org, netdev@vger.kernel.org, Pramod Kumar Subject: [PATCH v4 0/7] Add MDIO bus multiplexer support for iProc SoCs Date: Mon, 6 Jun 2016 18:11:33 +0530 Message-Id: <1465216900-11755-1-git-send-email-pramod.kumar@broadcom.com> X-Mailer: git-send-email 1.9.1 Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Broadcom iProc based SoCs use a MDIO bus multiplexer where child buses could be internal as well external to SoCs. These buses could supports MDIO transaction compatible to C-22/C-45. Broadcom MDIO bus multiplexer is an integrated multiplexer where child bus selection and mdio transaction logic lies inside multiplexer itself. To accommodate this multiplexer in existing mux framework below changes were required- 1. Passed MDIO parent bus via mdio_mux_init to MDIO mux framework. This patch set includes MDIO bus multiplexer driver along with above framework change. It includes one external bus node having Ethernet PHY attached and two internal bus node holding PCIe PHYs. This patch series is based on v4.7-rc1 and is available from github- repo: https://github.com/Broadcom/arm64-linux.git branch:mdio-mux-v4 -Changes from v3: - Unregister and free the parent MDIO bus. - rebased on net-next/master branch. Reason for resend: -Rebased on v4.7-rc1 Changes from v2: -Addressed Rob's comments in this patch regarding typo/grammers. -Addressed David's comments regarding local variables order. -Removed property "mdio-integrated-mux" and used mdiobus_register() in place of of_mdiobus_regsiter(). -removed usage of IS_ERR_OR_NULL to IS_ERR in PCIe PHY driver. Changes from v1: - stop using "brcm,is_c45" from bus node as suggested by Andrew. MDIO PHY driver will logically OR MII_ADDR_C45 into the address when issues any C45 MDIO read/write transaction. Pramod Kumar (7): mdio: mux: Enhanced MDIO mux framework for integrated multiplexers binding: Make "mdio-parent-bus" property from mandatory to optional binding: mdio-mux: Add DT binding doc for Broadcom MDIO bus multiplexer dt: mdio-mux: Add mdio multiplexer driver node net: mdio-mux: Add MDIO mux driver for iProc SoCs binding: PHY: Binding doc for NS2 PCIe PHYs. phy: Add Northstar2 PCI Phy support .../bindings/net/brcm,mdio-mux-iproc.txt | 59 +++++ Documentation/devicetree/bindings/net/mdio-mux.txt | 3 +- .../bindings/phy/brcm,mdio-mux-bus-pci.txt | 27 +++ arch/arm64/boot/dts/broadcom/ns2-svk.dts | 12 + arch/arm64/boot/dts/broadcom/ns2.dtsi | 31 +++ drivers/net/phy/Kconfig | 11 + drivers/net/phy/Makefile | 1 + drivers/net/phy/mdio-mux-bcm-iproc.c | 248 +++++++++++++++++++++ drivers/net/phy/mdio-mux-gpio.c | 2 +- drivers/net/phy/mdio-mux-mmioreg.c | 2 +- drivers/net/phy/mdio-mux.c | 28 ++- drivers/phy/Kconfig | 8 + drivers/phy/Makefile | 2 +- drivers/phy/phy-bcm-ns2-pcie.c | 115 ++++++++++ include/linux/mdio-mux.h | 4 +- 15 files changed, 538 insertions(+), 15 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/brcm,mdio-mux-iproc.txt create mode 100644 Documentation/devicetree/bindings/phy/brcm,mdio-mux-bus-pci.txt create mode 100644 drivers/net/phy/mdio-mux-bcm-iproc.c create mode 100644 drivers/phy/phy-bcm-ns2-pcie.c -- 1.9.1