X-Git-Url: https://git.rohieb.name/openwrt.git/blobdiff_plain/37c210f055067f187d8cd4999c092f1c9051b6d6..347c600521d2864d728e192cff1c1124d54b23ea:/target/linux/brcm63xx/patches-2.6.33/240-spi.patch?ds=sidebyside diff --git a/target/linux/brcm63xx/patches-2.6.33/240-spi.patch b/target/linux/brcm63xx/patches-2.6.33/240-spi.patch index bcae32350..a886a02a0 100644 --- a/target/linux/brcm63xx/patches-2.6.33/240-spi.patch +++ b/target/linux/brcm63xx/patches-2.6.33/240-spi.patch @@ -97,6 +97,15 @@ #define RSET_UART_SIZE 24 #define RSET_UDC_SIZE 256 #define RSET_OHCI_SIZE 256 +@@ -209,7 +210,7 @@ enum bcm63xx_regs_set { + #define BCM_6358_WDT_BASE (0xfffe005c) + #define BCM_6358_UART0_BASE (0xfffe0100) + #define BCM_6358_GPIO_BASE (0xfffe0080) +-#define BCM_6358_SPI_BASE (0xdeadbeef) ++#define BCM_6358_SPI_BASE (0xfffe0800) + #define BCM_6358_UDC0_BASE (0xfffe0400) + #define BCM_6358_OHCI0_BASE (0xfffe1400) + #define BCM_6358_OHCI_PRIV_BASE (0xdeadbeef) @@ -428,6 +429,7 @@ static inline unsigned long bcm63xx_regs */ enum bcm63xx_irq { @@ -496,7 +505,7 @@ + if (is_on == BITBANG_CS_INACTIVE) + val |= SPI_CMD_NOOP; + else if (is_on == BITBANG_CS_ACTIVE) -+ val |= (1 << spi->chip_select << SPI_CMD_DEVICE_ID_SHIFT); ++ val |= (spi->chip_select << SPI_CMD_DEVICE_ID_SHIFT); + + bcm_spi_writew(val, bs->regs, SPI_CMD); +} @@ -639,10 +648,10 @@ + bcm_spi_writeb(msg_ctl, bs->regs, SPI_MSG_CTL); + + /* Issue the transfer */ -+ cmd = bcm_spi_readb(bs->regs, SPI_CMD); ++ cmd = bcm_spi_readw(bs->regs, SPI_CMD); + cmd |= SPI_CMD_START_IMMEDIATE; + cmd |= (0 << SPI_CMD_PREPEND_BYTE_CNT_SHIFT); -+ bcm_spi_writeb(cmd, bs->regs, SPI_CMD); ++ bcm_spi_writew(cmd, bs->regs, SPI_CMD); + + wait_for_completion(&bs->done); + @@ -687,10 +696,10 @@ + bcm63xx_spi_fill_tx_fifo(bs); + + /* Start the transfer */ -+ cmd = bcm_spi_readb(bs->regs, SPI_CMD); ++ cmd = bcm_spi_readw(bs->regs, SPI_CMD); + cmd |= SPI_CMD_START_IMMEDIATE; + cmd |= (0 << SPI_CMD_PREPEND_BYTE_CNT_SHIFT); -+ bcm_spi_writeb(cmd, bs->regs, SPI_CMD); ++ bcm_spi_writew(cmd, bs->regs, SPI_CMD); + } else + complete(&bs->done); + }