One more SPI bugfix patch, added /dev/spidev support

This commit is contained in:
Manuel Reimer 2014-05-12 21:04:33 +02:00
parent fe18013179
commit 09bdcd9e28
3 changed files with 51 additions and 0 deletions

View file

@ -0,0 +1,24 @@
diff --git a/drivers/spi/spi-mxs.c b/drivers/spi/spi-mxs.c
index 86dd04d..265c33f 100644
--- a/drivers/spi/spi-mxs.c
+++ b/drivers/spi/spi-mxs.c
@@ -241,6 +241,7 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi, int cs,
INIT_COMPLETION(spi->c);
ctrl0 = readl(ssp->base + HW_SSP_CTRL0);
+ ctrl0 &= ~BM_SSP_CTRL0_XFER_COUNT;
ctrl0 |= BM_SSP_CTRL0_DATA_XFER | mxs_spi_cs_to_reg(cs);
if (*first)
@@ -256,8 +257,10 @@ static int mxs_spi_txrx_dma(struct mxs_spi *spi, int cs,
if ((sg_count + 1 == sgs) && *last)
ctrl0 |= BM_SSP_CTRL0_IGNORE_CRC;
- if (ssp->devid == IMX23_SSP)
+ if (ssp->devid == IMX23_SSP) {
+ ctrl0 &= ~BM_SSP_CTRL0_XFER_COUNT;
ctrl0 |= min;
+ }
dma_xfer[sg_count].pio[0] = ctrl0;
dma_xfer[sg_count].pio[3] = min;

View file

@ -0,0 +1,21 @@
Source: https://www.olimex.com/forum/index.php?topic=1810
diff --git a/arch/arm/boot/dts/imx23-olinuxino.dts b/arch/arm/boot/dts/imx23-olinuxino.dts
index d107c4a..993da2e 100644
--- a/arch/arm/boot/dts/imx23-olinuxino.dts
+++ b/arch/arm/boot/dts/imx23-olinuxino.dts
@@ -64,7 +64,14 @@
compatible = "fsl,imx23-spi";
pinctrl-names = "default";
pinctrl-0 = <&spi2_pins_a>;
+ clock-frequency = <1000000>;
status = "okay";
+
+ spidev0: spidev@0 {
+ compatible = "spidev";
+ spi-max-frequency = <1000000>;
+ reg = <0>;
+ };
};
};

View file

@ -24,6 +24,8 @@ source=("http://www.kernel.org/pub/linux/kernel/v3.0/linux-${_basekernel}.tar.xz
'0001-mmc-mxs-mmc-Add-support-for-non-removable-cards.patch'
'0002-ARM-dts-imx23-olinuxino-Set-the-sdcard-as-non-remova.patch'
'0001-rtl8192cu.patch'
'0001-mxs-spi-clear-XFER_LEN-in-CTRL0-register-during-DMA.patch'
'0002-ARM-imx23-olinuxino-Add-spidev-support.patch'
'memset.patch')
md5sums=('21223369d682bcf44bcdfe1521095983'
'b88977838a2a52ff4fb4e82b30726496'
@ -34,6 +36,8 @@ md5sums=('21223369d682bcf44bcdfe1521095983'
'8a034a737c554cc4ef99ca3854ad56d5'
'ef27d61a159fa9fcba6e7b93e9f630f2'
'2a2b8c032e3e6f34f72661e861c392e9'
'ae07da78d2c916cbce70ecfb3f274c2e'
'068301d9e088335eb329dd93317246f9'
'39be2896f0b968d61a19b33da75ce6e0')
prepare() {
@ -54,6 +58,8 @@ prepare() {
patch -Np1 -i "${srcdir}/0001-MXS-imx23-olinuxino-Add-i2c-support.patch"
patch -Np1 -i "${srcdir}/0001-rtl8192cu.patch"
patch -Np1 -i "${srcdir}/0001-mmc-mxs-mmc-Add-support-for-non-removable-cards.patch"
patch -Np1 -i "${srcdir}/0001-mxs-spi-clear-XFER_LEN-in-CTRL0-register-during-DMA.patch"
patch -Np1 -i "${srcdir}/0002-ARM-imx23-olinuxino-Add-spidev-support.patch"
patch -Np1 -i "${srcdir}/0002-ARM-dts-imx23-olinuxino-Set-the-sdcard-as-non-remova.patch"
patch -Np1 -i "${srcdir}/memset.patch"