On 28.03.2023 21:36, Bartosz Golaszewski wrote: > From: Shazad Hussain <quic_shazhuss@xxxxxxxxxxx> > > Add the clock driver for the Qualcomm Graphics Clock control module. > > Cc: Stephen Boyd <sboyd@xxxxxxxxxx> > Cc: Michael Turquette <mturquette@xxxxxxxxxxxx> > Signed-off-by: Shazad Hussain <quic_shazhuss@xxxxxxxxxxx> > [Bartosz: make ready for upstream] > Co-authored-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxx> > --- [...] > +/* Need to match the order of clocks in DT binding */ > +enum { > + DT_IFACE, I think it's never used? [...] > +static int gpu_cc_sa8775p_probe(struct platform_device *pdev) > +{ > + struct regmap *regmap; > + > + regmap = qcom_cc_map(pdev, &gpu_cc_sa8775p_desc); > + if (IS_ERR(regmap)) > + return PTR_ERR(regmap); > + > + clk_lucid_evo_pll_configure(&gpu_cc_pll0, regmap, &gpu_cc_pll0_config); > + clk_lucid_evo_pll_configure(&gpu_cc_pll1, regmap, &gpu_cc_pll1_config); > + > + /* > + * Keep the clocks always-ON > + * GPU_CC_CB_CLK > + */ > + regmap_update_bits(regmap, 0x93a4, BIT(0), BIT(0)); You set it as CRITICAL, this should be unnecessary now. Konrad > + > + return qcom_cc_really_probe(pdev, &gpu_cc_sa8775p_desc, regmap); > +} > + > +static struct platform_driver gpu_cc_sa8775p_driver = { > + .probe = gpu_cc_sa8775p_probe, > + .driver = { > + .name = "gpu_cc-sa8775p", > + .of_match_table = gpu_cc_sa8775p_match_table, > + }, > +}; > + > +static int __init gpu_cc_sa8775p_init(void) > +{ > + return platform_driver_register(&gpu_cc_sa8775p_driver); > +} > +subsys_initcall(gpu_cc_sa8775p_init); > + > +static void __exit gpu_cc_sa8775p_exit(void) > +{ > + platform_driver_unregister(&gpu_cc_sa8775p_driver); > +} > +module_exit(gpu_cc_sa8775p_exit); > + > +MODULE_DESCRIPTION("SA8775P GPUCC driver"); > +MODULE_LICENSE("GPL");