#include <linux/io.h>
#include <linux/mx8_mu.h>
+static int version;
/*!
* This function sets the Flag n of the MU.
if (reg > 0)
return -EINVAL;
- offset = unlikely((readl_relaxed(base) >> 16) == MU_VER_ID_V10)
+ offset = unlikely(version == MU_VER_ID_V10)
? MU_V10_ACR_OFFSET1 : MU_ACR_OFFSET1;
reg = readl_relaxed(base + offset);
{
uint32_t reg, offset;
- offset = unlikely((readl_relaxed(base) >> 16) == MU_VER_ID_V10)
+ offset = unlikely(version == MU_VER_ID_V10)
? MU_V10_ASR_OFFSET1 : MU_ASR_OFFSET1;
reg = readl_relaxed(base + offset);
{
uint32_t reg, offset;
- offset = unlikely((readl_relaxed(base) >> 16) == MU_VER_ID_V10)
+ offset = unlikely(version == MU_VER_ID_V10)
? MU_V10_ACR_OFFSET1 : MU_ACR_OFFSET1;
reg = readl_relaxed(base + offset);
{
uint32_t reg, offset;
- offset = unlikely((readl_relaxed(base) >> 16) == MU_VER_ID_V10)
+ offset = unlikely(version == MU_VER_ID_V10)
? MU_V10_ACR_OFFSET1 : MU_ACR_OFFSET1;
reg = readl_relaxed(base + offset);
{
uint32_t mask = MU_SR_TE0_MASK1 >> regIndex;
- if (unlikely((readl_relaxed(base) >> 16) == MU_VER_ID_V10)) {
+ if (unlikely(version == MU_VER_ID_V10)) {
/* Wait TX register to be empty. */
while (!(readl_relaxed(base + MU_V10_ASR_OFFSET1) & mask))
;
{
uint32_t mask = MU_SR_RF0_MASK1 >> regIndex;
- if (unlikely((readl_relaxed(base) >> 16) == MU_VER_ID_V10)) {
+ if (unlikely(version == MU_VER_ID_V10)) {
/* Wait RX register to be full. */
while (!(readl_relaxed(base + MU_V10_ASR_OFFSET1) & mask))
;
{
uint32_t reg, offset;
- offset = unlikely((readl_relaxed(base) >> 16) == MU_VER_ID_V10)
- ? MU_V10_ACR_OFFSET1 : MU_ACR_OFFSET1;
+ version = readl_relaxed(base) >> 16;
+ offset = unlikely(version == MU_VER_ID_V10)
+ ? MU_V10_ACR_OFFSET1 : MU_ACR_OFFSET1;
reg = readl_relaxed(base + offset);
/* Clear GIEn, RIEn, TIEn, GIRn and ABFn. */