Page MenuHomeFreeBSD

Add LS1046A clockgen driver.
ClosedPublic

Authored by dgr_semihalf.com on Apr 9 2020, 2:49 PM.
Tags
None
Referenced Files
F103291715: D24352.diff
Sat, Nov 23, 3:35 AM
Unknown Object (File)
Sun, Nov 3, 1:31 AM
Unknown Object (File)
Oct 8 2024, 12:50 AM
Unknown Object (File)
Oct 1 2024, 3:30 PM
Unknown Object (File)
Sep 30 2024, 3:51 PM
Unknown Object (File)
Sep 29 2024, 9:33 AM
Unknown Object (File)
Sep 18 2024, 4:52 PM
Unknown Object (File)
Sep 18 2024, 7:12 AM

Details

Summary

Driver provides probe and attach functions for LS1046A clockgen and passes
configuration information to QorIQ clockgen class. May be used as
reference implementation for different QorIQ clockgen devices.

Diff Detail

Repository
rS FreeBSD src repository - subversion
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

This is a comment for all the LS1046A reviews: Please add a new SOC_NXP_LS1046A option to sys/conf/options.arm64 and make the drivers depend on that in sys/conf/files.arm64
Thanks

I modified the driver to use the modified QorIQ clockgen classes.
Also added dependency on SOC_NXP_LS104A.

sys/arm64/qoriq/clk/ls1046a_clkgen.c
173 ↗(On Diff #71196)

this is the same id as the hwaccel1, is that intentional ?
If the clocks aren't exposed in the DTS an id of 0 is perfectly fine.

213 ↗(On Diff #71196)

Why does this fixed clock needs a init function to be registered ?

sys/arm64/qoriq/clk/ls1046a_clkgen.c
173 ↗(On Diff #71196)

No, that was not intentional.
Most of the clocks are exposed in dts, but due to using two clock cells in dts the custom ofw_mapper function finds clock based on name instead of id.

213 ↗(On Diff #71196)

I used init function here as the way FMAN nodes work is specific to SoC, so different way of creating this node may be needed.

Hi, if you have any more comments or remarks, please let me know. Thanks.

Imho, It will be better to wait with this until we find consensus with D24351, right ?

sys/arm64/qoriq/clk/ls1046a_clkgen.c
59 ↗(On Diff #71196)

There is no reason to obfuscate clock node name in this way, please use names from TRM

126 ↗(On Diff #71196)

huh!. Use nitems() :)

173 ↗(On Diff #71196)

again this is wrong way. Simply encode both cells into one id and use it.

Modified to work with new version of D24351

The LS family has too many members and can share 99% of the code. It seems unnecessary for me to have the option for each individual variant. How about 'SOC_NXP_LS' ?

This revision is now accepted and ready to land.May 22 2020, 12:46 PM

I'll change it in all the patches to SOC_NXP_LS.

In D24352#549462, @mmel wrote:

The LS family has too many members and can share 99% of the code. It seems unnecessary for me to have the option for each individual variant. How about 'SOC_NXP_LS' ?

That might be fine for now but what about the future ?

@mmel @manu Please agree on the desired option naming as it affects all submitted patches. Once done, I'll commit.

Just go with NXP_LS, if there is any problem later we'll handle it at this moment.

from IRC:
There is at least 11 variants of QoriQ arm64 based SoCs. This is too much for per-SOC options.
We can always add a SOC_NXP_LS_BLAH and !it if one soc differs

Replace SOC_NXP_LS1046 with SOC_NXP_LS.

This revision now requires review to proceed.May 22 2020, 7:58 PM
This revision was not accepted when it landed; it landed in state Needs Review.May 25 2020, 2:45 PM
Closed by commit rS361459: Add LS1046A clockgen driver. (authored by mw). · Explain Why
This revision was automatically updated to reflect the committed changes.