[PATCH 4/4] clk: en7523: add EN7581 support

Krzysztof Kozlowski krzysztof.kozlowski at linaro.org
Wed Apr 3 23:36:43 PDT 2024


On 03/04/2024 18:20, Lorenzo Bianconi wrote:
> Introduce EN7581 clock support to clk-en7523 driver.
> 
> Tested-by: Zhengping Zhang <zhengping.zhang at airoha.com>
> Signed-off-by: Lorenzo Bianconi <lorenzo at kernel.org>


> +	return 0;
> +}
> +
>  static int en7523_clk_probe(struct platform_device *pdev)
>  {
>  	struct device_node *node = pdev->dev.of_node;
> @@ -306,6 +413,12 @@ static int en7523_clk_probe(struct platform_device *pdev)
>  	if (IS_ERR(np_base))
>  		return PTR_ERR(np_base);
>  
> +	if (of_device_is_compatible(node, "airoha,en7581-scu")) {

Having matching and compatible comparisons inside various code is
discouraged. Does not scale. Use driver/match data to store some sort of
flags and check for the flag or some other parameter. The best if
compatible appears once and only once: in of_device_id.

> +		r = en7581_clk_hw_init(pdev, base, np_base);
> +		if (r)
> +			return r;
> +	}
> +
>  	clk_data = devm_kzalloc(&pdev->dev,
>  				struct_size(clk_data, hws, EN7523_NUM_CLOCKS),
>  				GFP_KERNEL);
> @@ -329,8 +442,15 @@ static const struct clk_ops en7523_pcie_ops = {
>  	.unprepare = en7523_pci_unprepare,
>  };
>  
> +static const struct clk_ops en7581_pcie_ops = {
> +	.is_enabled = en7581_pci_is_enabled,
> +	.prepare = en7581_pci_prepare,
> +	.unprepare = en7581_pci_unprepare,
> +};
> +
>  static const struct of_device_id of_match_clk_en7523[] = {
>  	{ .compatible = "airoha,en7523-scu", .data = &en7523_pcie_ops },
> +	{ .compatible = "airoha,en7581-scu", .data = &en7581_pcie_ops },
>  	{ /* sentinel */ }
>  };
>  

Best regards,
Krzysztof




More information about the linux-arm-kernel mailing list