[PATCH 2/4] net: stmmac: dwc-qos: Add FSD EQoS support

Andrew Lunn andrew at lunn.ch
Fri Nov 4 08:25:11 PDT 2022


> +static int dwc_eqos_setup_rxclock(struct platform_device *pdev)
> +{
> +	struct device_node *np = pdev->dev.of_node;
> +
> +	if (np && of_property_read_bool(np, "rx-clock-mux")) {
> +		unsigned int reg, val;
> +		struct regmap *syscon = syscon_regmap_lookup_by_phandle(np,
> +			"rx-clock-mux");
> +
> +		if (IS_ERR(syscon)) {
> +			dev_err(&pdev->dev, "couldn't get the rx-clock-mux syscon!\n");
> +			return PTR_ERR(syscon);
> +		}
> +
> +		if (of_property_read_u32_index(np, "rx-clock-mux", 1, &reg)) {
> +			dev_err(&pdev->dev, "couldn't get the rx-clock-mux reg. offset!\n");
> +			return -EINVAL;
> +		}
> +
> +		if (of_property_read_u32_index(np, "rx-clock-mux", 2, &val)) {
> +			dev_err(&pdev->dev, "couldn't get the rx-clock-mux reg. val!\n");
> +			return -EINVAL;
> +		}
> +
> +		regmap_write(syscon, reg, val);

This appears to be one of those binds which allows any magic value to
be placed into any register. That is not how DT should be used.

   Andrew



More information about the linux-arm-kernel mailing list