On Wed, 11 Oct 2023 at 18:49, Rob Herring <robh@xxxxxxxxxx> wrote: > > On Sun, Aug 27, 2023 at 02:50:18PM +0300, Dmitry Baryshkov wrote: > > Add a simple driver that handles scaling of L2 frequency and voltages. > > > > Signed-off-by: Dmitry Baryshkov <dmitry.baryshkov@xxxxxxxxxx> > > --- > > [...] > > > +static const struct of_device_id krait_l2_match_table[] = { > > + { .compatible = "qcom,krait-l2-cache" }, > > + {} > > +}; > > +MODULE_DEVICE_TABLE(of, krait_l2_match_table); > > + > > +static struct platform_driver krait_l2_driver = { > > + .probe = krait_l2_probe, > > + .remove = krait_l2_remove, > > + .driver = { > > + .name = "qcom-krait-l2", > > + .of_match_table = krait_l2_match_table, > > + .sync_state = icc_sync_state, > > + }, > > +}; > > As I mentioned in the other thread, cache devices already have a struct > device. Specifically, they have a struct device (no subclass) on the > cpu_subsys bus type. So there should be no need for a platform device > and second struct device. > > See drivers/acpi/processor_driver.c for an example. Or grep any use of > "cpu_subsys". Most likely you mean drivers/base/cacheinfo.c. I saw this code, I don't think it makes a good fit here. The cacheinfo devices provide information only, they are not tied to DT nodes in any way. cpu_subsys doesn't provide a way to match drivers with subsys devices in the non-ACPI case, etc. Moreover, the whole cacheinfo subsys is non-existing on arm32, there is no cacheinfo implementation there, thanks to the overall variety of architectures. Thus said, I don't think cacheinfo makes a good fit for the case of scaling L2 cache. -- With best wishes Dmitry