From patchwork Thu Aug 15 08:27:08 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serge Vailugin X-Patchwork-Id: 1147463 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=yandex.ru Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="qLzPW7CV"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.b="Ci+9qNAx"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 468KM65zYjz9sN6 for ; Thu, 15 Aug 2019 18:27:30 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:MIME-Version:Date:Message-ID:To:From: Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=3z62a6aBSOxi7l+ucfXcPf1Sac5KqnA6VKCwkz2er+4=; b=qLzPW7CVUXixRv 4hRQbYrEkxYwh65omhJzdSdY4laC/aH7U4dgGMHT528BuX9KgeZLsPg/TfqCYcwlQW6EjNJvh7Lbo m25fd+fx08gwghS/txafZ6JxvSvfMQtbs+9bpK7Zy3oIiJ6H8XdsHMr8p3HcoSzlDuz7Dvo2RPLPe dJQ3dON1iujvveooGlrukcu8seaHS5+tZbUdnYOMFErU/CO6seEYHaE9cJ2rJY6tHEfhJ2do26pph Bam+K83jVGgpnVbOCOpEdda3U8PuNAZzw4UKh6WXzPx9H00JlX9a4RfUkKz5Qby6RBrFS60q5Hhor ENmBj+uJRBPizBkowhNw==; 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 1hyB6K-0006NX-UC; Thu, 15 Aug 2019 08:27:16 +0000 Received: from forward101p.mail.yandex.net ([77.88.28.101]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hyB6H-0006N5-VH for openwrt-devel@lists.openwrt.org; Thu, 15 Aug 2019 08:27:15 +0000 Received: from mxback6j.mail.yandex.net (mxback6j.mail.yandex.net [IPv6:2a02:6b8:0:1619::10f]) by forward101p.mail.yandex.net (Yandex) with ESMTP id C013D3281B88 for ; Thu, 15 Aug 2019 11:27:09 +0300 (MSK) Received: from smtp4j.mail.yandex.net (smtp4j.mail.yandex.net [2a02:6b8:0:1619::15:6]) by mxback6j.mail.yandex.net (nwsmtp/Yandex) with ESMTP id 8gOTq4mDGf-R980NdZE; Thu, 15 Aug 2019 11:27:09 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1565857629; bh=FLKi2Ub6benYkUHRvnECs0L263jV2E0Kr9FkmQMsK9I=; h=To:Subject:From:Date:Message-ID; b=Ci+9qNAx0TPS+qDRo86qixyzv8V75UwhkdEx30yNGDbH/Y/zT0Nq5isJm1jyFYFWT Z3Uq0dkZBj8eCPEll/j2xbC6k+BpgAwXFe0V1fvFULGV/gCZz9sh5COb3YTyZ45n0W IilH1wHTYClkvYYZt6BWs2b9ZGaUy0XLuXYZbXVk= Authentication-Results: mxback6j.mail.yandex.net; dkim=pass header.i=@yandex.ru Received: by smtp4j.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id R0Io3QVDA2-R8taNB7V; Thu, 15 Aug 2019 11:27:08 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) From: Serge Vasilugin To: openwrt-devel@lists.openwrt.org Message-ID: Date: Thu, 15 Aug 2019 15:27:08 +0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190815_012714_191441_A46419F0 X-CRM114-Status: UNSURE ( 9.57 ) X-CRM114-Notice: Please train this message. X-Spam-Score: -0.9 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [77.88.28.101 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (vasilugin[at]yandex.ru) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature Subject: [OpenWrt-Devel] [PATCH 1/3] kernel: rtl8366_smi: explicitly set phy addr for switch X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org By default rtl8366_smi use phy addr 0 at mii-bus to access switch registers. This patch allow to set it explicitly in dts-file: rtl8367 { compatible = "realtek,rtl8367b"; phy_id = <29>; /* switch address at mii-bus */ realtek,extif2 = <1 0 1 1 1 1 1 1 2>; mii-bus = <&mdio>; cpu-port = <7>; } Use default 0 address if not set. Backward compatibility tested on tplink archer c2 v1 (rtl8367rb switch) Signed-off-by: Serge Vasilugin --- serge --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.c @@ -256,7 +256,7 @@ static int __rtl8366_smi_read_reg(struct rtl8366_smi *smi, u32 addr, u32 *data) int __rtl8366_mdio_read_reg(struct rtl8366_smi *smi, u32 addr, u32 *data) { - u32 phy_id = MDC_REALTEK_PHY_ADDR; + u32 phy_id = smi->phy_id; struct mii_bus *mbus = smi->ext_mbus; BUG_ON(in_interrupt()); @@ -293,7 +293,7 @@ int __rtl8366_mdio_read_reg(struct rtl8366_smi *smi, u32 addr, u32 *data) static int __rtl8366_mdio_write_reg(struct rtl8366_smi *smi, u32 addr, u32 data) { - u32 phy_id = MDC_REALTEK_PHY_ADDR; + u32 phy_id = smi->phy_id; struct mii_bus *mbus = smi->ext_mbus; BUG_ON(in_interrupt()); @@ -1558,6 +1558,12 @@ int rtl8366_smi_probe_of(struct platform_device *pdev, struct rtl8366_smi *smi) goto try_gpio; } + of_property_read_u32(np, "phy_id", &smi->phy_id); + if(smi->phy_id < 0) { + smi->phy_id = MDC_REALTEK_PHY_ADDR; + } + dev_info(&pdev->dev, + "switch phy addr=%d\n", smi->phy_id); return 0; try_gpio: --- a/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h +++ b/target/linux/generic/files/drivers/net/phy/rtl8366_smi.h @@ -64,6 +64,7 @@ struct rtl8366_smi { u8 dbg_vlan_4k_page; #endif struct mii_bus *ext_mbus; + int phy_id; }; struct rtl8366_vlan_mc { From patchwork Thu Aug 15 08:28:03 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serge Vailugin X-Patchwork-Id: 1147465 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=yandex.ru Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="EamhR4tQ"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.b="qO3Fv9VN"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 468KN827mcz9sN6 for ; Thu, 15 Aug 2019 18:28:24 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:MIME-Version:Date:Message-ID:To:From: Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=zLbOVa6roVGPWakPpL13xQTR4HOXbhPVw1fNtYpel1M=; b=EamhR4tQ7P6FhA DZviUA8+wr/qG8+AyBji6YsvaZgtHeG6OPQdbw+yjpHjjU/p0e0pxRTeyVmfjMBbO7/TL9h67luK2 BQ9eEEA7/isgCcMyAw7wIaRLQ4zDllW80KPmTlLezLuwRfctZxOJtkFstL0Dunp8+n1IDt5kzwjck 3v2K/GuXmmhB46kc1F0PCtZz++QspU7EG19cDAR2Q1OnlzVRyNLtsY4wU7ewItPeGJNd2QcTVftcJ gfg9eUMnpafSgafNtFWVrMrpCF+3+eOsH00xwI50pT+qIYGzPtTFiAk0ORZu2jJWs30QXWWGmXpK4 cMpCR2lfSuAHqCFyYjzA==; 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 1hyB7E-0006hq-Np; Thu, 15 Aug 2019 08:28:12 +0000 Received: from forward101j.mail.yandex.net ([2a02:6b8:0:801:2::101]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hyB7B-0006hV-3v for openwrt-devel@lists.openwrt.org; Thu, 15 Aug 2019 08:28:11 +0000 Received: from mxback3o.mail.yandex.net (mxback3o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::1d]) by forward101j.mail.yandex.net (Yandex) with ESMTP id 25DFC1BE0399 for ; Thu, 15 Aug 2019 11:28:05 +0300 (MSK) Received: from smtp3o.mail.yandex.net (smtp3o.mail.yandex.net [2a02:6b8:0:1a2d::27]) by mxback3o.mail.yandex.net (nwsmtp/Yandex) with ESMTP id B6VWteKm4t-S5KqDugs; Thu, 15 Aug 2019 11:28:05 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1565857685; bh=Sc7A/NhWgZASQny8O3Jt/ND2fleSnJcHyhBdKkNadL8=; h=To:Subject:From:Date:Message-ID; b=qO3Fv9VN3yuetByw/XikK0ooVfHLiHxfOQzG70fn3M33hYwWsxVV2c6H/jnIQlqBl AWhWwNDg6c1h9XR6uwn1LTk4d8xtsNS4RRCkoQDjAcAVt5tcuNzXpyseLa1cON3xce yC4R2Bv6QAuzYDuGP87+i/REmwObkcMX0RAc/no8= Authentication-Results: mxback3o.mail.yandex.net; dkim=pass header.i=@yandex.ru Received: by smtp3o.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id d6S1CoF8i4-S4aShUWD; Thu, 15 Aug 2019 11:28:04 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) From: Serge Vasilugin To: openwrt-devel@lists.openwrt.org Message-ID: <62bc7812-4435-54d7-f5f4-30f5bed6d249@yandex.ru> Date: Thu, 15 Aug 2019 15:28:03 +0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190815_012809_524682_B8527581 X-CRM114-Status: GOOD ( 10.27 ) X-Spam-Score: -0.9 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [2a02:6b8:0:801:2:0:0:101 listed in] [list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (vasilugin[at]yandex.ru) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature Subject: [OpenWrt-Devel] [PATCH 2/3] kernel: rtl8367b: add configuration for extended interface 2 X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org Both rtl8367b and rtl8367s have two extended interface rtl8367rb: 5 port + 2*RGMII/MII rtl8367s: 5 port + SGMII/HSGMI + RGMII/MII (?)rtl8367sb: 5 port + 2*RGMII/MII These interfaces correpond to EXT1 and EXT2 (ports 6 and 7 respectivly). Current driver don't support EXT2 configuration but notexisting EXT0 (port 5). This patch allow to configure EXT2 in dts-file: rtl8367rb { compatible = "realtek,rtl8367b"; cpu_port = <7>; realtek,extif2 = <1 0 1 1 1 1 1 1 2>; /* configuration for EXT2 */ mii-bus = <&mdio0>; phy_id = <29>; }; This patch is independent of the rtl8366_smi patch (set switch phy address) and may be helpful for device with rtl8367rb connected through EXT2. Signed-off-by: Serge Vasilugin --- serge --- a/target/linux/generic/files/drivers/net/phy/rtl8367b.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8367b.c @@ -137,19 +137,30 @@ #define RTL8367B_CHIP_DEBUG1_REG 0x1304 +/* extif2 setup register */ +#define RTL8367B_CHIP_DEBUG2_REG 0x13e2 + #define RTL8367B_DIS_REG 0x1305 #define RTL8367B_DIS_SKIP_MII_RXER(_x) BIT(12 + (_x)) #define RTL8367B_DIS_RGMII_SHIFT(_x) (4 * (_x)) #define RTL8367B_DIS_RGMII_MASK 0x7 -#define RTL8367B_EXT_RGMXF_REG(_x) (0x1306 + (_x)) +/* extif2 digital interface select */ +#define RTL8367B_DIS2_REG 0x13c3 +#define RTL8367B_DIS2_SKIP_MII_RXER_SHIFT 4 +#define RTL8367B_DIS2_SKIP_MII_RXER 0x10 +#define RTL8367B_DIS2_RGMII_SHIFT 0 +#define RTL8367B_DIS2_RGMII_MASK 0xF +/* extif2 delay config register == 0x13c5 */ +#define RTL8367B_EXT_RGMXF_REG(_x) ((_x) == 2 ? 0x13c5 : 0x1306 + (_x)) #define RTL8367B_EXT_RGMXF_DUMMY0_SHIFT 5 #define RTL8367B_EXT_RGMXF_DUMMY0_MASK 0x7ff #define RTL8367B_EXT_RGMXF_TXDELAY_SHIFT 3 #define RTL8367B_EXT_RGMXF_TXDELAY_MASK 1 #define RTL8367B_EXT_RGMXF_RXDELAY_MASK 0x7 -#define RTL8367B_DI_FORCE_REG(_x) (0x1310 + (_x)) +/* extif2 digital interface force register == 0x13c4 */ +#define RTL8367B_DI_FORCE_REG(_x) ((_x) == 2 ? 0x13c4 : 0x1310 + (_x)) #define RTL8367B_DI_FORCE_MODE BIT(12) #define RTL8367B_DI_FORCE_NWAY BIT(7) #define RTL8367B_DI_FORCE_TXPAUSE BIT(6) @@ -754,8 +844,9 @@ static int rtl8367b_extif_set_mode(struc switch (mode) { case RTL8367_EXTIF_MODE_RGMII: case RTL8367_EXTIF_MODE_RGMII_33V: - REG_WR(smi, RTL8367B_CHIP_DEBUG0_REG, 0x0367); + REG_WR(smi, RTL8367B_CHIP_DEBUG0_REG, 0x0767); REG_WR(smi, RTL8367B_CHIP_DEBUG1_REG, 0x7777); + REG_WR(smi, RTL8367B_CHIP_DEBUG2_REG, 0x01fd); break; case RTL8367_EXTIF_MODE_TMII_MAC: @@ -785,9 +876,14 @@ static int rtl8367b_extif_set_mode(struc return -EINVAL; } - REG_RMW(smi, RTL8367B_DIS_REG, - RTL8367B_DIS_RGMII_MASK << RTL8367B_DIS_RGMII_SHIFT(id), - mode << RTL8367B_DIS_RGMII_SHIFT(id)); + if(id < 2) + REG_RMW(smi, RTL8367B_DIS_REG, + RTL8367B_DIS_RGMII_MASK << RTL8367B_DIS_RGMII_SHIFT(id), + mode << RTL8367B_DIS_RGMII_SHIFT(id)); + else + REG_RMW(smi, RTL8367B_DIS2_REG, + RTL8367B_DIS2_RGMII_MASK << RTL8367B_DIS2_RGMII_SHIFT, + mode << RTL8367B_DIS2_RGMII_SHIFT); return 0; } @@ -931,6 +1027,10 @@ static int rtl8367b_setup(struct rtl8366 err = rtl8367b_extif_init_of(smi, 1, "realtek,extif1"); if (err) return err; + + err = rtl8367b_extif_init_of(smi, 2, "realtek,extif2"); + if (err) + return err; } else { err = rtl8367b_extif_init(smi, 0, pdata->extif0_cfg); if (err) From patchwork Thu Aug 15 08:28:28 2019 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit X-Patchwork-Submitter: Serge Vailugin X-Patchwork-Id: 1147467 Return-Path: X-Original-To: incoming@patchwork.ozlabs.org Delivered-To: patchwork-incoming@bilbo.ozlabs.org Authentication-Results: ozlabs.org; spf=pass (mailfrom) smtp.mailfrom=lists.openwrt.org (client-ip=2607:7c80:54:e::133; helo=bombadil.infradead.org; envelope-from=openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org; receiver=) Authentication-Results: ozlabs.org; dmarc=fail (p=none dis=none) header.from=yandex.ru Authentication-Results: ozlabs.org; dkim=pass (2048-bit key; unprotected) header.d=lists.infradead.org header.i=@lists.infradead.org header.b="HA2Ypi5h"; dkim=fail reason="signature verification failed" (1024-bit key; unprotected) header.d=yandex.ru header.i=@yandex.ru header.b="bNl/uQLZ"; dkim-atps=neutral Received: from bombadil.infradead.org (bombadil.infradead.org [IPv6:2607:7c80:54:e::133]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (No client certificate requested) by ozlabs.org (Postfix) with ESMTPS id 468KNZ3Yxwz9sND for ; Thu, 15 Aug 2019 18:28:46 +1000 (AEST) DKIM-Signature: v=1; a=rsa-sha256; q=dns/txt; c=relaxed/relaxed; d=lists.infradead.org; s=bombadil.20170209; h=Sender:Content-Type: Content-Transfer-Encoding:List-Subscribe:List-Help:List-Post:List-Archive: List-Unsubscribe:List-Id:Subject:MIME-Version:Date:Message-ID:To:From: Reply-To:Cc:Content-ID:Content-Description:Resent-Date:Resent-From: Resent-Sender:Resent-To:Resent-Cc:Resent-Message-ID:In-Reply-To:References: List-Owner; bh=rvMBqaeMFhZtMm1OdSEDPpdmZiqgav3pFMiPrGUpZjc=; b=HA2Ypi5hG7zGJk JWBxFeO9ms7GJ+X7onHXszx9xXxqBAHmWSZXYf2SHvF/zr4eAJu1jkPxHAvKBTjc3Y4lZiBuwNokz wsqtZxJ4xY+ehfBjyX8j6ANgg/iAoSFr5Gw+6NIfSfwzsncwMFpGsm7mDJljn5jfkV3WQlKvwgXPW 8UTJa/vvvKZg2qQpmAaLoAhfmuqpYOLYGD64Be/uzsJnAwaAVF4GFtqxDXWuY3ePqw3ozGKVRJAZT m9Ro0dCh62ITTTFUWSAPzNdk7j9ZryxIu3Fv243MSa3aN0kngHFM90D2nzk6Nctb/lLGQnmz0cSMp TKQEkhL++XxLNUPSfnqw==; 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 1hyB7b-0006xL-T8; Thu, 15 Aug 2019 08:28:36 +0000 Received: from forward100j.mail.yandex.net ([5.45.198.240]) by bombadil.infradead.org with esmtps (Exim 4.92 #3 (Red Hat Linux)) id 1hyB7Y-0006wI-K8 for openwrt-devel@lists.openwrt.org; Thu, 15 Aug 2019 08:28:34 +0000 Received: from mxback15o.mail.yandex.net (mxback15o.mail.yandex.net [IPv6:2a02:6b8:0:1a2d::66]) by forward100j.mail.yandex.net (Yandex) with ESMTP id 7D49150E1093 for ; Thu, 15 Aug 2019 11:28:29 +0300 (MSK) Received: from smtp1j.mail.yandex.net (smtp1j.mail.yandex.net [2a02:6b8:0:801::ab]) by mxback15o.mail.yandex.net (nwsmtp/Yandex) with ESMTP id KrSAbmYd1k-STbaCVhk; Thu, 15 Aug 2019 11:28:29 +0300 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=yandex.ru; s=mail; t=1565857709; bh=jEroQOsx2qB/n4XP/Pymu3S0Ai7XNiJtmCvp9LXvl44=; h=To:Subject:From:Date:Message-ID; b=bNl/uQLZeWhqx6aWxtgGkKDfRqx7a+jpr9QYTKfeJwDpHG4slROz/SvKv1zpBWaz5 b+ArrXAZ+tG4vPrPzixPoHexZbDokl1pU3kjzXQ3Yh/lF92K/Ru/WVKAe7L5wmmHjb TV04pMf8UNRKiLwUB+9wspoRA2JlhvOd4pysaquc= Authentication-Results: mxback15o.mail.yandex.net; dkim=pass header.i=@yandex.ru Received: by smtp1j.mail.yandex.net (nwsmtp/Yandex) with ESMTPSA id Iq3mgEhB7S-SSeC9caT; Thu, 15 Aug 2019 11:28:28 +0300 (using TLSv1.2 with cipher ECDHE-RSA-AES128-GCM-SHA256 (128/128 bits)) (Client certificate not present) From: Serge Vasilugin To: openwrt-devel@lists.openwrt.org Message-ID: <5220ceb2-5b9c-8486-3d44-b5da19d8a1f4@yandex.ru> Date: Thu, 15 Aug 2019 15:28:28 +0700 User-Agent: Mozilla/5.0 (X11; Linux x86_64; rv:60.0) Gecko/20100101 Thunderbird/60.7.1 MIME-Version: 1.0 Content-Language: en-US X-CRM114-Version: 20100106-BlameMichelson ( TRE 0.8.0 (BSD) ) MR-646709E3 X-CRM114-CacheID: sfid-20190815_012833_025697_87B0411E X-CRM114-Status: GOOD ( 12.87 ) X-Spam-Score: -0.9 (/) X-Spam-Report: SpamAssassin version 3.4.2 on bombadil.infradead.org summary: Content analysis details: (-0.9 points) pts rule name description ---- ---------------------- -------------------------------------------------- -0.7 RCVD_IN_DNSWL_LOW RBL: Sender listed at https://www.dnswl.org/, low trust [5.45.198.240 listed in list.dnswl.org] 0.0 FREEMAIL_FROM Sender email is commonly abused enduser mail provider (vasilugin[at]yandex.ru) 0.0 SPF_HELO_NONE SPF: HELO does not publish an SPF Record -0.0 SPF_PASS SPF: sender matches SPF record -0.1 DKIM_VALID_EF Message has a valid DKIM or DK signature from envelope-from domain 0.1 DKIM_SIGNED Message has a DKIM or DK signature, not necessarily valid -0.1 DKIM_VALID_AU Message has a valid DKIM or DK signature from author's domain -0.1 DKIM_VALID Message has at least one valid DKIM or DK signature Subject: [OpenWrt-Devel] [PATCH 3/3] kernel: rtl8367b: initial support for Realtek switch rtl8367s X-BeenThere: openwrt-devel@lists.openwrt.org X-Mailman-Version: 2.1.29 Precedence: list List-Id: List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: "openwrt-devel" Errors-To: openwrt-devel-bounces+incoming=patchwork.ozlabs.org@lists.openwrt.org From driver point of view no differance between rtl8367b and rtl8367s if it connected through EXT2 (rgmii only). So this trivial patch add some identification and initialization only. SGMII/HSGMII mode for EXT1 is not implemented for the sake of patch clairity. It may be simple but without test device... Signed-off-by: Serge Vasilugin --- serge --- a/target/linux/generic/files/drivers/net/phy/rtl8367b.c +++ b/target/linux/generic/files/drivers/net/phy/rtl8367b.c @@ -588,6 +588,20 @@ {0x133E, 0x000E}, {0x133F, 0x0010}, }; +static const struct rtl8367b_initval rtl8367c_initvals0[] = { + {0x13c2, 0x0000}, {0x0018, 0x0f00}, {0x0038, 0x0f00}, {0x0058, 0x0f00}, + {0x0078, 0x0f00}, {0x0098, 0x0f00}, {0x1d15, 0x0a69}, {0x2000, 0x1340}, + {0x2020, 0x1340}, {0x2040, 0x1340}, {0x2060, 0x1340}, {0x2080, 0x1340}, + {0x13eb, 0x15bb}, {0x1303, 0x06d6}, {0x1304, 0x0700}, {0x13E2, 0x003F}, + {0x13F9, 0x0090}, {0x121e, 0x03CA}, {0x1233, 0x0352}, {0x1237, 0x00a0}, + {0x123a, 0x0030}, {0x1239, 0x0084}, {0x0301, 0x1000}, {0x1349, 0x001F}, + {0x18e0, 0x4004}, {0x122b, 0x641c}, {0x1305, 0xc000}, {0x1200, 0x7fcb}, + {0x0884, 0x0003}, {0x06eb, 0x0001}, {0x00cf, 0xffff}, {0x00d0, 0x0007}, + {0x00ce, 0x48b0}, {0x00ce, 0x48b0}, {0x0398, 0xffff}, {0x0399, 0x0007}, + {0x0300, 0x0001}, {0x03fa, 0x0007}, {0x08c8, 0x00c0}, {0x0a30, 0x020e}, + {0x0800, 0x0000}, {0x0802, 0x0000}, {0x09da, 0x0017}, {0x1d32, 0x0002}, +}; + static int rtl8367b_write_initvals(struct rtl8366_smi *smi, const struct rtl8367b_initval *initvals, int count) @@ -699,31 +713,38 @@ static int rtl8367b_init_regs(struct rtl8366_smi *smi) { const struct rtl8367b_initval *initvals; + u32 chip_num; u32 chip_ver; u32 rlvid; int count; int err; REG_WR(smi, RTL8367B_RTL_MAGIC_ID_REG, RTL8367B_RTL_MAGIC_ID_VAL); + REG_RD(smi, RTL8367B_CHIP_NUMBER_REG, &chip_num); REG_RD(smi, RTL8367B_CHIP_VER_REG, &chip_ver); - rlvid = (chip_ver >> RTL8367B_CHIP_VER_RLVID_SHIFT) & RTL8367B_CHIP_VER_RLVID_MASK; - switch (rlvid) { - case 0: - initvals = rtl8367r_vb_initvals_0; - count = ARRAY_SIZE(rtl8367r_vb_initvals_0); + if( chip_num == 0x6367 || chip_num == 0x0597 || chip_num == 0x0276) { + initvals = rtl8367c_initvals0; + count = ARRAY_SIZE(rtl8367c_initvals0); + } else { + printk("check chip_num=0x%x ver=0x%x...\n", chip_num, chip_ver); + switch (rlvid) { + case 0: + initvals = rtl8367r_vb_initvals_0; + count = ARRAY_SIZE(rtl8367r_vb_initvals_0); break; - case 1: - initvals = rtl8367r_vb_initvals_1; - count = ARRAY_SIZE(rtl8367r_vb_initvals_1); + case 1: + initvals = rtl8367r_vb_initvals_1; + count = ARRAY_SIZE(rtl8367r_vb_initvals_1); break; - default: - dev_err(smi->parent, "unknow rlvid %u\n", rlvid); - return -ENODEV; + default: + dev_err(smi->parent, "unknow rlvid %u\n", rlvid); + return -ENODEV; + } } /* TODO: disable RLTP */ @@ -983,6 +1004,17 @@ RTL8367B_PORT_MISC_CFG_EGRESS_MODE_ORIGINAL << RTL8367B_PORT_MISC_CFG_EGRESS_MODE_SHIFT); + /* + * Enable for each phy port. + */ + for (i = 0; i < 5; i++) { + int data; + rtl8367b_read_phy_reg(smi, i, 0, &data); + data &= 0xF7FF; + data |= 0x200; + rtl8367b_write_phy_reg(smi, i, 0, data); + } + return 0; } @@ -1501,20 +1533,26 @@ "chip mode"); return ret; } - - switch (chip_ver) { - case 0x1000: - chip_name = "8367RB"; - break; - case 0x1010: - chip_name = "8367R-VB"; - break; - default: - dev_err(smi->parent, - "unknown chip num:%04x ver:%04x, mode:%04x\n", - chip_num, chip_ver, chip_mode); - return -ENODEV; - } + if(chip_num == 0x6367 || chip_num == 0x0597 || chip_num == 0x0276) { + chip_name = "8367C"; + } else + switch (chip_ver) { + case 0x1000: + chip_name = "8367RB"; + break; + case 0x1010: + chip_name = "8367R-VB"; + break; + case 0x0070: /* just hint - with wrong phy_id always read 0x0070 */ + dev_err(smi->parent, + "wrong switch address %d (0 or 29)?\n", smi->phy_id); + /* fall through */ + default: + dev_err(smi->parent, + "unknown chip num:%04x ver:%04x, mode:%04x\n", + chip_num, chip_ver, chip_mode); + return -ENODEV; + } dev_info(smi->parent, "RTL%s chip found\n", chip_name);