aboutsummaryrefslogtreecommitdiffstats
path: root/security/smc/tf_crypto.c
diff options
context:
space:
mode:
Diffstat (limited to 'security/smc/tf_crypto.c')
-rw-r--r--security/smc/tf_crypto.c22
1 files changed, 22 insertions, 0 deletions
diff --git a/security/smc/tf_crypto.c b/security/smc/tf_crypto.c
index 1be70ce..f70b087 100644
--- a/security/smc/tf_crypto.c
+++ b/security/smc/tf_crypto.c
@@ -850,6 +850,28 @@ end:
spin_unlock_irqrestore(&clk_lock, flags);
}
+u32 tf_crypto_read_clock_value(uint32_t clock_paddr)
+{
+ u32 *clock_reg;
+ u32 val;
+ unsigned long flags;
+
+ dprintk(KERN_INFO "tf_crypto_read_clock_value: " \
+ "clock_paddr=0x%08X\n",
+ clock_paddr);
+
+ /* Ensure none concurrent access when changing clock registers */
+ spin_lock_irqsave(&clk_lock, flags);
+
+ clock_reg = (u32 *)IO_ADDRESS(clock_paddr);
+
+ val = __raw_readl(clock_reg);
+
+ spin_unlock_irqrestore(&clk_lock, flags);
+
+ return val;
+}
+
/*------------------------------------------------------------------------- */
/* CUS RPCs */
/*------------------------------------------------------------------------- */