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

Reply via email to