X-Git-Url: https://git.sur5r.net/?a=blobdiff_plain;f=drivers%2Fspi%2Fdavinci_spi.c;h=e3fb3212aa5c2073dedb72dc73f6648d74829568;hb=a891601ce51edbafa1a2750c96a618e4fcbca1c2;hp=4518ecbbc80744a2c18bed252f1aece0f799b19c;hpb=2271d3ddccfbd4a7640121669ff9b013b1fea361;p=u-boot diff --git a/drivers/spi/davinci_spi.c b/drivers/spi/davinci_spi.c index 4518ecbbc8..e3fb3212aa 100644 --- a/drivers/spi/davinci_spi.c +++ b/drivers/spi/davinci_spi.c @@ -6,23 +6,7 @@ * * Copyright (C) 2007 Atmel Corporation * - * See file CREDITS for list of people who contributed to this - * project. - * - * This program is free software; you can redistribute it and/or - * modify it under the terms of the GNU General Public License as - * published by the Free Software Foundation; either version 2 of - * the License, or (at your option) any later version. - * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. - * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 59 Temple Place, Suite 330, Boston, - * MA 02111-1307 USA + * SPDX-License-Identifier: GPL-2.0+ */ #include #include @@ -44,12 +28,10 @@ struct spi_slave *spi_setup_slave(unsigned int bus, unsigned int cs, if (!spi_cs_is_valid(bus, cs)) return NULL; - ds = malloc(sizeof(*ds)); + ds = spi_alloc_slave(struct davinci_spi_slave, bus, cs); if (!ds) return NULL; - ds->slave.bus = bus; - ds->slave.cs = cs; ds->regs = (struct davinci_spi_regs *)CONFIG_SYS_SPI_BASE; ds->freq = max_hz; @@ -173,7 +155,7 @@ static int davinci_spi_read(struct spi_slave *slave, unsigned int len, } static int davinci_spi_write(struct spi_slave *slave, unsigned int len, - const u8 *txp, unsigned long flags) + const u8 *txp, unsigned long flags) { struct davinci_spi_slave *ds = to_davinci_spi(slave); unsigned int data1_reg_val; @@ -237,7 +219,7 @@ static int davinci_spi_read_write(struct spi_slave *slave, unsigned int len, #endif int spi_xfer(struct spi_slave *slave, unsigned int bitlen, - const void *dout, void *din, unsigned long flags) + const void *dout, void *din, unsigned long flags) { unsigned int len; @@ -266,6 +248,10 @@ int spi_xfer(struct spi_slave *slave, unsigned int bitlen, #ifndef CONFIG_SPI_HALF_DUPLEX else return davinci_spi_read_write(slave, len, din, dout, flags); +#else + printf("SPI full duplex transaction requested with " + "CONFIG_SPI_HALF_DUPLEX defined.\n"); + flags |= SPI_XFER_END; #endif out: