static ssize_t fsl_otp_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { unsigned int index = attr - otp_kattr; u32 value = 0; int ret; ret = clk_prepare_enable(otp_clk); if (ret) return 0; mutex_lock(&otp_mutex); set_otp_timing(); ret = otp_wait_busy(0); if (ret) goto out; value = __raw_readl(otp_base + HW_OCOTP_CUST_N(index)); out: mutex_unlock(&otp_mutex); clk_disable_unprepare(otp_clk); return ret ? 0 : sprintf(buf, "0x%x\n", value); }
static ssize_t fsl_otp_show(struct kobject *kobj, struct kobj_attribute *attr, char *buf) { unsigned int index = attr - otp_kattr; u32 value = 0; int ret; ret = fsl_otp_readl(HW_OCOTP_CUST_N(index), &value); return ret ? 0 : sprintf(buf, "0x%x\n", value); }