gpio-nct5104d: fix compilation with kernel 6.6
[openwrt/openwrt.git] / target / linux / generic / pending-5.15 / 777-net-dsa-b53-mdio-add-support-for-BCM53134.patch
1 From patchwork Fri Mar 24 08:41:38 2023
2 Content-Type: text/plain; charset="utf-8"
3 MIME-Version: 1.0
4 Content-Transfer-Encoding: 8bit
5 X-Patchwork-Submitter: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?=
6 <noltari@gmail.com>
7 X-Patchwork-Id: 13186549
8 X-Patchwork-Delegate: kuba@kernel.org
9 Return-Path: <netdev-owner@vger.kernel.org>
10 X-Spam-Checker-Version: SpamAssassin 3.4.0 (2014-02-07) on
11 aws-us-west-2-korg-lkml-1.web.codeaurora.org
12 Received: from vger.kernel.org (vger.kernel.org [23.128.96.18])
13 by smtp.lore.kernel.org (Postfix) with ESMTP id EF744C76195
14 for <netdev@archiver.kernel.org>; Fri, 24 Mar 2023 08:42:01 +0000 (UTC)
15 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
16 id S231807AbjCXImA (ORCPT <rfc822;netdev@archiver.kernel.org>);
17 Fri, 24 Mar 2023 04:42:00 -0400
18 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:32956 "EHLO
19 lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
20 with ESMTP id S231272AbjCXIly (ORCPT
21 <rfc822;netdev@vger.kernel.org>); Fri, 24 Mar 2023 04:41:54 -0400
22 Received: from mail-ed1-x535.google.com (mail-ed1-x535.google.com
23 [IPv6:2a00:1450:4864:20::535])
24 by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 113A517CF3;
25 Fri, 24 Mar 2023 01:41:46 -0700 (PDT)
26 Received: by mail-ed1-x535.google.com with SMTP id ek18so4877175edb.6;
27 Fri, 24 Mar 2023 01:41:45 -0700 (PDT)
28 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
29 d=gmail.com; s=20210112; t=1679647304;
30 h=content-transfer-encoding:mime-version:references:in-reply-to
31 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
32 :message-id:reply-to;
33 bh=OfUWRaFIQIQw/lRivER+LHryfdLliXzvabGrcmkQVEU=;
34 b=JMrl6Eay1FS0JZqgPHsbcVzuNAbFELc0SLNGyzYtOVQXcI+YwKDM9Ls7I9PsQVEPoZ
35 CthomCTYoz5G9DU7uBuia207rnjOhssZJRu0syrCoU+O/ZiQyGLJDvq61z5oZJxC2S40
36 kzRsUsC6MRjn64DKPWmxhsSTMKLzn2+P233LKNFbHtfi3NWF5Qu/85sUkxMurnfUgja0
37 qQhl25qYY7ZIvmlFHYefaI5UkITQFuiybrqJW9tztCdHf/gS+f33YkkvQ8njmMQa1DW0
38 ppedfOUotX+6kmHZGX1yea2V5ezEGGvRourZtYMoecTiD0E5d1J1bKhktKslVLIDm0ig
39 oc2g==
40 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
41 d=1e100.net; s=20210112; t=1679647304;
42 h=content-transfer-encoding:mime-version:references:in-reply-to
43 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
44 :subject:date:message-id:reply-to;
45 bh=OfUWRaFIQIQw/lRivER+LHryfdLliXzvabGrcmkQVEU=;
46 b=b3Gmga5ZDbnmQfnw1GCz+eU2JwgsVzfciZuSmfYAiVxpW4c6cur3MHbpzDPhi99wzA
47 ZYAM7ryLv88rXl/tQB5g2Nte5rvMfxUeHXsT/JpsRcSSocFRbRrk0QJyiA/Xj86NiD5N
48 C1sKz50Im190FmrvPcBh6OHQbv/3MQyE+1fQx+9q3jW5rQiAWQaYk4Ng8GlWA7gtG3jB
49 fHO6Fuoenn32pgkveJbQLYL/2t2f53wGf3QLQ3IeKW7jdfIHNThwrwqBMxdHoIDaTBT9
50 UWMeJuiYtylIibo/3zbORbWOgIERlWxZRf3BCOFpnzUn4eBzio4LgjtNxZ77ITRxsmbk
51 3+Hg==
52 X-Gm-Message-State: AAQBX9dfyBfbR7Sdd5wqxMiAv3Yhk47pK1XzD87MZyAF3AxyoFyKcMaF
53 EbwJLyRvTGQEFdVWCGw1eMU=
54 X-Google-Smtp-Source:
55 AKy350bpDVLq7k1FxG2Mek/VIobZL4KhufiKx8qfmpxpcWmLI3bLg8wfQKEAKJRNJBleo/7CZuCL5g==
56 X-Received: by 2002:aa7:c711:0:b0:4a2:588f:b3c5 with SMTP id
57 i17-20020aa7c711000000b004a2588fb3c5mr2261236edq.21.1679647304260;
58 Fri, 24 Mar 2023 01:41:44 -0700 (PDT)
59 Received: from atlantis.lan (255.red-79-146-124.dynamicip.rima-tde.net.
60 [79.146.124.255])
61 by smtp.gmail.com with ESMTPSA id
62 z21-20020a50cd15000000b004acbda55f6bsm10323728edi.27.2023.03.24.01.41.43
63 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
64 Fri, 24 Mar 2023 01:41:43 -0700 (PDT)
65 From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= <noltari@gmail.com>
66 To: paul.geurts@prodrive-technologies.com, f.fainelli@gmail.com,
67 jonas.gorski@gmail.com, andrew@lunn.ch, olteanv@gmail.com,
68 davem@davemloft.net, edumazet@google.com, kuba@kernel.org,
69 pabeni@redhat.com, robh+dt@kernel.org,
70 krzysztof.kozlowski+dt@linaro.org, netdev@vger.kernel.org,
71 devicetree@vger.kernel.org, linux-kernel@vger.kernel.org
72 Cc: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= <noltari@gmail.com>
73 Subject: [PATCH v2 2/2] net: dsa: b53: mdio: add support for BCM53134
74 Date: Fri, 24 Mar 2023 09:41:38 +0100
75 Message-Id: <20230324084138.664285-3-noltari@gmail.com>
76 X-Mailer: git-send-email 2.30.2
77 In-Reply-To: <20230324084138.664285-1-noltari@gmail.com>
78 References: <20230323121804.2249605-1-noltari@gmail.com>
79 <20230324084138.664285-1-noltari@gmail.com>
80 MIME-Version: 1.0
81 Precedence: bulk
82 List-ID: <netdev.vger.kernel.org>
83 X-Mailing-List: netdev@vger.kernel.org
84 X-Patchwork-Delegate: kuba@kernel.org
85
86 From: Paul Geurts <paul.geurts@prodrive-technologies.com>
87
88 Add support for the BCM53134 Ethernet switch in the existing b53 dsa driver.
89 BCM53134 is very similar to the BCM58XX series.
90
91 Signed-off-by: Paul Geurts <paul.geurts@prodrive-technologies.com>
92 Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
93 ---
94 v2: add BCM53134 to is531x5() and remove special RGMII config
95
96 drivers/net/dsa/b53/b53_common.c | 15 +++++++++++++++
97 drivers/net/dsa/b53/b53_mdio.c | 5 ++++-
98 drivers/net/dsa/b53/b53_priv.h | 7 +++++--
99 3 files changed, 24 insertions(+), 3 deletions(-)
100
101 --- a/drivers/net/dsa/b53/b53_common.c
102 +++ b/drivers/net/dsa/b53/b53_common.c
103 @@ -2609,6 +2609,20 @@ static const struct b53_chip_data b53_sw
104 .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
105 .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
106 },
107 + {
108 + .chip_id = BCM53134_DEVICE_ID,
109 + .dev_name = "BCM53134",
110 + .vlans = 4096,
111 + .enabled_ports = 0x12f,
112 + .imp_port = 8,
113 + .cpu_port = B53_CPU_PORT,
114 + .vta_regs = B53_VTA_REGS,
115 + .arl_bins = 4,
116 + .arl_buckets = 1024,
117 + .duplex_reg = B53_DUPLEX_STAT_GE,
118 + .jumbo_pm_reg = B53_JUMBO_PORT_MASK,
119 + .jumbo_size_reg = B53_JUMBO_MAX_SIZE,
120 + },
121 };
122
123 static int b53_switch_init(struct b53_device *dev)
124 @@ -2785,6 +2799,7 @@ int b53_switch_detect(struct b53_device
125 case BCM53012_DEVICE_ID:
126 case BCM53018_DEVICE_ID:
127 case BCM53019_DEVICE_ID:
128 + case BCM53134_DEVICE_ID:
129 dev->chip_id = id32;
130 break;
131 default:
132 --- a/drivers/net/dsa/b53/b53_mdio.c
133 +++ b/drivers/net/dsa/b53/b53_mdio.c
134 @@ -286,6 +286,7 @@ static const struct b53_io_ops b53_mdio_
135 #define B53_BRCM_OUI_2 0x03625c00
136 #define B53_BRCM_OUI_3 0x00406000
137 #define B53_BRCM_OUI_4 0x01410c00
138 +#define B53_BRCM_OUI_5 0xae025000
139
140 static int b53_mdio_probe(struct mdio_device *mdiodev)
141 {
142 @@ -313,7 +314,8 @@ static int b53_mdio_probe(struct mdio_de
143 if ((phy_id & 0xfffffc00) != B53_BRCM_OUI_1 &&
144 (phy_id & 0xfffffc00) != B53_BRCM_OUI_2 &&
145 (phy_id & 0xfffffc00) != B53_BRCM_OUI_3 &&
146 - (phy_id & 0xfffffc00) != B53_BRCM_OUI_4) {
147 + (phy_id & 0xfffffc00) != B53_BRCM_OUI_4 &&
148 + (phy_id & 0xfffffc00) != B53_BRCM_OUI_5) {
149 dev_err(&mdiodev->dev, "Unsupported device: 0x%08x\n", phy_id);
150 return -ENODEV;
151 }
152 @@ -377,6 +379,7 @@ static const struct of_device_id b53_of_
153 { .compatible = "brcm,bcm53115" },
154 { .compatible = "brcm,bcm53125" },
155 { .compatible = "brcm,bcm53128" },
156 + { .compatible = "brcm,bcm53134" },
157 { .compatible = "brcm,bcm5365" },
158 { .compatible = "brcm,bcm5389" },
159 { .compatible = "brcm,bcm5395" },
160 --- a/drivers/net/dsa/b53/b53_priv.h
161 +++ b/drivers/net/dsa/b53/b53_priv.h
162 @@ -85,6 +85,7 @@ enum {
163 BCM583XX_DEVICE_ID = 0x58300,
164 BCM7445_DEVICE_ID = 0x7445,
165 BCM7278_DEVICE_ID = 0x7278,
166 + BCM53134_DEVICE_ID = 0x5075,
167 };
168
169 #define B53_N_PORTS 9
170 @@ -182,7 +183,8 @@ static inline int is531x5(struct b53_dev
171 {
172 return dev->chip_id == BCM53115_DEVICE_ID ||
173 dev->chip_id == BCM53125_DEVICE_ID ||
174 - dev->chip_id == BCM53128_DEVICE_ID;
175 + dev->chip_id == BCM53128_DEVICE_ID ||
176 + dev->chip_id == BCM53134_DEVICE_ID;
177 }
178
179 static inline int is63xx(struct b53_device *dev)
180 @@ -210,7 +212,8 @@ static inline int is58xx(struct b53_devi
181 return dev->chip_id == BCM58XX_DEVICE_ID ||
182 dev->chip_id == BCM583XX_DEVICE_ID ||
183 dev->chip_id == BCM7445_DEVICE_ID ||
184 - dev->chip_id == BCM7278_DEVICE_ID;
185 + dev->chip_id == BCM7278_DEVICE_ID ||
186 + dev->chip_id == BCM53134_DEVICE_ID;
187 }
188
189 #define B53_63XX_RGMII0 4