Re: [PATCH 1/2] ARM: dts: arria10: update NAND clocking

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



2018-07-11 23:51 GMT+09:00 Dinh Nguyen <dinh.linux@xxxxxxxxx>:
> Hi Masahiro,
>
> On Tue, Jul 10, 2018 at 9:45 PM Masahiro Yamada
> <yamada.masahiro@xxxxxxxxxxxxx> wrote:
>>
>> 2018-07-10 22:35 GMT+09:00 Dinh Nguyen <dinguyen@xxxxxxxxxx>:
>> >
>> >
>> > On 07/09/2018 08:31 PM, Masahiro Yamada wrote:
>> >> 2018-07-10 7:41 GMT+09:00 Dinh Nguyen <dinguyen@xxxxxxxxxx>:
>> >>> The NAND IP needs 2 clocks(nand_x_clk and nand_clk). This patch adds a
>> >>> nand_x_clk, which is derived from the nand_clk, but has a fixed divider
>> >>> of 4.
>> >>>
>> >>> Update the NAND node to use the additional clock.
>> >>>
>> >>> Signed-off-by: Dinh Nguyen <dinguyen@xxxxxxxxxx>
>> >>> ---
>> >>>  arch/arm/boot/dts/socfpga_arria10.dtsi | 13 +++++++++++--
>> >>>  1 file changed, 11 insertions(+), 2 deletions(-)
>> >>>
>> >>> diff --git a/arch/arm/boot/dts/socfpga_arria10.dtsi b/arch/arm/boot/dts/socfpga_arria10.dtsi
>> >>> index a4dcb68..558b5ea 100644
>> >>> --- a/arch/arm/boot/dts/socfpga_arria10.dtsi
>> >>> +++ b/arch/arm/boot/dts/socfpga_arria10.dtsi
>> >>> @@ -377,13 +377,21 @@
>> >>>                                                 clk-gate = <0xC8 11>;
>> >>>                                         };
>> >>>
>> >>> -                                       nand_clk: nand_clk {
>> >>> +                                       nand_x_clk: nand_x_clk {
>> >>>                                                 #clock-cells = <0>;
>> >>>                                                 compatible = "altr,socfpga-a10-gate-clk";
>> >>>                                                 clocks = <&l4_mp_clk>;
>> >>>                                                 clk-gate = <0xC8 10>;
>> >>>                                         };
>> >>>
>> >>> +                                       nand_clk: nand_clk {
>> >>> +                                               #clock-cells = <0>;
>> >>> +                                               compatible = "altr,socfpga-a10-gate-clk";
>> >>> +                                               clocks = <&nand_x_clk>;
>> >>> +                                               fixed-divider = <4>;
>> >>> +                                               clk-gate = <0xC8 10>;
>> >>> +                                       };
>> >>> +
>> >>>                                         spi_m_clk: spi_m_clk {
>> >>>                                                 #clock-cells = <0>;
>> >>>                                                 compatible = "altr,socfpga-a10-gate-clk";
>> >>> @@ -650,7 +658,8 @@
>> >>>                         reg-names = "nand_data", "denali_reg";
>> >>>                         interrupts = <0 99 4>;
>> >>>                         dma-mask = <0xffffffff>;
>> >>> -                       clocks = <&nand_clk>;
>> >>> +                       clocks = <&nand_clk>, <&nand_x_clk>;
>> >>> +                       clock-names = "nand", "nand_x";
>> >>
>> >>
>> >> Doesn't SOCFPGA really need the ECC clock?
>> >>
>> >
>> > I don't see any mentions of an ECC clock in any of the SoCFPGA
>> > documentation for the NAND IP.
>>
>>
>> I'd like you to check the IP documentation
>> published by Denali (or Cadence),
>> not published by Altera.
>>
>> Is it available for you?
>>
>>
>>
>> In my SoCs, the same clock signal (nand-clk-200m)
>> is connected to clk_x and ecc_clk, like this:
>>
>>                                          -------------
>> --------------                           | DENALI IP |
>> |            |                           |           |
>> | clk        |---(nand-clk-50m)--------->| clk       |
>> | controller |                           |           |
>> |            |---(nand-clk-200m)-------->| clk_x     |
>> --------------                       |   |           |
>>                                      --->| ecc_clk   |
>>                                          |           |
>>                                          -------------
>>
>>
>> Some clock lines are often tied-up,
>> but such low-level information does not appear in
>> user documents.
>> I talked to a hardware engineer to get this information.
>>
>>
>>
>> I guess the situation is similar for your case,
>> but I do not have information enough to argue this.
>>
>
> I don't disagree with this representation. But after asking around,
> I'm getting the impression that the ECC clock is not exposed to the
> clock manager. This implies that the clock is always turned on and
> there doesn't seem to be any software control for it. I tested ECC
> with this patch and it looks to be working correctly, without any ecc
> clock representation.
>
> I'm not sure if I should expose a dummy ecc_clk to satisfy the binding?


DT should represent the real HW.
If the Denali IP in SOCFPGA needs ecc_clk input,
DT should describe it.


I do not have knowledge about the SOCFPGA internals.
I do not know which is correct:

  - The Denali IP in SOCFPGA needs ecc_clk,
    but there is no software control for it.

  - The Denali IP in SOCFPGA does not need ecc_clk.





> Dinh
> --
> To unsubscribe from this list: send the line "unsubscribe devicetree" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at  http://vger.kernel.org/majordomo-info.html



-- 
Best Regards
Masahiro Yamada
--
To unsubscribe from this list: send the line "unsubscribe devicetree" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at  http://vger.kernel.org/majordomo-info.html




[Index of Archives]     [Device Tree Compilter]     [Device Tree Spec]     [Linux Driver Backports]     [Video for Linux]     [Linux USB Devel]     [Linux PCI Devel]     [Linux Audio Users]     [Linux Kernel]     [Linux SCSI]     [XFree86]     [Yosemite Backpacking]


  Powered by Linux