From: Aurelien Jarno <[EMAIL PROTECTED]>
Add a new function to get the processor clock. It originally comes from
the OpenWrt patches.
Cc: Felix Fietkau <[EMAIL PROTECTED]>
Signed-off-by: Aurelien Jarno <[EMAIL PROTECTED]>
Signed-off-by: Michael Buesch <[EMAIL PROTECTED]>
Signed-off-by: Andrew Morton <[EMAIL PROTECTED]>
Index: wireless-dev/drivers/ssb/driver_chipcommon.c
===================================================================
--- wireless-dev.orig/drivers/ssb/driver_chipcommon.c 2007-08-02
17:18:02.000000000 +0200
+++ wireless-dev/drivers/ssb/driver_chipcommon.c 2007-08-02
17:18:37.000000000 +0200
@@ -256,6 +256,30 @@ void ssb_chipco_resume(struct ssb_chipco
ssb_chipco_set_clockmode(cc, SSB_CLKMODE_FAST);
}
+/* Get the processor clock */
+void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
+ u32 *plltype, u32 *n, u32 *m)
+{
+ *n = chipco_read32(cc, SSB_CHIPCO_CLOCK_N);
+ *plltype = (cc->capabilities & SSB_CHIPCO_CAP_PLLT);
+ switch (*plltype) {
+ case SSB_PLLTYPE_2:
+ case SSB_PLLTYPE_4:
+ case SSB_PLLTYPE_6:
+ case SSB_PLLTYPE_7:
+ *m = chipco_read32(cc, SSB_CHIPCO_CLOCK_MIPS);
+ break;
+ case SSB_PLLTYPE_3:
+ /* 5350 uses m2 to control mips */
+ *m = chipco_read32(cc, SSB_CHIPCO_CLOCK_M2);
+ break;
+ default:
+ *m = chipco_read32(cc, SSB_CHIPCO_CLOCK_SB);
+ break;
+ }
+}
+
+/* Get the bus clock */
void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
u32 *plltype, u32 *n, u32 *m)
{
Index: wireless-dev/include/linux/ssb/ssb_driver_chipcommon.h
===================================================================
--- wireless-dev.orig/include/linux/ssb/ssb_driver_chipcommon.h 2007-08-02
17:18:02.000000000 +0200
+++ wireless-dev/include/linux/ssb/ssb_driver_chipcommon.h 2007-08-02
17:18:37.000000000 +0200
@@ -363,6 +363,8 @@ extern void ssb_chipcommon_init(struct s
extern void ssb_chipco_suspend(struct ssb_chipcommon *cc, pm_message_t state);
extern void ssb_chipco_resume(struct ssb_chipcommon *cc);
+extern void ssb_chipco_get_clockcpu(struct ssb_chipcommon *cc,
+ u32 *plltype, u32 *n, u32 *m);
extern void ssb_chipco_get_clockcontrol(struct ssb_chipcommon *cc,
u32 *plltype, u32 *n, u32 *m);
extern void ssb_chipco_timing_init(struct ssb_chipcommon *cc,
--
_______________________________________________
Bcm43xx-dev mailing list
[email protected]
https://lists.berlios.de/mailman/listinfo/bcm43xx-dev