[U-Boot] [PATCH v1 11/25] spi: kirkwood_spi.c: Compile MPP (pin-mux) only for kirkwood SoC's
Jagan Teki
jagannadh.teki at gmail.com
Sun Jul 13 18:18:13 CEST 2014
On Fri, Jun 27, 2014 at 3:24 PM, Stefan Roese <sr at denx.de> wrote:
> Compile the pin multiplexing only on Kirkwood platforms. As the
> Armada XP doesn't need it.
>
> Signed-off-by: Stefan Roese <sr at denx.de>
> Cc: Jagannadha Sutradharudu Teki <jaganna at xilinx.com>
> ---
>
> drivers/spi/kirkwood_spi.c | 10 ++++++++++
> 1 file changed, 10 insertions(+)
>
> diff --git a/drivers/spi/kirkwood_spi.c b/drivers/spi/kirkwood_spi.c
> index 9710f12..ce2ba96 100644
> --- a/drivers/spi/kirkwood_spi.c
> +++ b/drivers/spi/kirkwood_spi.c
> @@ -13,22 +13,28 @@
> #include <spi.h>
> #include <asm/io.h>
> #include <asm/arch/soc.h>
> +#ifdef CONFIG_KIRKWOOD
> #include <asm/arch/mpp.h>
> +#endif
> #include <asm/arch-mvebu/spi.h>
>
> static struct kwspi_registers *spireg = (struct kwspi_registers *)KW_SPI_BASE;
>
> +#ifdef CONFIG_KIRKWOOD
> static u32 cs_spi_mpp_back[2];
> +#endif
>
> struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
> unsigned int max_hz, unsigned int mode)
> {
> struct spi_slave *slave;
> u32 data;
> +#ifdef CONFIG_KIRKWOOD
> static const u32 kwspi_mpp_config[2][2] = {
> { MPP0_SPI_SCn, 0 }, /* if cs == 0 */
> { MPP7_SPI_SCn, 0 } /* if cs != 0 */
> };
> +#endif
>
> if (!spi_cs_is_valid(bus, cs))
> return NULL;
> @@ -51,15 +57,19 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
> writel(KWSPI_SMEMRDIRQ, &spireg->irq_cause);
> writel(KWSPI_IRQMASK, &spireg->irq_mask);
>
> +#ifdef CONFIG_KIRKWOOD
> /* program mpp registers to select SPI_CSn */
> kirkwood_mpp_conf(kwspi_mpp_config[cs ? 1 : 0], cs_spi_mpp_back);
> +#endif
>
> return slave;
> }
>
> void spi_free_slave(struct spi_slave *slave)
> {
> +#ifdef CONFIG_KIRKWOOD
> kirkwood_mpp_conf(cs_spi_mpp_back, NULL);
> +#endif
> free(slave);
> }
Reviewed-by: Jagannadha Sutradharudu Teki <jaganna at xilinx.com>
thanks!
--
Jagan.
More information about the U-Boot
mailing list