|
@@ -315,6 +315,9 @@ static void s3c64xx_spi_set_cs(struct spi_device *spi, bool enable)
|
|
|
struct s3c64xx_spi_driver_data *sdd =
|
|
|
spi_master_get_devdata(spi->master);
|
|
|
|
|
|
+ if (sdd->cntrlr_info->no_cs)
|
|
|
+ return;
|
|
|
+
|
|
|
if (enable) {
|
|
|
if (!(sdd->port_conf->quirks & S3C64XX_SPI_QUIRK_CS_AUTO)) {
|
|
|
writel(0, sdd->regs + S3C64XX_SPI_SLAVE_SEL);
|
|
@@ -960,7 +963,9 @@ static void s3c64xx_spi_hwinit(struct s3c64xx_spi_driver_data *sdd, int channel)
|
|
|
|
|
|
sdd->cur_speed = 0;
|
|
|
|
|
|
- if (!(sdd->port_conf->quirks & S3C64XX_SPI_QUIRK_CS_AUTO))
|
|
|
+ if (sci->no_cs)
|
|
|
+ writel(0, sdd->regs + S3C64XX_SPI_SLAVE_SEL);
|
|
|
+ else if (!(sdd->port_conf->quirks & S3C64XX_SPI_QUIRK_CS_AUTO))
|
|
|
writel(S3C64XX_SPI_SLAVE_SIG_INACT, sdd->regs + S3C64XX_SPI_SLAVE_SEL);
|
|
|
|
|
|
/* Disable Interrupts - we use Polling if not DMA mode */
|
|
@@ -1015,6 +1020,8 @@ static struct s3c64xx_spi_info *s3c64xx_spi_parse_dt(struct device *dev)
|
|
|
sci->num_cs = temp;
|
|
|
}
|
|
|
|
|
|
+ sci->no_cs = of_property_read_bool(dev->of_node, "broken-cs");
|
|
|
+
|
|
|
return sci;
|
|
|
}
|
|
|
#else
|