[PATCH 00/19] pmdomain: imx: add i.MX8MP HSIO blk-ctrl driver

Ahmad Fatoum a.fatoum at pengutronix.de
Fri Jan 19 08:25:51 PST 2024


Unlike other i.MX8M variants, TF-A on i.MX8MP enables all power domains
up front, so later software can keep reusing it.

This benefited us because we didn't have a driver for the HSIO blk-ctrl,
which powers the USB PHYs and controllers on the i.MX8MP.

However, not all i.MX8MP SKUs have all power domains, e.g. the lite
variant lacks VPUs, NPU, ISP and DSP and their associated power domains.

Removing power domains altogether in TF-A though would break USB in barebox
when not booted over SDP as neither BootROM or TF-A would enable the HSIO
blk-ctrl.

In order to decouple barebox from prior HSIO initialization, port over the
Linux driver.

Ahmad Fatoum (19):
  drivers: soc: split off powerdomains into new pmdomain directory
  pmdomain: use single implementation for dev_pm_domain_attach
  pmdomain: power: drop unused parameters for internal functions
  pmdomain: associate devices with their power domain
  pmdomain: push have_genpd_providers check into __genpd_dev_pm_attach
  pmdomain: drop superfluous parameter to __genpd_dev_pm_attach
  pmdomain: implement dev_pm_domain_attach_by_id/name
  pmdomain: add support for enabling power domains later on
  pmdomain: imx: gpcv2: enable COMPILE_TEST build
  pmdomain: add stub definition for dev_pm_domain_detach
  pmdomain: add stub definition for pm_runtime_put_genpd
  pmdomain: implement pm_genpd_remove/of_genpd_del_provider for cleanup
  driver: have dev_request_mem_region_err_null warn if resource starts
    at 0
  include: linux/device.h: implement dev_platform_ioremap_resource
  regmap: include missing header from linux/regmap.h
  clk: define aliases for clk_bulk_prepare_enable/disable_unprepare
  driver: make driver.h header self-contained
  pmdomain: imx: add i.MX8MP HSIO blk-ctrl driver
  ARM: dts: i.MX8MP: drop barebox,allow-dummy for HSIO blk-ctrl

 arch/arm/dts/imx8mp.dtsi                      |   4 -
 drivers/Kconfig                               |   1 +
 drivers/Makefile                              |   1 +
 drivers/base/driver.c                         |   2 +-
 drivers/base/power.c                          | 209 +++++++-
 drivers/pmdomain/Kconfig                      |   7 +
 drivers/pmdomain/Makefile                     |   3 +
 drivers/pmdomain/imx/Kconfig                  |  16 +
 drivers/pmdomain/imx/Makefile                 |   3 +
 drivers/{soc => pmdomain}/imx/gpcv2.c         |   0
 drivers/pmdomain/imx/imx8mp-blk-ctrl.c        | 459 ++++++++++++++++++
 drivers/{soc => pmdomain}/ti/Kconfig          |   1 +
 drivers/{soc => pmdomain}/ti/Makefile         |   1 +
 .../{soc => pmdomain}/ti/ti_sci_pm_domains.c  |   0
 drivers/soc/Kconfig                           |   1 -
 drivers/soc/Makefile                          |   1 -
 drivers/soc/imx/Kconfig                       |   6 -
 drivers/soc/imx/Makefile                      |   1 -
 include/driver.h                              |   4 +
 include/linux/clk.h                           |   3 +
 include/linux/device.h                        |  12 +
 include/linux/regmap.h                        |   1 +
 include/pm_domain.h                           | 171 +++++--
 23 files changed, 838 insertions(+), 69 deletions(-)
 create mode 100644 drivers/pmdomain/Kconfig
 create mode 100644 drivers/pmdomain/Makefile
 create mode 100644 drivers/pmdomain/imx/Kconfig
 create mode 100644 drivers/pmdomain/imx/Makefile
 rename drivers/{soc => pmdomain}/imx/gpcv2.c (100%)
 create mode 100644 drivers/pmdomain/imx/imx8mp-blk-ctrl.c
 rename drivers/{soc => pmdomain}/ti/Kconfig (84%)
 rename drivers/{soc => pmdomain}/ti/Makefile (57%)
 rename drivers/{soc => pmdomain}/ti/ti_sci_pm_domains.c (100%)

-- 
2.39.2




More information about the barebox mailing list