From: Vignesh Raghavendra <vigneshr@ti.com>
To: Tudor Ambarus <tudor.ambarus@microchip.com>,
Mark Brown <broonie@kernel.org>
Cc: Boris Brezillon <bbrezillon@kernel.org>,
Ramuthevar Vadivel Murugan
<vadivel.muruganx.ramuthevar@linux.intel.com>,
"linux-mtd@lists.infradead.org" <linux-mtd@lists.infradead.org>,
"linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>,
"linux-spi@vger.kernel.org" <linux-spi@vger.kernel.org>,
"simon.k.r.goldschmidt@gmail.com"
<simon.k.r.goldschmidt@gmail.com>,
"dinguyen@kernel.org" <dinguyen@kernel.org>,
"marex@denx.de" <marex@denx.de>
Subject: Re: [PATCH 1/6] mtd: spi-nor: cadence-quadspi: Drop cdns,is-decoded-cs property
Date: Tue, 26 May 2020 15:01:19 +0530 [thread overview]
Message-ID: <7ea8e0fd-9709-42b1-66d5-8976b73dd82a@ti.com> (raw)
In-Reply-To: <20200508185411.487-2-vigneshr@ti.com>
On 09/05/20 12:24 am, Vignesh Raghavendra wrote:
> Cadence QSPI provides a way to automatically decode CS based on the
> offset accessed within memory map window. This feature cannot be
> supported in spi-mem framework as controller driver would not have
> access to flash geometry. Therefore drop this feature in preparation to
> moving to spi-mem.
>
> Note that, this feature never worked in the driver (Direct/Indirect mode
> accesses did not take into account size of flash on other CSs) and there
> are no users of this feature in kernel. Therefore dropping this should
> not cause a regression
>
I realized cdns,is-decoded-cs property does not depend on
cqspi_configure_cs_and_sizes() and can still be supported w/o knowing
flash geometry... Will respin..
Regards
Vignesh
> Signed-off-by: Vignesh Raghavendra <vigneshr@ti.com>
> ---
> .../mtd/spi-nor/controllers/cadence-quadspi.c | 59 +++----------------
> 1 file changed, 9 insertions(+), 50 deletions(-)
>
> diff --git a/drivers/mtd/spi-nor/controllers/cadence-quadspi.c b/drivers/mtd/spi-nor/controllers/cadence-quadspi.c
> index 494dcab4aaaa..fa54f85e16d7 100644
> --- a/drivers/mtd/spi-nor/controllers/cadence-quadspi.c
> +++ b/drivers/mtd/spi-nor/controllers/cadence-quadspi.c
> @@ -77,11 +77,7 @@ struct cqspi_st {
> dma_addr_t mmap_phys_base;
>
> int current_cs;
> - int current_page_size;
> - int current_erase_size;
> - int current_addr_width;
> unsigned long master_ref_clk_hz;
> - bool is_decoded_cs;
> u32 fifo_depth;
> u32 fifo_width;
> bool rclk_en;
> @@ -715,19 +711,15 @@ static void cqspi_chipselect(struct spi_nor *nor)
> unsigned int reg;
>
> reg = readl(reg_base + CQSPI_REG_CONFIG);
> - if (cqspi->is_decoded_cs) {
> - reg |= CQSPI_REG_CONFIG_DECODE_MASK;
> - } else {
> - reg &= ~CQSPI_REG_CONFIG_DECODE_MASK;
> + reg &= ~CQSPI_REG_CONFIG_DECODE_MASK;
>
> - /* Convert CS if without decoder.
> - * CS0 to 4b'1110
> - * CS1 to 4b'1101
> - * CS2 to 4b'1011
> - * CS3 to 4b'0111
> - */
> - chip_select = 0xF & ~(1 << chip_select);
> - }
> + /* Convert CS if without decoder.
> + * CS0 to 4b'1110
> + * CS1 to 4b'1101
> + * CS2 to 4b'1011
> + * CS3 to 4b'0111
> + */
> + chip_select = 0xF & ~(1 << chip_select);
>
> reg &= ~(CQSPI_REG_CONFIG_CHIPSELECT_MASK
> << CQSPI_REG_CONFIG_CHIPSELECT_LSB);
> @@ -736,32 +728,6 @@ static void cqspi_chipselect(struct spi_nor *nor)
> writel(reg, reg_base + CQSPI_REG_CONFIG);
> }
>
> -static void cqspi_configure_cs_and_sizes(struct spi_nor *nor)
> -{
> - struct cqspi_flash_pdata *f_pdata = nor->priv;
> - struct cqspi_st *cqspi = f_pdata->cqspi;
> - void __iomem *iobase = cqspi->iobase;
> - unsigned int reg;
> -
> - /* configure page size and block size. */
> - reg = readl(iobase + CQSPI_REG_SIZE);
> - reg &= ~(CQSPI_REG_SIZE_PAGE_MASK << CQSPI_REG_SIZE_PAGE_LSB);
> - reg &= ~(CQSPI_REG_SIZE_BLOCK_MASK << CQSPI_REG_SIZE_BLOCK_LSB);
> - reg &= ~CQSPI_REG_SIZE_ADDRESS_MASK;
> - reg |= (nor->page_size << CQSPI_REG_SIZE_PAGE_LSB);
> - reg |= (ilog2(nor->mtd.erasesize) << CQSPI_REG_SIZE_BLOCK_LSB);
> - reg |= (nor->addr_width - 1);
> - writel(reg, iobase + CQSPI_REG_SIZE);
> -
> - /* configure the chip select */
> - cqspi_chipselect(nor);
> -
> - /* Store the new configuration of the controller */
> - cqspi->current_page_size = nor->page_size;
> - cqspi->current_erase_size = nor->mtd.erasesize;
> - cqspi->current_addr_width = nor->addr_width;
> -}
> -
> static unsigned int calculate_ticks_for_ns(const unsigned int ref_clk_hz,
> const unsigned int ns_val)
> {
> @@ -867,18 +833,13 @@ static void cqspi_configure(struct spi_nor *nor)
> int switch_cs = (cqspi->current_cs != f_pdata->cs);
> int switch_ck = (cqspi->sclk != sclk);
>
> - if ((cqspi->current_page_size != nor->page_size) ||
> - (cqspi->current_erase_size != nor->mtd.erasesize) ||
> - (cqspi->current_addr_width != nor->addr_width))
> - switch_cs = 1;
> -
> if (switch_cs || switch_ck)
> cqspi_controller_enable(cqspi, 0);
>
> /* Switch chip select. */
> if (switch_cs) {
> cqspi->current_cs = f_pdata->cs;
> - cqspi_configure_cs_and_sizes(nor);
> + cqspi_chipselect(nor);
> }
>
> /* Setup baudrate divisor and delays */
> @@ -1145,8 +1106,6 @@ static int cqspi_of_get_pdata(struct platform_device *pdev)
> struct device_node *np = pdev->dev.of_node;
> struct cqspi_st *cqspi = platform_get_drvdata(pdev);
>
> - cqspi->is_decoded_cs = of_property_read_bool(np, "cdns,is-decoded-cs");
> -
> if (of_property_read_u32(np, "cdns,fifo-depth", &cqspi->fifo_depth)) {
> dev_err(&pdev->dev, "couldn't determine fifo-depth\n");
> return -ENXIO;
>
next prev parent reply other threads:[~2020-05-26 9:31 UTC|newest]
Thread overview: 10+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-05-08 18:54 [PATCH 0/6] mtd: spi-nor: Move cadence-qaudspi to spi-mem framework Vignesh Raghavendra
2020-05-08 18:54 ` [PATCH 1/6] mtd: spi-nor: cadence-quadspi: Drop cdns,is-decoded-cs property Vignesh Raghavendra
2020-05-26 9:31 ` Vignesh Raghavendra [this message]
2020-05-08 18:54 ` [PATCH 2/6] mtd: spi-nor: cadence-quadspi: Provide a way to disable DAC mode Vignesh Raghavendra
2020-05-28 18:37 ` Tudor.Ambarus
2020-05-08 18:54 ` [PATCH 3/6] mtd: spi-nor: cadence-quadspi: Don't initialize rx_dma_complete on failure Vignesh Raghavendra
2020-05-08 18:54 ` [PATCH 4/6] mtd: spi-nor: cadence-quadspi: Fix error path on failure to acquire reset lines Vignesh Raghavendra
2020-05-08 18:54 ` [PATCH 5/6] mtd: spi-nor: Convert cadence-quadspi to use spi-mem framework Vignesh Raghavendra
2020-05-08 18:54 ` [PATCH 6/6] spi: Move cadence-quadspi driver to drivers/spi/ Vignesh Raghavendra
2020-05-11 10:20 ` [PATCH 0/6] mtd: spi-nor: Move cadence-qaudspi to spi-mem framework Ramuthevar, Vadivel MuruganX
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=7ea8e0fd-9709-42b1-66d5-8976b73dd82a@ti.com \
--to=vigneshr@ti.com \
--cc=bbrezillon@kernel.org \
--cc=broonie@kernel.org \
--cc=dinguyen@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mtd@lists.infradead.org \
--cc=linux-spi@vger.kernel.org \
--cc=marex@denx.de \
--cc=simon.k.r.goldschmidt@gmail.com \
--cc=tudor.ambarus@microchip.com \
--cc=vadivel.muruganx.ramuthevar@linux.intel.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).