From: Mark Brown <broonie-DgEjT+Ai2ygdnm+yROfE0A@public.gmane.org>
To: Konrad Kociolek <konrad-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org>
Cc: linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
Subject: Re: [PATCH v2 1/2] Add Cadence XSPI driver
Date: Mon, 10 Feb 2020 19:16:20 +0000 [thread overview]
Message-ID: <20200210191620.GE14166@sirena.org.uk> (raw)
In-Reply-To: <20200128124212.12298-1-konrad-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org>
[-- Attachment #1: Type: text/plain, Size: 3172 bytes --]
On Tue, Jan 28, 2020 at 01:41:57PM +0100, Konrad Kociolek wrote:
> Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
>
> +config SPI_CADENCE_XSPI
> + tristate "Cadence XSPI controller"
> + depends on (OF || COMPILE_TEST) && HAS_IOMEM
> + help
> + Enable support for the Cadence XSPI Flash controller.
> +
> + Cadence XSPI is a specialized controller for connecting an SPI
> + Flash over upto 8bit wide bus. Enable this option if you have a
> + device with a Cadence XSPI controller and want to access the
> + Flash as an MTD device.
> +
> #
> # Add new SPI master controllers in alphabetical order above this line
> #
Please keep Kconfig and Makefile alphabetically sorted as the comment in
the context from the diff says. :/
> --- /dev/null
> +++ b/drivers/spi/spi-cadence-xspi.c
> @@ -0,0 +1,895 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Cadence XSPI flash controller driver
Please make the entire comment a C++ so things look more intentional.
> + dev_info(cdns_xspi->dev,
> + "Running PHY training for read_dqs_delay parameter\n");
This print is just noise, please remove it.
> +static int cdns_xspi_setup(struct spi_device *spi_dev)
> +{
> + if (spi_dev->chip_select > spi_dev->master->num_chipselect) {
> + dev_err(&spi_dev->dev,
> + "%d chip-select is out of range\n",
> + spi_dev->chip_select);
> + return -EINVAL;
> + }
If this isn't already being validated by the core it should be and this
function can be removed.
> + irq_status = readl(cdns_xspi->iobase + CDNS_XSPI_INTR_STATUS_REG);
> + if (irq_status) {
> + writel(irq_status,
> + cdns_xspi->iobase + CDNS_XSPI_INTR_STATUS_REG);
This unconditionally acknowledges everything, even things we don't
understand. If the hardware is generating unexpected interrupt statuses
we should probably warn.
> +static void cdns_xspi_print_phy_config(struct cdns_xspi_dev *cdns_xspi)
> +{
> + struct device *dev = cdns_xspi->dev;
> +
> + dev_info(dev, "PHY configuration\n");
> + dev_info(dev, " * xspi_dll_phy_ctrl: %08x\n",
> + readl(cdns_xspi->iobase + CDNS_XSPI_DLL_PHY_CTRL));
> + dev_info(dev, " * phy_dq_timing: %08x\n",
> + readl(cdns_xspi->auxbase + CDNS_XSPI_CCP_PHY_DQ_TIMING));
> + dev_info(dev, " * phy_dqs_timing: %08x\n",
> + readl(cdns_xspi->auxbase + CDNS_XSPI_CCP_PHY_DQS_TIMING));
> + dev_info(dev, " * phy_gate_loopback_ctrl: %08x\n",
> + readl(cdns_xspi->auxbase + CDNS_XSPI_CCP_PHY_GATE_LPBCK_CTRL));
> + dev_info(dev, " * phy_dll_slave_ctrl: %08x\n",
> + readl(cdns_xspi->auxbase + CDNS_XSPI_CCP_PHY_DLL_SLAVE_CTRL));
> +}
This seems pretty verbose for an individual device... If this is needed
for diagnostics perhaps put it in sysfs or debugfs where it'll be
accessible even if the log wraps?
> +err_no_mem:
> + dev_err(dev, "Failed to probe Cadence XSPI controller driver\n");
Not sure this is adding anything over the individual error messages on
specific failures.
> +#ifdef CONFIG_OF
> +static const struct of_device_id cdns_xspi_of_match[] = {
> + {
> + .compatible = "cdns,xspi-nor-fpga",
> + },
Why -fpga?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
WARNING: multiple messages have this Message-ID (diff)
From: Mark Brown <broonie@kernel.org>
To: Konrad Kociolek <konrad@cadence.com>
Cc: linux-kernel@vger.kernel.org, linux-spi@vger.kernel.org
Subject: Re: [PATCH v2 1/2] Add Cadence XSPI driver
Date: Mon, 10 Feb 2020 19:16:20 +0000 [thread overview]
Message-ID: <20200210191620.GE14166@sirena.org.uk> (raw)
In-Reply-To: <20200128124212.12298-1-konrad@cadence.com>
[-- Attachment #1: Type: text/plain, Size: 3172 bytes --]
On Tue, Jan 28, 2020 at 01:41:57PM +0100, Konrad Kociolek wrote:
> Enables Xilinx GQSPI controller driver for Zynq UltraScale+ MPSoC.
>
> +config SPI_CADENCE_XSPI
> + tristate "Cadence XSPI controller"
> + depends on (OF || COMPILE_TEST) && HAS_IOMEM
> + help
> + Enable support for the Cadence XSPI Flash controller.
> +
> + Cadence XSPI is a specialized controller for connecting an SPI
> + Flash over upto 8bit wide bus. Enable this option if you have a
> + device with a Cadence XSPI controller and want to access the
> + Flash as an MTD device.
> +
> #
> # Add new SPI master controllers in alphabetical order above this line
> #
Please keep Kconfig and Makefile alphabetically sorted as the comment in
the context from the diff says. :/
> --- /dev/null
> +++ b/drivers/spi/spi-cadence-xspi.c
> @@ -0,0 +1,895 @@
> +// SPDX-License-Identifier: GPL-2.0+
> +/*
> + * Cadence XSPI flash controller driver
Please make the entire comment a C++ so things look more intentional.
> + dev_info(cdns_xspi->dev,
> + "Running PHY training for read_dqs_delay parameter\n");
This print is just noise, please remove it.
> +static int cdns_xspi_setup(struct spi_device *spi_dev)
> +{
> + if (spi_dev->chip_select > spi_dev->master->num_chipselect) {
> + dev_err(&spi_dev->dev,
> + "%d chip-select is out of range\n",
> + spi_dev->chip_select);
> + return -EINVAL;
> + }
If this isn't already being validated by the core it should be and this
function can be removed.
> + irq_status = readl(cdns_xspi->iobase + CDNS_XSPI_INTR_STATUS_REG);
> + if (irq_status) {
> + writel(irq_status,
> + cdns_xspi->iobase + CDNS_XSPI_INTR_STATUS_REG);
This unconditionally acknowledges everything, even things we don't
understand. If the hardware is generating unexpected interrupt statuses
we should probably warn.
> +static void cdns_xspi_print_phy_config(struct cdns_xspi_dev *cdns_xspi)
> +{
> + struct device *dev = cdns_xspi->dev;
> +
> + dev_info(dev, "PHY configuration\n");
> + dev_info(dev, " * xspi_dll_phy_ctrl: %08x\n",
> + readl(cdns_xspi->iobase + CDNS_XSPI_DLL_PHY_CTRL));
> + dev_info(dev, " * phy_dq_timing: %08x\n",
> + readl(cdns_xspi->auxbase + CDNS_XSPI_CCP_PHY_DQ_TIMING));
> + dev_info(dev, " * phy_dqs_timing: %08x\n",
> + readl(cdns_xspi->auxbase + CDNS_XSPI_CCP_PHY_DQS_TIMING));
> + dev_info(dev, " * phy_gate_loopback_ctrl: %08x\n",
> + readl(cdns_xspi->auxbase + CDNS_XSPI_CCP_PHY_GATE_LPBCK_CTRL));
> + dev_info(dev, " * phy_dll_slave_ctrl: %08x\n",
> + readl(cdns_xspi->auxbase + CDNS_XSPI_CCP_PHY_DLL_SLAVE_CTRL));
> +}
This seems pretty verbose for an individual device... If this is needed
for diagnostics perhaps put it in sysfs or debugfs where it'll be
accessible even if the log wraps?
> +err_no_mem:
> + dev_err(dev, "Failed to probe Cadence XSPI controller driver\n");
Not sure this is adding anything over the individual error messages on
specific failures.
> +#ifdef CONFIG_OF
> +static const struct of_device_id cdns_xspi_of_match[] = {
> + {
> + .compatible = "cdns,xspi-nor-fpga",
> + },
Why -fpga?
[-- Attachment #2: signature.asc --]
[-- Type: application/pgp-signature, Size: 488 bytes --]
next prev parent reply other threads:[~2020-02-10 19:16 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-01-28 12:41 [PATCH v2 1/2] Add Cadence XSPI driver Konrad Kociolek
2020-01-28 12:41 ` Konrad Kociolek
[not found] ` <20200128124212.12298-1-konrad-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org>
2020-02-10 19:16 ` Mark Brown [this message]
2020-02-10 19:16 ` Mark Brown
[not found] ` <20200210191620.GE14166-GFdadSzt00ze9xe1eoZjHA@public.gmane.org>
2020-02-20 8:23 ` Konrad Kociolek
2020-02-20 8:23 ` Konrad Kociolek
[not found] ` <20200220082354.GA15619-3ZcXq++oLud4Zxsjz0bX7NBPR1lH4CV8@public.gmane.org>
2020-02-20 11:40 ` Mark Brown
2020-02-20 11:40 ` Mark Brown
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=20200210191620.GE14166@sirena.org.uk \
--to=broonie-dgejt+ai2ygdnm+yrofe0a@public.gmane.org \
--cc=konrad-vna1KIf7WgpBDgjK7y7TUQ@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-spi-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
/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 an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.