summaryrefslogtreecommitdiff
path: root/arch/arm/plat-s3c64xx/s3c6400-clock.c
AgeCommit message (Collapse)AuthorFilesLines
2010-01-07ARM: S3C64XX: Fix possible clock look in EPLL and MPLL clock chainsBen Dooks1-9/+1
There is a possibility of a loop happening in the PLL output clock chain on the S3C64XX series. clk_mpll's parent was set to be clk_mout_mpll, but this is fed from clk_fout_epll (which is also clk_mpll). clk_mpll is meant to be the output from the MPLL, and clk_mout_mpll is a seperate clock derived from the mux of clk_mpll and clk_fin_mpll and thus should be considered a seperate clock. Anything using clk_mpll directly really should not be relying on this being the clock that is eventually routed to a peripheral, so remove the loop and ensure that the clocks accurately represent the clock chain in the device. The clk_mpll is not being used outside of the s3c6400-clock.c code, so this change should not break anything else. Do the same for the EPLL. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-10-26ARM: S3C64XX: Set rate of crystal muxMark Brown1-0/+3
The current code assumes that the external clock mux will be set to the crystal. Set this up explicitly within the clock API. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C64XX: Fix divider value calculation in s3c64xx_roundrate_clksrcThomas Abraham1-1/+1
In s3c64xx_roundrate_clksrc function, the calculation is wrong. This patch fixes this calculation. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C6410: update clk->parent when setting clock sourceThomas Abraham1-0/+2
This ensures the clock hierarchy data structures are updated when we change the clock source in the actual hardware registers. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> [ben-linux@fluff.org: Minor re-indentation of subject] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-09-16ARM: S3C6410: use correct divider_shift in setrate_clksrc()Thomas Abraham1-2/+2
In s3c64xx_setrate_clksrc() we used sclk->shift, but actually need to use sclk->divider_shift to correctly calculate the value for the divider register. Signed-off-by: Thomas Abraham <thomas.ab@samsung.com> [ben-linux@fluff.org: Minor re-indentation of description] Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30S3C64XX: Fix ARMCLK configurationMark Brown1-1/+1
The value of armclk_mask needs to be inverted for use as a mask on the register value when updating ARM_RATIO. This is critical for cpufreq support, without it attempts to scale the frequency of the core trash pretty much the entire clock tree. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-07-30S3C64XX: Fix get_rate() for ARMCLKMark Brown1-1/+1
If the requested clock is faster than the parent clock then the parent clock is the closest we can get to the request so we need to return that instead of the requested clock. Signed-off-by: Mark Brown <broonie@opensource.wolfsonmicro.com> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add ARM clockBen Dooks1-1/+75
Add ARM clock to provide 'arm' from the APLL to the ARM core. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C64XX: Add HCLKx2Werner Almesberger1-0/+1
Add doubled HCLK to S3C64xx. Signed-off-by: Werner Almesberger <werner@openmoko.org> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-05-07[ARM] S3C6410: Add CAMIF clockWerner Almesberger1-0/+29
Add camera interface clock to S3C6410. Signed-off-by: Werner Almesberger <werner@openmoko.org> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-02-27[ARM] S3C64XX: Fix s3c64xx_setrate_clksrcWerner Almesberger1-2/+4
Some of the rate selection logic in s3c64xx_setrate_clksrc uses what appears to be parent clock selection logic. This patch corrects it. I also added a check for overly large dividers to prevent them from changing unrelated clocks. Signed-off-by: Werner Almesberger <werner@openmoko.org> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-02-27[ARM] S3C64XX: sparse warnings in arch/arm/plat-s3c64xx/s3c6400-clock.cBen Dooks1-7/+7
Fix the following sparse warnings in s3c6400-clock.c: 39:12: warning: symbol 'clk_ext_xtal_mux' was not declared. Should it be static? 66:12: warning: symbol 'clk_fout_apll' was not declared. Should it be static? 81:19: warning: symbol 'clk_mout_apll' was not declared. Should it be static? 91:12: warning: symbol 'clk_fout_epll' was not declared. Should it be static? 106:19: warning: symbol 'clk_mout_epll' was not declared. Should it be static? 126:19: warning: symbol 'clk_mout_mpll' was not declared. Should it be static? 148:12: warning: symbol 'clk_dout_mpll' was not declared. Should it be static? Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-02-27[ARM] S3C64XX: Fix USB host clock mux listBen Dooks1-1/+1
The clock list for the USB host bus clock was in the wrong order, move clk_48m to position 0. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2009-02-27[ARM] S3C64XX: Fix name of USB host clock.Ben Dooks1-1/+1
The usb-host-bus clock should be named usb-bus-host. Signed-off-by: Ben Dooks <ben@simtec.co.uk> Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16[ARM] S3C6400: Register clk_fout_epllBen Dooks1-0/+1
The clk_fout_epll clock wasn't registered as part of the initial clock work, which can cause problems if it is used by one of the hardware blocks. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16[ARM] S3C64XX: Reduce some output from INFO to DEBUGBen Dooks1-4/+4
Some of the startup output can be reduced to KERN_DEBUG from KERN_INFO as it is only really useful when trying to debug kernel initialisation problems. Signed-off-by: Ben Dooks <ben-linux@fluff.org>
2008-12-16[ARM] S3C64XX: Clock support for S3C6400/S3C6410Ben Dooks1-0/+654
Add the PLL clock initialisation and clock registration and include the clocks sourced via CLKDIVx for most of the on-chip peripherals. Signed-off-by: Ben Dooks <ben-linux@fluff.org>