summaryrefslogtreecommitdiffstats
path: root/include
diff options
context:
space:
mode:
authorSascha Hauer <s.hauer@pengutronix.de>2009-10-02 15:34:25 +0200
committerSascha Hauer <s.hauer@pengutronix.de>2009-10-02 15:34:25 +0200
commit5931e20907203970a6f6e39ab158857751422e0b (patch)
treeaa69785d24d23755006ed44ea18da3c953d00f9a /include
parentd13f32d50aa41c0e570040376ab4c47e98598e33 (diff)
downloadbarebox-5931e20907203970a6f6e39ab158857751422e0b.tar.gz
barebox-5931e20907203970a6f6e39ab158857751422e0b.tar.xz
imx spi: Use gpio as chip selects
Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'include')
-rw-r--r--include/asm-arm/arch-imx/spi.h27
1 files changed, 27 insertions, 0 deletions
diff --git a/include/asm-arm/arch-imx/spi.h b/include/asm-arm/arch-imx/spi.h
new file mode 100644
index 0000000000..08be445e8e
--- /dev/null
+++ b/include/asm-arm/arch-imx/spi.h
@@ -0,0 +1,27 @@
+
+#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. Numbers >= 0 mean gpio
+ * pins, numbers < 0 mean internal CSPI chipselects according
+ * to MXC_SPI_CS(). 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 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: ARRAY_SIZE(chipselect)
+ */
+struct spi_imx_master {
+ int *chipselect;
+ int num_chipselect;
+};
+
+#define MXC_SPI_CS(no) ((no) - 32)
+
+#endif /* __MACH_SPI_H_*/