From: Abhishek Sahu <absahu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
To: Archit Taneja <architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
Cc: boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org,
dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org,
computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
marek.vasut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org,
richard-/L3Ra7n9ekc@public.gmane.org,
cyrille.pitchen-yU5RGvR974pGWvitb5QawA@public.gmane.org,
linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org,
devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org,
andy.gross-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org,
sricharan-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org
Subject: Re: [PATCH v4 11/20] mtd: nand: qcom: enable BAM or ADM mode
Date: Wed, 16 Aug 2017 14:19:01 +0530 [thread overview]
Message-ID: <d68712ee25564439178a81e59ac2ff35@codeaurora.org> (raw)
In-Reply-To: <db662967-2f73-bcfe-aef1-8b9cc860c743-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
On 2017-08-16 10:20, Archit Taneja wrote:
> On 08/11/2017 05:09 PM, Abhishek Sahu wrote:
>> 1. DM_EN is only required for EBI2 NAND controller which uses ADM
>> 2. BAM mode will be disabled after power on reset which needs to
>> be enabled before starting any BAM transfers.
>>
>> Signed-off-by: Abhishek Sahu <absahu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
>> ---
>> drivers/mtd/nand/qcom_nandc.c | 17 ++++++++++++++---
>> 1 file changed, 14 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mtd/nand/qcom_nandc.c
>> b/drivers/mtd/nand/qcom_nandc.c
>> index 3d9fd7f..ae873d3 100644
>> --- a/drivers/mtd/nand/qcom_nandc.c
>> +++ b/drivers/mtd/nand/qcom_nandc.c
>> @@ -163,6 +163,9 @@
>> #define NAND_DEV_CMD_VLD_VAL (READ_START_VLD | WRITE_START_VLD | \
>> ERASE_START_VLD | SEQ_READ_START_VLD)
>> +/* NAND_CTRL bits */
>> +#define BAM_MODE_EN BIT(0)
>> +
>> /*
>> * the NAND controller performs reads/writes with ECC in 516 byte
>> chunks.
>> * the driver calls the chunks 'step' or 'codeword' interchangeably
>> @@ -1035,7 +1038,8 @@ static int read_id(struct qcom_nand_host *host,
>> int column)
>> nandc_set_reg(nandc, NAND_FLASH_CMD, FETCH_ID);
>> nandc_set_reg(nandc, NAND_ADDR0, column);
>> nandc_set_reg(nandc, NAND_ADDR1, 0);
>> - nandc_set_reg(nandc, NAND_FLASH_CHIP_SELECT, DM_EN);
>> + nandc_set_reg(nandc, NAND_FLASH_CHIP_SELECT,
>> + nandc->props->is_bam ? 0 : DM_EN);
>
> I'm not sure why the above register was configured in read_id in the
> first place. Would
> it be required later if we want the controller to support multiple
> NAND chips? If not,
> then we could consider dropping this. Anyway, that can be posted as a
> separate patch
> later.
Correct. It seems the current driver does not have fully support
second NAND chip select since it need to program NAND_DEV1_CFG1 and
NAND_DEV1_CFG0 also.
We can have separate patch series which will add the full support
for multiple NAND chips and this line can be removed in that patch
series.
>
> Reviewed-by: Archit Taneja <architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
>
> Thanks,
> Archit
>
>> nandc_set_reg(nandc, NAND_EXEC_CMD, 1);
>> write_reg_dma(nandc, NAND_FLASH_CMD, 4, NAND_BAM_NEXT_SGL);
>> @@ -2408,12 +2412,19 @@ static void qcom_nandc_unalloc(struct
>> qcom_nand_controller *nandc)
>> /* one time setup of a few nand controller registers */
>> static int qcom_nandc_setup(struct qcom_nand_controller *nandc)
>> {
>> + u32 nand_ctrl;
>> +
>> /* kill onenand */
>> nandc_write(nandc, SFLASHC_BURST_CFG, 0);
>> nandc_write(nandc, NAND_DEV_CMD_VLD, NAND_DEV_CMD_VLD_VAL);
>> - /* enable ADM DMA */
>> - nandc_write(nandc, NAND_FLASH_CHIP_SELECT, DM_EN);
>> + /* enable ADM or BAM DMA */
>> + if (nandc->props->is_bam) {
>> + nand_ctrl = nandc_read(nandc, NAND_CTRL);
>> + nandc_write(nandc, NAND_CTRL, nand_ctrl | BAM_MODE_EN);
>> + } else {
>> + nandc_write(nandc, NAND_FLASH_CHIP_SELECT, DM_EN);
>> + }
>> /* save the original values of these registers */
>> nandc->cmd1 = nandc_read(nandc, NAND_DEV_CMD1);
>>
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo-u79uwXL29TY76Z2rM5mHXA@public.gmane.org
More majordomo info at http://vger.kernel.org/majordomo-info.html
WARNING: multiple messages have this Message-ID (diff)
From: Abhishek Sahu <absahu@codeaurora.org>
To: Archit Taneja <architt@codeaurora.org>
Cc: boris.brezillon@free-electrons.com, dwmw2@infradead.org,
computersforpeace@gmail.com, marek.vasut@gmail.com,
richard@nod.at, cyrille.pitchen@wedev4u.fr,
linux-arm-msm@vger.kernel.org, linux-kernel@vger.kernel.org,
linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
andy.gross@linaro.org, sricharan@codeaurora.org
Subject: Re: [PATCH v4 11/20] mtd: nand: qcom: enable BAM or ADM mode
Date: Wed, 16 Aug 2017 14:19:01 +0530 [thread overview]
Message-ID: <d68712ee25564439178a81e59ac2ff35@codeaurora.org> (raw)
In-Reply-To: <db662967-2f73-bcfe-aef1-8b9cc860c743@codeaurora.org>
On 2017-08-16 10:20, Archit Taneja wrote:
> On 08/11/2017 05:09 PM, Abhishek Sahu wrote:
>> 1. DM_EN is only required for EBI2 NAND controller which uses ADM
>> 2. BAM mode will be disabled after power on reset which needs to
>> be enabled before starting any BAM transfers.
>>
>> Signed-off-by: Abhishek Sahu <absahu@codeaurora.org>
>> ---
>> drivers/mtd/nand/qcom_nandc.c | 17 ++++++++++++++---
>> 1 file changed, 14 insertions(+), 3 deletions(-)
>>
>> diff --git a/drivers/mtd/nand/qcom_nandc.c
>> b/drivers/mtd/nand/qcom_nandc.c
>> index 3d9fd7f..ae873d3 100644
>> --- a/drivers/mtd/nand/qcom_nandc.c
>> +++ b/drivers/mtd/nand/qcom_nandc.c
>> @@ -163,6 +163,9 @@
>> #define NAND_DEV_CMD_VLD_VAL (READ_START_VLD | WRITE_START_VLD | \
>> ERASE_START_VLD | SEQ_READ_START_VLD)
>> +/* NAND_CTRL bits */
>> +#define BAM_MODE_EN BIT(0)
>> +
>> /*
>> * the NAND controller performs reads/writes with ECC in 516 byte
>> chunks.
>> * the driver calls the chunks 'step' or 'codeword' interchangeably
>> @@ -1035,7 +1038,8 @@ static int read_id(struct qcom_nand_host *host,
>> int column)
>> nandc_set_reg(nandc, NAND_FLASH_CMD, FETCH_ID);
>> nandc_set_reg(nandc, NAND_ADDR0, column);
>> nandc_set_reg(nandc, NAND_ADDR1, 0);
>> - nandc_set_reg(nandc, NAND_FLASH_CHIP_SELECT, DM_EN);
>> + nandc_set_reg(nandc, NAND_FLASH_CHIP_SELECT,
>> + nandc->props->is_bam ? 0 : DM_EN);
>
> I'm not sure why the above register was configured in read_id in the
> first place. Would
> it be required later if we want the controller to support multiple
> NAND chips? If not,
> then we could consider dropping this. Anyway, that can be posted as a
> separate patch
> later.
Correct. It seems the current driver does not have fully support
second NAND chip select since it need to program NAND_DEV1_CFG1 and
NAND_DEV1_CFG0 also.
We can have separate patch series which will add the full support
for multiple NAND chips and this line can be removed in that patch
series.
>
> Reviewed-by: Archit Taneja <architt@codeaurora.org>
>
> Thanks,
> Archit
>
>> nandc_set_reg(nandc, NAND_EXEC_CMD, 1);
>> write_reg_dma(nandc, NAND_FLASH_CMD, 4, NAND_BAM_NEXT_SGL);
>> @@ -2408,12 +2412,19 @@ static void qcom_nandc_unalloc(struct
>> qcom_nand_controller *nandc)
>> /* one time setup of a few nand controller registers */
>> static int qcom_nandc_setup(struct qcom_nand_controller *nandc)
>> {
>> + u32 nand_ctrl;
>> +
>> /* kill onenand */
>> nandc_write(nandc, SFLASHC_BURST_CFG, 0);
>> nandc_write(nandc, NAND_DEV_CMD_VLD, NAND_DEV_CMD_VLD_VAL);
>> - /* enable ADM DMA */
>> - nandc_write(nandc, NAND_FLASH_CHIP_SELECT, DM_EN);
>> + /* enable ADM or BAM DMA */
>> + if (nandc->props->is_bam) {
>> + nand_ctrl = nandc_read(nandc, NAND_CTRL);
>> + nandc_write(nandc, NAND_CTRL, nand_ctrl | BAM_MODE_EN);
>> + } else {
>> + nandc_write(nandc, NAND_FLASH_CHIP_SELECT, DM_EN);
>> + }
>> /* save the original values of these registers */
>> nandc->cmd1 = nandc_read(nandc, NAND_DEV_CMD1);
>>
next prev parent reply other threads:[~2017-08-16 8:49 UTC|newest]
Thread overview: 48+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-08-11 11:39 [PATCH v4 00/20] Add QCOM QPIC NAND support Abhishek Sahu
2017-08-11 11:39 ` Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 01/20] mtd: nand: qcom: fix read failure without complete bootchain Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 02/20] mtd: nand: qcom: support for NAND controller properties Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 03/20] mtd: nand: qcom: add bam property for QPIC NAND controller Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 04/20] mtd: nand: qcom: add and initialize QPIC DMA resources Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 05/20] mtd: nand: qcom: DMA mapping support for register read buffer Abhishek Sahu
2017-08-16 3:35 ` Archit Taneja
2017-08-11 11:39 ` [PATCH v4 06/20] mtd: nand: qcom: allocate BAM transaction Abhishek Sahu
2017-08-11 11:39 ` Abhishek Sahu
2017-08-16 3:40 ` Archit Taneja
2017-08-11 11:39 ` [PATCH v4 07/20] mtd: nand: qcom: add BAM DMA descriptor handling Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 08/20] mtd: nand: qcom: support for passing flags in transfer functions Abhishek Sahu
[not found] ` <1502451575-15712-9-git-send-email-absahu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-08-16 4:18 ` Archit Taneja
2017-08-16 4:18 ` Archit Taneja
2017-08-16 7:23 ` Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 09/20] mtd: nand: qcom: support for read location registers Abhishek Sahu
[not found] ` <1502451575-15712-10-git-send-email-absahu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-08-16 4:34 ` Archit Taneja
2017-08-16 4:34 ` Archit Taneja
2017-08-16 7:34 ` Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 10/20] mtd: nand: qcom: erased codeword detection configuration Abhishek Sahu
[not found] ` <1502451575-15712-11-git-send-email-absahu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-08-16 4:44 ` Archit Taneja
2017-08-16 4:44 ` Archit Taneja
2017-08-11 11:39 ` [PATCH v4 11/20] mtd: nand: qcom: enable BAM or ADM mode Abhishek Sahu
2017-08-16 4:50 ` Archit Taneja
[not found] ` <db662967-2f73-bcfe-aef1-8b9cc860c743-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-08-16 8:49 ` Abhishek Sahu [this message]
2017-08-16 8:49 ` Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 12/20] mtd: nand: qcom: QPIC data descriptors handling Abhishek Sahu
2017-08-16 5:41 ` Archit Taneja
2017-08-11 11:39 ` [PATCH v4 13/20] mtd: nand: qcom: support for different DEV_CMD register offsets Abhishek Sahu
2017-08-16 5:52 ` Archit Taneja
[not found] ` <d419a60c-3a00-36c2-6c6d-6f9edb396d53-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-08-16 8:57 ` Abhishek Sahu
2017-08-16 8:57 ` Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 14/20] mtd: nand: qcom: add command elements in BAM transaction Abhishek Sahu
2017-08-16 5:53 ` Archit Taneja
2017-08-11 11:39 ` [PATCH v4 15/20] mtd: nand: qcom: support for command descriptor formation Abhishek Sahu
2017-08-16 6:00 ` Archit Taneja
2017-08-11 11:39 ` [PATCH v4 16/20] dt-bindings: qcom_nandc: fix the ipq806x device tree example Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 17/20] dt-bindings: qcom_nandc: IPQ4019 QPIC NAND documentation Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 18/20] dt-bindings: qcom_nandc: IPQ8074 " Abhishek Sahu
2017-08-11 11:39 ` [PATCH v4 19/20] mtd: nand: qcom: support for IPQ4019 QPIC NAND controller Abhishek Sahu
[not found] ` <1502451575-15712-20-git-send-email-absahu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-08-16 6:02 ` Archit Taneja
2017-08-16 6:02 ` Archit Taneja
2017-08-11 11:39 ` [PATCH v4 20/20] mtd: nand: qcom: support for IPQ8074 " Abhishek Sahu
2017-08-16 6:02 ` Archit Taneja
[not found] ` <1502451575-15712-1-git-send-email-absahu-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org>
2017-08-13 7:47 ` [PATCH v4 00/20] Add QCOM QPIC NAND support Boris Brezillon
2017-08-13 7:47 ` Boris Brezillon
2017-08-14 12:28 ` Abhishek Sahu
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=d68712ee25564439178a81e59ac2ff35@codeaurora.org \
--to=absahu-sgv2jx0feol9jmxxk+q4oq@public.gmane.org \
--cc=andy.gross-QSEj5FYQhm4dnm+yROfE0A@public.gmane.org \
--cc=architt-sgV2jX0FEOL9JmXXK+q4OQ@public.gmane.org \
--cc=boris.brezillon-wi1+55ScJUtKEb57/3fJTNBPR1lH4CV8@public.gmane.org \
--cc=computersforpeace-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=cyrille.pitchen-yU5RGvR974pGWvitb5QawA@public.gmane.org \
--cc=devicetree-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=dwmw2-wEGCiKHe2LqWVfeAwA7xHQ@public.gmane.org \
--cc=linux-arm-msm-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-kernel-u79uwXL29TY76Z2rM5mHXA@public.gmane.org \
--cc=linux-mtd-IAPFreCvJWM7uuMidbF8XUB+6BGkLq7r@public.gmane.org \
--cc=marek.vasut-Re5JQEeQqe8AvxtiuMwx3w@public.gmane.org \
--cc=richard-/L3Ra7n9ekc@public.gmane.org \
--cc=sricharan-sgV2jX0FEOL9JmXXK+q4OQ@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.