diff options
Diffstat (limited to 'drivers/spi/mxc_spi.c')
| -rw-r--r-- | drivers/spi/mxc_spi.c | 9 | 
1 files changed, 7 insertions, 2 deletions
diff --git a/drivers/spi/mxc_spi.c b/drivers/spi/mxc_spi.c index 95dd03f7b..f3f029d63 100644 --- a/drivers/spi/mxc_spi.c +++ b/drivers/spi/mxc_spi.c @@ -115,7 +115,8 @@ static s32 spi_cfg_mxc(struct mxc_spi_slave *mxcs, unsigned int cs,  {  	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) { @@ -164,8 +165,10 @@ static s32 spi_cfg_mxc(struct mxc_spi_slave *mxcs, unsigned int cs,  	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; @@ -180,6 +183,8 @@ static s32 spi_cfg_mxc(struct mxc_spi_slave *mxcs, unsigned int cs,  		(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));  |