|
@@ -43,16 +43,49 @@ static unsigned int part_type;
|
|
static char *soc_str;
|
|
static char *soc_str;
|
|
static char *pass_str;
|
|
static char *pass_str;
|
|
|
|
|
|
-static inline int setup_bcm1x80_bcm1x55(void);
|
|
|
|
|
|
+static int __init setup_bcm1x80_bcm1x55(void)
|
|
|
|
+{
|
|
|
|
+ int ret = 0;
|
|
|
|
+
|
|
|
|
+ switch (soc_pass) {
|
|
|
|
+ case K_SYS_REVISION_BCM1480_S0:
|
|
|
|
+ periph_rev = 1;
|
|
|
|
+ pass_str = "S0 (pass1)";
|
|
|
|
+ break;
|
|
|
|
+ case K_SYS_REVISION_BCM1480_A1:
|
|
|
|
+ periph_rev = 1;
|
|
|
|
+ pass_str = "A1 (pass1)";
|
|
|
|
+ break;
|
|
|
|
+ case K_SYS_REVISION_BCM1480_A2:
|
|
|
|
+ periph_rev = 1;
|
|
|
|
+ pass_str = "A2 (pass1)";
|
|
|
|
+ break;
|
|
|
|
+ case K_SYS_REVISION_BCM1480_A3:
|
|
|
|
+ periph_rev = 1;
|
|
|
|
+ pass_str = "A3 (pass1)";
|
|
|
|
+ break;
|
|
|
|
+ case K_SYS_REVISION_BCM1480_B0:
|
|
|
|
+ periph_rev = 1;
|
|
|
|
+ pass_str = "B0 (pass2)";
|
|
|
|
+ break;
|
|
|
|
+ default:
|
|
|
|
+ printk("Unknown %s rev %x\n", soc_str, soc_pass);
|
|
|
|
+ periph_rev = 1;
|
|
|
|
+ pass_str = "Unknown Revision";
|
|
|
|
+ break;
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ return ret;
|
|
|
|
+}
|
|
|
|
|
|
/* Setup code likely to be common to all SiByte platforms */
|
|
/* Setup code likely to be common to all SiByte platforms */
|
|
|
|
|
|
-static inline int sys_rev_decode(void)
|
|
|
|
|
|
+static int __init sys_rev_decode(void)
|
|
{
|
|
{
|
|
int ret = 0;
|
|
int ret = 0;
|
|
|
|
|
|
switch (soc_type) {
|
|
switch (soc_type) {
|
|
- case K_SYS_SOC_TYPE_BCM1x80:
|
|
|
|
|
|
+ case K_SYS_SOC_TYPE_BCM1x80:
|
|
if (part_type == K_SYS_PART_BCM1480)
|
|
if (part_type == K_SYS_PART_BCM1480)
|
|
soc_str = "BCM1480";
|
|
soc_str = "BCM1480";
|
|
else if (part_type == K_SYS_PART_BCM1280)
|
|
else if (part_type == K_SYS_PART_BCM1280)
|
|
@@ -62,7 +95,7 @@ static inline int sys_rev_decode(void)
|
|
ret = setup_bcm1x80_bcm1x55();
|
|
ret = setup_bcm1x80_bcm1x55();
|
|
break;
|
|
break;
|
|
|
|
|
|
- case K_SYS_SOC_TYPE_BCM1x55:
|
|
|
|
|
|
+ case K_SYS_SOC_TYPE_BCM1x55:
|
|
if (part_type == K_SYS_PART_BCM1455)
|
|
if (part_type == K_SYS_PART_BCM1455)
|
|
soc_str = "BCM1455";
|
|
soc_str = "BCM1455";
|
|
else if (part_type == K_SYS_PART_BCM1255)
|
|
else if (part_type == K_SYS_PART_BCM1255)
|
|
@@ -72,49 +105,16 @@ static inline int sys_rev_decode(void)
|
|
ret = setup_bcm1x80_bcm1x55();
|
|
ret = setup_bcm1x80_bcm1x55();
|
|
break;
|
|
break;
|
|
|
|
|
|
- default:
|
|
|
|
|
|
+ default:
|
|
printk("Unknown part type %x\n", part_type);
|
|
printk("Unknown part type %x\n", part_type);
|
|
ret = 1;
|
|
ret = 1;
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
- return ret;
|
|
|
|
-}
|
|
|
|
|
|
|
|
-static inline int setup_bcm1x80_bcm1x55(void)
|
|
|
|
-{
|
|
|
|
- int ret = 0;
|
|
|
|
-
|
|
|
|
- switch (soc_pass) {
|
|
|
|
- case K_SYS_REVISION_BCM1480_S0:
|
|
|
|
- periph_rev = 1;
|
|
|
|
- pass_str = "S0 (pass1)";
|
|
|
|
- break;
|
|
|
|
- case K_SYS_REVISION_BCM1480_A1:
|
|
|
|
- periph_rev = 1;
|
|
|
|
- pass_str = "A1 (pass1)";
|
|
|
|
- break;
|
|
|
|
- case K_SYS_REVISION_BCM1480_A2:
|
|
|
|
- periph_rev = 1;
|
|
|
|
- pass_str = "A2 (pass1)";
|
|
|
|
- break;
|
|
|
|
- case K_SYS_REVISION_BCM1480_A3:
|
|
|
|
- periph_rev = 1;
|
|
|
|
- pass_str = "A3 (pass1)";
|
|
|
|
- break;
|
|
|
|
- case K_SYS_REVISION_BCM1480_B0:
|
|
|
|
- periph_rev = 1;
|
|
|
|
- pass_str = "B0 (pass2)";
|
|
|
|
- break;
|
|
|
|
- default:
|
|
|
|
- printk("Unknown %s rev %x\n", soc_str, soc_pass);
|
|
|
|
- periph_rev = 1;
|
|
|
|
- pass_str = "Unknown Revision";
|
|
|
|
- break;
|
|
|
|
- }
|
|
|
|
return ret;
|
|
return ret;
|
|
}
|
|
}
|
|
|
|
|
|
-void bcm1480_setup(void)
|
|
|
|
|
|
+void __init bcm1480_setup(void)
|
|
{
|
|
{
|
|
uint64_t sys_rev;
|
|
uint64_t sys_rev;
|
|
int plldiv;
|
|
int plldiv;
|