kernel: add pending bmips patches
[openwrt/openwrt.git] / target / linux / generic / pending-5.15 / 774-net-dsa-b53-mmap-allow-passing-a-chip-ID.patch
1 From patchwork Mon Mar 20 15:50:23 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: 13181525
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 AA605C7618D
14 for <netdev@archiver.kernel.org>; Mon, 20 Mar 2023 16:00:42 +0000 (UTC)
15 Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand
16 id S233060AbjCTQAk (ORCPT <rfc822;netdev@archiver.kernel.org>);
17 Mon, 20 Mar 2023 12:00:40 -0400
18 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:50606 "EHLO
19 lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org
20 with ESMTP id S233508AbjCTQAL (ORCPT
21 <rfc822;netdev@vger.kernel.org>); Mon, 20 Mar 2023 12:00:11 -0400
22 Received: from mail-wm1-x332.google.com (mail-wm1-x332.google.com
23 [IPv6:2a00:1450:4864:20::332])
24 by lindbergh.monkeyblade.net (Postfix) with ESMTPS id C8A523E0BA;
25 Mon, 20 Mar 2023 08:50:37 -0700 (PDT)
26 Received: by mail-wm1-x332.google.com with SMTP id
27 fm20-20020a05600c0c1400b003ead37e6588so9459945wmb.5;
28 Mon, 20 Mar 2023 08:50:37 -0700 (PDT)
29 DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
30 d=gmail.com; s=20210112; t=1679327432;
31 h=content-transfer-encoding:mime-version:references:in-reply-to
32 :message-id:date:subject:cc:to:from:from:to:cc:subject:date
33 :message-id:reply-to;
34 bh=16/AUEfT4/3aNTDuWfjKv1lfTz12+h3pg0SmLHFA5Y8=;
35 b=n+22dPTXjE1jqw2beYW8Kqab5uczPETidauati8u3xeWTbKyfCENVVcYJBQgNPM3pw
36 BeH+srFpkROFpxJ+btOlNSEZA4pIuBf2EOOU4AWrlPTWglRDxVHZ3X7kVDptJnxVGvre
37 zNQ31LP8wxHP9XSFxYbkK9ybYYC8WP3fQZwcGcAgliP2cbKQMwuUP/i2w3Hqml8t6rP1
38 5HaZgmWt9wdh8c76nCWP03IuNM9oJ9qa3YWDBrVVN2eMe0mGxZmKR+Wb/BZj3o5ezJmu
39 q41drXRwHBC6vF1K+HHeOgAcMlTKIJUAo2daNVm/UBTXj2SXsvfh4nfgrWVAexOpd/uP
40 elYw==
41 X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed;
42 d=1e100.net; s=20210112; t=1679327432;
43 h=content-transfer-encoding:mime-version:references:in-reply-to
44 :message-id:date:subject:cc:to:from:x-gm-message-state:from:to:cc
45 :subject:date:message-id:reply-to;
46 bh=16/AUEfT4/3aNTDuWfjKv1lfTz12+h3pg0SmLHFA5Y8=;
47 b=6ZfI8DXxxDA2NF5hw1Mfoc/pGgW+OfRfwgMoE4jB/ABbQg8zdQ/Ja7FGIqVPbi2hZe
48 fvd7j+dw8CZvNbkRbsYQvMTwRfDRonn8aAwJBBNkMyTcm8s3D5BRURzVpe0ScyzPYvxQ
49 0cXZASSL+EXA7Fyf51y4emSNy6Xb3nY0pjKWFUphqra9TdFQzhtnpdlN3tTwXFN9jlEu
50 3Se1FWEiQP5FRtqXIU/oefh5FMXoJEDCKq8geZ04mouAdeVxZd/FUBR754EY6uNAhMVG
51 hef4iX7HeDpTCJLCprNVFgQ80bbl/uh+QnBtEVGlDFcH4GR7csGSIp2g/3Qzj/m78rkz
52 ml1Q==
53 X-Gm-Message-State: AO0yUKUPCBZQSCICZA8m4nHTp32xYgPPzQnSGO9a0aop0wLJeOUszuYx
54 hH7zNhPrx7BZWaytny88AN0=
55 X-Google-Smtp-Source:
56 AK7set9y2vPkyUF0Tln19u08/DwcR4L11U6iFXPmpi6kdzFhq0OrCiFNu8aAeCvisP/C/rvYvKH9Lw==
57 X-Received: by 2002:a05:600c:310e:b0:3e9:f15b:935b with SMTP id
58 g14-20020a05600c310e00b003e9f15b935bmr34745262wmo.32.1679327432097;
59 Mon, 20 Mar 2023 08:50:32 -0700 (PDT)
60 Received: from atlantis.lan (255.red-79-146-124.dynamicip.rima-tde.net.
61 [79.146.124.255])
62 by smtp.gmail.com with ESMTPSA id
63 3-20020a05600c020300b003eddefd8792sm4812333wmi.14.2023.03.20.08.50.30
64 (version=TLS1_3 cipher=TLS_AES_256_GCM_SHA384 bits=256/256);
65 Mon, 20 Mar 2023 08:50:31 -0700 (PDT)
66 From: =?utf-8?q?=C3=81lvaro_Fern=C3=A1ndez_Rojas?= <noltari@gmail.com>
67 To: f.fainelli@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 3/4] net: dsa: b53: mmap: allow passing a chip ID
74 Date: Mon, 20 Mar 2023 16:50:23 +0100
75 Message-Id: <20230320155024.164523-4-noltari@gmail.com>
76 X-Mailer: git-send-email 2.30.2
77 In-Reply-To: <20230320155024.164523-1-noltari@gmail.com>
78 References: <20230320155024.164523-1-noltari@gmail.com>
79 MIME-Version: 1.0
80 Precedence: bulk
81 List-ID: <netdev.vger.kernel.org>
82 X-Mailing-List: netdev@vger.kernel.org
83 X-Patchwork-Delegate: kuba@kernel.org
84
85 BCM63268 SoCs require a special handling for their RGMIIs, so we should be
86 able to identify them as a special BCM63xx switch.
87
88 Signed-off-by: Álvaro Fernández Rojas <noltari@gmail.com>
89 ---
90 drivers/net/dsa/b53/b53_mmap.c | 32 +++++++++++++++++++++++---------
91 drivers/net/dsa/b53/b53_priv.h | 9 ++++++++-
92 2 files changed, 31 insertions(+), 10 deletions(-)
93
94 --- a/drivers/net/dsa/b53/b53_mmap.c
95 +++ b/drivers/net/dsa/b53/b53_mmap.c
96 @@ -248,7 +248,7 @@ static int b53_mmap_probe_of(struct plat
97 return -ENOMEM;
98
99 pdata->regs = mem;
100 - pdata->chip_id = BCM63XX_DEVICE_ID;
101 + pdata->chip_id = (u32)device_get_match_data(dev);
102 pdata->big_endian = of_property_read_bool(np, "big-endian");
103
104 of_ports = of_get_child_by_name(np, "ports");
105 @@ -332,14 +332,28 @@ static void b53_mmap_shutdown(struct pla
106 }
107
108 static const struct of_device_id b53_mmap_of_table[] = {
109 - { .compatible = "brcm,bcm3384-switch" },
110 - { .compatible = "brcm,bcm6318-switch" },
111 - { .compatible = "brcm,bcm6328-switch" },
112 - { .compatible = "brcm,bcm6362-switch" },
113 - { .compatible = "brcm,bcm6368-switch" },
114 - { .compatible = "brcm,bcm63268-switch" },
115 - { .compatible = "brcm,bcm63xx-switch" },
116 - { /* sentinel */ },
117 + {
118 + .compatible = "brcm,bcm3384-switch",
119 + .data = (void *)BCM63XX_DEVICE_ID,
120 + }, {
121 + .compatible = "brcm,bcm6318-switch",
122 + .data = (void *)BCM63XX_DEVICE_ID,
123 + }, {
124 + .compatible = "brcm,bcm6328-switch",
125 + .data = (void *)BCM63XX_DEVICE_ID,
126 + }, {
127 + .compatible = "brcm,bcm6362-switch",
128 + .data = (void *)BCM63XX_DEVICE_ID,
129 + }, {
130 + .compatible = "brcm,bcm6368-switch",
131 + .data = (void *)BCM63XX_DEVICE_ID,
132 + }, {
133 + .compatible = "brcm,bcm63268-switch",
134 + .data = (void *)BCM63268_DEVICE_ID,
135 + }, {
136 + .compatible = "brcm,bcm63xx-switch",
137 + .data = (void *)BCM63XX_DEVICE_ID,
138 + }, { /* sentinel */ }
139 };
140 MODULE_DEVICE_TABLE(of, b53_mmap_of_table);
141
142 --- a/drivers/net/dsa/b53/b53_priv.h
143 +++ b/drivers/net/dsa/b53/b53_priv.h
144 @@ -75,6 +75,7 @@ enum {
145 BCM53125_DEVICE_ID = 0x53125,
146 BCM53128_DEVICE_ID = 0x53128,
147 BCM63XX_DEVICE_ID = 0x6300,
148 + BCM63268_DEVICE_ID = 0x63268,
149 BCM53010_DEVICE_ID = 0x53010,
150 BCM53011_DEVICE_ID = 0x53011,
151 BCM53012_DEVICE_ID = 0x53012,
152 @@ -186,7 +187,13 @@ static inline int is531x5(struct b53_dev
153
154 static inline int is63xx(struct b53_device *dev)
155 {
156 - return dev->chip_id == BCM63XX_DEVICE_ID;
157 + return dev->chip_id == BCM63XX_DEVICE_ID ||
158 + dev->chip_id == BCM63268_DEVICE_ID;
159 +}
160 +
161 +static inline int is63268(struct b53_device *dev)
162 +{
163 + return dev->chip_id == BCM63268_DEVICE_ID;
164 }
165
166 static inline int is5301x(struct b53_device *dev)