diff options
Diffstat (limited to 'include/linux/spi/spi.h')
| -rw-r--r-- | include/linux/spi/spi.h | 16 | 
1 files changed, 9 insertions, 7 deletions
diff --git a/include/linux/spi/spi.h b/include/linux/spi/spi.h index e9ea43234d9a..cb2c2df31089 100644 --- a/include/linux/spi/spi.h +++ b/include/linux/spi/spi.h @@ -21,7 +21,7 @@  #include <uapi/linux/spi/spi.h>  /* Max no. of CS supported per spi device */ -#define SPI_CS_CNT_MAX 24 +#define SPI_DEVICE_CS_CNT_MAX 4  struct dma_chan;  struct software_node; @@ -170,6 +170,7 @@ extern void spi_transfer_cs_change_delay_exec(struct spi_message *msg,   *	two delays will be added up.   * @chip_select: Array of physical chipselect, spi->chipselect[i] gives   *	the corresponding physical CS for logical CS i. + * @num_chipselect: Number of physical chipselects used.   * @cs_index_mask: Bit mask of the active chipselect(s) in the chipselect array   * @cs_gpiod: Array of GPIO descriptors of the corresponding chipselect lines   *	(optional, NULL when not using a GPIO line) @@ -228,7 +229,8 @@ struct spi_device {  	struct spi_delay	cs_hold;  	struct spi_delay	cs_inactive; -	u8			chip_select[SPI_CS_CNT_MAX]; +	u8			chip_select[SPI_DEVICE_CS_CNT_MAX]; +	u8			num_chipselect;  	/*  	 * Bit mask of the chipselect(s) that the driver need to use from @@ -236,9 +238,9 @@ struct spi_device {  	 * multiple chip selects & memories are connected in parallel  	 * then more than one bit need to be set in cs_index_mask.  	 */ -	u32			cs_index_mask : SPI_CS_CNT_MAX; +	u32			cs_index_mask : SPI_DEVICE_CS_CNT_MAX; -	struct gpio_desc	*cs_gpiod[SPI_CS_CNT_MAX];	/* Chip select gpio desc */ +	struct gpio_desc	*cs_gpiod[SPI_DEVICE_CS_CNT_MAX];	/* Chip select gpio desc */  	/*  	 * Likely need more hooks for more protocol options affecting how @@ -315,7 +317,7 @@ static inline bool spi_is_csgpiod(struct spi_device *spi)  {  	u8 idx; -	for (idx = 0; idx < SPI_CS_CNT_MAX; idx++) { +	for (idx = 0; idx < spi->num_chipselect; idx++) {  		if (spi_get_csgpiod(spi, idx))  			return true;  	} @@ -719,8 +721,8 @@ struct spi_controller {  	bool				auto_runtime_pm;  	bool                            fallback;  	bool				last_cs_mode_high; -	s8				last_cs[SPI_CS_CNT_MAX]; -	u32				last_cs_index_mask : SPI_CS_CNT_MAX; +	s8				last_cs[SPI_DEVICE_CS_CNT_MAX]; +	u32				last_cs_index_mask : SPI_DEVICE_CS_CNT_MAX;  	struct completion               xfer_completion;  	size_t				max_dma_len;  | 
