MIPS: BCM63XX: fix BCM6345 clocks bits
authorFlorian Fainelli <florian@openwrt.org>
Mon, 12 Nov 2012 08:48:45 +0000 (08:48 +0000)
committerJohn Crispin <blogic@openwrt.org>
Tue, 20 Nov 2012 07:30:50 +0000 (08:30 +0100)
BCM6345 has an intermediate 16-bits wide test control register between the
peripheral identifier register, and its clock control register is only 16-bits
wide contrary to other platforms where it is 32-bits wide. By shifting all
clocks bits by 16-bits to the left we ensure they get written to the proper
clock control register, without adding specific BCM6345 handling in the clock
code.

Signed-off-by: Florian Fainelli <florian@openwrt.org>
Patchwork: http://patchwork.linux-mips.org/patch/4555/
Signed-off-by: John Crispin <blogic@openwrt.org>
arch/mips/include/asm/mach-bcm63xx/bcm63xx_regs.h

index e84e602eafa7824a4509c11f82f245ea1724829b..c3eeb90b480a9ede77019b1d06712ae9fb9e1079 100644 (file)
                                        CKCTL_6338_SAR_EN |             \
                                        CKCTL_6338_SPI_EN)
 
-#define CKCTL_6345_CPU_EN              (1 << 0)
-#define CKCTL_6345_BUS_EN              (1 << 1)
-#define CKCTL_6345_EBI_EN              (1 << 2)
-#define CKCTL_6345_UART_EN             (1 << 3)
-#define CKCTL_6345_ADSLPHY_EN          (1 << 4)
-#define CKCTL_6345_ENET_EN             (1 << 7)
-#define CKCTL_6345_USBH_EN             (1 << 8)
+/* BCM6345 clock bits are shifted by 16 on the left, because of the test
+ * control register which is 16-bits wide. That way we do not have any
+ * specific BCM6345 code for handling clocks, and writing 0 to the test
+ * control register is fine.
+ */
+#define CKCTL_6345_CPU_EN              (1 << 16)
+#define CKCTL_6345_BUS_EN              (1 << 17)
+#define CKCTL_6345_EBI_EN              (1 << 18)
+#define CKCTL_6345_UART_EN             (1 << 19)
+#define CKCTL_6345_ADSLPHY_EN          (1 << 20)
+#define CKCTL_6345_ENET_EN             (1 << 23)
+#define CKCTL_6345_USBH_EN             (1 << 24)
 
 #define CKCTL_6345_ALL_SAFE_EN         (CKCTL_6345_ENET_EN |   \
                                        CKCTL_6345_USBH_EN |    \