#include <linux/slab.h>
 #include <linux/pm.h>
 #include <linux/thermal.h>
-
-#include <asm/intel_scu_ipc.h>
+#include <linux/mfd/intel_msic.h>
 
 /* Number of thermal sensors */
 #define MSIC_THERMAL_SENSORS   4
 
 /* ADC1 - thermal registers */
-#define MSIC_THERM_ADC1CNTL1   0x1C0
 #define MSIC_ADC_ENBL          0x10
 #define MSIC_ADC_START         0x08
 
-#define MSIC_THERM_ADC1CNTL3   0x1C2
 #define MSIC_ADCTHERM_ENBL     0x04
 #define MSIC_ADCRRDATA_ENBL    0x05
 #define MSIC_CHANL_MASK_VAL    0x0F
 #define ADC_VAL60C             315
 
 /* ADC base addresses */
-#define ADC_CHNL_START_ADDR    0x1C5   /* increments by 1 */
-#define ADC_DATA_START_ADDR    0x1D4   /* increments by 2 */
+#define ADC_CHNL_START_ADDR    INTEL_MSIC_ADC1ADDR0    /* increments by 1 */
+#define ADC_DATA_START_ADDR    INTEL_MSIC_ADC1SNS0H    /* increments by 2 */
 
 /* MSIC die attributes */
 #define MSIC_DIE_ADC_MIN       488
        addr = td_info->chnl_addr;
 
        /* Enable the msic for conversion before reading */
-       ret = intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL3, MSIC_ADCRRDATA_ENBL);
+       ret = intel_msic_reg_write(INTEL_MSIC_ADC1CNTL3, MSIC_ADCRRDATA_ENBL);
        if (ret)
                return ret;
 
        /* Re-toggle the RRDATARD bit (temporary workaround) */
-       ret = intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL3, MSIC_ADCTHERM_ENBL);
+       ret = intel_msic_reg_write(INTEL_MSIC_ADC1CNTL3, MSIC_ADCTHERM_ENBL);
        if (ret)
                return ret;
 
        /* Read the higher bits of data */
-       ret = intel_scu_ipc_ioread8(addr, &data);
+       ret = intel_msic_reg_read(addr, &data);
        if (ret)
                return ret;
 
        adc_val = (data << 2);
        addr++;
 
-       ret = intel_scu_ipc_ioread8(addr, &data);/* Read lower bits */
+       ret = intel_msic_reg_read(addr, &data);/* Read lower bits */
        if (ret)
                return ret;
 
        int ret;
        uint8_t data;
 
-       ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL1, &data);
+       ret = intel_msic_reg_read(INTEL_MSIC_ADC1CNTL1, &data);
        if (ret)
                return ret;
 
                /* Just stop the ADC */
                data &= (~MSIC_ADC_START);
        }
-       return intel_scu_ipc_iowrite8(MSIC_THERM_ADC1CNTL1, data);
+       return intel_msic_reg_write(INTEL_MSIC_ADC1CNTL1, data);
 }
 
 /**
        int ret;
 
        /* Enable all the sensor channels */
-       ret = intel_scu_ipc_iowrite8(base_addr, SKIN_SENSOR0_CODE);
+       ret = intel_msic_reg_write(base_addr, SKIN_SENSOR0_CODE);
        if (ret)
                return ret;
 
-       ret = intel_scu_ipc_iowrite8(base_addr + 1, SKIN_SENSOR1_CODE);
+       ret = intel_msic_reg_write(base_addr + 1, SKIN_SENSOR1_CODE);
        if (ret)
                return ret;
 
-       ret = intel_scu_ipc_iowrite8(base_addr + 2, SYS_SENSOR_CODE);
+       ret = intel_msic_reg_write(base_addr + 2, SYS_SENSOR_CODE);
        if (ret)
                return ret;
 
        /* Since this is the last channel, set the stop bit
         * to 1 by ORing the DIE_SENSOR_CODE with 0x10 */
-       ret = intel_scu_ipc_iowrite8(base_addr + 3,
+       ret = intel_msic_reg_write(base_addr + 3,
                        (MSIC_DIE_SENSOR_CODE | 0x10));
        if (ret)
                return ret;
 {
        int ret;
        uint8_t data;
-       ret = intel_scu_ipc_ioread8(addr, &data);
+       ret = intel_msic_reg_read(addr, &data);
        if (ret)
                return ret;
        /* Set the stop bit to zero */
-       return intel_scu_ipc_iowrite8(addr, (data & 0xEF));
+       return intel_msic_reg_write(addr, (data & 0xEF));
 }
 
 /**
        uint8_t data;
 
        /* check whether ADC is enabled */
-       ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL1, &data);
+       ret = intel_msic_reg_read(INTEL_MSIC_ADC1CNTL1, &data);
        if (ret)
                return ret;
 
 
        /* ADC is already enabled; Looking for an empty channel */
        for (i = 0; i < ADC_CHANLS_MAX; i++) {
-               ret = intel_scu_ipc_ioread8(ADC_CHNL_START_ADDR + i, &data);
+               ret = intel_msic_reg_read(ADC_CHNL_START_ADDR + i, &data);
                if (ret)
                        return ret;
 
         * Ensure that adctherm is disabled before we
         * initialize the ADC
         */
-       ret = intel_scu_ipc_ioread8(MSIC_THERM_ADC1CNTL3, &data);
+       ret = intel_msic_reg_read(INTEL_MSIC_ADC1CNTL3, &data);
        if (ret)
                return ret;