[PATCH 2/2] net: stmmac: dwmac-rk: Validate rockchip,grf and php-grf during probe
Andrew Lunn
andrew at lunn.ch
Thu Mar 6 14:37:27 PST 2025
On Thu, Mar 06, 2025 at 09:09:46PM +0000, Jonas Karlman wrote:
> All Rockchip GMAC variants require writing to GRF to configure e.g.
> interface mode and MAC rx/tx delay. The GRF syscon regmap is located
> with help of a rockchip,grf and rockchip,php-grf phandle.
> @@ -1813,8 +1564,24 @@ static struct rk_priv_data *rk_gmac_setup(struct platform_device *pdev,
>
> bsp_priv->grf = syscon_regmap_lookup_by_phandle(dev->of_node,
> "rockchip,grf");
> - bsp_priv->php_grf = syscon_regmap_lookup_by_phandle(dev->of_node,
> - "rockchip,php-grf");
> + if (IS_ERR(bsp_priv->grf)) {
> + ret = PTR_ERR(bsp_priv->grf);
> + dev_err_probe(dev, ret, "failed to lookup rockchip,grf\n");
> + return ERR_PTR(ret);
> + }
> +
> + bsp_priv->php_grf =
> + syscon_regmap_lookup_by_phandle_optional(dev->of_node,
> + "rockchip,php-grf");
> + if ((of_device_is_compatible(dev->of_node, "rockchip,rk3588-gmac") ||
> + of_device_is_compatible(dev->of_node, "rockchip,rk3576-gmac")) &&
> + !bsp_priv->php_grf)
> + bsp_priv->php_grf = ERR_PTR(-ENODEV);
It seems odd you say all variants need this property, and then you
look for two specific variants here and do something different? Why
are these two special?
Andrew
More information about the linux-arm-kernel
mailing list