|
@@ -62,6 +62,47 @@ struct spi_slave {
|
|
|
*/
|
|
|
void spi_init(void);
|
|
|
|
|
|
+/**
|
|
|
+ * spi_do_alloc_slave - Allocate a new SPI slave (internal)
|
|
|
+ *
|
|
|
+ * Allocate and zero all fields in the spi slave, and set the bus/chip
|
|
|
+ * select. Use the helper macro spi_alloc_slave() to call this.
|
|
|
+ *
|
|
|
+ * @offset: Offset of struct spi_slave within slave structure
|
|
|
+ * @size: Size of slave structure
|
|
|
+ * @bus: Bus ID of the slave chip.
|
|
|
+ * @cs: Chip select ID of the slave chip on the specified bus.
|
|
|
+ */
|
|
|
+void *spi_do_alloc_slave(int offset, int size, unsigned int bus,
|
|
|
+ unsigned int cs);
|
|
|
+
|
|
|
+/**
|
|
|
+ * spi_alloc_slave - Allocate a new SPI slave
|
|
|
+ *
|
|
|
+ * Allocate and zero all fields in the spi slave, and set the bus/chip
|
|
|
+ * select.
|
|
|
+ *
|
|
|
+ * @_struct: Name of structure to allocate (e.g. struct tegra_spi). This
|
|
|
+ * structure must contain a member 'struct spi_slave *slave'.
|
|
|
+ * @bus: Bus ID of the slave chip.
|
|
|
+ * @cs: Chip select ID of the slave chip on the specified bus.
|
|
|
+ */
|
|
|
+#define spi_alloc_slave(_struct, bus, cs) \
|
|
|
+ spi_do_alloc_slave(offsetof(_struct, slave), \
|
|
|
+ sizeof(_struct), bus, cs)
|
|
|
+
|
|
|
+/**
|
|
|
+ * spi_alloc_slave_base - Allocate a new SPI slave with no private data
|
|
|
+ *
|
|
|
+ * Allocate and zero all fields in the spi slave, and set the bus/chip
|
|
|
+ * select.
|
|
|
+ *
|
|
|
+ * @bus: Bus ID of the slave chip.
|
|
|
+ * @cs: Chip select ID of the slave chip on the specified bus.
|
|
|
+ */
|
|
|
+#define spi_alloc_slave_base(bus, cs) \
|
|
|
+ spi_do_alloc_slave(0, sizeof(struct spi_slave), bus, cs)
|
|
|
+
|
|
|
/*-----------------------------------------------------------------------
|
|
|
* Set up communications parameters for a SPI slave.
|
|
|
*
|