Re: [RESEND PATCH 6/9] arm64: bcmbca: Make BCM4908 drivers depend on ARCH_BCMBCA
From: Rafał Miłecki <rafal@milecki.pl>
Date: 2022-07-21 07:53:39
Also in:
linux-arm-kernel, linux-gpio, linux-i2c, linux-mips, linux-pci, linux-phy, linux-serial, linux-watchdog, lkml
On 2022-07-21 02:07, William Zhang wrote:
Replace ARCH_BCM4908 with ARCH_BCMBCA in subsystem Kconfig files.
This change will make symbols (and relevant drivers): 1. MTD_OF_PARTS_BCM4908 2. MTD_OF_PARTS_LINKSYS_NS 3. BCM4908_ENET 4. PINCTRL_BCM4908 available on all BCA (sub)families. Above drivers are BCM4908 specific and I think they will never be needed for other BCA (sub)families. That list seems to be growing big: BCM47622, BCM4912 BCM63138, BCM63146, BCM63148, BCM63158, BCM63178, BCM6756, BCM6813, BCM6846, BCM6855, BCM6856, BCM6858, BCM6878. So I'm still wondering if dropping ARCH_BCM4908 makes sense. It seems to me we're saving 10 lines of clean Kconfig code while introducing a bit of mess to kernel config. If you take a look at Documentation/kbuild/kconfig-language.rst it says that symbols visibility should be limited to platform(s) (check the "Architecture and platform dependencies" part). There is there is however no clear documentation what platform should be. Personally I think I'd: 1. Keep ARCH_BCM4908 for BCM4908 (BCM4906 too) specific stuff 2. Use ARCH_BCMBCA for actual BCA-generic drivers (serial, WD, PMB) I'm happy to hear other maintainers opinions.
quoted hunk ↗ jump to hunk
Signed-off-by: William Zhang <william.zhang@broadcom.com> --- 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 thediff --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 Broadcomdiff --git a/drivers/net/ethernet/broadcom/Kconfigb/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/Kconfigb/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_DOMAINdiff --git a/drivers/phy/broadcom/Kconfigb/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 OHCIdiff --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/Kconfigb/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)thatdiff --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