From: Rafał Miłecki <rafal@xxxxxxxxxx> 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 -- 2.26.2