diff options
Diffstat (limited to 'drivers/spi/spi-dw-mid.c')
| -rw-r--r-- | drivers/spi/spi-dw-mid.c | 15 |
1 files changed, 8 insertions, 7 deletions
diff --git a/drivers/spi/spi-dw-mid.c b/drivers/spi/spi-dw-mid.c index a67d37c7e3c0..a0197fd4e95c 100644 --- a/drivers/spi/spi-dw-mid.c +++ b/drivers/spi/spi-dw-mid.c | |||
| @@ -247,9 +247,9 @@ static struct dw_spi_dma_ops mid_dma_ops = { | |||
| 247 | 247 | ||
| 248 | /* Some specific info for SPI0 controller on Intel MID */ | 248 | /* Some specific info for SPI0 controller on Intel MID */ |
| 249 | 249 | ||
| 250 | /* HW info for MRST CLk Control Unit, one 32b reg */ | 250 | /* HW info for MRST Clk Control Unit, 32b reg per controller */ |
| 251 | #define MRST_SPI_CLK_BASE 100000000 /* 100m */ | 251 | #define MRST_SPI_CLK_BASE 100000000 /* 100m */ |
| 252 | #define MRST_CLK_SPI0_REG 0xff11d86c | 252 | #define MRST_CLK_SPI_REG 0xff11d86c |
| 253 | #define CLK_SPI_BDIV_OFFSET 0 | 253 | #define CLK_SPI_BDIV_OFFSET 0 |
| 254 | #define CLK_SPI_BDIV_MASK 0x00000007 | 254 | #define CLK_SPI_BDIV_MASK 0x00000007 |
| 255 | #define CLK_SPI_CDIV_OFFSET 9 | 255 | #define CLK_SPI_CDIV_OFFSET 9 |
| @@ -261,16 +261,17 @@ int dw_spi_mid_init(struct dw_spi *dws) | |||
| 261 | void __iomem *clk_reg; | 261 | void __iomem *clk_reg; |
| 262 | u32 clk_cdiv; | 262 | u32 clk_cdiv; |
| 263 | 263 | ||
| 264 | clk_reg = ioremap_nocache(MRST_CLK_SPI0_REG, 16); | 264 | clk_reg = ioremap_nocache(MRST_CLK_SPI_REG, 16); |
| 265 | if (!clk_reg) | 265 | if (!clk_reg) |
| 266 | return -ENOMEM; | 266 | return -ENOMEM; |
| 267 | 267 | ||
| 268 | /* get SPI controller operating freq info */ | 268 | /* Get SPI controller operating freq info */ |
| 269 | clk_cdiv = (readl(clk_reg) & CLK_SPI_CDIV_MASK) >> CLK_SPI_CDIV_OFFSET; | 269 | clk_cdiv = readl(clk_reg + dws->bus_num * sizeof(u32)); |
| 270 | clk_cdiv &= CLK_SPI_CDIV_MASK; | ||
| 271 | clk_cdiv >>= CLK_SPI_CDIV_OFFSET; | ||
| 270 | dws->max_freq = MRST_SPI_CLK_BASE / (clk_cdiv + 1); | 272 | dws->max_freq = MRST_SPI_CLK_BASE / (clk_cdiv + 1); |
| 271 | iounmap(clk_reg); | ||
| 272 | 273 | ||
| 273 | dws->num_cs = 16; | 274 | iounmap(clk_reg); |
| 274 | 275 | ||
| 275 | #ifdef CONFIG_SPI_DW_MID_DMA | 276 | #ifdef CONFIG_SPI_DW_MID_DMA |
| 276 | dws->dma_priv = kzalloc(sizeof(struct mid_dma), GFP_KERNEL); | 277 | dws->dma_priv = kzalloc(sizeof(struct mid_dma), GFP_KERNEL); |
