devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
From: Stefan Agner <stefan@agner.ch>
To: Han Xu <han.xu@nxp.com>
Cc: shawnguo@kernel.org, kernel@pengutronix.de, dwmw2@infradead.org,
	computersforpeace@gmail.com, boris.brezillon@free-electrons.com,
	marek.vasut@gmail.com, richard@nod.at, cyrille.pitchen@atmel.com,
	robh+dt@kernel.org, mark.rutland@arm.com,
	fabio.estevam@freescale.com,
	"LW@KARO-electronics.de" <LW@karo-electronics.de>,
	linux-mtd@lists.infradead.org, devicetree@vger.kernel.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org
Subject: Re: [PATCH v3 0/2] ARM: dts: imx7: add NAND support
Date: Mon, 05 Jun 2017 22:16:07 -0700	[thread overview]
Message-ID: <09d82df6ce12a9f6df1f838df5eca9a6@agner.ch> (raw)
In-Reply-To: <1dd0abe0-81a3-d4ea-69c1-98fe354f91f4@nxp.com>

On 2017-06-02 13:09, Han Xu wrote:
> On 06/01/2017 08:48 PM, Stefan Agner wrote:
>> Hi Han,
>>
>> On 2017-06-01 14:14, Han Xu wrote:
>>> On 06/01/2017 02:20 PM, Stefan Agner wrote:
>>>> This are the missing device tree parts to add NAND support for i.MX 7.
>>>> See previous patchset:
>>>> https://emea01.safelinks.protection.outlook.com/?url=https%3A%2F%2Flkml.org%2Flkml%2F2017%2F4%2F21%2F832&data=01%7C01%7Chan.xu%40nxp.com%7C3b9081a68c94476c4a2108d4a9235512%7C686ea1d3bc2b4c6fa92cd99c5c301635%7C0&sdata=mQ2aq5rW%2B9uADY5mSzFxk8P6bAVq%2BosPJQAi0PL9SQg%3D&reserved=0
>>>>
>>>> The previous version also included driver changes, which are already
>>>> merged.
>>>>
>>>> --
>>>> Stefan
>>>>
>>>> Changes since v2:
>>>> - Only specify IMX7D_NAND_USDHC_BUS_ROOT_CLK which seems to be sufficent
>>> Hi Stefan, sorry I didn't reply your last patch. I was unable to fully
>>> test on i.MX7 since the work bandwidth, but the quick test shows DMA
>>> cannot work WITHOUT IMX7D_NAND_ROOT_CLK on my side, I will fully check
>>> it tomorrow morning and let you know the result.
>> How did you test that?
>>
>> Since DMA can only use NAND in i.MX 7, testing is somewhat hard.
>>
>> Fact is, I can access DMA registers using just NAND_USDHC_BUS_CLK_ROOT
>>
>> mw.l 0x30388980 0x11000000 # Enable NAND_USDHC_BUS_CLK_ROOT
>> mw.l 0x3038aa00 0x00000000 # Enable NAND_CLK_ROOT
> 
> NAND_ROOT_CLK offset is 0x4140 which control the CCGR20 to gate on/off 
> the rawnand module, including APBH/GPMI/BCH. Without enabling it, the 
> mxs-dma hangs during initialization. I guess this bit was enabled in 
> some early stage.

You are right, that clock gate was turned on, and it allowed access to
the APBH DMA.

However, while the gate was enabled, disabling the NAND_CLK_ROOT still
allowed to access APBH DMA, so the clock root itself is really not
required, but the gate is...

The clock which is required is NAND_USDHC_BUS_CLK_ROOT, but the gate is
part of NAND_CLK_ROOT. The clock tree is wrong: The gate is actually
shared, both clocks use the same gate.

In fact, assigning NAND_USDHC_BUS_CLK_ROOT directly to peripherals is
wrong since the gate is between the root clock and the peripherals (see
Figure 5-13 in RM). If we add the shared gate to NAND_USDHC_BUS_CLK_ROOT
directly, it will get enabled when using SDHC instances (since that root
clock is assigned to the sdhc instances, see
https://patchwork.kernel.org/patch/9674281/)

How about introducing NAND_USDHC_BUS_CLK_RAWNAND/NAND_CLK_RAWNAND which
has the shared gate in between?

--
Stefan

> 
>> md.l 0x33000100 0 # Access APBH_CH0_CURCMDAR
>>
>> This works for me.
>>
>> I can *boot* from a UBIFS using this driver and Linux 4.12-rc1 with my
>> patchset applied...
>>
>> Monitoring clocks in /sys/kernel/debug/clk/clk_summary show that
>> NAND_ROOT_CLK gets turned off and back on if NAND access happens, the
>> system seems stable.
>>
>> All that said, this patchset v3 actually does not remove the
>> NAND_ROOT_CLK as intended to. Will send a v4.
>>
>> --
>> Stefan
>>
>>>> - Dropped driver changes, alreay merged
>>>>
>>>> Changes since v1:
>>>> - Make clks_count const
>>>> - Introduce IS_IMX7D for i.MX 7 SoC's and make it part of GPMI_IS_MX6
>>>>
>>>> Stefan Agner (2):
>>>>     ARM: dts: imx7: add GPMI NAND
>>>>     ARM: dts: imx7-colibri: add NAND support
>>>>
>>>>    arch/arm/boot/dts/imx7-colibri.dtsi |  9 +++++++++
>>>>    arch/arm/boot/dts/imx7s.dtsi        | 31 +++++++++++++++++++++++++++++++
>>>>    2 files changed, 40 insertions(+)
>>>>

  reply	other threads:[~2017-06-06  5:16 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2017-06-01 19:20 [PATCH v3 0/2] ARM: dts: imx7: add NAND support Stefan Agner
     [not found] ` <20170601192044.6548-1-stefan-XLVq0VzYD2Y@public.gmane.org>
2017-06-01 19:20   ` [PATCH v3 1/2] ARM: dts: imx7: add GPMI NAND Stefan Agner
2017-06-01 21:14   ` [PATCH v3 0/2] ARM: dts: imx7: add NAND support Han Xu
     [not found]     ` <3c086d95-96e5-71ec-b44f-12ed41903fcf-3arQi8VN3Tc@public.gmane.org>
2017-06-02  1:48       ` Stefan Agner
     [not found]         ` <e57ba49dc2b91b70b5848875e28b17ae-XLVq0VzYD2Y@public.gmane.org>
2017-06-02 20:09           ` Han Xu
2017-06-06  5:16             ` Stefan Agner [this message]
2017-06-01 19:20 ` [PATCH v3 2/2] ARM: dts: imx7-colibri: " Stefan Agner

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=09d82df6ce12a9f6df1f838df5eca9a6@agner.ch \
    --to=stefan@agner.ch \
    --cc=LW@karo-electronics.de \
    --cc=boris.brezillon@free-electrons.com \
    --cc=computersforpeace@gmail.com \
    --cc=cyrille.pitchen@atmel.com \
    --cc=devicetree@vger.kernel.org \
    --cc=dwmw2@infradead.org \
    --cc=fabio.estevam@freescale.com \
    --cc=han.xu@nxp.com \
    --cc=kernel@pengutronix.de \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=marek.vasut@gmail.com \
    --cc=mark.rutland@arm.com \
    --cc=richard@nod.at \
    --cc=robh+dt@kernel.org \
    --cc=shawnguo@kernel.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 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).