|
64 | 64 | #define BCM2835_AUX_SPI_CNTL0_VAR_WIDTH 0x00004000
|
65 | 65 | #define BCM2835_AUX_SPI_CNTL0_DOUTHOLD 0x00003000
|
66 | 66 | #define BCM2835_AUX_SPI_CNTL0_ENABLE 0x00000800
|
67 |
| -#define BCM2835_AUX_SPI_CNTL0_CPHA_IN 0x00000400 |
| 67 | +#define BCM2835_AUX_SPI_CNTL0_IN_RISING 0x00000400 |
68 | 68 | #define BCM2835_AUX_SPI_CNTL0_CLEARFIFO 0x00000200
|
69 |
| -#define BCM2835_AUX_SPI_CNTL0_CPHA_OUT 0x00000100 |
| 69 | +#define BCM2835_AUX_SPI_CNTL0_OUT_RISING 0x00000100 |
70 | 70 | #define BCM2835_AUX_SPI_CNTL0_CPOL 0x00000080
|
71 | 71 | #define BCM2835_AUX_SPI_CNTL0_MSBF_OUT 0x00000040
|
72 | 72 | #define BCM2835_AUX_SPI_CNTL0_SHIFTLEN 0x0000003F
|
|
92 | 92 | #define BCM2835_AUX_SPI_POLLING_LIMIT_US 30
|
93 | 93 | #define BCM2835_AUX_SPI_POLLING_JIFFIES 2
|
94 | 94 |
|
95 |
| -#define BCM2835_AUX_SPI_MODE_BITS (SPI_CPOL | SPI_CPHA | SPI_CS_HIGH \ |
96 |
| - | SPI_NO_CS) |
97 |
| - |
98 | 95 | struct bcm2835aux_spi {
|
99 | 96 | void __iomem *regs;
|
100 | 97 | struct clk *clk;
|
@@ -389,12 +386,12 @@ static int bcm2835aux_spi_prepare_message(struct spi_master *master,
|
389 | 386 | bs->cntl[1] = BCM2835_AUX_SPI_CNTL1_MSBF_IN;
|
390 | 387 |
|
391 | 388 | /* handle all the modes */
|
392 |
| - if (spi->mode & SPI_CPOL) |
| 389 | + if (spi->mode & SPI_CPOL) { |
393 | 390 | bs->cntl[0] |= BCM2835_AUX_SPI_CNTL0_CPOL;
|
394 |
| - if (spi->mode & SPI_CPHA) |
395 |
| - bs->cntl[0] |= BCM2835_AUX_SPI_CNTL0_CPHA_OUT | |
396 |
| - BCM2835_AUX_SPI_CNTL0_CPHA_IN; |
397 |
| - |
| 391 | + bs->cntl[0] |= BCM2835_AUX_SPI_CNTL0_OUT_RISING; |
| 392 | + } else { |
| 393 | + bs->cntl[0] |= BCM2835_AUX_SPI_CNTL0_IN_RISING; |
| 394 | + } |
398 | 395 | bcm2835aux_wr(bs, BCM2835_AUX_SPI_CNTL1, bs->cntl[1]);
|
399 | 396 | bcm2835aux_wr(bs, BCM2835_AUX_SPI_CNTL0, bs->cntl[0]);
|
400 | 397 |
|
@@ -434,7 +431,7 @@ static int bcm2835aux_spi_probe(struct platform_device *pdev)
|
434 | 431 | }
|
435 | 432 |
|
436 | 433 | platform_set_drvdata(pdev, master);
|
437 |
| - master->mode_bits = BCM2835_AUX_SPI_MODE_BITS; |
| 434 | + master->mode_bits = (SPI_CPOL | SPI_CS_HIGH | SPI_NO_CS); |
438 | 435 | master->bits_per_word_mask = SPI_BPW_MASK(8);
|
439 | 436 | master->num_chipselect = -1;
|
440 | 437 | master->transfer_one = bcm2835aux_spi_transfer_one;
|
|
0 commit comments