lkml.org 
[lkml]   [2020]   [Nov]   [15]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH v7 2/6] spi: cadence-quadspi: Disable the DAC for Intel LGM SoC
    Date
    From: Ramuthevar Vadivel Murugan <vadivel.muruganx.ramuthevar@linux.intel.com>

    On Intel Lightning Mountain(LGM) SoCs QSPI controller do not use
    Direct Access Controller(DAC).

    This patch adds a quirk to disable the Direct Access Controller
    for data transfer instead it uses indirect data transfe

    DAC bit resets to 1 so there is no need to explicitly set it.

    Signed-off-by: Ramuthevar Vadivel Murugan <vadivel.muruganx.ramuthevar@linux.intel.com>
    ---
    drivers/spi/spi-cadence-quadspi.c | 15 +++++++++++----
    1 file changed, 11 insertions(+), 4 deletions(-)

    diff --git a/drivers/spi/spi-cadence-quadspi.c b/drivers/spi/spi-cadence-quadspi.c
    index d7b10c46fa70..d12b765e87be 100644
    --- a/drivers/spi/spi-cadence-quadspi.c
    +++ b/drivers/spi/spi-cadence-quadspi.c
    @@ -1101,10 +1101,12 @@ static void cqspi_controller_init(struct cqspi_st *cqspi)
    writel(cqspi->fifo_depth * cqspi->fifo_width / 8,
    cqspi->iobase + CQSPI_REG_INDIRECTWRWATERMARK);

    - /* Enable Direct Access Controller */
    - reg = readl(cqspi->iobase + CQSPI_REG_CONFIG);
    - reg |= CQSPI_REG_CONFIG_ENB_DIR_ACC_CTRL;
    - writel(reg, cqspi->iobase + CQSPI_REG_CONFIG);
    + /* Disable direct access controller */
    + if (!cqspi->use_direct_mode) {
    + reg = readl(cqspi->iobase + CQSPI_REG_CONFIG);
    + reg &= ~CQSPI_REG_CONFIG_ENB_DIR_ACC_CTRL;
    + writel(reg, cqspi->iobase + CQSPI_REG_CONFIG);
    + }

    cqspi_controller_enable(cqspi, 1);
    }
    @@ -1388,6 +1390,10 @@ static const struct cqspi_driver_platdata am654_ospi = {
    .quirks = CQSPI_NEEDS_WR_DELAY,
    };

    +static const struct cqspi_driver_platdata intel_lgm_qspi = {
    + .quirks = CQSPI_DISABLE_DAC_MODE,
    +};
    +
    static const struct of_device_id cqspi_dt_ids[] = {
    {
    .compatible = "cdns,qspi-nor",
    @@ -1403,6 +1409,7 @@ static const struct of_device_id cqspi_dt_ids[] = {
    },
    {
    .compatible = "intel,lgm-qspi",
    + .data = &intel_lgm_qspi,
    },
    { /* end of table */ }
    };
    --
    2.11.0
    \
     
     \ /
      Last update: 2020-11-16 04:13    [W:2.865 / U:0.832 seconds]
    ©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site