On 22-02-22, 14:07, Lukasz Luba wrote:
+static int _of_find_opp_microwatt_property(struct device *dev)
+{
+ unsigned long freq = 0;
+ struct dev_pm_opp *opp;
+ struct device_node *np;
+ struct property *prop;
+
+ /* We only support "operating-points-v2" */
+ np = dev_pm_opp_of_get_opp_desc_node(dev);
+ if (!np)
+ return -EINVAL;
+
+ of_node_put(np);
+
+ /* Check if an OPP has needed property */
+ opp = dev_pm_opp_find_freq_ceil(dev, &freq);
+ if (IS_ERR(opp))
+ return -EINVAL;
+
+ prop = of_find_property(opp->np, "opp-microwatt", NULL);
+ dev_pm_opp_put(opp);
+ if (!prop)
+ return -EINVAL;
+
+ return 0;
+}
Please follow everything just like opp-microvolt is defined. Create a new field
in the struct dev_pm_opp, initialize it only once when the OPP is created, that
field should be used here instead of parsing the DT here again. There also needs
to be a debug file in debugfs for this new field.
Search for "supply" and "microvolt" in the OPP core, you will see all the places
that need it.