mirror of
https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git
synced 2024-09-12 13:55:32 +00:00
![Trent Piepho](/assets/img/avatar_default.png)
The docs for the spi_imx platform data still refer to a -32 offset used to specify a native chip select. This was removed in commit602c8f4485
("spi: imx: fix use of native chip-selects with devicetree") and no longer works as documented. Update documentation. The macro MXC_SPI_CS() is no longer is needed. If a board uses all native chip selects, then it's not necessary to specify a chip select array at all, as all native is the default (this is how device-tree configured SPI masters work too). Most of the spi-imx platform data users have their chip select arrays removed by this patch. This patch also fixes a bug in mx31moboard introduced in the '602 commit. When that board was updated in commit901f26bce6
("ARM: imx: set correct chip_select in platform setup") to reflect the SPI change, only SPI bus 2 was updated and SPI bus 1 was left with non-sequential chip selects. The mc13783 spi device on bus 1 had its chip select updated as if it were on bus 2. CC: Sascha Hauer <kernel@pengutronix.de> CC: Fabio Estevam <fabio.estevam@nxp.com> Acked-by: Greg Ungerer <gerg@linux-m68k.org> Reviewed-by: Oleksij Rempel <o.rempel@pengutronix.de> Signed-off-by: Trent Piepho <tpiepho@impinj.com> Signed-off-by: Shawn Guo <shawnguo@kernel.org>
33 lines
1.4 KiB
C
33 lines
1.4 KiB
C
/* 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_*/
|