On 03/04/2024 18:20, Lorenzo Bianconi wrote: > Introduce EN7581 clock support to clk-en7523 driver. > > Tested-by: Zhengping Zhang <zhengping.zhang@xxxxxxxxxx> > Signed-off-by: Lorenzo Bianconi <lorenzo@xxxxxxxxxx> > + 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