2018-02-05 15:54:16

by Bartosz Golaszewski

[permalink] [raw]
Subject: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

From: Bartosz Golaszewski <[email protected]>

Make nand work with the common clock framework by specifying which
clock should be used and what name to look up.

Signed-off-by: Bartosz Golaszewski <[email protected]>
---
arch/arm/boot/dts/da850-evm.dts | 3 +++
1 file changed, 3 insertions(+)

diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
index a86a8a1816f2..2602ad8e99ee 100644
--- a/arch/arm/boot/dts/da850-evm.dts
+++ b/arch/arm/boot/dts/da850-evm.dts
@@ -296,6 +296,9 @@
reg = <0 0x02000000 0x02000000
1 0x00000000 0x00008000>;

+ clocks = <&psc0 3>;
+ clock-names = "aemif";
+
ti,davinci-chipselect = <1>;
ti,davinci-mask-ale = <0>;
ti,davinci-mask-cle = <0>;
--
2.16.1



2018-02-06 11:10:13

by Sekhar Nori

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

On Monday 05 February 2018 09:22 PM, Bartosz Golaszewski wrote:
> From: Bartosz Golaszewski <[email protected]>
>
> Make nand work with the common clock framework by specifying which
> clock should be used and what name to look up.
>
> Signed-off-by: Bartosz Golaszewski <[email protected]>
> ---
> arch/arm/boot/dts/da850-evm.dts | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
> index a86a8a1816f2..2602ad8e99ee 100644
> --- a/arch/arm/boot/dts/da850-evm.dts
> +++ b/arch/arm/boot/dts/da850-evm.dts
> @@ -296,6 +296,9 @@
> reg = <0 0x02000000 0x02000000
> 1 0x00000000 0x00008000>;
>
> + clocks = <&psc0 3>;
> + clock-names = "aemif";

Looks like this is being added only to satisfy the devm_clk_get() call
in nand_davinci_probe() which I think is superfluous since we also
enable the same clock in aemif_probe().

Perhaps the better solution is to drip the clk code in
drivers/mtd/nand/davinci_nand.c and shift legacy code to start using
drivers/memory/aemif.c as well? This way we can also drop
arch/arm/mach-davinci/aemif.c

Thanks,
Sekhar

2018-02-06 13:09:43

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

2018-02-06 12:07 GMT+01:00 Sekhar Nori <[email protected]>:
> On Monday 05 February 2018 09:22 PM, Bartosz Golaszewski wrote:
>> From: Bartosz Golaszewski <[email protected]>
>>
>> Make nand work with the common clock framework by specifying which
>> clock should be used and what name to look up.
>>
>> Signed-off-by: Bartosz Golaszewski <[email protected]>
>> ---
>> arch/arm/boot/dts/da850-evm.dts | 3 +++
>> 1 file changed, 3 insertions(+)
>>
>> diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
>> index a86a8a1816f2..2602ad8e99ee 100644
>> --- a/arch/arm/boot/dts/da850-evm.dts
>> +++ b/arch/arm/boot/dts/da850-evm.dts
>> @@ -296,6 +296,9 @@
>> reg = <0 0x02000000 0x02000000
>> 1 0x00000000 0x00008000>;
>>
>> + clocks = <&psc0 3>;
>> + clock-names = "aemif";
>
> Looks like this is being added only to satisfy the devm_clk_get() call
> in nand_davinci_probe() which I think is superfluous since we also
> enable the same clock in aemif_probe().
>
> Perhaps the better solution is to drip the clk code in
> drivers/mtd/nand/davinci_nand.c and shift legacy code to start using
> drivers/memory/aemif.c as well? This way we can also drop
> arch/arm/mach-davinci/aemif.c
>
> Thanks,
> Sekhar

Yes, this sounds good, but I think we should leave it for later as an
additional improvement, once everything else is in place. I think
these patches should be applied together with David's series in order
to not break the support on davinci boards and the aemif work would go
in later as a follow-up. How about that?

Also: I don't have any keystone board to test whether such changes
don't break the nand support there. Would you be able to test this?

Thanks,
Bartosz

2018-02-06 13:54:38

by Sekhar Nori

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

On Tuesday 06 February 2018 06:38 PM, Bartosz Golaszewski wrote:
> 2018-02-06 12:07 GMT+01:00 Sekhar Nori <[email protected]>:
>> On Monday 05 February 2018 09:22 PM, Bartosz Golaszewski wrote:
>>> From: Bartosz Golaszewski <[email protected]>
>>>
>>> Make nand work with the common clock framework by specifying which
>>> clock should be used and what name to look up.
>>>
>>> Signed-off-by: Bartosz Golaszewski <[email protected]>
>>> ---
>>> arch/arm/boot/dts/da850-evm.dts | 3 +++
>>> 1 file changed, 3 insertions(+)
>>>
>>> diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
>>> index a86a8a1816f2..2602ad8e99ee 100644
>>> --- a/arch/arm/boot/dts/da850-evm.dts
>>> +++ b/arch/arm/boot/dts/da850-evm.dts
>>> @@ -296,6 +296,9 @@
>>> reg = <0 0x02000000 0x02000000
>>> 1 0x00000000 0x00008000>;
>>>
>>> + clocks = <&psc0 3>;
>>> + clock-names = "aemif";
>>
>> Looks like this is being added only to satisfy the devm_clk_get() call
>> in nand_davinci_probe() which I think is superfluous since we also
>> enable the same clock in aemif_probe().
>>
>> Perhaps the better solution is to drip the clk code in
>> drivers/mtd/nand/davinci_nand.c and shift legacy code to start using
>> drivers/memory/aemif.c as well? This way we can also drop
>> arch/arm/mach-davinci/aemif.c
>>
>> Thanks,
>> Sekhar
>
> Yes, this sounds good, but I think we should leave it for later as an
> additional improvement, once everything else is in place. I think
> these patches should be applied together with David's series in order
> to not break the support on davinci boards and the aemif work would go
> in later as a follow-up. How about that?

No, I dont think we should add temporary hacks to DT to work around
driver issues (I do think its a hack since the clock belongs to aemif
module not NAND flash).

An easier driver hack might be to not treat devm_clk_get() failure in
davinci_nand.c as catastrophic. It will safely fail in DT case and we
should get the clock in legacy boot case.

I think we are looking at a driver update dependency anyway.

>
> Also: I don't have any keystone board to test whether such changes
> don't break the nand support there. Would you be able to test this?

Yes, I have access to those boards.

Thanks,
Sekhar

2018-02-06 18:18:58

by David Lechner

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

On 02/06/2018 07:51 AM, Sekhar Nori wrote:
> On Tuesday 06 February 2018 06:38 PM, Bartosz Golaszewski wrote:
>> 2018-02-06 12:07 GMT+01:00 Sekhar Nori <[email protected]>:
>>> On Monday 05 February 2018 09:22 PM, Bartosz Golaszewski wrote:
>>>> From: Bartosz Golaszewski <[email protected]>
>>>>
>>>> Make nand work with the common clock framework by specifying which
>>>> clock should be used and what name to look up.
>>>>
>>>> Signed-off-by: Bartosz Golaszewski <[email protected]>
>>>> ---
>>>> arch/arm/boot/dts/da850-evm.dts | 3 +++
>>>> 1 file changed, 3 insertions(+)
>>>>
>>>> diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
>>>> index a86a8a1816f2..2602ad8e99ee 100644
>>>> --- a/arch/arm/boot/dts/da850-evm.dts
>>>> +++ b/arch/arm/boot/dts/da850-evm.dts
>>>> @@ -296,6 +296,9 @@
>>>> reg = <0 0x02000000 0x02000000
>>>> 1 0x00000000 0x00008000>;
>>>>
>>>> + clocks = <&psc0 3>;
>>>> + clock-names = "aemif";
>>>
>>> Looks like this is being added only to satisfy the devm_clk_get() call
>>> in nand_davinci_probe() which I think is superfluous since we also
>>> enable the same clock in aemif_probe().
>>>
>>> Perhaps the better solution is to drip the clk code in
>>> drivers/mtd/nand/davinci_nand.c and shift legacy code to start using
>>> drivers/memory/aemif.c as well? This way we can also drop
>>> arch/arm/mach-davinci/aemif.c
>>>
>>> Thanks,
>>> Sekhar
>>
>> Yes, this sounds good, but I think we should leave it for later as an
>> additional improvement, once everything else is in place. I think
>> these patches should be applied together with David's series in order
>> to not break the support on davinci boards and the aemif work would go
>> in later as a follow-up. How about that?
>
> No, I dont think we should add temporary hacks to DT to work around
> driver issues (I do think its a hack since the clock belongs to aemif
> module not NAND flash).
>
> An easier driver hack might be to not treat devm_clk_get() failure in
> davinci_nand.c as catastrophic. It will safely fail in DT case and we
> should get the clock in legacy boot case.
>
> I think we are looking at a driver update dependency anyway.

It looks like keystone.dtsi is using the clock-ranges property in the
aemif node to pass the clock to child nodes. Could we not do the same
in da850.dtsi?

>
>>
>> Also: I don't have any keystone board to test whether such changes
>> don't break the nand support there. Would you be able to test this?
>
> Yes, I have access to those boards.
>
> Thanks,
> Sekhar
>


2018-02-06 18:26:45

by David Lechner

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

On 02/06/2018 12:16 PM, David Lechner wrote:
> On 02/06/2018 07:51 AM, Sekhar Nori wrote:
>> On Tuesday 06 February 2018 06:38 PM, Bartosz Golaszewski wrote:
>>> 2018-02-06 12:07 GMT+01:00 Sekhar Nori <[email protected]>:
>>>> On Monday 05 February 2018 09:22 PM, Bartosz Golaszewski wrote:
>>>>> From: Bartosz Golaszewski <[email protected]>
>>>>>
>>>>> Make nand work with the common clock framework by specifying which
>>>>> clock should be used and what name to look up.
>>>>>
>>>>> Signed-off-by: Bartosz Golaszewski <[email protected]>
>>>>> ---
>>>>>   arch/arm/boot/dts/da850-evm.dts | 3 +++
>>>>>   1 file changed, 3 insertions(+)
>>>>>
>>>>> diff --git a/arch/arm/boot/dts/da850-evm.dts b/arch/arm/boot/dts/da850-evm.dts
>>>>> index a86a8a1816f2..2602ad8e99ee 100644
>>>>> --- a/arch/arm/boot/dts/da850-evm.dts
>>>>> +++ b/arch/arm/boot/dts/da850-evm.dts
>>>>> @@ -296,6 +296,9 @@
>>>>>                        reg = <0 0x02000000 0x02000000
>>>>>                               1 0x00000000 0x00008000>;
>>>>>
>>>>> +                     clocks = <&psc0 3>;
>>>>> +                     clock-names = "aemif";
>>>>
>>>> Looks like this is being added only to satisfy the devm_clk_get() call
>>>> in nand_davinci_probe() which I think is superfluous since we also
>>>> enable the same clock in aemif_probe().
>>>>
>>>> Perhaps the better solution is to drip the clk code in
>>>> drivers/mtd/nand/davinci_nand.c and shift legacy code to start using
>>>> drivers/memory/aemif.c as well? This way we can also drop
>>>> arch/arm/mach-davinci/aemif.c
>>>>
>>>> Thanks,
>>>> Sekhar
>>>
>>> Yes, this sounds good, but I think we should leave it for later as an
>>> additional improvement, once everything else is in place. I think
>>> these patches should be applied together with David's series in order
>>> to not break the support on davinci boards and the aemif work would go
>>> in later as a follow-up. How about that?
>>
>> No, I dont think we should add temporary hacks to DT to work around
>> driver issues (I do think its a hack since the clock belongs to aemif
>> module not NAND flash).
>>
>> An easier driver hack might be to not treat devm_clk_get() failure in
>> davinci_nand.c as catastrophic. It will safely fail in DT case and we
>> should get the clock in legacy boot case.
>>
>> I think we are looking at a driver update dependency anyway.
>
> It looks like keystone.dtsi is using the clock-ranges property in the
> aemif node to pass the clock to child nodes. Could we not do the same
> in da850.dtsi?

Bartosz, please try this instead of your patch.

FYI, this is just following the existing memory-controllers/ti-aemif.txt
device tree bindings, so not a "hack".

---
diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
index 3a1f2ce..ff9d807 100644
--- a/arch/arm/boot/dts/da850.dtsi
+++ b/arch/arm/boot/dts/da850.dtsi
@@ -796,6 +796,8 @@
ranges = <0 0 0x60000000 0x08000000
1 0 0x68000000 0x00008000>;
clocks = <&psc0 3>;
+ clock-names = "aemif";
+ clock-ranges;
status = "disabled";
};
memctrl: memory-controller@b0000000 {
---

2018-02-06 18:46:38

by Bartosz Golaszewski

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

2018-02-06 19:25 GMT+01:00 David Lechner <[email protected]>:
> On 02/06/2018 12:16 PM, David Lechner wrote:
>>
>> On 02/06/2018 07:51 AM, Sekhar Nori wrote:
>>>
>>> On Tuesday 06 February 2018 06:38 PM, Bartosz Golaszewski wrote:
>>>>
>>>> 2018-02-06 12:07 GMT+01:00 Sekhar Nori <[email protected]>:
>>>>>
>>>>> On Monday 05 February 2018 09:22 PM, Bartosz Golaszewski wrote:
>>>>>>
>>>>>> From: Bartosz Golaszewski <[email protected]>
>>>>>>
>>>>>> Make nand work with the common clock framework by specifying which
>>>>>> clock should be used and what name to look up.
>>>>>>
>>>>>> Signed-off-by: Bartosz Golaszewski <[email protected]>
>>>>>> ---
>>>>>> arch/arm/boot/dts/da850-evm.dts | 3 +++
>>>>>> 1 file changed, 3 insertions(+)
>>>>>>
>>>>>> diff --git a/arch/arm/boot/dts/da850-evm.dts
>>>>>> b/arch/arm/boot/dts/da850-evm.dts
>>>>>> index a86a8a1816f2..2602ad8e99ee 100644
>>>>>> --- a/arch/arm/boot/dts/da850-evm.dts
>>>>>> +++ b/arch/arm/boot/dts/da850-evm.dts
>>>>>> @@ -296,6 +296,9 @@
>>>>>> reg = <0 0x02000000 0x02000000
>>>>>> 1 0x00000000 0x00008000>;
>>>>>>
>>>>>> + clocks = <&psc0 3>;
>>>>>> + clock-names = "aemif";
>>>>>
>>>>>
>>>>> Looks like this is being added only to satisfy the devm_clk_get() call
>>>>> in nand_davinci_probe() which I think is superfluous since we also
>>>>> enable the same clock in aemif_probe().
>>>>>
>>>>> Perhaps the better solution is to drip the clk code in
>>>>> drivers/mtd/nand/davinci_nand.c and shift legacy code to start using
>>>>> drivers/memory/aemif.c as well? This way we can also drop
>>>>> arch/arm/mach-davinci/aemif.c
>>>>>
>>>>> Thanks,
>>>>> Sekhar
>>>>
>>>>
>>>> Yes, this sounds good, but I think we should leave it for later as an
>>>> additional improvement, once everything else is in place. I think
>>>> these patches should be applied together with David's series in order
>>>> to not break the support on davinci boards and the aemif work would go
>>>> in later as a follow-up. How about that?
>>>
>>>
>>> No, I dont think we should add temporary hacks to DT to work around
>>> driver issues (I do think its a hack since the clock belongs to aemif
>>> module not NAND flash).
>>>
>>> An easier driver hack might be to not treat devm_clk_get() failure in
>>> davinci_nand.c as catastrophic. It will safely fail in DT case and we
>>> should get the clock in legacy boot case.
>>>
>>> I think we are looking at a driver update dependency anyway.
>>
>>
>> It looks like keystone.dtsi is using the clock-ranges property in the
>> aemif node to pass the clock to child nodes. Could we not do the same
>> in da850.dtsi?
>
>
> Bartosz, please try this instead of your patch.
>
> FYI, this is just following the existing memory-controllers/ti-aemif.txt
> device tree bindings, so not a "hack".
>
> ---
> diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
> index 3a1f2ce..ff9d807 100644
> --- a/arch/arm/boot/dts/da850.dtsi
> +++ b/arch/arm/boot/dts/da850.dtsi
> @@ -796,6 +796,8 @@
> ranges = <0 0 0x60000000 0x08000000
> 1 0 0x68000000 0x00008000>;
> clocks = <&psc0 3>;
> + clock-names = "aemif";
> + clock-ranges;
> status = "disabled";
> };
> memctrl: memory-controller@b0000000 {
> ---

Yes, this works. Sekhar: can we include it in David's series, while
still keeping the plan to move legacy boards to using the aemif
driver?

Best regards,
Bartosz

2018-02-07 13:08:54

by Sekhar Nori

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

On Wednesday 07 February 2018 12:15 AM, Bartosz Golaszewski wrote:
> 2018-02-06 19:25 GMT+01:00 David Lechner <[email protected]>:
>> On 02/06/2018 12:16 PM, David Lechner wrote:
>>>
>>> On 02/06/2018 07:51 AM, Sekhar Nori wrote:
>>>>
>>>> On Tuesday 06 February 2018 06:38 PM, Bartosz Golaszewski wrote:
>>>>>
>>>>> 2018-02-06 12:07 GMT+01:00 Sekhar Nori <[email protected]>:
>>>>>>
>>>>>> On Monday 05 February 2018 09:22 PM, Bartosz Golaszewski wrote:
>>>>>>>
>>>>>>> From: Bartosz Golaszewski <[email protected]>
>>>>>>>
>>>>>>> Make nand work with the common clock framework by specifying which
>>>>>>> clock should be used and what name to look up.
>>>>>>>
>>>>>>> Signed-off-by: Bartosz Golaszewski <[email protected]>
>>>>>>> ---
>>>>>>> arch/arm/boot/dts/da850-evm.dts | 3 +++
>>>>>>> 1 file changed, 3 insertions(+)
>>>>>>>
>>>>>>> diff --git a/arch/arm/boot/dts/da850-evm.dts
>>>>>>> b/arch/arm/boot/dts/da850-evm.dts
>>>>>>> index a86a8a1816f2..2602ad8e99ee 100644
>>>>>>> --- a/arch/arm/boot/dts/da850-evm.dts
>>>>>>> +++ b/arch/arm/boot/dts/da850-evm.dts
>>>>>>> @@ -296,6 +296,9 @@
>>>>>>> reg = <0 0x02000000 0x02000000
>>>>>>> 1 0x00000000 0x00008000>;
>>>>>>>
>>>>>>> + clocks = <&psc0 3>;
>>>>>>> + clock-names = "aemif";
>>>>>>
>>>>>>
>>>>>> Looks like this is being added only to satisfy the devm_clk_get() call
>>>>>> in nand_davinci_probe() which I think is superfluous since we also
>>>>>> enable the same clock in aemif_probe().
>>>>>>
>>>>>> Perhaps the better solution is to drip the clk code in
>>>>>> drivers/mtd/nand/davinci_nand.c and shift legacy code to start using
>>>>>> drivers/memory/aemif.c as well? This way we can also drop
>>>>>> arch/arm/mach-davinci/aemif.c
>>>>>>
>>>>>> Thanks,
>>>>>> Sekhar
>>>>>
>>>>>
>>>>> Yes, this sounds good, but I think we should leave it for later as an
>>>>> additional improvement, once everything else is in place. I think
>>>>> these patches should be applied together with David's series in order
>>>>> to not break the support on davinci boards and the aemif work would go
>>>>> in later as a follow-up. How about that?
>>>>
>>>>
>>>> No, I dont think we should add temporary hacks to DT to work around
>>>> driver issues (I do think its a hack since the clock belongs to aemif
>>>> module not NAND flash).
>>>>
>>>> An easier driver hack might be to not treat devm_clk_get() failure in
>>>> davinci_nand.c as catastrophic. It will safely fail in DT case and we
>>>> should get the clock in legacy boot case.
>>>>
>>>> I think we are looking at a driver update dependency anyway.
>>>
>>>
>>> It looks like keystone.dtsi is using the clock-ranges property in the
>>> aemif node to pass the clock to child nodes. Could we not do the same
>>> in da850.dtsi?
>>
>>
>> Bartosz, please try this instead of your patch.
>>
>> FYI, this is just following the existing memory-controllers/ti-aemif.txt
>> device tree bindings, so not a "hack".
>>
>> ---
>> diff --git a/arch/arm/boot/dts/da850.dtsi b/arch/arm/boot/dts/da850.dtsi
>> index 3a1f2ce..ff9d807 100644
>> --- a/arch/arm/boot/dts/da850.dtsi
>> +++ b/arch/arm/boot/dts/da850.dtsi
>> @@ -796,6 +796,8 @@
>> ranges = <0 0 0x60000000 0x08000000
>> 1 0 0x68000000 0x00008000>;
>> clocks = <&psc0 3>;
>> + clock-names = "aemif";
>> + clock-ranges;
>> status = "disabled";
>> };
>> memctrl: memory-controller@b0000000 {
>> ---
>
> Yes, this works. Sekhar: can we include it in David's series, while
> still keeping the plan to move legacy boards to using the aemif
> driver?

Okay. Fine with me. Actually the chipselect node already has
clock-ranges defined, but that doesn't have any meaning unless its also
included in aemif node.

Thanks,
Sekhar

2018-02-11 05:08:21

by kernel test robot

[permalink] [raw]
Subject: Re: [PATCH] ARM: dts: da850-evm: add clock properties to the nand node

Hi Bartosz,

I love your patch! Yet something to improve:

[auto build test ERROR on robh/for-next]
[also build test ERROR on v4.15 next-20180209]
[if your patch is applied to the wrong git tree, please drop us a note to help improve the system]

url: https://github.com/0day-ci/linux/commits/Bartosz-Golaszewski/ARM-dts-da850-evm-add-clock-properties-to-the-nand-node/20180208-105626
base: https://git.kernel.org/pub/scm/linux/kernel/git/robh/linux.git for-next
config: arm-sunxi_defconfig (attached as .config)
compiler: arm-linux-gnueabi-gcc (Debian 7.2.0-11) 7.2.0
reproduce:
wget https://raw.githubusercontent.com/intel/lkp-tests/master/sbin/make.cross -O ~/bin/make.cross
chmod +x ~/bin/make.cross
# save the attached .config to linux build tree
make.cross ARCH=arm

All errors (new ones prefixed by >>):

>> ERROR: Input tree has errors, aborting (use -f to force output)

---
0-DAY kernel test infrastructure Open Source Technology Center
https://lists.01.org/pipermail/kbuild-all Intel Corporation


Attachments:
(No filename) (1.08 kB)
.config.gz (22.73 kB)
Download all attachments