Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 035540f6 authored by Brian Niebuhr's avatar Brian Niebuhr Committed by Sekhar Nori
Browse files

spi: davinci: add additional comments



Add comments describing the platform data members
and per-chip-select SPI configuration structure.

Also, add some comments describing the what happens
during the driver probe.

Signed-off-by: default avatarBrian Niebuhr <bniebuhr@efjohnson.com>
Tested-By: default avatarMichael Williamson <michael.williamson@criticallink.com>
Signed-off-by: default avatarSekhar Nori <nsekhar@ti.com>
parent d8c174cd
Loading
Loading
Loading
Loading
+32 −0
Original line number Original line Diff line number Diff line
@@ -26,6 +26,20 @@ enum {
	SPI_VERSION_2, /* For DA8xx */
	SPI_VERSION_2, /* For DA8xx */
};
};


/**
 * davinci_spi_platform_data - Platform data for SPI master device on DaVinci
 *
 * @version:	version of the SPI IP. Different DaVinci devices have slightly
 *		varying versions of the same IP.
 * @num_chipselect: number of chipselects supported by this SPI master
 * @intr_line:	interrupt line used to connect the SPI IP to the ARM interrupt
 *		controller withn the SoC. Possible values are 0 and 1.
 * @chip_sel:	list of GPIOs which can act as chip-selects for the SPI.
 *		SPI_INTERN_CS denotes internal SPI chip-select. Not necessary
 *		to populate if all chip-selects are internal.
 * @cshold_bug:	set this to true if the SPI controller on your chip requires
 *		a write to CSHOLD bit in between transfers (like in DM355).
 */
struct davinci_spi_platform_data {
struct davinci_spi_platform_data {
	u8	version;
	u8	version;
	u8	num_chipselect;
	u8	num_chipselect;
@@ -34,6 +48,24 @@ struct davinci_spi_platform_data {
	bool	cshold_bug;
	bool	cshold_bug;
};
};


/**
 * davinci_spi_config - Per-chip-select configuration for SPI slave devices
 *
 * @wdelay:	amount of delay between transmissions. Measured in number of
 *		SPI module clocks.
 * @odd_parity:	polarity of parity flag at the end of transmit data stream.
 *		0 - odd parity, 1 - even parity.
 * @parity_enable: enable transmission of parity at end of each transmit
 *		data stream.
 * @io_type:	type of IO transfer. Choose between polled, interrupt and DMA.
 * @timer_disable: disable chip-select timers (setup and hold)
 * @c2tdelay:	chip-select setup time. Measured in number of SPI module clocks.
 * @t2cdelay:	chip-select hold time. Measured in number of SPI module clocks.
 * @t2edelay:	transmit data finished to SPI ENAn pin inactive time. Measured
 *		in number of SPI clocks.
 * @c2edelay:	chip-select active to SPI ENAn signal active time. Measured in
 *		number of SPI clocks.
 */
struct davinci_spi_config {
struct davinci_spi_config {
	u8	wdelay;
	u8	wdelay;
	u8	odd_parity;
	u8	odd_parity;
+7 −0
Original line number Original line Diff line number Diff line
@@ -787,6 +787,13 @@ static int davinci_spi_request_dma(struct davinci_spi *davinci_spi)
/**
/**
 * davinci_spi_probe - probe function for SPI Master Controller
 * davinci_spi_probe - probe function for SPI Master Controller
 * @pdev: platform_device structure which contains plateform specific data
 * @pdev: platform_device structure which contains plateform specific data
 *
 * According to Linux Device Model this function will be invoked by Linux
 * with platform_device struct which contains the device specific info.
 * This function will map the SPI controller's memory, register IRQ,
 * Reset SPI controller and setting its registers to default value.
 * It will invoke spi_bitbang_start to create work queue so that client driver
 * can register transfer method to work queue.
 */
 */
static int davinci_spi_probe(struct platform_device *pdev)
static int davinci_spi_probe(struct platform_device *pdev)
{
{