Page MenuHomeFreeBSD

qcom_gcc: begin refactoring sys/dev/qcom_gcc to support multiple chipsets
ClosedPublic

Authored by adrian on Sun, Apr 6, 5:27 PM.
Tags
None
Referenced Files
F114168440: D49683.id153207.diff
Tue, Apr 8, 3:18 PM
Unknown Object (File)
Tue, Apr 8, 5:50 AM
Unknown Object (File)
Tue, Apr 8, 3:48 AM
Unknown Object (File)
Tue, Apr 8, 12:25 AM
Subscribers

Details

Summary

Although the driver structure is almost supportive of multiple
chipsets, there's a lot of subtle hard coded IPQ4018 assumptions
here.

This is a partial refactor of the driver in order to have a single
qcom_gcc driver that will eventually support multiple chipsets.

  • rename qcom_gcc_ipq4018 -> qcom_gcc
  • remove the ipq4018 specific naming from things
  • create a table to drive probe/attach, with a chipset id to use during attach
  • migrate the clock register accessors to not be ipq4018 specific
  • migrate the reset register accessors to not be ipq4018 specific

Note this won't compile (yet) for an arm64 kernel because there's
a hard-coded clock tree for an earlier 64 bit MSM part in
sys/arm64/qualcomm/qcom_gcc.c . That will need to be rolled into this
driver.

Diff Detail

Repository
rG FreeBSD src repository
Lint
Lint Not Applicable
Unit
Tests Not Applicable

Event Timeline

adrian requested review of this revision.Sun, Apr 6, 5:27 PM

I cant claim much expertise in this area, but I have read the diffs and they look good to me.

This revision is now accepted and ready to land.Sun, Apr 6, 7:11 PM
manu requested changes to this revision.Mon, Apr 7, 5:56 AM

If you're moving files you might as well move them to sys/dev/clk/qcom

This revision now requires changes to proceed.Mon, Apr 7, 5:56 AM

If you're moving files you might as well move them to sys/dev/clk/qcom

It's not just a clock controller though, it's /also/ a reset block controller. :-)

This revision was not accepted when it landed; it landed in state Needs Revision.Tue, Apr 8, 3:47 AM
This revision was automatically updated to reflect the committed changes.