From patchwork Sun Nov 5 23:19:05 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Linus Walleij X-Patchwork-Id: 117995 Delivered-To: patch@linaro.org Received: by 10.140.22.164 with SMTP id 33csp2166719qgn; Sun, 5 Nov 2017 15:21:25 -0800 (PST) X-Google-Smtp-Source: ABhQp+QQ4fuEzDNDU/wGTJPQEf6X003HL08WRYhM5fVU/CyM800B1+JK1WTWGVG594MFN4QKw7j7 X-Received: by 10.98.103.206 with SMTP id t75mr14672503pfj.173.1509924085607; Sun, 05 Nov 2017 15:21:25 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1509924085; cv=none; d=google.com; s=arc-20160816; b=x73QhMj+rTZ+WNy2hYnB4vkNRnnhlrcbEoh/de4p6f/8gwnlOswxV3bXsjjxTIaL5z HnzWJ8+cfkGxLbSlDXnP5WB6fR6FD/Ekt3Isahlgf2VY1tFj0Yg935JWzvxahhhsN8R8 NbUL7x9Vao1pNmTQuMLyiBoE9zgzgUcoHhkZPZkBd1IHAiXukv0yRi4qTJAdxS/XEoMc xWycFZTGj3kR+Dz2rxcU06M7HD2fH0Wg1JvI/43SbvgO7AJ6lGz2l3jT4AneNdDqFYCf ZmEqfGNtn0m+/U+TfAeR4ZWpMlAw/AtZ04b/sWjDU4e5KNc0cXT1Ne1FVR8naujHu1Wt WA6Q== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :message-id:date:subject:cc:to:from:dkim-signature :arc-authentication-results; bh=43G95kSMdNCcsOGb1EJl84qrRhlbLxAph1nKb1ssSCY=; b=ZH41rm8CjgrMFexMXuNzgkhBc/JzG8GDi9QTT3oNdfxtp4jsuFjhIa0CMjLSQlf+wc 2QitlFrtV9rn+tfNsbzrCCyM6L2GoZSKrqAB3io+8q8W54Rkg2Y9UhSBP/mqkIgV15lr VO9iq+S6pzrJ5A0YZoX8+XGYTRGKapVGxmS7pX2JQqjPY6OEqkv0kNGTlxQ9L6LaTyiI O6c6PXrl9iaz6itAIDl2/vmWtDPWh4ufP2Y+4xaSB/YnDj7/+epngIhewHguwgSV1CZv T20QieHBlvoT2ngyZjJJileenn0XjfavJZmo8kYuppqEsC/ciErdFeNqZIlIcgGIxYcl K6mA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bZle3QDX; spf=pass (google.com: best guess record for domain of netdev-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id i15si10544979pgc.477.2017.11.05.15.21.25; Sun, 05 Nov 2017 15:21:25 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of netdev-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@linaro.org header.s=google header.b=bZle3QDX; spf=pass (google.com: best guess record for domain of netdev-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=netdev-owner@vger.kernel.org; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=linaro.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1750848AbdKEXVU (ORCPT + 7 others); Sun, 5 Nov 2017 18:21:20 -0500 Received: from mail-lf0-f43.google.com ([209.85.215.43]:49213 "EHLO mail-lf0-f43.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750750AbdKEXVT (ORCPT ); Sun, 5 Nov 2017 18:21:19 -0500 Received: by mail-lf0-f43.google.com with SMTP id w21so8612607lfc.6 for ; Sun, 05 Nov 2017 15:21:18 -0800 (PST) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=linaro.org; s=google; h=from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=43G95kSMdNCcsOGb1EJl84qrRhlbLxAph1nKb1ssSCY=; b=bZle3QDXZj53C3sXNv9BX8cIAy/NV0Tl+fiDGrMPEb0Ow4Rah8Vd/R3wm2pLB0A3Ii GOdQcXhNCkbhWjDq7qB/m1oAph4LJvVdQ4iPJUieErossxXtFuiMeQre9t4lHaoR9Gmb CTJPaqZx7VVy0Ss5yMcJedjG5JcZk0o7qEKp0= X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:from:to:cc:subject:date:message-id:mime-version :content-transfer-encoding; bh=43G95kSMdNCcsOGb1EJl84qrRhlbLxAph1nKb1ssSCY=; b=EigUg7YVn03T5YgrLQVSFmQ6bkD+Lp9BVDYNHZFfK42rWv5tqOmfH+Zb7TCBes7Lhs WIoe767PVMRrTzNyJlnZiacfJKNbYeh4vp2Cr692wzG5KAKEY1EA4VfQPvwhEd7BI3dn YmTAjn/1ERrTII/LcFaqHKUIQgjhSaq5oaP21bqbbX2Ug7M04qYJoYY141rPRek3r+bI 0Exo7dkaSbf5R0YtYkgquXUZXXywiBGBXTiTRMPsW4vteLjAmtk5wG33F8J/Id7hppgd X8JavO+Iap7yUr/u8OeYHNF4W4qdhJug6xSblOcsR4fh9dsWAuvmCAyc4PKjV6GAQ3l+ 135A== X-Gm-Message-State: AJaThX5Hau9YRgKEhBFA9P5eUzkcPJL+cvk9DkdjQFKyCtGpEs/P3VLV Yc8fTf7FhtXEyniU9NqUm9E58g== X-Received: by 10.25.20.29 with SMTP id k29mr4758857lfi.111.1509924077395; Sun, 05 Nov 2017 15:21:17 -0800 (PST) Received: from localhost.localdomain (c-567171d5.014-348-6c756e10.cust.bredbandsbolaget.se. [213.113.113.86]) by smtp.gmail.com with ESMTPSA id v29sm2357845ljv.27.2017.11.05.15.21.14 (version=TLS1_2 cipher=ECDHE-RSA-CHACHA20-POLY1305 bits=256/256); Sun, 05 Nov 2017 15:21:15 -0800 (PST) From: Linus Walleij To: Andrew Lunn , Vivien Didelot , Florian Fainelli Cc: netdev@vger.kernel.org, Linus Walleij Subject: [PATCH 0/4] RFC: Realtek 83xx SMI driver core Date: Mon, 6 Nov 2017 00:19:05 +0100 Message-Id: <20171105231909.5599-1-linus.walleij@linaro.org> X-Mailer: git-send-email 2.13.6 MIME-Version: 1.0 Sender: netdev-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: netdev@vger.kernel.org Hi folks, I'm working a bit on this. Since DSA is big, complex and hard for a novice I just wanted to throw what I have in my tree out there so you can take a look at how I hacked this up and give me some help how to continue. I am running it for trials on the D-Link DIR-685 and it looks fun, but my ethernet driver for Gemini is not yet working so I cannot really do proper testing. I'll get there I guess. Example from dmesg: realtek-smi 0.switch: deasserted RESET realtek-smi 0.switch: found an RTL8366RB switch DSA: switch 0 0 parsed DSA: tree 0 parsed realtek-smi 0.switch: RTL5937 ver 3 chip found realtek-smi 0.switch: active low/falling IRQ realtek-smi 0.switch: set MAC: CE:32:3B:FB:58:13 libphy: dsa slave smi: probed RTL8366RB Gigabit Ethernet dsa-0.0:00: attached PHY driver [RTL8366RB Gigabit Ethernet] (mii_bus:phy_addr=dsa-0.0:00, irq=37) RTL8366RB Gigabit Ethernet dsa-0.0:01: attached PHY driver [RTL8366RB Gigabit Ethernet] (mii_bus:phy_addr=dsa-0.0:01, irq=38) RTL8366RB Gigabit Ethernet dsa-0.0:02: attached PHY driver [RTL8366RB Gigabit Ethernet] (mii_bus:phy_addr=dsa-0.0:02, irq=39) RTL8366RB Gigabit Ethernet dsa-0.0:03: attached PHY driver [RTL8366RB Gigabit Ethernet] (mii_bus:phy_addr=dsa-0.0:03, irq=40) RTL8366RB Gigabit Ethernet dsa-0.0:04: attached PHY driver [RTL8366RB Gigabit Ethernet] (mii_bus:phy_addr=dsa-0.0:04, irq=41) realtek-smi 0.switch: adjust link on CPU port gmac-gemini 60000000.ethernet eth0: connected to PHY "fixed-0:00" Generic PHY fixed-0:00: attached PHY driver [Generic PHY] (mii_bus:phy_addr=fixed-0:00, irq=POLL) phy_id=0x00000000, phy_mode=rgmii gmac-gemini 60000000.ethernet: set GMAC0 and GMAC1 to MII/RGMII mode gmac-gemini 60000000.ethernet eth0: connect to RGMII gmac-gemini 60000000.ethernet eth0: opened IPv6: ADDRCONF(NETDEV_UP): eth0: link is not ready IPv6: ADDRCONF(NETDEV_CHANGE): eth0: link becomes ready realtek-smi 0.switch: enable port 0 IPv6: ADDRCONF(NETDEV_UP): lan0: link is not ready realtek-smi 0.switch lan0: Link is Down realtek-smi 0.switch lan0: Link is Up - 1Gbps/Full - flow control rx/tx IPv6: ADDRCONF(NETDEV_CHANGE): lan0: link becomes ready cat /proc/interrupts 36: 6 FTGPIO010 15 Level RTL8366RB 37: 3 RTL8366RB 0 Edge dsa-0.0:00 38: 0 RTL8366RB 1 Edge dsa-0.0:01 39: 2 RTL8366RB 2 Edge dsa-0.0:02 40: 2 RTL8366RB 3 Edge dsa-0.0:03 41: 0 RTL8366RB 4 Edge dsa-0.0:04 Plugged some cables in/out. Hooray, no polling needed. Linus Walleij (4): RFC: net/dsa: Allow DSA PHYs to define link IRQs RFC: net: phy: realtek: Support RTL8366RB variant RFC: net: dsa: Add bindings for Realtek SMI DSAs RFC: net: dsa: realtek-smi: Add Realtek SMI driver .../devicetree/bindings/net/dsa/realtek-smi.txt | 104 ++ drivers/net/dsa/Kconfig | 12 + drivers/net/dsa/Makefile | 2 + drivers/net/dsa/realtek-smi.c | 436 ++++++++ drivers/net/dsa/realtek-smi.h | 145 +++ drivers/net/dsa/rtl8366.c | 493 +++++++++ drivers/net/dsa/rtl8366rb.c | 1103 ++++++++++++++++++++ drivers/net/phy/realtek.c | 32 + net/dsa/slave.c | 8 + 9 files changed, 2335 insertions(+) create mode 100644 Documentation/devicetree/bindings/net/dsa/realtek-smi.txt create mode 100644 drivers/net/dsa/realtek-smi.c create mode 100644 drivers/net/dsa/realtek-smi.h create mode 100644 drivers/net/dsa/rtl8366.c create mode 100644 drivers/net/dsa/rtl8366rb.c -- 2.13.6