bcma: handle more devices in bcma_pmu_get_alp_clock()
authorHauke Mehrtens <hauke@hauke-m.de>
Wed, 27 Mar 2013 16:23:10 +0000 (17:23 +0100)
committerJohn W. Linville <linville@tuxdriver.com>
Wed, 27 Mar 2013 17:39:08 +0000 (13:39 -0400)
Add some more chip IDs to bcma_pmu_get_alp_clock()

Signed-off-by: Hauke Mehrtens <hauke@hauke-m.de>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/bcma/driver_chipcommon_pmu.c
include/linux/bcma/bcma_driver_chipcommon.h

index 7e88fffaf3f5f420232dce6ed7da72f377430dac..edca73af3cc089fd342573ec0fca20bcc5ddc677 100644 (file)
@@ -174,19 +174,35 @@ u32 bcma_pmu_get_alp_clock(struct bcma_drv_cc *cc)
        struct bcma_bus *bus = cc->core->bus;
 
        switch (bus->chipinfo.id) {
+       case BCMA_CHIP_ID_BCM4313:
+       case BCMA_CHIP_ID_BCM43224:
+       case BCMA_CHIP_ID_BCM43225:
+       case BCMA_CHIP_ID_BCM43227:
+       case BCMA_CHIP_ID_BCM43228:
+       case BCMA_CHIP_ID_BCM4331:
+       case BCMA_CHIP_ID_BCM43421:
+       case BCMA_CHIP_ID_BCM43428:
+       case BCMA_CHIP_ID_BCM43431:
        case BCMA_CHIP_ID_BCM4716:
-       case BCMA_CHIP_ID_BCM4748:
        case BCMA_CHIP_ID_BCM47162:
-       case BCMA_CHIP_ID_BCM4313:
-       case BCMA_CHIP_ID_BCM5357:
+       case BCMA_CHIP_ID_BCM4748:
        case BCMA_CHIP_ID_BCM4749:
+       case BCMA_CHIP_ID_BCM5357:
        case BCMA_CHIP_ID_BCM53572:
+       case BCMA_CHIP_ID_BCM6362:
                /* always 20Mhz */
                return 20000 * 1000;
-       case BCMA_CHIP_ID_BCM5356:
        case BCMA_CHIP_ID_BCM4706:
+       case BCMA_CHIP_ID_BCM5356:
                /* always 25Mhz */
                return 25000 * 1000;
+       case BCMA_CHIP_ID_BCM43460:
+       case BCMA_CHIP_ID_BCM4352:
+       case BCMA_CHIP_ID_BCM4360:
+               if (cc->status & BCMA_CC_CHIPST_4360_XTAL_40MZ)
+                       return 40000 * 1000;
+               else
+                       return 20000 * 1000;
        default:
                bcma_warn(bus, "No ALP clock specified for %04X device, pmu rev. %d, using default %d Hz\n",
                          bus->chipinfo.id, cc->pmu.rev, BCMA_CC_PMU_ALP_CLOCK);
index 8390c474f69aefafdd31e8da31c1ea1ea1339516..1db4c6de372e376f4af8e5943cbb09c646979f34 100644 (file)
 #define  BCMA_CC_CHIPST_4706_MIPS_BENDIAN      BIT(3) /* 0: little, 1: big endian */
 #define  BCMA_CC_CHIPST_4706_PCIE1_DISABLE     BIT(5) /* PCIE1 enable strap pin */
 #define  BCMA_CC_CHIPST_5357_NAND_BOOT         BIT(4) /* NAND boot, valid for CC rev 38 and/or BCM5357 */
+#define  BCMA_CC_CHIPST_4360_XTAL_40MZ         0x00000001
 #define BCMA_CC_JCMD                   0x0030          /* Rev >= 10 only */
 #define  BCMA_CC_JCMD_START            0x80000000
 #define  BCMA_CC_JCMD_BUSY             0x80000000