static SOC_ENUM_SINGLE_DECL(rt1011_tdm_adc1_1_enum,    RT1011_TDM1_SET_3, 6,
        rt1011_tdm_adc_swap_select);
+static SOC_ENUM_SINGLE_DECL(rt1011_tdm_adc2_1_enum,    RT1011_TDM1_SET_3, 4,
+       rt1011_tdm_adc_swap_select);
 
 static void rt1011_reset(struct regmap *regmap)
 {
        /* TDM1 Data Out Selection */
        SOC_ENUM("TDM1 DOUT Source", rt1011_tdm1_adc1_dat_enum),
        SOC_ENUM("TDM1 DOUT Location", rt1011_tdm1_adc1_loc_enum),
-       SOC_ENUM("TDM1 ADCDAT Swap Select", rt1011_tdm_adc1_1_enum),
+       SOC_ENUM("TDM1 ADC1DAT Swap Select", rt1011_tdm_adc1_1_enum),
+       SOC_ENUM("TDM1 ADC2DAT Swap Select", rt1011_tdm_adc2_1_enum),
 
        /* Data Out Mode */
        SOC_ENUM("I2S ADC DOUT Mode", rt1011_adc_dout_mode_enum),
        SOC_SINGLE_EXT("R0 Calibration", SND_SOC_NOPM, 0, 1, 0,
                rt1011_r0_cali_get, rt1011_r0_cali_put),
        RT1011_R0_LOAD("R0 Load Mode"),
+
+       /* R0 temperature */
+       SOC_SINGLE("R0 Temperature", RT1011_STP_INITIAL_RESISTANCE_TEMP,
+               2, 255, 0),
 };
 
 static int rt1011_is_sys_clk_from_pll(struct snd_soc_dapm_widget *source,
 
 #define RT1011_STP_CALIB_RS_TEMP                       0x152a
 #define RT1011_INIT_RECIPROCAL_REG_24_16                               0x1538
 #define RT1011_INIT_RECIPROCAL_REG_15_0                                0x1539
+#define RT1011_STP_INITIAL_RESISTANCE_TEMP                             0x153c
 #define RT1011_STP_ALPHA_RECIPROCAL_MSB                                0x153e
 #define RT1011_SPK_RESISTANCE_1                                0x1544
 #define RT1011_SPK_RESISTANCE_2                                0x1546