Merge remote branch 'origin' into secretlab/next-devicetree
Merging in current state of Linus' tree to deal with merge conflicts and build failures in vio.c after merge. Conflicts: drivers/i2c/busses/i2c-cpm.c drivers/i2c/busses/i2c-mpc.c drivers/net/gianfar.c Also fixed up one line in arch/powerpc/kernel/vio.c to use the correct node pointer. Signed-off-by: Grant Likely <grant.likely@secretlab.ca>
This commit is contained in:
@@ -180,10 +180,10 @@ config SPI_OMAP_UWIRE
|
||||
This hooks up to the MicroWire controller on OMAP1 chips.
|
||||
|
||||
config SPI_OMAP24XX
|
||||
tristate "McSPI driver for OMAP24xx/OMAP34xx"
|
||||
depends on ARCH_OMAP2 || ARCH_OMAP3
|
||||
tristate "McSPI driver for OMAP"
|
||||
depends on ARCH_OMAP2PLUS
|
||||
help
|
||||
SPI master controller for OMAP24xx/OMAP34xx Multichannel SPI
|
||||
SPI master controller for OMAP24XX and later Multichannel SPI
|
||||
(McSPI) modules.
|
||||
|
||||
config SPI_OMAP_100K
|
||||
|
@@ -204,6 +204,7 @@ static inline void mcspi_write_chconf0(const struct spi_device *spi, u32 val)
|
||||
|
||||
cs->chconf0 = val;
|
||||
mcspi_write_cs_reg(spi, OMAP2_MCSPI_CHCONF0, val);
|
||||
mcspi_read_cs_reg(spi, OMAP2_MCSPI_CHCONF0);
|
||||
}
|
||||
|
||||
static void omap2_mcspi_set_dma_req(const struct spi_device *spi,
|
||||
@@ -532,7 +533,7 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
|
||||
goto out;
|
||||
}
|
||||
#ifdef VERBOSE
|
||||
dev_dbg(&spi->dev, "write-%d %04x\n",
|
||||
dev_dbg(&spi->dev, "write-%d %08x\n",
|
||||
word_len, *tx);
|
||||
#endif
|
||||
__raw_writel(*tx++, tx_reg);
|
||||
@@ -550,7 +551,7 @@ omap2_mcspi_txrx_pio(struct spi_device *spi, struct spi_transfer *xfer)
|
||||
mcspi_write_chconf0(spi, l);
|
||||
*rx++ = __raw_readl(rx_reg);
|
||||
#ifdef VERBOSE
|
||||
dev_dbg(&spi->dev, "read-%d %04x\n",
|
||||
dev_dbg(&spi->dev, "read-%d %08x\n",
|
||||
word_len, *(rx - 1));
|
||||
#endif
|
||||
}
|
||||
|
@@ -36,8 +36,7 @@
|
||||
#include <asm/delay.h>
|
||||
|
||||
#include <mach/dma.h>
|
||||
#include <mach/regs-ssp.h>
|
||||
#include <mach/ssp.h>
|
||||
#include <plat/ssp.h>
|
||||
#include <mach/pxa2xx_spi.h>
|
||||
|
||||
MODULE_AUTHOR("Stephen Street");
|
||||
@@ -1318,14 +1317,14 @@ static int setup(struct spi_device *spi)
|
||||
/* NOTE: PXA25x_SSP _could_ use external clocking ... */
|
||||
if (drv_data->ssp_type != PXA25x_SSP)
|
||||
dev_dbg(&spi->dev, "%ld Hz actual, %s\n",
|
||||
clk_get_rate(ssp->clk)
|
||||
/ (1 + ((chip->cr0 & SSCR0_SCR) >> 8)),
|
||||
chip->enable_dma ? "DMA" : "PIO");
|
||||
clk_get_rate(ssp->clk)
|
||||
/ (1 + ((chip->cr0 & SSCR0_SCR(0xfff)) >> 8)),
|
||||
chip->enable_dma ? "DMA" : "PIO");
|
||||
else
|
||||
dev_dbg(&spi->dev, "%ld Hz actual, %s\n",
|
||||
clk_get_rate(ssp->clk) / 2
|
||||
/ (1 + ((chip->cr0 & SSCR0_SCR) >> 8)),
|
||||
chip->enable_dma ? "DMA" : "PIO");
|
||||
clk_get_rate(ssp->clk) / 2
|
||||
/ (1 + ((chip->cr0 & SSCR0_SCR(0x0ff)) >> 8)),
|
||||
chip->enable_dma ? "DMA" : "PIO");
|
||||
|
||||
if (spi->bits_per_word <= 8) {
|
||||
chip->n_bytes = 1;
|
||||
@@ -1466,7 +1465,7 @@ static int __init pxa2xx_spi_probe(struct platform_device *pdev)
|
||||
|
||||
platform_info = dev->platform_data;
|
||||
|
||||
ssp = ssp_request(pdev->id, pdev->name);
|
||||
ssp = pxa_ssp_request(pdev->id, pdev->name);
|
||||
if (ssp == NULL) {
|
||||
dev_err(&pdev->dev, "failed to request SSP%d\n", pdev->id);
|
||||
return -ENODEV;
|
||||
@@ -1476,7 +1475,7 @@ static int __init pxa2xx_spi_probe(struct platform_device *pdev)
|
||||
master = spi_alloc_master(dev, sizeof(struct driver_data) + 16);
|
||||
if (!master) {
|
||||
dev_err(&pdev->dev, "cannot alloc spi_master\n");
|
||||
ssp_free(ssp);
|
||||
pxa_ssp_free(ssp);
|
||||
return -ENOMEM;
|
||||
}
|
||||
drv_data = spi_master_get_devdata(master);
|
||||
@@ -1558,7 +1557,7 @@ static int __init pxa2xx_spi_probe(struct platform_device *pdev)
|
||||
write_SSCR1(SSCR1_RxTresh(RX_THRESH_DFLT) |
|
||||
SSCR1_TxTresh(TX_THRESH_DFLT),
|
||||
drv_data->ioaddr);
|
||||
write_SSCR0(SSCR0_SerClkDiv(2)
|
||||
write_SSCR0(SSCR0_SCR(2)
|
||||
| SSCR0_Motorola
|
||||
| SSCR0_DataSize(8),
|
||||
drv_data->ioaddr);
|
||||
@@ -1605,7 +1604,7 @@ out_error_irq_alloc:
|
||||
|
||||
out_error_master_alloc:
|
||||
spi_master_put(master);
|
||||
ssp_free(ssp);
|
||||
pxa_ssp_free(ssp);
|
||||
return status;
|
||||
}
|
||||
|
||||
@@ -1649,7 +1648,7 @@ static int pxa2xx_spi_remove(struct platform_device *pdev)
|
||||
free_irq(ssp->irq, drv_data);
|
||||
|
||||
/* Release SSP */
|
||||
ssp_free(ssp);
|
||||
pxa_ssp_free(ssp);
|
||||
|
||||
/* Disconnect from the SPI framework */
|
||||
spi_unregister_master(drv_data->master);
|
||||
|
@@ -41,7 +41,7 @@ static void spidev_release(struct device *dev)
|
||||
spi->master->cleanup(spi);
|
||||
|
||||
spi_master_put(spi->master);
|
||||
kfree(dev);
|
||||
kfree(spi);
|
||||
}
|
||||
|
||||
static ssize_t
|
||||
@@ -257,6 +257,7 @@ int spi_add_device(struct spi_device *spi)
|
||||
{
|
||||
static DEFINE_MUTEX(spi_add_lock);
|
||||
struct device *dev = spi->master->dev.parent;
|
||||
struct device *d;
|
||||
int status;
|
||||
|
||||
/* Chipselects are numbered 0..max; validate. */
|
||||
@@ -278,10 +279,11 @@ int spi_add_device(struct spi_device *spi)
|
||||
*/
|
||||
mutex_lock(&spi_add_lock);
|
||||
|
||||
if (bus_find_device_by_name(&spi_bus_type, NULL, dev_name(&spi->dev))
|
||||
!= NULL) {
|
||||
d = bus_find_device_by_name(&spi_bus_type, NULL, dev_name(&spi->dev));
|
||||
if (d != NULL) {
|
||||
dev_err(dev, "chipselect %d already in use\n",
|
||||
spi->chip_select);
|
||||
put_device(d);
|
||||
status = -EBUSY;
|
||||
goto done;
|
||||
}
|
||||
|
@@ -640,7 +640,7 @@ static int mpc8xxx_spi_setup(struct spi_device *spi)
|
||||
}
|
||||
mpc8xxx_spi = spi_master_get_devdata(spi->master);
|
||||
|
||||
hw_mode = cs->hw_mode; /* Save orginal settings */
|
||||
hw_mode = cs->hw_mode; /* Save original settings */
|
||||
cs->hw_mode = mpc8xxx_spi_read_reg(&mpc8xxx_spi->base->mode);
|
||||
/* mask out bits we are going to set */
|
||||
cs->hw_mode &= ~(SPMODE_CP_BEGIN_EDGECLK | SPMODE_CI_INACTIVEHIGH
|
||||
|
Reference in New Issue
Block a user