{
        u32 clk_src = mxc_get_clock(MXC_CSPI_CLK);
        s32 reg_ctrl, reg_config;
-       u32 ss_pol = 0, sclkpol = 0, sclkpha = 0, pre_div = 0, post_div = 0;
+       u32 ss_pol = 0, sclkpol = 0, sclkpha = 0, sclkctl = 0;
+       u32 pre_div = 0, post_div = 0;
        struct cspi_regs *regs = (struct cspi_regs *)mxcs->base;
 
        if (max_hz == 0) {
        if (mode & SPI_CS_HIGH)
                ss_pol = 1;
 
-       if (mode & SPI_CPOL)
+       if (mode & SPI_CPOL) {
                sclkpol = 1;
+               sclkctl = 1;
+       }
 
        if (mode & SPI_CPHA)
                sclkpha = 1;
                (ss_pol << (cs + MXC_CSPICON_SSPOL));
        reg_config = (reg_config & ~(1 << (cs + MXC_CSPICON_POL))) |
                (sclkpol << (cs + MXC_CSPICON_POL));
+       reg_config = (reg_config & ~(1 << (cs + MXC_CSPICON_CTL))) |
+               (sclkctl << (cs + MXC_CSPICON_CTL));
        reg_config = (reg_config & ~(1 << (cs + MXC_CSPICON_PHA))) |
                (sclkpha << (cs + MXC_CSPICON_PHA));