[PATCH v6 8/9] pmdomain: imx93-blk-ctrl: mask DSI and PXP PD domain register on i.MX91

Joy Zou posted 9 patches 7 months, 3 weeks ago
There is a newer version of this series
[PATCH v6 8/9] pmdomain: imx93-blk-ctrl: mask DSI and PXP PD domain register on i.MX91
Posted by Joy Zou 7 months, 3 weeks ago
The i.MX91 is derived from i.MX93, but there is no DSI and PXP in i.MX91,
so mask these.

Signed-off-by: Joy Zou <joy.zou@nxp.com>
---
Changes for v5:
1. add imx93-blk-ctrl driver change for imx91 support.
---
 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 0e2ba8ec55d7..04014dd5bd84 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];
@@ -418,6 +421,15 @@ static const struct regmap_access_table imx93_media_blk_ctl_access_table = {
 	.n_yes_ranges = ARRAY_SIZE(imx93_media_blk_ctl_yes_ranges),
 };
 
+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 = (const char *[]){ "axi", "apb", "nic", },
+	.num_clks = 3,
+	.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),
@@ -428,6 +440,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
Re: [PATCH v6 8/9] pmdomain: imx93-blk-ctrl: mask DSI and PXP PD domain register on i.MX91
Posted by Fabio Estevam 7 months, 3 weeks ago
On Mon, Jun 23, 2025 at 7:00 AM Joy Zou <joy.zou@nxp.com> wrote:

> +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 = (const char *[]){ "axi", "apb", "nic", },
> +       .num_clks = 3,

Instead of hardcoding the number of clocks, what about using
ARRAY_SIZE() instead?

Like it was done here:

https://lore.kernel.org/linux-arm-kernel/20250619062108.2016511-1-xiaolei.wang@windriver.com/