[RFC 04/19] devfreq: imx-bus: Decouple imx-bus from icc made

Chanwoo Choi cwchoi00 at gmail.com
Fri Feb 26 11:52:42 EST 2021



On 21. 2. 20. 오전 1:00, Abel Vesa wrote:
> The link between an imx-bus device and its icc id will be done
> through the fsl,icc-id property in each dts node. The imx
> interconnect driver will pick up all the dts nodes that have that
> property defined and will link them to the rightfull icc id.
> 
> Signed-off-by: Abel Vesa <abel.vesa at nxp.com>
> ---
>   drivers/devfreq/imx-bus.c | 40 +++------------------------------------
>   1 file changed, 3 insertions(+), 37 deletions(-)
> 
> diff --git a/drivers/devfreq/imx-bus.c b/drivers/devfreq/imx-bus.c
> index 1c0c92d0eb08..9f0df88b29c1 100644
> --- a/drivers/devfreq/imx-bus.c
> +++ b/drivers/devfreq/imx-bus.c
> @@ -65,36 +65,6 @@ static void imx_bus_exit(struct device *dev)
>   	platform_device_unregister(priv->icc_pdev);
>   }
>   
> -/* imx_bus_init_icc() - register matching icc provider if required */
> -static int imx_bus_init_icc(struct device *dev)
> -{
> -	struct imx_bus *priv = dev_get_drvdata(dev);
> -	const char *icc_driver_name;
> -
> -	if (!of_get_property(dev->of_node, "#interconnect-cells", 0))
> -		return 0;
> -	if (!IS_ENABLED(CONFIG_INTERCONNECT_IMX)) {
> -		dev_warn(dev, "imx interconnect drivers disabled\n");
> -		return 0;
> -	}
> -
> -	icc_driver_name = of_device_get_match_data(dev);
> -	if (!icc_driver_name) {
> -		dev_err(dev, "unknown interconnect driver\n");
> -		return 0;
> -	}
> -
> -	priv->icc_pdev = platform_device_register_data(
> -			dev, icc_driver_name, -1, NULL, 0);
> -	if (IS_ERR(priv->icc_pdev)) {
> -		dev_err(dev, "failed to register icc provider %s: %ld\n",
> -				icc_driver_name, PTR_ERR(priv->icc_pdev));
> -		return PTR_ERR(priv->icc_pdev);
> -	}
> -
> -	return 0;
> -}
> -
>   static int imx_bus_probe(struct platform_device *pdev)
>   {
>   	struct device *dev = &pdev->dev;
> @@ -144,10 +114,6 @@ static int imx_bus_probe(struct platform_device *pdev)
>   		goto err;
>   	}
>   
> -	ret = imx_bus_init_icc(dev);
> -	if (ret)
> -		goto err;
> -
>   	return 0;
>   
>   err:
> @@ -156,9 +122,9 @@ static int imx_bus_probe(struct platform_device *pdev)
>   }
>   
>   static const struct of_device_id imx_bus_of_match[] = {
> -	{ .compatible = "fsl,imx8mq-noc", .data = "imx8mq-interconnect", },
> -	{ .compatible = "fsl,imx8mm-noc", .data = "imx8mm-interconnect", },
> -	{ .compatible = "fsl,imx8mn-noc", .data = "imx8mn-interconnect", },
> +	{ .compatible = "fsl,imx8mq-noc",},
> +	{ .compatible = "fsl,imx8mm-noc",},
> +	{ .compatible = "fsl,imx8mn-noc",},
>   	{ .compatible = "fsl,imx8m-noc", },
>   	{ .compatible = "fsl,imx8m-nic", },
>   	{ /* sentinel */ },
> 

For this patch, you need to get the ack of use of new 'fsl,icc-id 
property'. IMO, looks good to me.

Acked-by: Chanwoo Choi <cw00.choi at samsung.com>


And you must update the DT binding document.
[1] Documentation/devicetree/bindings/interconnect/fsl,imx8m-noc.yaml

Thanks,
Chanwoo Choi



More information about the linux-arm-kernel mailing list