mbox series

[0/2] Broadcom's PMB (Power Management Bus) support

Message ID 20201211215942.5726-1-zajec5@gmail.com
Headers show
Series Broadcom's PMB (Power Management Bus) support | expand

Message

Rafał Miłecki Dec. 11, 2020, 9:59 p.m. UTC
From: Rafał Miłecki <rafal@milecki.pl>

PMB is a hardware block used for powering SoC devices like PCIe, USB,
SATA. Initially I planned to treat it as a reset controller and Philipp
pointed out in review that PMB driver should use a power subsystem.

This is my refactored support.

***

Please note one difference when compared to the initial reset attempt.

As I store info about SoC devices in the driver now, I had to put
support for multiple buses there. That's required to avoid things like:

compatible = "brcm,bcm4908-pmb-no-1";
compatible = "brcm,bcm4908-pmb-no-2";

So now a single "reg" covers bigger buses (e.g. 0x40) in size, see:

reg = <0x802800e0 0x40>;

Other SoCs my use something like:

reg = <0x802800e0 0x20>;
reg = <0x802800e0 0x60>;

***

AFAIU this should go through Florian's tree. I based in on top of the
soc-arm64/next.

Rafał Miłecki (2):
  dt-bindings: power: document Broadcom's PMB binding
  soc: bcm: add PM driver for Broadcom's PMB

 .../bindings/power/brcm,bcm-pmb.yaml          |  50 +++
 drivers/soc/bcm/Kconfig                       |   8 +
 drivers/soc/bcm/Makefile                      |   1 +
 drivers/soc/bcm/bcm-pmb.c                     | 335 ++++++++++++++++++
 include/dt-bindings/soc/bcm-pmb.h             |  11 +
 5 files changed, 405 insertions(+)
 create mode 100644 Documentation/devicetree/bindings/power/brcm,bcm-pmb.yaml
 create mode 100644 drivers/soc/bcm/bcm-pmb.c
 create mode 100644 include/dt-bindings/soc/bcm-pmb.h