Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > linux.kernel > #1471839
| Path | csiph.com!goblin3!goblin.stu.neva.ru!sewer!news.mixmin.net!aioe.org!bofh.it!news.nic.it!robomod |
|---|---|
| From | Jagan Teki <jagannadh.teki@gmail.com> |
| Newsgroups | linux.kernel |
| Subject | Re: [PATCH 1/6] mtd: spi-nor: Add quad page program support |
| Date | Mon, 29 Aug 2016 15:30:02 +0200 |
| Message-ID | <sbuNs-7PD-25@gated-at.bofh.it> (permalink) |
| References | <s4m8h-404-3@gated-at.bofh.it> |
| Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=gmail.com; s=20120113; h=mime-version:in-reply-to:references:from:date:message-id:subject:to :cc; bh=bP4fP7atlPVYAHNguh3BIb3MshT5y7dL83dwei503MM=; b=uNWzelrVBYoPioUjyj9FixLDuxZP1MR5PWSN2FJ0CBH0lDa0AmKfdK9xpQxAesSHks Bd0KjkeXr5mIamFwPoOdao0pMYjgel9uQZmSJG0k4ncjo92yA6b8rs17vvgoAb8wWxu6 FB8X8tI/l7eE6cQmq1nX53K0Ugyww9pJaxLKiqIn4olzUz0GKWI7a5K2/GCoiNuGdecA KMy5WG+ZyrrGX3jlb2NoKJG0cDL8YaEjaY5t0TkKD+shApHKUjrnU0+VPmvTf18QSt1/ WHHC/qx2448L4JKyALQ95SZvZrKwrCQAKnFS7pVLo+K0DuR+GFqEzo3RQd06gpn+5BWi shQg== |
| X-Google-Dkim-Signature | v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20130820; h=x-gm-message-state:mime-version:in-reply-to:references:from:date :message-id:subject:to:cc; bh=bP4fP7atlPVYAHNguh3BIb3MshT5y7dL83dwei503MM=; b=GA1TVBRASAUlRWWyk6S+xbaeh78Eoi1eH/Q+41iZUS+3ikZQQ4+aJVsZ4psjpQvyMS //tgE/zdIaYuqS0T9O7mHcQKt6xybwMpMrFMJfVXcoUJSQLAY4bhzc2bdbOQwFQ1prJy yVQcQn+xV/NHSGsIuWrYyNvnE8NYQVnWxwCIBuGhDiXmwAyu+Gpvp+ZpaL9r2ofgzsRb HF+qbf58hjINcT4iE4QmDWKi9z1ERgN8EnkT60EJHJ16ToPJFrjflm38vvuY8mZQ8kqr CR/Qkl9I+mlPUKQugbof35UwwpVoo29iCELyt1xntHbbGeY1jMN7KTWqq37BoPY4uvmn 9PnA== |
| X-Gm-Message-State | AE9vXwPRoTu5g3hahIJCsWCq5C+6Q+tvt60bG+Xs3ZlHLyxi2g36M1krbqe6nM56EArbrxrXjG6jVKZgOoB3cQ== |
| X-Received | by 10.25.34.214 with SMTP id i205mr5205085lfi.151.1472477098082; Mon, 29 Aug 2016 06:24:58 -0700 (PDT) |
| MIME-Version | 1.0 |
| Content-Type | text/plain; charset=UTF-8 |
| Sender | robomod@news.nic.it |
| List-ID | <linux-kernel.vger.kernel.org> |
| X-Mailing-List | linux-kernel@vger.kernel.org |
| Approved | robomod@news.nic.it |
| Lines | 85 |
| Organization | linux.* mail to news gateway |
| X-Original-Cc | David Woodhouse <dwmw2@infradead.org>, "linux-kernel@vger.kernel.org" <linux-kernel@vger.kernel.org>, Jagan Teki <jteki@openedev.com>, Brian Norris <computersforpeace@gmail.com> |
| X-Original-Date | Mon, 29 Aug 2016 18:54:57 +0530 |
| X-Original-Message-ID | <CAD6G_RRHP+pKJOAMO0UtNNtSnpSmE_FrKU5=o8FUAkKjP_fSyQ@mail.gmail.com> |
| X-Original-References | <1470775225-19787-1-git-send-email-jteki@openedev.com> |
| X-Original-Sender | linux-kernel-owner@vger.kernel.org |
| Xref | csiph.com linux.kernel:1471839 |
Show key headers only | View raw
On Wed, Aug 10, 2016 at 2:10 AM, Jagan Teki <jteki@openedev.com> wrote:
> Add quad page program support with the use of nor->flags
> and then controller will use 4 lines for data transmission
> which is quite faster than page program(02h)
>
> Cc: Brian Norris <computersforpeace@gmail.com>
> Signed-off-by: Jagan Teki <jteki@openedev.com>
> ---
> drivers/mtd/spi-nor/spi-nor.c | 13 +++++++++++++
> include/linux/mtd/spi-nor.h | 2 ++
> 2 files changed, 15 insertions(+)
>
> diff --git a/drivers/mtd/spi-nor/spi-nor.c b/drivers/mtd/spi-nor/spi-nor.c
> index d0fc165..f88bd7e 100644
> --- a/drivers/mtd/spi-nor/spi-nor.c
> +++ b/drivers/mtd/spi-nor/spi-nor.c
> @@ -75,6 +75,7 @@ struct flash_info {
> * bit. Must be used with
> * SPI_NOR_HAS_LOCK.
> */
> +#define SPI_NOR_QUAD_WRITE BIT(10) /* Flash supports Quad Write */
> };
>
> #define JEDEC_MFR(info) ((info)->id[0])
> @@ -1306,6 +1307,7 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
> struct device *dev = nor->dev;
> struct mtd_info *mtd = &nor->mtd;
> struct device_node *np = spi_nor_get_flash_node(nor);
> + bool need_quad = false;
> int ret;
> int i;
>
> @@ -1441,6 +1443,7 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
> return ret;
> }
> nor->flash_read = SPI_NOR_QUAD;
> + need_quad = true;
> } else if (mode == SPI_NOR_DUAL && info->flags & SPI_NOR_DUAL_READ) {
> nor->flash_read = SPI_NOR_DUAL;
> }
> @@ -1465,6 +1468,16 @@ int spi_nor_scan(struct spi_nor *nor, const char *name, enum read_mode mode)
> }
>
> nor->program_opcode = SPINOR_OP_PP;
> + if (nor->flags == SNOR_F_USE_QPP && info->flags & SPI_NOR_QUAD_WRITE) {
> + if (!need_quad)
> + ret = set_quad_mode(nor, info);
> + if (ret) {
> + dev_err(dev, "quad mode not supported\n");
> + return ret;
> + }
> + }
> + nor->program_opcode = SPINOR_OP_QPP;
> + }
>
> if (info->addr_width)
> nor->addr_width = info->addr_width;
> diff --git a/include/linux/mtd/spi-nor.h b/include/linux/mtd/spi-nor.h
> index c425c7b..aa0e6cd 100644
> --- a/include/linux/mtd/spi-nor.h
> +++ b/include/linux/mtd/spi-nor.h
> @@ -46,6 +46,7 @@
> #define SPINOR_OP_READ_1_1_2 0x3b /* Read data bytes (Dual SPI) */
> #define SPINOR_OP_READ_1_1_4 0x6b /* Read data bytes (Quad SPI) */
> #define SPINOR_OP_PP 0x02 /* Page program (up to 256 bytes) */
> +#define SPINOR_OP_QPP 0x32 /* Quad Page program */
> #define SPINOR_OP_BE_4K 0x20 /* Erase 4KiB block */
> #define SPINOR_OP_BE_4K_PMC 0xd7 /* Erase 4KiB block on PMC chips */
> #define SPINOR_OP_BE_32K 0x52 /* Erase 32KiB block */
> @@ -119,6 +120,7 @@ enum spi_nor_ops {
> enum spi_nor_option_flags {
> SNOR_F_USE_FSR = BIT(0),
> SNOR_F_HAS_SR_TB = BIT(1),
> + SNOR_F_USE_QPP = BIT(2),
> };
>
> /**
> --
> 2.7.4
>
Ping!
--
Jagan Teki
Back to linux.kernel | Previous | Next | Find similar | Unroll thread
Re: [PATCH 1/6] mtd: spi-nor: Add quad page program support Jagan Teki <jagannadh.teki@gmail.com> - 2016-08-29 15:30 +0200
csiph-web