Hello Ralf, 2011/11/21 Florian Fainelli <florian@xxxxxxxxxxx>: > This patch adds the necessary stub to register the SPI platform driver. > Since the registers are shuffled between the 4 BCM63xx CPUs supported by > this SPI driver we also need to generate the internal register layout and > export this layout for the driver to use it properly. > > Signed-off-by: Florian Fainelli <florian@xxxxxxxxxxx> > --- > arch/mips/bcm63xx/dev-spi.c | 117 ++++++++++++++++++++ > .../include/asm/mach-bcm63xx/bcm63xx_dev_spi.h | 89 +++++++++++++++ > 2 files changed, 206 insertions(+), 0 deletions(-) > create mode 100644 arch/mips/bcm63xx/dev-spi.c > create mode 100644 arch/mips/include/asm/mach-bcm63xx/bcm63xx_dev_spi.h > > diff --git a/arch/mips/bcm63xx/dev-spi.c b/arch/mips/bcm63xx/dev-spi.c > new file mode 100644 > index 0000000..b0faa85 > --- /dev/null > +++ b/arch/mips/bcm63xx/dev-spi.c > @@ -0,0 +1,117 @@ > +/* > + * This file is subject to the terms and conditions of the GNU General Public > + * License. See the file "COPYING" in the main directory of this archive > + * for more details. > + * > + * Copyright (C) 2009-2011 Florian Fainelli <florian@xxxxxxxxxxx> > + * Copyright (C) 2010 Tanguy Bouzeloc <tanguy.bouzeloc@xxxxxxxxx> > + */ > + > +#include <linux/init.h> > +#include <linux/kernel.h> > +#include <linux/export.h> > +#include <linux/platform_device.h> > +#include <linux/err.h> > +#include <linux/clk.h> > + > +#include <bcm63xx_cpu.h> > +#include <bcm63xx_dev_spi.h> > +#include <bcm63xx_regs.h> > + > +#ifdef BCMCPU_RUNTIME_DETECT > +/* > + * register offsets > + */ > +static const unsigned long bcm6338_regs_spi[] = { > + __GEN_SPI_REGS_TABLE(6338) > +}; > + > +static const unsigned long bcm6348_regs_spi[] = { > + __GEN_SPI_REGS_TABLE(6348) > +}; > + > +static const unsigned long bcm6358_regs_spi[] = { > + __GEN_SPI_REGS_TABLE(6358) > +}; > + > +static const unsigned long bcm6368_regs_spi[] = { > + __GEN_SPI_REGS_TABLE(6368) > +}; > + > +const unsigned long *bcm63xx_regs_spi; > +EXPORT_SYMBOL(bcm63xx_regs_spi); > + > +static __init void bcm63xx_spi_regs_init(void) > +{ > + if (BCMCPU_IS_6338()) > + bcm63xx_regs_spi = bcm6338_regs_spi; > + if (BCMCPU_IS_6348()) > + bcm63xx_regs_spi = bcm6348_regs_spi; > + if (BCMCPU_IS_6358()) > + bcm63xx_regs_spi = bcm6358_regs_spi; > + if (BCMCPU_IS_6368()) > + bcm63xx_regs_spi = bcm6358_regs_spi; There is a typo here, I will resubmit a version 2 of the patchset. -- Florian