BCM4908 is one of the Broadcom Broadband origin WLAN Router/Access
Pointer SoCs. It was originally added by Rafał before Broadcom started
to upstream the support for broadband SoCs. All other ARM based Broadcom
Broadband SoCs are now supported under arch ARCH_BCMBCA. This patch
series migrate the BCM4908 support to ARCH_BCMBCA.
Changes in v2:
- Add Acked-by tag
- Improve commit message with more details
- Insert the 4908 generic compatible string in alphabetical order
William Zhang (9):
dt-bindings: arm64: bcmbca: Merge BCM4908 into BCMBCA
dt-bindings: arm64: bcmbca: Update BCM4908 description
arm64: dts: bcmbca: update BCM4908 board dts files
arm64: dts: Move BCM4908 dts to bcmbca folder
arm64: dts: Add BCM4908 generic board dts
arm64: bcmbca: Make BCM4908 drivers depend on ARCH_BCMBCA
arm64: bcmbca: Merge ARCH_BCM4908 to ARCH_BCMBCA
MAINTAINERS: Add BCM4908 maintainer to BCMBCA entry
arm64: defconfig: remove BCM4908
.../bindings/arm/bcm/brcm,bcm4908.yaml | 42 -------------------
.../bindings/arm/bcm/brcm,bcmbca.yaml | 25 +++++++++++
MAINTAINERS | 1 +
arch/arm64/Kconfig.platforms | 10 +----
arch/arm64/boot/dts/broadcom/Makefile | 1 -
arch/arm64/boot/dts/broadcom/bcm4908/Makefile | 5 ---
arch/arm64/boot/dts/broadcom/bcmbca/Makefile | 5 +++
.../bcm4906-netgear-r8000p.dts | 2 +-
.../bcm4906-tplink-archer-c2300-v1.dts | 2 +-
.../broadcom/{bcm4908 => bcmbca}/bcm4906.dtsi | 0
.../bcm4908-asus-gt-ac5300.dts | 2 +-
.../bcm4908-netgear-raxe500.dts | 2 +-
.../broadcom/{bcm4908 => bcmbca}/bcm4908.dtsi | 0
.../boot/dts/broadcom/bcmbca/bcm94908.dts | 30 +++++++++++++
arch/arm64/configs/defconfig | 1 -
drivers/i2c/busses/Kconfig | 4 +-
drivers/mtd/parsers/Kconfig | 6 +--
drivers/net/ethernet/broadcom/Kconfig | 4 +-
drivers/pci/controller/Kconfig | 2 +-
drivers/phy/broadcom/Kconfig | 4 +-
drivers/pinctrl/bcm/Kconfig | 4 +-
drivers/reset/Kconfig | 2 +-
drivers/soc/bcm/bcm63xx/Kconfig | 4 +-
drivers/tty/serial/Kconfig | 4 +-
drivers/watchdog/Kconfig | 2 +-
25 files changed, 84 insertions(+), 80 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml
delete mode 100644 arch/arm64/boot/dts/broadcom/bcm4908/Makefile
rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906-netgear-r8000p.dts (96%)
rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906-tplink-archer-c2300-v1.dts (99%)
rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4906.dtsi (100%)
rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908-asus-gt-ac5300.dts (97%)
rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908-netgear-raxe500.dts (89%)
rename arch/arm64/boot/dts/broadcom/{bcm4908 => bcmbca}/bcm4908.dtsi (100%)
create mode 100644 arch/arm64/boot/dts/broadcom/bcmbca/bcm94908.dts
--
2.34.1
Append "brcm,bcmbca" to BCM4908 chip family compatible strings to
follow the convention of BCMBCA chip and help identifying chip family.
Also add a bare bone generic 4908 board compatbile string to support any
4908 based board. This is useful for board bring-up test and kernel test
with CPU and memory related change.
Signed-off-by: William Zhang <[email protected]>
Acked-by: Rafał Miłecki <[email protected]>
---
Changes in v2:
- Add Acked-by tag
- Insert the 4908 generic compatible string in alphabetical order
- Update commit message with more details of 4908 generic board dts
Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml | 4 ++++
1 file changed, 4 insertions(+)
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml b/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
index 6a64afa95918..84866e29cab0 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
@@ -36,18 +36,22 @@ properties:
- tplink,archer-c2300-v1
- const: brcm,bcm4906
- const: brcm,bcm4908
+ - const: brcm,bcmbca
- description: BCM4908 based boards
items:
- enum:
- asus,gt-ac5300
+ - brcm,bcm94908
- netgear,raxe500
- const: brcm,bcm4908
+ - const: brcm,bcmbca
- description: BCM49408 based boards
items:
- const: brcm,bcm49408
- const: brcm,bcm4908
+ - const: brcm,bcmbca
- description: BCM4912 based boards
items:
--
2.34.1
Append "brcm,bcmbca" to compatible strings based on the new bcmbca
binding rule for BCM4908 family based boards. This will break drivers
that use the old compatible string for binding. Fortunately there is no
such usage in linux and u-boot.
Signed-off-by: William Zhang <[email protected]>
Acked-by: Rafał Miłecki <[email protected]>
---
Changes in v2:
- Add Acked-by tag
arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts | 2 +-
.../dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 2 +-
arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 2 +-
.../arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts | 2 +-
4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
index 2dd028438c22..d8b60575eb4f 100644
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
@@ -7,7 +7,7 @@
#include "bcm4906.dtsi"
/ {
- compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908";
+ compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
model = "Netgear R8000P";
memory@0 {
diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
index 064f7f549665..296393d4aaab 100644
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
@@ -7,7 +7,7 @@
#include "bcm4906.dtsi"
/ {
- compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908";
+ compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
model = "TP-Link Archer C2300 V1";
memory@0 {
diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
index 04f8524b5335..787c7ddf9102 100644
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
@@ -6,7 +6,7 @@
#include "bcm4908.dtsi"
/ {
- compatible = "asus,gt-ac5300", "brcm,bcm4908";
+ compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca";
model = "Asus GT-AC5300";
memory@0 {
diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
index 3c2cf2d238b6..23b96c663239 100644
--- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
+++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
@@ -3,7 +3,7 @@
#include "bcm4908.dtsi"
/ {
- compatible = "netgear,raxe500", "brcm,bcm4908";
+ compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca";
model = "Netgear RAXE500";
memory@0 {
--
2.34.1
BCM4908 is one of the Broadcom Broadband origin WLAN Router/Access
Pointer SoCs. It was originally added by Rafał before Broadcom
started to upstream the support for broadband SoCs. Now that Broadcom
Broadband SoC is supported under arch ARCH_BCMBCA, this patch moves
BCM4908 SoC device tree descriptions into BCMBCA binding.
Signed-off-by: William Zhang <[email protected]>
Acked-by: Rafał Miłecki <[email protected]>
---
Changes in v2:
- Add Acked-by tag
- Improve commit message with more details
.../bindings/arm/bcm/brcm,bcm4908.yaml | 42 -------------------
.../bindings/arm/bcm/brcm,bcmbca.yaml | 21 ++++++++++
2 files changed, 21 insertions(+), 42 deletions(-)
delete mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml b/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml
deleted file mode 100644
index 9b745531ff04..000000000000
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml
+++ /dev/null
@@ -1,42 +0,0 @@
-# SPDX-License-Identifier: GPL-2.0 OR BSD-2-Clause
-%YAML 1.2
----
-$id: http://devicetree.org/schemas/arm/bcm/brcm,bcm4908.yaml#
-$schema: http://devicetree.org/meta-schemas/core.yaml#
-
-title: Broadcom BCM4908 device tree bindings
-
-description:
- Broadcom BCM4906 / BCM4908 / BCM49408 Wi-Fi/network SoCs with Brahma CPUs.
-
-maintainers:
- - Rafał Miłecki <[email protected]>
-
-properties:
- $nodename:
- const: '/'
- compatible:
- oneOf:
- - description: BCM4906 based boards
- items:
- - enum:
- - netgear,r8000p
- - tplink,archer-c2300-v1
- - const: brcm,bcm4906
- - const: brcm,bcm4908
-
- - description: BCM4908 based boards
- items:
- - enum:
- - asus,gt-ac5300
- - netgear,raxe500
- - const: brcm,bcm4908
-
- - description: BCM49408 based boards
- items:
- - const: brcm,bcm49408
- - const: brcm,bcm4908
-
-additionalProperties: true
-
-...
diff --git a/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml b/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
index 324e59104360..6a64afa95918 100644
--- a/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
+++ b/Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml
@@ -15,6 +15,7 @@ maintainers:
- William Zhang <[email protected]>
- Anand Gore <[email protected]>
- Kursad Oney <[email protected]>
+ - Rafał Miłecki <[email protected]>
properties:
$nodename:
@@ -28,6 +29,26 @@ properties:
- const: brcm,bcm47622
- const: brcm,bcmbca
+ - description: BCM4906 based boards
+ items:
+ - enum:
+ - netgear,r8000p
+ - tplink,archer-c2300-v1
+ - const: brcm,bcm4906
+ - const: brcm,bcm4908
+
+ - description: BCM4908 based boards
+ items:
+ - enum:
+ - asus,gt-ac5300
+ - netgear,raxe500
+ - const: brcm,bcm4908
+
+ - description: BCM49408 based boards
+ items:
+ - const: brcm,bcm49408
+ - const: brcm,bcm4908
+
- description: BCM4912 based boards
items:
- enum:
--
2.34.1
Remove CONFIG_ARCH_BCM4908. It is supported under CONFIG_ARCH_BCMBCA.
Signed-off-by: William Zhang <[email protected]>
---
(no changes since v1)
arch/arm64/configs/defconfig | 1 -
1 file changed, 1 deletion(-)
diff --git a/arch/arm64/configs/defconfig b/arch/arm64/configs/defconfig
index 84b203877f91..d0e89702a4da 100644
--- a/arch/arm64/configs/defconfig
+++ b/arch/arm64/configs/defconfig
@@ -35,7 +35,6 @@ CONFIG_ARCH_SUNXI=y
CONFIG_ARCH_ALPINE=y
CONFIG_ARCH_APPLE=y
CONFIG_ARCH_BCM2835=y
-CONFIG_ARCH_BCM4908=y
CONFIG_ARCH_BCMBCA=y
CONFIG_ARCH_BCM_IPROC=y
CONFIG_ARCH_BERLIN=y
--
2.34.1
Since BCM4908 SoC support is merged into ARCH_BCMBCA, add BCM4908
maintainer Rafal to bcmbca maintainer list.
Signed-off-by: William Zhang <[email protected]>
---
(no changes since v1)
MAINTAINERS | 1 +
1 file changed, 1 insertion(+)
diff --git a/MAINTAINERS b/MAINTAINERS
index 87e7467d8097..bcc508f4e6c7 100644
--- a/MAINTAINERS
+++ b/MAINTAINERS
@@ -3919,6 +3919,7 @@ M: William Zhang <[email protected]>
M: Anand Gore <[email protected]>
M: Kursad Oney <[email protected]>
M: Florian Fainelli <[email protected]>
+M: Rafał Miłecki <[email protected]>
R: Broadcom internal kernel review list <[email protected]>
L: [email protected] (moderated for non-subscribers)
S: Maintained
--
2.34.1
On Sun, Jul 24, 2022 at 10:53:59PM -0700, William Zhang wrote:
> With Broadcom Broadband arch ARCH_BCMBCA supported in the kernel, this
> patch series migrate the ARCH_BCM4908 symbol to ARCH_BCMBCA. Hence
> replace ARCH_BCM4908 with ARCH_BCMBCA in subsystem Kconfig files.
>
> Signed-off-by: William Zhang <[email protected]>
> Acked-by: Guenter Roeck <[email protected]> (for watchdog)
> Acked-by: Bjorn Helgaas <[email protected]> (for drivers/pci)
>
Acked-by: Wolfram Sang <[email protected]> (for i2c)
On Sun, Jul 24, 2022 at 10:53:56PM -0700, William Zhang wrote:
> Append "brcm,bcmbca" to compatible strings based on the new bcmbca
> binding rule for BCM4908 family based boards. This will break drivers
> that use the old compatible string for binding. Fortunately there is no
> such usage in linux and u-boot.
How does adding an additional compatible break things?
>
> Signed-off-by: William Zhang <[email protected]>
> Acked-by: Rafał Miłecki <[email protected]>
>
> ---
>
> Changes in v2:
> - Add Acked-by tag
>
> arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts | 2 +-
> .../dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 2 +-
> arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 2 +-
> .../arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts | 2 +-
> 4 files changed, 4 insertions(+), 4 deletions(-)
>
> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
> index 2dd028438c22..d8b60575eb4f 100644
> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
> @@ -7,7 +7,7 @@
> #include "bcm4906.dtsi"
>
> / {
> - compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908";
> + compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
> model = "Netgear R8000P";
>
> memory@0 {
> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
> index 064f7f549665..296393d4aaab 100644
> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
> @@ -7,7 +7,7 @@
> #include "bcm4906.dtsi"
>
> / {
> - compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908";
> + compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
> model = "TP-Link Archer C2300 V1";
>
> memory@0 {
> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
> index 04f8524b5335..787c7ddf9102 100644
> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
> @@ -6,7 +6,7 @@
> #include "bcm4908.dtsi"
>
> / {
> - compatible = "asus,gt-ac5300", "brcm,bcm4908";
> + compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca";
> model = "Asus GT-AC5300";
>
> memory@0 {
> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
> index 3c2cf2d238b6..23b96c663239 100644
> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
> @@ -3,7 +3,7 @@
> #include "bcm4908.dtsi"
>
> / {
> - compatible = "netgear,raxe500", "brcm,bcm4908";
> + compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca";
> model = "Netgear RAXE500";
>
> memory@0 {
> --
> 2.34.1
>
On Sun, 24 Jul 2022 22:53:55 -0700, William Zhang wrote:
> Append "brcm,bcmbca" to BCM4908 chip family compatible strings to
> follow the convention of BCMBCA chip and help identifying chip family.
>
> Also add a bare bone generic 4908 board compatbile string to support any
> 4908 based board. This is useful for board bring-up test and kernel test
> with CPU and memory related change.
>
> Signed-off-by: William Zhang <[email protected]>
> Acked-by: Rafał Miłecki <[email protected]>
>
> ---
>
> Changes in v2:
> - Add Acked-by tag
> - Insert the 4908 generic compatible string in alphabetical order
> - Update commit message with more details of 4908 generic board dts
>
> Documentation/devicetree/bindings/arm/bcm/brcm,bcmbca.yaml | 4 ++++
> 1 file changed, 4 insertions(+)
>
Acked-by: Rob Herring <[email protected]>
On Sun, 24 Jul 2022 22:53:54 -0700, William Zhang wrote:
> BCM4908 is one of the Broadcom Broadband origin WLAN Router/Access
> Pointer SoCs. It was originally added by Rafał before Broadcom
> started to upstream the support for broadband SoCs. Now that Broadcom
> Broadband SoC is supported under arch ARCH_BCMBCA, this patch moves
> BCM4908 SoC device tree descriptions into BCMBCA binding.
>
> Signed-off-by: William Zhang <[email protected]>
> Acked-by: Rafał Miłecki <[email protected]>
>
> ---
>
> Changes in v2:
> - Add Acked-by tag
> - Improve commit message with more details
>
> .../bindings/arm/bcm/brcm,bcm4908.yaml | 42 -------------------
> .../bindings/arm/bcm/brcm,bcmbca.yaml | 21 ++++++++++
> 2 files changed, 21 insertions(+), 42 deletions(-)
> delete mode 100644 Documentation/devicetree/bindings/arm/bcm/brcm,bcm4908.yaml
>
Reviewed-by: Rob Herring <[email protected]>
Hi Rob,
On 07/25/2022 04:32 PM, Rob Herring wrote:
> On Sun, Jul 24, 2022 at 10:53:56PM -0700, William Zhang wrote:
>> Append "brcm,bcmbca" to compatible strings based on the new bcmbca
>> binding rule for BCM4908 family based boards. This will break drivers
>> that use the old compatible string for binding. Fortunately there is no
>> such usage in linux and u-boot.
>
> How does adding an additional compatible break things?
> In theory when some crazy code tries to match the entire string. But not
in linux, u-boot code and hopefully not in other bootloader and Os does
that. But this does change an existing compatible string so Krzysztof
suggested to add comment about the breakage in the commit message. I can
remove this and send v3 if you guys think it is necessary.
>>
>> Signed-off-by: William Zhang <[email protected]>
>> Acked-by: Rafał Miłecki <[email protected]>
>>
>> ---
>>
>> Changes in v2:
>> - Add Acked-by tag
>>
>> arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts | 2 +-
>> .../dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts | 2 +-
>> arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts | 2 +-
>> .../arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts | 2 +-
>> 4 files changed, 4 insertions(+), 4 deletions(-)
>>
>> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
>> index 2dd028438c22..d8b60575eb4f 100644
>> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
>> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-netgear-r8000p.dts
>> @@ -7,7 +7,7 @@
>> #include "bcm4906.dtsi"
>>
>> / {
>> - compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908";
>> + compatible = "netgear,r8000p", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
>> model = "Netgear R8000P";
>>
>> memory@0 {
>> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
>> index 064f7f549665..296393d4aaab 100644
>> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
>> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4906-tplink-archer-c2300-v1.dts
>> @@ -7,7 +7,7 @@
>> #include "bcm4906.dtsi"
>>
>> / {
>> - compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908";
>> + compatible = "tplink,archer-c2300-v1", "brcm,bcm4906", "brcm,bcm4908", "brcm,bcmbca";
>> model = "TP-Link Archer C2300 V1";
>>
>> memory@0 {
>> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
>> index 04f8524b5335..787c7ddf9102 100644
>> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
>> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-asus-gt-ac5300.dts
>> @@ -6,7 +6,7 @@
>> #include "bcm4908.dtsi"
>>
>> / {
>> - compatible = "asus,gt-ac5300", "brcm,bcm4908";
>> + compatible = "asus,gt-ac5300", "brcm,bcm4908", "brcm,bcmbca";
>> model = "Asus GT-AC5300";
>>
>> memory@0 {
>> diff --git a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
>> index 3c2cf2d238b6..23b96c663239 100644
>> --- a/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
>> +++ b/arch/arm64/boot/dts/broadcom/bcm4908/bcm4908-netgear-raxe500.dts
>> @@ -3,7 +3,7 @@
>> #include "bcm4908.dtsi"
>>
>> / {
>> - compatible = "netgear,raxe500", "brcm,bcm4908";
>> + compatible = "netgear,raxe500", "brcm,bcm4908", "brcm,bcmbca";
>> model = "Netgear RAXE500";
>>
>> memory@0 {
>> --
>> 2.34.1
>>
>
>
On So, 2022-07-24 at 22:53 -0700, William Zhang wrote:
> With Broadcom Broadband arch ARCH_BCMBCA supported in the kernel, this
> patch series migrate the ARCH_BCM4908 symbol to ARCH_BCMBCA. Hence
> replace ARCH_BCM4908 with ARCH_BCMBCA in subsystem Kconfig files.
>
> Signed-off-by: William Zhang <[email protected]>
> Acked-by: Guenter Roeck <[email protected]> (for watchdog)
> Acked-by: Bjorn Helgaas <[email protected]> (for drivers/pci)
Acked-by: Philipp Zabel <[email protected]> (for reset)
regards
Philipp
This is stupid
Sent from my iPhone
> On Jul 26, 2022, at 4:31 AM, Philipp Zabel <[email protected]> wrote:
>
> On So, 2022-07-24 at 22:53 -0700, William Zhang wrote:
>> With Broadcom Broadband arch ARCH_BCMBCA supported in the kernel, this
>> patch series migrate the ARCH_BCM4908 symbol to ARCH_BCMBCA. Hence
>> replace ARCH_BCM4908 with ARCH_BCMBCA in subsystem Kconfig files.
>>
>> Signed-off-by: William Zhang <[email protected]>
>> Acked-by: Guenter Roeck <[email protected]> (for watchdog)
>> Acked-by: Bjorn Helgaas <[email protected]> (for drivers/pci)
>
> Acked-by: Philipp Zabel <[email protected]> (for reset)
>
> regards
> Philipp
>
> ______________________________________________________
> Linux MTD discussion mailing list
> http://lists.infradead.org/mailman/listinfo/linux-mtd/
On 2022-07-26 03:09, William Zhang wrote:
> On 07/25/2022 04:32 PM, Rob Herring wrote:
>> On Sun, Jul 24, 2022 at 10:53:56PM -0700, William Zhang wrote:
>>> Append "brcm,bcmbca" to compatible strings based on the new bcmbca
>>> binding rule for BCM4908 family based boards. This will break drivers
>>> that use the old compatible string for binding. Fortunately there is
>>> no
>>> such usage in linux and u-boot.
>>
>> How does adding an additional compatible break things?
>> In theory when some crazy code tries to match the entire string. But
>> not
> in linux, u-boot code and hopefully not in other bootloader and Os
> does that. But this does change an existing compatible string so
> Krzysztof suggested to add comment about the breakage in the commit
> message. I can remove this and send v3 if you guys think it is
> necessary.
Krzysztof commented on ABI breakage [1] when you tried removing
"brcm,bcm4908" from the "compatible" list in your patch
[RFC PATCH 3/3] arm64: dts: bcmbca: update bcm4808 board dts file [2]
In this version of your patch you don't remove "brcm,bcm4908" anymore so
this change doesn't break anything. Adding a new "compatible" string
doesn't break things. You can remove that info from the commit message.
[1]
https://lore.kernel.org/linux-arm-kernel/[email protected]/
[2]
https://lore.kernel.org/linux-arm-kernel/[email protected]/
On 27/07/2022 12:39, Rafał Miłecki wrote:
> On 2022-07-26 03:09, William Zhang wrote:
>> On 07/25/2022 04:32 PM, Rob Herring wrote:
>>> On Sun, Jul 24, 2022 at 10:53:56PM -0700, William Zhang wrote:
>>>> Append "brcm,bcmbca" to compatible strings based on the new bcmbca
>>>> binding rule for BCM4908 family based boards. This will break drivers
>>>> that use the old compatible string for binding. Fortunately there is
>>>> no
>>>> such usage in linux and u-boot.
>>>
>>> How does adding an additional compatible break things?
>>> In theory when some crazy code tries to match the entire string. But
>>> not
>> in linux, u-boot code and hopefully not in other bootloader and Os
>> does that. But this does change an existing compatible string so
>> Krzysztof suggested to add comment about the breakage in the commit
>> message. I can remove this and send v3 if you guys think it is
>> necessary.
>
> Krzysztof commented on ABI breakage [1] when you tried removing
> "brcm,bcm4908" from the "compatible" list in your patch
> [RFC PATCH 3/3] arm64: dts: bcmbca: update bcm4808 board dts file [2]
>
> In this version of your patch you don't remove "brcm,bcm4908" anymore so
> this change doesn't break anything. Adding a new "compatible" string
> doesn't break things. You can remove that info from the commit message.
Thanks... It is second thing (after not existing Reviewed-by) attributed
to me by William, although here probably by misunderstanding... So for
clarity (obvious stuff is not always obvious to everyone):
1. Removal of compatible is an ABI break.
2. Add of compatible is not an ABI break.
See also:
https://elixir.bootlin.com/linux/v5.19-rc8/source/Documentation/devicetree/bindings/ABI.rst#L26
Best regards,
Krzysztof
On 2022-07-25 07:53, William Zhang wrote:
> With Broadcom Broadband arch ARCH_BCMBCA supported in the kernel, this
> patch series migrate the ARCH_BCM4908 symbol to ARCH_BCMBCA. Hence
> replace ARCH_BCM4908 with ARCH_BCMBCA in subsystem Kconfig files.
>
> Signed-off-by: William Zhang <[email protected]>
> Acked-by: Guenter Roeck <[email protected]> (for watchdog)
> Acked-by: Bjorn Helgaas <[email protected]> (for drivers/pci)
I still think it may be a bad idea for all below drivers. Please see my
previous e-mail:
Re: [RESEND PATCH 6/9] arm64: bcmbca: Make BCM4908 drivers depend on
ARCH_BCMBCA
https://lore.kernel.org/linux-arm-kernel/[email protected]/
I think we should:
1. Keep ARCH_BCM4908 for 4908 specific drivers (e.g. mtd, pinctrl, net)
2. Use ARCH_BCMBCA for more generic drivers (e.g. I2C, PCI,serial, WD)
> Changes in v2:
> - Add Acked-by tags
> - Update commit message with more details
>
> drivers/i2c/busses/Kconfig | 4 ++--
> drivers/mtd/parsers/Kconfig | 6 +++---
> drivers/net/ethernet/broadcom/Kconfig | 4 ++--
> drivers/pci/controller/Kconfig | 2 +-
> drivers/phy/broadcom/Kconfig | 4 ++--
> drivers/pinctrl/bcm/Kconfig | 4 ++--
> drivers/reset/Kconfig | 2 +-
> drivers/soc/bcm/bcm63xx/Kconfig | 4 ++--
> drivers/tty/serial/Kconfig | 4 ++--
> drivers/watchdog/Kconfig | 2 +-
> 10 files changed, 18 insertions(+), 18 deletions(-)
>
> diff --git a/drivers/i2c/busses/Kconfig b/drivers/i2c/busses/Kconfig
> index 45a4e9f1b639..fd9a4dd01997 100644
> --- a/drivers/i2c/busses/Kconfig
> +++ b/drivers/i2c/busses/Kconfig
> @@ -487,8 +487,8 @@ config I2C_BCM_KONA
>
> config I2C_BRCMSTB
> tristate "BRCM Settop/DSL I2C controller"
> - depends on ARCH_BCM2835 || ARCH_BCM4908 || ARCH_BCMBCA || \
> - ARCH_BRCMSTB || BMIPS_GENERIC || COMPILE_TEST
> + depends on ARCH_BCM2835 || ARCH_BCMBCA || ARCH_BRCMSTB || \
> + BMIPS_GENERIC || COMPILE_TEST
> default y
> help
> If you say yes to this option, support will be included for the
> diff --git a/drivers/mtd/parsers/Kconfig b/drivers/mtd/parsers/Kconfig
> index b43df73927a0..d6db655a1d24 100644
> --- a/drivers/mtd/parsers/Kconfig
> +++ b/drivers/mtd/parsers/Kconfig
> @@ -69,8 +69,8 @@ config MTD_OF_PARTS
>
> config MTD_OF_PARTS_BCM4908
> bool "BCM4908 partitioning support"
> - depends on MTD_OF_PARTS && (ARCH_BCM4908 || COMPILE_TEST)
> - default ARCH_BCM4908
> + depends on MTD_OF_PARTS && (ARCH_BCMBCA || COMPILE_TEST)
> + default ARCH_BCMBCA
> help
> This provides partitions parser for BCM4908 family devices
> that can have multiple "firmware" partitions. It takes care of
> @@ -78,7 +78,7 @@ config MTD_OF_PARTS_BCM4908
>
> config MTD_OF_PARTS_LINKSYS_NS
> bool "Linksys Northstar partitioning support"
> - depends on MTD_OF_PARTS && (ARCH_BCM_5301X || ARCH_BCM4908 ||
> COMPILE_TEST)
> + depends on MTD_OF_PARTS && (ARCH_BCM_5301X || ARCH_BCMBCA ||
> COMPILE_TEST)
> default ARCH_BCM_5301X
> help
> This provides partitions parser for Linksys devices based on
> Broadcom
> diff --git a/drivers/net/ethernet/broadcom/Kconfig
> b/drivers/net/ethernet/broadcom/Kconfig
> index 56e0fb07aec7..f4e1ca68d831 100644
> --- a/drivers/net/ethernet/broadcom/Kconfig
> +++ b/drivers/net/ethernet/broadcom/Kconfig
> @@ -53,8 +53,8 @@ config B44_PCI
>
> config BCM4908_ENET
> tristate "Broadcom BCM4908 internal mac support"
> - depends on ARCH_BCM4908 || COMPILE_TEST
> - default y if ARCH_BCM4908
> + depends on ARCH_BCMBCA || COMPILE_TEST
> + default y if ARCH_BCMBCA
> help
> This driver supports Ethernet controller integrated into Broadcom
> BCM4908 family SoCs.
> diff --git a/drivers/pci/controller/Kconfig
> b/drivers/pci/controller/Kconfig
> index d1c5fcf00a8a..bfd9bac37e24 100644
> --- a/drivers/pci/controller/Kconfig
> +++ b/drivers/pci/controller/Kconfig
> @@ -274,7 +274,7 @@ config VMD
>
> config PCIE_BRCMSTB
> tristate "Broadcom Brcmstb PCIe host controller"
> - depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCM4908 || \
> + depends on ARCH_BRCMSTB || ARCH_BCM2835 || ARCH_BCMBCA || \
> BMIPS_GENERIC || COMPILE_TEST
> depends on OF
> depends on PCI_MSI_IRQ_DOMAIN
> diff --git a/drivers/phy/broadcom/Kconfig
> b/drivers/phy/broadcom/Kconfig
> index 93a6a8ee4716..1d89a2fd9b79 100644
> --- a/drivers/phy/broadcom/Kconfig
> +++ b/drivers/phy/broadcom/Kconfig
> @@ -93,11 +93,11 @@ config PHY_BRCM_SATA
>
> config PHY_BRCM_USB
> tristate "Broadcom STB USB PHY driver"
> - depends on ARCH_BCM4908 || ARCH_BRCMSTB || COMPILE_TEST
> + depends on ARCH_BCMBCA || ARCH_BRCMSTB || COMPILE_TEST
> depends on OF
> select GENERIC_PHY
> select SOC_BRCMSTB if ARCH_BRCMSTB
> - default ARCH_BCM4908 || ARCH_BRCMSTB
> + default ARCH_BCMBCA || ARCH_BRCMSTB
> help
> Enable this to support the Broadcom STB USB PHY.
> This driver is required by the USB XHCI, EHCI and OHCI
> diff --git a/drivers/pinctrl/bcm/Kconfig b/drivers/pinctrl/bcm/Kconfig
> index 8f4d89806fcb..35b51ce4298e 100644
> --- a/drivers/pinctrl/bcm/Kconfig
> +++ b/drivers/pinctrl/bcm/Kconfig
> @@ -31,13 +31,13 @@ config PINCTRL_BCM2835
>
> config PINCTRL_BCM4908
> tristate "Broadcom BCM4908 pinmux driver"
> - depends on OF && (ARCH_BCM4908 || COMPILE_TEST)
> + depends on OF && (ARCH_BCMBCA || COMPILE_TEST)
> select PINMUX
> select PINCONF
> select GENERIC_PINCONF
> select GENERIC_PINCTRL_GROUPS
> select GENERIC_PINMUX_FUNCTIONS
> - default ARCH_BCM4908
> + default ARCH_BCMBCA
> help
> Driver for BCM4908 family SoCs with integrated pin controller.
>
> diff --git a/drivers/reset/Kconfig b/drivers/reset/Kconfig
> index f9a7cee01659..7ae71535fe2a 100644
> --- a/drivers/reset/Kconfig
> +++ b/drivers/reset/Kconfig
> @@ -201,7 +201,7 @@ config RESET_SCMI
>
> config RESET_SIMPLE
> bool "Simple Reset Controller Driver" if COMPILE_TEST || EXPERT
> - default ARCH_ASPEED || ARCH_BCM4908 || ARCH_BITMAIN || ARCH_REALTEK
> || ARCH_STM32 || (ARCH_INTEL_SOCFPGA && ARM64) || ARCH_SUNXI || ARC
> + default ARCH_ASPEED || ARCH_BCMBCA || ARCH_BITMAIN || ARCH_REALTEK
> || ARCH_STM32 || (ARCH_INTEL_SOCFPGA && ARM64) || ARCH_SUNXI || ARC
> help
> This enables a simple reset controller driver for reset lines that
> that can be asserted and deasserted by toggling bits in a
> contiguous,
> diff --git a/drivers/soc/bcm/bcm63xx/Kconfig
> b/drivers/soc/bcm/bcm63xx/Kconfig
> index 9e501c8ac5ce..355c34482076 100644
> --- a/drivers/soc/bcm/bcm63xx/Kconfig
> +++ b/drivers/soc/bcm/bcm63xx/Kconfig
> @@ -13,8 +13,8 @@ endif # SOC_BCM63XX
>
> config BCM_PMB
> bool "Broadcom PMB (Power Management Bus) driver"
> - depends on ARCH_BCM4908 || (COMPILE_TEST && OF)
> - default ARCH_BCM4908
> + depends on ARCH_BCMBCA || (COMPILE_TEST && OF)
> + default ARCH_BCMBCA
> select PM_GENERIC_DOMAINS if PM
> help
> This enables support for the Broadcom's PMB (Power Management Bus)
> that
> diff --git a/drivers/tty/serial/Kconfig b/drivers/tty/serial/Kconfig
> index e3279544b03c..f32bb01c3feb 100644
> --- a/drivers/tty/serial/Kconfig
> +++ b/drivers/tty/serial/Kconfig
> @@ -1100,8 +1100,8 @@ config SERIAL_TIMBERDALE
> config SERIAL_BCM63XX
> tristate "Broadcom BCM63xx/BCM33xx UART support"
> select SERIAL_CORE
> - depends on ARCH_BCM4908 || ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC
> || COMPILE_TEST
> - default ARCH_BCM4908 || ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC
> + depends on ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC || COMPILE_TEST
> + default ARCH_BCMBCA || BCM63XX || BMIPS_GENERIC
> help
> This enables the driver for the onchip UART core found on
> the following chipsets:
> diff --git a/drivers/watchdog/Kconfig b/drivers/watchdog/Kconfig
> index 32fd37698932..1f85ec8a4b3b 100644
> --- a/drivers/watchdog/Kconfig
> +++ b/drivers/watchdog/Kconfig
> @@ -1798,7 +1798,7 @@ config BCM7038_WDT
> tristate "BCM63xx/BCM7038 Watchdog"
> select WATCHDOG_CORE
> depends on HAS_IOMEM
> - depends on ARCH_BCM4908 || ARCH_BRCMSTB || BMIPS_GENERIC || BCM63XX
> || COMPILE_TEST
> + depends on ARCH_BCMBCA || ARCH_BRCMSTB || BMIPS_GENERIC || BCM63XX
> || COMPILE_TEST
> help
> Watchdog driver for the built-in hardware in Broadcom 7038 and
> later SoCs used in set-top boxes. BCM7038 was made public
On 7/27/22 05:31, Rafał Miłecki wrote:
> On 2022-07-25 07:53, William Zhang wrote:
>> With Broadcom Broadband arch ARCH_BCMBCA supported in the kernel, this
>> patch series migrate the ARCH_BCM4908 symbol to ARCH_BCMBCA. Hence
>> replace ARCH_BCM4908 with ARCH_BCMBCA in subsystem Kconfig files.
>>
>> Signed-off-by: William Zhang <[email protected]>
>> Acked-by: Guenter Roeck <[email protected]> (for watchdog)
>> Acked-by: Bjorn Helgaas <[email protected]> (for drivers/pci)
>
> I still think it may be a bad idea for all below drivers. Please see my
> previous e-mail:
> Re: [RESEND PATCH 6/9] arm64: bcmbca: Make BCM4908 drivers depend on ARCH_BCMBCA
> https://lore.kernel.org/linux-arm-kernel/[email protected]/
>
> I think we should:
> 1. Keep ARCH_BCM4908 for 4908 specific drivers (e.g. mtd, pinctrl, net)
> 2. Use ARCH_BCMBCA for more generic drivers (e.g. I2C, PCI,serial, WD)
IMHO here is no point in keeping an ARCH_BCM4908 anymore when the whole point of the patch series is to do a broad conversion of ARCH_BCM4908 into ARCH_BCMBCA. Even if some of the drivers are considered or thought to be 4908-specific, this is not going to be an issue in practice because there ought to be appropriate compatible strings such that even if you built a 4908-specific driver into a generic ARCH_BCMCA kernel, the actual probing would only happen on 4908.
Now let us flip it the other way round, let's say we keep ARCH_BCM4908 as a sub-arch of ARCH_BCMBCA, then this sets a precedent for adding more and more of those ARCH_BCM4906, ARCH_BCM4912 etc. etc to future kernels under the same reasons that we might want to gate certain drivers to certain sub-arches. But what good does that do?
At some point we got to make it simple for the users, and the simplest way is to have ARCH_BCMBCA only and let DT dictate the device specific probing.
--
Florian