[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