Re: [PATCH 2/2] soc: bcm: add PM driver for Broadcom's PMB

From: Florian Fainelli
Date: Mon Dec 14 2020 - 12:33:41 EST


On 12/14/20 4:24 AM, Rafał Miłecki wrote:
> On 11.12.2020 23:08, Florian Fainelli wrote:
>> On 12/11/20 1:59 PM, Rafał Miłecki wrote:
>>> From: Rafał Miłecki <rafal@xxxxxxxxxx>
>>>
>>> PMB can be found on BCM4908 and many other chipsets (e.g. BCM63138).
>>> It's needed to power on and off SoC blocks like PCIe, SATA, USB.
>>>
>>> Signed-off-by: Rafał Miłecki <rafal@xxxxxxxxxx>
>>
>> I will do a more thorough review tonight, however do you mind moving the
>> driver under drives/soc/bcm/bcm63xx? The first SoC that had PMB was
>> 63138 and that one is DSL.
>
> I now realized that bcm63xx's:
> * Kconfig is wrapper in: if SOC_BCM63XX
> * Makefile is conditional: obj-$(CONFIG_SOC_BCM63XX)
>
> So it means I've to either:
> 1. Refactor bcm63xx structure
> 2. Make SOC_BCM63XX selectable on ARCH_BCM4908 and select it
>
> I'm not sure if any of above is a really good idea. Any further thought,
> ideas?

Well, I was thinking about thing along those lines below, it's really
about putting drivers that belong to the same SoC family in the same
basket for easier maintenance while submitting patches/pull requests
from my side.

diff --git a/drivers/soc/bcm/Makefile b/drivers/soc/bcm/Makefile
index 7bc90e0bd773..0f0efa28d92b 100644
--- a/drivers/soc/bcm/Makefile
+++ b/drivers/soc/bcm/Makefile
@@ -1,5 +1,5 @@
# SPDX-License-Identifier: GPL-2.0-only
obj-$(CONFIG_BCM2835_POWER) += bcm2835-power.o
obj-$(CONFIG_RASPBERRYPI_POWER) += raspberrypi-power.o
-obj-$(CONFIG_SOC_BCM63XX) += bcm63xx/
+obj-y += bcm63xx/
obj-$(CONFIG_SOC_BRCMSTB) += brcmstb/
diff --git a/drivers/soc/bcm/bcm63xx/Kconfig
b/drivers/soc/bcm/bcm63xx/Kconfig
index 16f648a6c70a..76fb61e7377e 100644
--- a/drivers/soc/bcm/bcm63xx/Kconfig
+++ b/drivers/soc/bcm/bcm63xx/Kconfig
@@ -10,3 +10,8 @@ config BCM63XX_POWER
BCM6318, BCM6328, BCM6362 and BCM63268 SoCs.

endif # SOC_BCM63XX
+
+config BCM_PMB_POWER
+ tristate "Broadcom PMB bus power domain driver"
+ depends on BMIPS_GENERIC || ARCH_BCM4908 || COMPILE_TEST
+ default ARCH_BCM4908



--
Florian