From patchwork Fri Jun 21 15:38:46 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Claudiu Manoil X-Patchwork-Id: 1120377 Return-Path: X-Original-To: incoming-dt@patchwork.ozlabs.org Delivered-To: patchwork-incoming-dt@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=none (mailfrom) smtp.mailfrom=vger.kernel.org (client-ip=209.132.180.67; helo=vger.kernel.org; envelope-from=devicetree-owner@vger.kernel.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=nxp.com Received: from vger.kernel.org (vger.kernel.org [209.132.180.67]) by ozlabs.org (Postfix) with ESMTP id 45VjXL5RMwz9sND for ; Sat, 22 Jun 2019 01:38:58 +1000 (AEST) Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726206AbfFUPi4 (ORCPT ); Fri, 21 Jun 2019 11:38:56 -0400 Received: from inva020.nxp.com ([92.121.34.13]:40082 "EHLO inva020.nxp.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726186AbfFUPi4 (ORCPT ); Fri, 21 Jun 2019 11:38:56 -0400 Received: from inva020.nxp.com (localhost [127.0.0.1]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 5A5C81A0A88; Fri, 21 Jun 2019 17:38:54 +0200 (CEST) Received: from inva024.eu-rdc02.nxp.com (inva024.eu-rdc02.nxp.com [134.27.226.22]) by inva020.eu-rdc02.nxp.com (Postfix) with ESMTP id 4CBD71A0A85; Fri, 21 Jun 2019 17:38:54 +0200 (CEST) Received: from fsr-ub1664-016.ea.freescale.net (fsr-ub1664-016.ea.freescale.net [10.171.71.216]) by inva024.eu-rdc02.nxp.com (Postfix) with ESMTP id D183820629; Fri, 21 Jun 2019 17:38:53 +0200 (CEST) From: Claudiu Manoil To: "David S . Miller" Cc: Alexandre Belloni , Rob Herring , Allan Nielsen , alexandru.marginean@nxp.com, netdev@vger.kernel.org, devicetree@vger.kernel.org, linux-arm-kernel@lists.infradead.org, linux-kernel@vger.kernel.org, UNGLinuxDriver@microchip.com Subject: [PATCH net-next 0/6] Microsemi Felix switch support Date: Fri, 21 Jun 2019 18:38:46 +0300 Message-Id: <1561131532-14860-1-git-send-email-claudiu.manoil@nxp.com> X-Mailer: git-send-email 2.7.4 X-Virus-Scanned: ClamAV using ClamSMTP Sender: devicetree-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: devicetree@vger.kernel.org This device is an ethernet switch core from Microsemi (VSC9959) integrated as PCIe endpoint into the LS1028a SoC. Though this switch core has some particularities (i.e. 6 ports, some register mapping differences), functionally this driver relies entirely on the Ocelot switch driver providing all the features, and is basically an instance of the Ocelot core driver. The first 3 patches are minor refactoring of the common Ocelot code (core driver). The rest provide the integration code of the switch as a PCIe device, the register mapping, corresponding ls1028a DT nodes (for switch ports link configuration). There are also few particularities described by individual patch messages. Claudiu Manoil (6): ocelot: Filter out ocelot SoC specific PCS config from common path ocelot: Refactor common ocelot probing code to ocelot_init ocelot: Factor out resource ioremap and regmap init common code arm64: dts: fsl: ls1028a: Add Felix switch port DT node dt-bindings: net: Add DT bindings for Microsemi Felix Switch net/mssc/ocelot: Add basic Felix switch driver .../devicetree/bindings/net/mscc-felix.txt | 77 +++ .../arm64/boot/dts/freescale/fsl-ls1028a.dtsi | 58 ++- drivers/net/ethernet/mscc/Kconfig | 8 + drivers/net/ethernet/mscc/Makefile | 9 +- drivers/net/ethernet/mscc/felix_board.c | 392 +++++++++++++++ drivers/net/ethernet/mscc/felix_regs.c | 448 ++++++++++++++++++ drivers/net/ethernet/mscc/ocelot.c | 23 +- drivers/net/ethernet/mscc/ocelot.h | 13 +- drivers/net/ethernet/mscc/ocelot_board.c | 16 +- drivers/net/ethernet/mscc/ocelot_io.c | 14 +- drivers/net/ethernet/mscc/ocelot_regs.c | 21 + 11 files changed, 1041 insertions(+), 38 deletions(-) create mode 100644 Documentation/devicetree/bindings/net/mscc-felix.txt create mode 100644 drivers/net/ethernet/mscc/felix_board.c create mode 100644 drivers/net/ethernet/mscc/felix_regs.c