]> git.sur5r.net Git - u-boot/blobdiff - drivers/spi/xilinx_spi.c
ARM: AM43xx: Add build support
[u-boot] / drivers / spi / xilinx_spi.c
index e563c19051a5ec07593054b486eb7dfba21b4da5..a82b056948a4cecd716a776f6d7eae1e63b89423 100644 (file)
@@ -78,7 +78,6 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
                                  unsigned int max_hz, unsigned int mode)
 {
        struct xilinx_spi_slave *xilspi;
-       struct xilinx_spi_reg *regs;
 
        if (!spi_cs_is_valid(bus, cs)) {
                printf("XILSPI error: %s: unsupported bus %d / cs %d\n",
@@ -86,20 +85,20 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs,
                return NULL;
        }
 
-       xilspi = malloc(sizeof(*xilspi));
+       xilspi = spi_alloc_slave(struct xilinx_spi_slave, bus, cs);
        if (!xilspi) {
                printf("XILSPI error: %s: malloc of SPI structure failed\n",
                                __func__);
                return NULL;
        }
-       xilspi->slave.bus = bus;
-       xilspi->slave.cs = cs;
        xilspi->regs = (struct xilinx_spi_reg *)xilinx_spi_base_list[bus];
        xilspi->freq = max_hz;
        xilspi->mode = mode;
        debug("%s: bus:%i cs:%i base:%p mode:%x max_hz:%d\n", __func__,
                bus, cs, xilspi->regs, xilspi->mode, xilspi->freq);
 
+       writel(SPISSR_RESET_VALUE, &xilspi->regs->srr);
+
        return &xilspi->slave;
 }