[PATCH v7 10/11] pmdomain: imx93-blk-ctrl: mask DSI and PXP PD domain register on i.MX91
Frank Li
Frank.li at nxp.com
Mon Jul 28 07:41:42 PDT 2025
On Mon, Jul 28, 2025 at 03:14:37PM +0800, Joy Zou wrote:
subject: pmdomain: imx93-blk-ctrl: skip DSI and PXP power domain on i.MX91
> The i.MX91 is derived from i.MX93, but there is no DSI and PXP in i.MX91,
> so skip these mask.
The i.MX91 is derived from i.MX93, but there is no DSI and PXP in i.MX91.
Add skip_mask in struct imx93_blk_ctrl_data, then skip DSI and PXP for
i.MX91 SoC.
>
> Signed-off-by: Joy Zou <joy.zou at nxp.com>
> ---
> Changes for v7:
> 1. Optimize i.MX91 num_clks hardcode with ARRAY_SIZE().
>
> Changes for v5:
> 1. The i.MX91 has different PD domain compared to i.MX93,
> so add new imx91 dev_data.
> ---
> drivers/pmdomain/imx/imx93-blk-ctrl.c | 15 +++++++++++++++
> 1 file changed, 15 insertions(+)
>
> diff --git a/drivers/pmdomain/imx/imx93-blk-ctrl.c b/drivers/pmdomain/imx/imx93-blk-ctrl.c
> index 1dcb84593e01..e094fe5a42bf 100644
> --- a/drivers/pmdomain/imx/imx93-blk-ctrl.c
> +++ b/drivers/pmdomain/imx/imx93-blk-ctrl.c
> @@ -86,6 +86,7 @@ struct imx93_blk_ctrl_domain {
>
> struct imx93_blk_ctrl_data {
> const struct imx93_blk_ctrl_domain_data *domains;
> + u32 skip_mask;
> int num_domains;
> const char * const *clk_names;
> int num_clks;
> @@ -250,6 +251,8 @@ static int imx93_blk_ctrl_probe(struct platform_device *pdev)
> int j;
>
> domain->data = data;
> + if (bc_data->skip_mask & BIT(i))
> + continue;
>
> for (j = 0; j < data->num_clks; j++)
> domain->clks[j].id = data->clk_names[j];
> @@ -422,6 +425,15 @@ static const char * const media_blk_clk_names[] = {
> "axi", "apb", "nic"
> };
>
> +static const struct imx93_blk_ctrl_data imx91_media_blk_ctl_dev_data = {
> + .domains = imx93_media_blk_ctl_domain_data,
> + .skip_mask = BIT(IMX93_MEDIABLK_PD_MIPI_DSI) | BIT(IMX93_MEDIABLK_PD_PXP),
> + .num_domains = ARRAY_SIZE(imx93_media_blk_ctl_domain_data),
> + .clk_names = media_blk_clk_names,
> + .num_clks = ARRAY_SIZE(media_blk_clk_names),
> + .reg_access_table = &imx93_media_blk_ctl_access_table,
> +};
> +
> static const struct imx93_blk_ctrl_data imx93_media_blk_ctl_dev_data = {
> .domains = imx93_media_blk_ctl_domain_data,
> .num_domains = ARRAY_SIZE(imx93_media_blk_ctl_domain_data),
> @@ -432,6 +444,9 @@ static const struct imx93_blk_ctrl_data imx93_media_blk_ctl_dev_data = {
>
> static const struct of_device_id imx93_blk_ctrl_of_match[] = {
> {
> + .compatible = "fsl,imx91-media-blk-ctrl",
> + .data = &imx91_media_blk_ctl_dev_data
> + }, {
> .compatible = "fsl,imx93-media-blk-ctrl",
> .data = &imx93_media_blk_ctl_dev_data
> }, {
> --
> 2.37.1
>
More information about the linux-arm-kernel
mailing list