platform/x86: intel_scu_ipc: Add constants for register offsets
authorMika Westerberg <mika.westerberg@linux.intel.com>
Wed, 22 Jan 2020 16:28:05 +0000 (19:28 +0300)
committerAndy Shevchenko <andriy.shevchenko@linux.intel.com>
Wed, 22 Jan 2020 16:52:16 +0000 (18:52 +0200)
This makes the code more readable. These are taken from intel_pmc_ipc.c
which implements the same thing.

Signed-off-by: Mika Westerberg <mika.westerberg@linux.intel.com>
Reviewed-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
Signed-off-by: Andy Shevchenko <andriy.shevchenko@linux.intel.com>
drivers/platform/x86/intel_scu_ipc.c

index e330ec7..a9b6dec 100644 (file)
@@ -97,12 +97,14 @@ static struct intel_scu_ipc_dev  ipcdev; /* Only one for now */
 
 #define IPC_STATUS             0x04
 #define IPC_STATUS_IRQ         BIT(2)
+#define IPC_STATUS_ERR         BIT(1)
+#define IPC_STATUS_BUSY                BIT(0)
 
 /*
- * IPC Read Buffer (Read Only):
- * 16 byte buffer for receiving data from SCU, if IPC command
- * processing results in response data
+ * IPC Write/Read Buffers:
+ * 16 byte buffer for sending and receiving data to and from SCU.
  */
+#define IPC_WRITE_BUFFER       0x80
 #define IPC_READ_BUFFER                0x90
 
 #define IPC_I2C_CNTRL_ADDR     0
@@ -131,7 +133,7 @@ static inline void ipc_command(struct intel_scu_ipc_dev *scu, u32 cmd)
  */
 static inline void ipc_data_writel(struct intel_scu_ipc_dev *scu, u32 data, u32 offset)
 {
-       writel(data, scu->ipc_base + 0x80 + offset);
+       writel(data, scu->ipc_base + IPC_WRITE_BUFFER + offset);
 }
 
 /*
@@ -143,7 +145,7 @@ static inline void ipc_data_writel(struct intel_scu_ipc_dev *scu, u32 data, u32
  */
 static inline u8 ipc_read_status(struct intel_scu_ipc_dev *scu)
 {
-       return __raw_readl(scu->ipc_base + 0x04);
+       return __raw_readl(scu->ipc_base + IPC_STATUS);
 }
 
 /* Read ipc byte data */
@@ -165,17 +167,17 @@ static inline int busy_loop(struct intel_scu_ipc_dev *scu)
        u32 loop_count = 100000;
 
        /* break if scu doesn't reset busy bit after huge retry */
-       while ((status & BIT(0)) && --loop_count) {
+       while ((status & IPC_STATUS_BUSY) && --loop_count) {
                udelay(1); /* scu processing time is in few u secods */
                status = ipc_read_status(scu);
        }
 
-       if (status & BIT(0)) {
+       if (status & IPC_STATUS_BUSY) {
                dev_err(scu->dev, "IPC timed out");
                return -ETIMEDOUT;
        }
 
-       if (status & BIT(1))
+       if (status & IPC_STATUS_ERR)
                return -EIO;
 
        return 0;
@@ -192,7 +194,7 @@ static inline int ipc_wait_for_interrupt(struct intel_scu_ipc_dev *scu)
        }
 
        status = ipc_read_status(scu);
-       if (status & BIT(1))
+       if (status & IPC_STATUS_ERR)
                return -EIO;
 
        return 0;