3636#define SPI_CFG0_SCK_LOW_OFFSET 8
3737#define SPI_CFG0_CS_HOLD_OFFSET 16
3838#define SPI_CFG0_CS_SETUP_OFFSET 24
39- #define SPI_ADJUST_CFG0_SCK_LOW_OFFSET 16
4039#define SPI_ADJUST_CFG0_CS_HOLD_OFFSET 0
4140#define SPI_ADJUST_CFG0_CS_SETUP_OFFSET 16
4241
4847#define SPI_CFG1_CS_IDLE_MASK 0xff
4948#define SPI_CFG1_PACKET_LOOP_MASK 0xff00
5049#define SPI_CFG1_PACKET_LENGTH_MASK 0x3ff0000
50+ #define SPI_CFG2_SCK_HIGH_OFFSET 0
51+ #define SPI_CFG2_SCK_LOW_OFFSET 16
5152
5253#define SPI_CMD_ACT BIT(0)
5354#define SPI_CMD_RESUME BIT(1)
@@ -283,7 +284,7 @@ static void mtk_spi_set_cs(struct spi_device *spi, bool enable)
283284static void mtk_spi_prepare_transfer (struct spi_master * master ,
284285 struct spi_transfer * xfer )
285286{
286- u32 spi_clk_hz , div , sck_time , cs_time , reg_val = 0 ;
287+ u32 spi_clk_hz , div , sck_time , cs_time , reg_val ;
287288 struct mtk_spi * mdata = spi_master_get_devdata (master );
288289
289290 spi_clk_hz = clk_get_rate (mdata -> spi_clk );
@@ -296,18 +297,18 @@ static void mtk_spi_prepare_transfer(struct spi_master *master,
296297 cs_time = sck_time * 2 ;
297298
298299 if (mdata -> dev_comp -> enhance_timing ) {
300+ reg_val = (((sck_time - 1 ) & 0xffff )
301+ << SPI_CFG2_SCK_HIGH_OFFSET );
299302 reg_val |= (((sck_time - 1 ) & 0xffff )
300- << SPI_CFG0_SCK_HIGH_OFFSET );
301- reg_val |= (((sck_time - 1 ) & 0xffff )
302- << SPI_ADJUST_CFG0_SCK_LOW_OFFSET );
303+ << SPI_CFG2_SCK_LOW_OFFSET );
303304 writel (reg_val , mdata -> base + SPI_CFG2_REG );
304- reg_val | = (((cs_time - 1 ) & 0xffff )
305+ reg_val = (((cs_time - 1 ) & 0xffff )
305306 << SPI_ADJUST_CFG0_CS_HOLD_OFFSET );
306307 reg_val |= (((cs_time - 1 ) & 0xffff )
307308 << SPI_ADJUST_CFG0_CS_SETUP_OFFSET );
308309 writel (reg_val , mdata -> base + SPI_CFG0_REG );
309310 } else {
310- reg_val | = (((sck_time - 1 ) & 0xff )
311+ reg_val = (((sck_time - 1 ) & 0xff )
311312 << SPI_CFG0_SCK_HIGH_OFFSET );
312313 reg_val |= (((sck_time - 1 ) & 0xff ) << SPI_CFG0_SCK_LOW_OFFSET );
313314 reg_val |= (((cs_time - 1 ) & 0xff ) << SPI_CFG0_CS_HOLD_OFFSET );
0 commit comments