[PATCH v12 2/2] memory: mtk-smi: mt8188: Add SMI reset and clamp

Yong Wu (吴勇) Yong.Wu at mediatek.com
Thu Feb 12 23:37:57 PST 2026


On Mon, 2026-01-19 at 20:05 +0800, Friday Yang wrote:
> To prevent handling glitch signals during MTCMOS on/off transitions,
> SMI requires clamp and reset operations. Parse the reset settings for
> SMI LARBs and the clamp settings for the SMI Sub-Common. Register
> genpd callback for the SMI LARBs located in image, camera and IPE
> subsystems, and apply reset and clamp operations within the callback.
> The 'mtk_smi_device_link_common' already parses the 'mediatek,smi'
> property. A similar step is required to obtain the SMI Common regmap
> from the 'mediatek,smi' property for the clamp function. To
> centralize
> this process and avoid redundant parsing, we achieve it together.
> 
> Signed-off-by: Friday Yang <friday.yang at mediatek.com>
> ---
>  drivers/memory/mtk-smi.c | 177 ++++++++++++++++++++++++++++++++++++-
> --
>  1 file changed, 167 insertions(+), 10 deletions(-)

[snip]

>  	smi_com_dev = &smi_com_pdev->dev;
> @@ -611,13 +688,36 @@ static int mtk_smi_device_link_common(struct
> device *dev, struct device **com_de
>  			       DL_FLAG_PM_RUNTIME | DL_FLAG_STATELESS);
>  	if (!link) {
>  		dev_err(dev, "Unable to link smi-common dev\n");
> -		put_device(&smi_com_pdev->dev);
> -		return -ENODEV;
> +		ret = -ENODEV;
> +		goto err_put_device;
>  	}
> 
>  	*com_dev = smi_com_dev;
> 
> +	if (require_clamp) {
> +		larb = dev_get_drvdata(dev);
> +		larb_gen = larb->larb_gen;
> +		larbid = larb->larbid;
> +		larb->smi_comm_in_port_id = larb_gen-
> >clamp_port[larbid];
> +		larb->smi_comm_syscon =
> syscon_node_to_regmap(smi_com_node);
> +		if (IS_ERR(larb->smi_comm_syscon)) {
> +			dev_err(dev, "Failed to get smi syscon for larb
> %d\n", larbid);
> +			ret = PTR_ERR(larb->smi_comm_syscon);
> +			larb->smi_comm_syscon = NULL;
> +			goto err_remove_link;
> +		}
> +	}

sorry for the late reply.

It looks strange to put this part in this device_link function. If we
want to avoid re-parse the "mediatek,smi" phandle, save the
"smi_com_node" to a variable, then move this part into the below
mtk_smi_larb_parse_reset.

Thanks.


More information about the linux-arm-kernel mailing list