Quoting Jeffrey Hugo (2019-01-30 08:36:11) [..] > +}; > +MODULE_DEVICE_TABLE(of, mmcc_msm8998_match_table); > + > +static int mmcc_msm8998_probe(struct platform_device *pdev) > +{ > + struct device *dev = &pdev->dev; > + int i, ret; > + struct regmap *regmap; > + struct clk *c; > + > + c = devm_clk_get(dev, "xo"); > + if (!IS_ERR(c)) > + dummy_xo_init.parent_names = > + (const char *[]){__clk_get_name(c)}; > + else > + return PTR_ERR(c); > + > + c = devm_clk_get(dev, "gpll0"); > + if (!IS_ERR(c)) > + dummy_gpll0_init.parent_names = > + (const char *[]){__clk_get_name(c)}; > + else > + return PTR_ERR(c); Urgh, my parent mapping series can't come be merged fast enough it seems! > + > + regmap = qcom_cc_map(pdev, &mmcc_msm8998_desc); > + if (IS_ERR(regmap)) > + return PTR_ERR(regmap); > + > + for (i = 0; i < ARRAY_SIZE(mmcc_msm8998_hws); i++) { > + ret = devm_clk_hw_register(dev, mmcc_msm8998_hws[i]); I think we should make this common to the qcom_cc_desc now. Can you throw in an optional list of clk_hw pointers that also get registered as its own patch and update the existing drivers that are all doing this? > + if (ret) > + return ret; > + } > + > + return qcom_cc_really_probe(pdev, &mmcc_msm8998_desc, regmap); > +}