* supplies it.
  */
 static const struct mtk_chip_config mtk_default_chip_info = {
-       .cs_pol = 0,
        .sample_sel = 0,
 };
 
 #endif
 
        if (mdata->dev_comp->enhance_timing) {
-               if (chip_config->cs_pol)
+               /* set CS polarity */
+               if (spi->mode & SPI_CS_HIGH)
                        reg_val |= SPI_CMD_CS_POL;
                else
                        reg_val &= ~SPI_CMD_CS_POL;
+
                if (chip_config->sample_sel)
                        reg_val |= SPI_CMD_SAMPLE_SEL;
                else
        u32 reg_val;
        struct mtk_spi *mdata = spi_master_get_devdata(spi->master);
 
+       if (spi->mode & SPI_CS_HIGH)
+               enable = !enable;
+
        reg_val = readl(mdata->base + SPI_CMD_REG);
        if (!enable) {
                reg_val |= SPI_CMD_PAUSE_EN;
 
        mdata = spi_master_get_devdata(master);
        mdata->dev_comp = of_id->data;
+
+       if (mdata->dev_comp->enhance_timing)
+               master->mode_bits |= SPI_CS_HIGH;
+
        if (mdata->dev_comp->must_tx)
                master->flags = SPI_MASTER_MUST_TX;