/* SPDX-License-Identifier: GPL-2.0 */ #ifndef __MACH_SPI_H_ #define __MACH_SPI_H_ /* * struct spi_imx_master - device.platform_data for SPI controller devices. * @chipselect: Array of chipselects for this master or NULL. Numbers >= 0 * mean GPIO pins, -ENOENT means internal CSPI chipselect * matching the position in the array. E.g., if chipselect[1] = * -ENOENT then a SPI slave using chip select 1 will use the * native SS1 line of the CSPI. Omitting the array will use * all native chip selects. * Normally you want to use gpio based chip selects as the CSPI * module tries to be intelligent about when to assert the * chipselect: The CSPI module deasserts the chipselect once it * runs out of input data. The other problem is that it is not * possible to mix between high active and low active chipselects * on one single bus using the internal chipselects. * Unfortunately, on some SoCs, Freescale decided to put some * chipselects on dedicated pins which are not usable as gpios, * so we have to support the internal chipselects. * * @num_chipselect: If @chipselect is specified, ARRAY_SIZE(chipselect), * otherwise the number of native chip selects. */ struct spi_imx_master { int *chipselect; int num_chipselect; }; #endif /* __MACH_SPI_H_*/