static ssize_t vdd_opp_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { if (attr == &vdd1_opp_attr) return sprintf(buf, "%hu\n", opp_find_freq_exact(mpu_dev, opp_get_rate(mpu_dev), true)->opp_id+1); else if (attr == &vdd2_opp_attr) return sprintf(buf, "%hu\n", opp_find_freq_exact(l3_dev, opp_get_rate(l3_dev), true)->opp_id+1); else if (attr == &vdd1_lock_attr) return sprintf(buf, "%hu\n", vdd1_locked); else if (attr == &vdd2_lock_attr) return sprintf(buf, "%hu\n", vdd2_locked); else if (attr == &dsp_freq_attr) return sprintf(buf, "%lu\n", opp_get_rate(iva_dev)/1000); else return -EINVAL; }
/** * omap_device_get_rate - Gets the current operating rate of the device * @dev - the device pointer * * This API returns the current operating rate of the device on success. * Else returns the error value. */ unsigned long omap_device_get_rate(struct device *dev) { return opp_get_rate(dev); }