Re: [PATCH v4] pmdomain: imx: Make IMX8M/IMX9 BLK_CTRL tristate
From: Ulf Hansson
Date: Tue Jul 14 2026 - 09:34:02 EST
On Mon, Apr 20, 2026 at 4:22 AM Zhipeng Wang <zhipeng.wang_1@xxxxxxx> wrote:
>
> Convert IMX8M_BLK_CTRL and IMX9_BLK_CTRL from bool to tristate
> to allow building as loadable modules.
>
> This change is required to support Android devices using Generic Kernel
> Image (GKI) kernels, where SoC-specific drivers must be built as loadable
> modules rather than built into the core kernel image.
>
> For i.MX8M and i.MX9 devices running Android with GKI kernels, the
> BLK_CTRL drivers therefore need to be loadable. Without tristate
> support, power domains cannot be initialized correctly, making these
> systems non-functional under GKI.
>
> Add prompt strings to make these options visible and configurable
> in menuconfig, keeping them enabled by default on appropriate platforms.
>
> Also remove the IMX_GPCV2_PM_DOMAINS dependency from IMX9_BLK_CTRL.
> This dependency was incorrect from the beginning because i.MX93 uses a
> different power domain architecture compared to i.MX8M series:
>
> - i.MX8M uses GPCv2 (General Power Controller v2) for power domain
> management, hence IMX8M_BLK_CTRL correctly depends on it.
>
> - i.MX93 uses BLK_CTRL directly without GPCv2. The hardware doesn't
> have GPCv2 at all.
>
> Signed-off-by: Zhipeng Wang <zhipeng.wang_1@xxxxxxx>
> Reviewed-by: Frank Li <Frank.Li@xxxxxxx>
Apologize for the delay, I have simply missed this one.
Applied for next, thanks!
Kind regards
Uffe
> ---
> Changes in v4:
> - No functional changes
> - Added detailed explanation about GKI (Generic Kernel Image) requirement
> in the commit message to clarify why tristate support is needed for
> Android devices
>
> Changes in v3:
> - No functional changes
> - Fixed typo reported by Frank
> - Added Reviewed-by tag from Frank Li
>
> Changes in v2:
> - No functional changes
> - Expanded commit message to explain the architectural differences between
> i.MX8M and i.MX93 power domain management
> - Clarified why IMX_GPCV2_PM_DOMAINS dependency removal is correct for
> i.MX93
> ---
> drivers/pmdomain/imx/Kconfig | 11 +++++++----
> 1 file changed, 7 insertions(+), 4 deletions(-)
>
> diff --git a/drivers/pmdomain/imx/Kconfig b/drivers/pmdomain/imx/Kconfig
> index 00203615c65e..9168d183b0c5 100644
> --- a/drivers/pmdomain/imx/Kconfig
> +++ b/drivers/pmdomain/imx/Kconfig
> @@ -10,15 +10,18 @@ config IMX_GPCV2_PM_DOMAINS
> default y if SOC_IMX7D
>
> config IMX8M_BLK_CTRL
> - bool
> - default SOC_IMX8M && IMX_GPCV2_PM_DOMAINS
> + tristate "i.MX8M BLK CTRL driver"
> + depends on SOC_IMX8M
> + depends on IMX_GPCV2_PM_DOMAINS
> depends on PM_GENERIC_DOMAINS
> depends on COMMON_CLK
> + default y
>
> config IMX9_BLK_CTRL
> - bool
> - default SOC_IMX9 && IMX_GPCV2_PM_DOMAINS
> + tristate "i.MX93 BLK CTRL driver"
> + depends on SOC_IMX9
> depends on PM_GENERIC_DOMAINS
> + default y
>
> config IMX_SCU_PD
> bool "IMX SCU Power Domain driver"
> --
> 2.34.1