All SPI-based device drivers needs to call SPI_HWFEATURES() with zero in order to co-exist with drivers that use H/W features

This commit is contained in:
Gregory Nutt
2016-01-23 16:18:13 -06:00
parent c36c49657b
commit f6e49caba8
35 changed files with 88 additions and 42 deletions
+6 -4
View File
@@ -299,10 +299,11 @@ static inline void memlcd_configspi(FAR struct spi_dev_s *spi)
#ifdef CONFIG_SPI_OWNBUS
SPI_SETMODE(spi, MEMLCD_SPI_MODE);
SPI_SETBITS(spi, MEMLCD_SPI_BITS);
(void)SPI_HWFEATURES(spi, 0);
# ifdef CONFIG_MEMLCD_SPI_FREQUENCY
SPI_SETFREQUENCY(spi, CONFIG_MEMLCD_SPI_FREQUENCY);
(void)SPI_SETFREQUENCY(spi, CONFIG_MEMLCD_SPI_FREQUENCY);
# else
SPI_SETFREQUENCY(spi, MEMLCD_SPI_FREQUENCY);
(void)SPI_SETFREQUENCY(spi, MEMLCD_SPI_FREQUENCY);
# endif
#endif
}
@@ -344,10 +345,11 @@ static void memlcd_select(FAR struct spi_dev_s *spi)
*/
SPI_SETMODE(spi, MEMLCD_SPI_MODE);
SPI_SETBITS(spi, MEMLCD_SPI_BITS);
(void)SPI_HWFEATURES(spi, 0);
# ifdef CONFIG_MEMLCD_SPI_FREQUENCY
SPI_SETFREQUENCY(spi, CONFIG_MEMLCD_SPI_FREQUENCY);
(void)SPI_SETFREQUENCY(spi, CONFIG_MEMLCD_SPI_FREQUENCY);
# else
SPI_SETFREQUENCY(spi, MEMLCD_SPI_FREQUENCY);
(void)SPI_SETFREQUENCY(spi, MEMLCD_SPI_FREQUENCY);
# endif
}
#endif
+4 -2
View File
@@ -678,7 +678,8 @@ static inline void nokia_configspi(FAR struct spi_dev_s *spi)
#ifdef CONFIG_SPI_OWNBUS
SPI_SETMODE(spi, CONFIG_NOKIA6100_SPIMODE);
SPI_SETBITS(spi, CONFIG_NOKIA6100_WORDWIDTH);
SPI_SETFREQUENCY(spi, CONFIG_NOKIA6100_FREQUENCY)
(void)SPI_HWFEATURES(spi, 0);
(void)SPI_SETFREQUENCY(spi, CONFIG_NOKIA6100_FREQUENCY)
#endif
}
@@ -723,7 +724,8 @@ static void nokia_select(FAR struct spi_dev_s *spi)
SPI_SETMODE(spi, CONFIG_NOKIA6100_SPIMODE);
SPI_SETBITS(spi, CONFIG_NOKIA6100_WORDWIDTH);
SPI_SETFREQUENCY(spi, CONFIG_NOKIA6100_FREQUENCY);
(void)SPI_HWFEATURES(spi, 0);
(void)SPI_SETFREQUENCY(spi, CONFIG_NOKIA6100_FREQUENCY);
}
#endif
+4 -2
View File
@@ -460,8 +460,9 @@ static inline void rit_configspi(FAR struct spi_dev_s *spi)
#ifdef CONFIG_SPI_OWNBUS
SPI_SETMODE(spi, CONFIG_P14201_SPIMODE);
SPI_SETBITS(spi, 8);
(void)SPI_HWFEATURES(spi, 0);
#ifdef CONFIG_P14201_FREQUENCY
SPI_SETFREQUENCY(spi, CONFIG_P14201_FREQUENCY)
(void)SPI_SETFREQUENCY(spi, CONFIG_P14201_FREQUENCY)
#endif
#endif
}
@@ -505,8 +506,9 @@ static void rit_select(FAR struct spi_dev_s *spi)
SPI_SETMODE(spi, CONFIG_P14201_SPIMODE);
SPI_SETBITS(spi, 8);
(void)SPI_HWFEATURES(spi, 0);
#ifdef CONFIG_P14201_FREQUENCY
SPI_SETFREQUENCY(spi, CONFIG_P14201_FREQUENCY);
(void)SPI_SETFREQUENCY(spi, CONFIG_P14201_FREQUENCY);
#endif
}
#endif
+7 -6
View File
@@ -824,15 +824,16 @@ FAR struct lcd_dev_s *ssd1306_initialize(FAR struct i2c_dev_s *dev, unsigned int
*/
# ifdef CONFIG_SPI_OWNBUS
/* Configure SPI */
/* Configure SPI */
SPI_SETMODE(priv->spi, CONFIG_SSD1306_SPIMODE);
SPI_SETBITS(priv->spi, 8);
SPI_SETFREQUENCY(priv->spi, CONFIG_SSD1306_FREQUENCY);
SPI_SETMODE(priv->spi, CONFIG_SSD1306_SPIMODE);
SPI_SETBITS(priv->spi, 8);
(void)SPI_HWFEATURES(priv->spi, 0);
(void)SPI_SETFREQUENCY(priv->spi, CONFIG_SSD1306_FREQUENCY);
# else
/* Configure the SPI */
/* Configure the SPI */
ssd1306_configspi(priv->spi);
ssd1306_configspi(priv->spi);
# endif
#else
+2 -1
View File
@@ -71,7 +71,8 @@ static inline void ssd1306_configspi(FAR struct spi_dev_s *spi)
SPI_SETMODE(spi, CONFIG_SSD1306_SPIMODE);
SPI_SETBITS(spi, 8);
SPI_SETFREQUENCY(spi, CONFIG_SSD1306_FREQUENCY);
(void)SPI_HWFEATURES(spi, 0);
(void)SPI_SETFREQUENCY(spi, CONFIG_SSD1306_FREQUENCY);
}
#endif
+4 -2
View File
@@ -510,7 +510,8 @@ static void ssd1351_select(FAR struct ssd1351_dev_s *priv)
#ifndef CONFIG_SPI_OWNBUS
SPI_SETMODE(spi, CONFIG_SSD1351_SPIMODE);
SPI_SETBITS(spi, SSD1351_SPIBITS);
SPI_SETFREQUENCY(spi, CONFIG_SSD1351_SPIFREQ);
(void)SPI_HWFEATURES(spi, 0);
(void)SPI_SETFREQUENCY(spi, CONFIG_SSD1351_SPIFREQ);
#endif
}
#endif
@@ -1196,7 +1197,8 @@ FAR struct lcd_dev_s *ssd1351_initialize(FAR struct spi_dev_s *spi,
#ifdef CONFIG_SPI_OWNBUS
SPI_SETMODE(spi, CONFIG_SSD1351_SPIMODE);
SPI_SETBITS(spi, SSD1351_SPIBITS);
SPI_SETFREQUENCY(spi, CONFIG_SSD1351_SPIFREQ);
(void)SPI_HWFEATURES(spi, 0);
(void)SPI_SETFREQUENCY(spi, CONFIG_SSD1351_SPIFREQ);
#endif
#endif
+2 -1
View File
@@ -394,8 +394,9 @@ static void st7567_select(FAR struct spi_dev_s *spi)
SPI_SETMODE(spi, CONFIG_ST7567_SPIMODE);
SPI_SETBITS(spi, 8);
(void)SPI_HWFEATURES(spi, 0);
#ifdef CONFIG_ST7567_FREQUENCY
SPI_SETFREQUENCY(spi, CONFIG_ST7567_FREQUENCY);
(void)SPI_SETFREQUENCY(spi, CONFIG_ST7567_FREQUENCY);
#endif
}
#endif
+4 -2
View File
@@ -436,7 +436,8 @@ static inline void ug2864ambag01_configspi(FAR struct spi_dev_s *spi)
SPI_SETMODE(spi, CONFIG_UG2864AMBAG01_SPIMODE);
SPI_SETBITS(spi, 8);
SPI_SETFREQUENCY(spi, CONFIG_UG2864AMBAG01_FREQUENCY);
(void)SPI_HWFEATURES(spi, 0);
(void)SPI_SETFREQUENCY(spi, CONFIG_UG2864AMBAG01_FREQUENCY);
}
#endif
@@ -469,7 +470,8 @@ static inline void ug2864ambag01_lock(FAR struct spi_dev_s *spi)
SPI_SETMODE(spi, CONFIG_UG2864AMBAG01_SPIMODE);
SPI_SETBITS(spi, 8);
SPI_SETFREQUENCY(spi, CONFIG_UG2864AMBAG01_FREQUENCY);
(void)SPI_HWFEATURES(spi, 0);
(void)SPI_SETFREQUENCY(spi, CONFIG_UG2864AMBAG01_FREQUENCY);
}
#endif
+2 -1
View File
@@ -438,8 +438,9 @@ static void ug_select(FAR struct spi_dev_s *spi)
SPI_SETMODE(spi, CONFIG_UG9664HSWAG01_SPIMODE);
SPI_SETBITS(spi, 8);
(void)SPI_HWFEATURES(spi, 0);
#ifdef CONFIG_UG9664HSWAG01_FREQUENCY
SPI_SETFREQUENCY(spi, CONFIG_UG9664HSWAG01_FREQUENCY);
(void)SPI_SETFREQUENCY(spi, CONFIG_UG9664HSWAG01_FREQUENCY);
#endif
}
#endif