mirror of
https://github.com/tbsdtv/linux_media.git
synced 2025-07-23 20:51:03 +02:00
Merge tag 'spi-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi
Pull spi updates from Mark Brown: "This has been a fairly quiet release for SPI, though it is likely that the next release will have some big changes as there's some preparatory work for multiple chip select support gone in - the rest of the code is on the list but will need to be rebased onto -rc1. Otherwise there's a couple of new tunables for chip select timings, some new devices and smaller device specific updates and fixes. - Support for configuring the hold and minimum inactive times for chip selects. - Beginnings of support for supporting devices which have multiple chip selects on a single device. - Support for newer Broadcom HSSPI and Intel controllers, Silicon Labs EM3581 and SI3210" * tag 'spi-v6.3' of git://git.kernel.org/pub/scm/linux/kernel/git/broonie/spi: (67 commits) spi: dt-bindings: qcom,spi-qcom-qspi: document OPP and power-domains spi: spidev: drop the incorrect notice from Kconfig spi: bcm63xx-hsspi: fix error code in probe spi: bcmbca-hsspi: Fix error code in probe() function spi: synquacer: Fix timeout handling in synquacer_spi_transfer_one() spi: intel: Check number of chip selects after reading the descriptor spi: xilinx: add force_irq for QSPI mode spi: spi-st-ssc: convert to DT schema spi: Reorder fields in 'struct spi_transfer' spi: cadence-quadspi: use STIG mode for small reads spi: cadence-quadspi: setup ADDR Bits in cmd reads spi: cadence-quadspi: Add flag for direct mode writes spi: cadence-quadspi: Reset CMD_CTRL Reg on cmd r/w completion MAINTAINERS: Remove file reference for Broadcom Broadband SoC HS SPI driver entry spi: bcm63xx-hsspi: bcmbca-hsspi: fix _be16 type usage MAINTAINERS: Add entry for Broadcom Broadband SoC HS SPI drivers spi: bcmbca-hsspi: Add driver for newer HSSPI controller spi: bcm63xx-hsspi: Disable spi mem dual io read op support spi: spi-mem: Allow controller supporting mem_ops without exec_op spi: bcm63xx-hsspi: Add prepend mode support ...
This commit is contained in:
@@ -14,7 +14,7 @@
|
||||
|
||||
/**
|
||||
* struct altera_spi_platform_data - Platform data of the Altera SPI driver
|
||||
* @mode_bits: Mode bits of SPI master.
|
||||
* @mode_bits: Mode bits of SPI host.
|
||||
* @num_chipselect: Number of chipselects.
|
||||
* @bits_per_word_mask: bitmask of supported bits_per_word for transfers.
|
||||
* @num_devices: Number of devices that shall be added when the driver
|
||||
@@ -46,5 +46,5 @@ struct altera_spi {
|
||||
};
|
||||
|
||||
extern irqreturn_t altera_spi_irq(int irq, void *dev);
|
||||
extern void altera_spi_init_master(struct spi_master *master);
|
||||
extern void altera_spi_init_host(struct spi_controller *host);
|
||||
#endif /* __LINUX_SPI_ALTERA_H */
|
||||
|
@@ -26,6 +26,7 @@ struct spi_controller;
|
||||
struct spi_transfer;
|
||||
struct spi_controller_mem_ops;
|
||||
struct spi_controller_mem_caps;
|
||||
struct spi_message;
|
||||
|
||||
/*
|
||||
* INTERFACES between SPI master-side drivers and SPI slave protocol handlers,
|
||||
@@ -119,6 +120,8 @@ struct spi_delay {
|
||||
|
||||
extern int spi_delay_to_ns(struct spi_delay *_delay, struct spi_transfer *xfer);
|
||||
extern int spi_delay_exec(struct spi_delay *_delay, struct spi_transfer *xfer);
|
||||
extern void spi_transfer_cs_change_delay_exec(struct spi_message *msg,
|
||||
struct spi_transfer *xfer);
|
||||
|
||||
/**
|
||||
* struct spi_device - Controller side proxy for an SPI slave device
|
||||
@@ -263,7 +266,25 @@ static inline void *spi_get_drvdata(struct spi_device *spi)
|
||||
return dev_get_drvdata(&spi->dev);
|
||||
}
|
||||
|
||||
struct spi_message;
|
||||
static inline u8 spi_get_chipselect(struct spi_device *spi, u8 idx)
|
||||
{
|
||||
return spi->chip_select;
|
||||
}
|
||||
|
||||
static inline void spi_set_chipselect(struct spi_device *spi, u8 idx, u8 chipselect)
|
||||
{
|
||||
spi->chip_select = chipselect;
|
||||
}
|
||||
|
||||
static inline struct gpio_desc *spi_get_csgpiod(struct spi_device *spi, u8 idx)
|
||||
{
|
||||
return spi->cs_gpiod;
|
||||
}
|
||||
|
||||
static inline void spi_set_csgpiod(struct spi_device *spi, u8 idx, struct gpio_desc *csgpiod)
|
||||
{
|
||||
spi->cs_gpiod = csgpiod;
|
||||
}
|
||||
|
||||
/**
|
||||
* struct spi_driver - Host side "protocol" driver
|
||||
@@ -1001,6 +1022,9 @@ struct spi_transfer {
|
||||
void *rx_buf;
|
||||
unsigned len;
|
||||
|
||||
#define SPI_TRANS_FAIL_NO_START BIT(0)
|
||||
u16 error;
|
||||
|
||||
dma_addr_t tx_dma;
|
||||
dma_addr_t rx_dma;
|
||||
struct sg_table tx_sg;
|
||||
@@ -1011,6 +1035,7 @@ struct spi_transfer {
|
||||
unsigned cs_change:1;
|
||||
unsigned tx_nbits:3;
|
||||
unsigned rx_nbits:3;
|
||||
unsigned timestamped:1;
|
||||
#define SPI_NBITS_SINGLE 0x01 /* 1bit transfer */
|
||||
#define SPI_NBITS_DUAL 0x02 /* 2bits transfer */
|
||||
#define SPI_NBITS_QUAD 0x04 /* 4bits transfer */
|
||||
@@ -1027,12 +1052,7 @@ struct spi_transfer {
|
||||
|
||||
struct ptp_system_timestamp *ptp_sts;
|
||||
|
||||
bool timestamped;
|
||||
|
||||
struct list_head transfer_list;
|
||||
|
||||
#define SPI_TRANS_FAIL_NO_START BIT(0)
|
||||
u16 error;
|
||||
};
|
||||
|
||||
/**
|
||||
|
@@ -15,6 +15,7 @@ struct xspi_platform_data {
|
||||
u8 bits_per_word;
|
||||
struct spi_board_info *devices;
|
||||
u8 num_devices;
|
||||
bool force_irq;
|
||||
};
|
||||
|
||||
#endif /* __LINUX_SPI_XILINX_SPI_H */
|
||||
|
Reference in New Issue
Block a user