1 /* 2 * Copyright (c) 2011 The Chromium OS Authors. 3 * 4 * SPDX-License-Identifier: GPL-2.0+ 5 */ 6 7 #include <common.h> 8 #include <fdtdec.h> 9 #include <malloc.h> 10 #include <spi.h> 11 12 int spi_set_wordlen(struct spi_slave *slave, unsigned int wordlen) 13 { 14 if (wordlen == 0 || wordlen > 32) { 15 printf("spi: invalid wordlen %u\n", wordlen); 16 return -1; 17 } 18 19 slave->wordlen = wordlen; 20 21 return 0; 22 } 23 24 void *spi_do_alloc_slave(int offset, int size, unsigned int bus, 25 unsigned int cs) 26 { 27 u8 *ptr; 28 29 ptr = malloc(size); 30 if (ptr) { 31 struct spi_slave *slave; 32 33 memset(ptr, '\0', size); 34 slave = (struct spi_slave *)(ptr + offset); 35 slave->bus = bus; 36 slave->cs = cs; 37 slave->wordlen = SPI_DEFAULT_WORDLEN; 38 } 39 40 return ptr; 41 } 42