29 #include <linux/export.h>
30 #include <linux/types.h>
34 #include <asm/bootinfo.h>
35 #include <asm/reboot.h>
46 static void bcm47xx_machine_restart(
char *
command)
52 #ifdef CONFIG_BCM47XX_SSB
53 case BCM47XX_BUS_TYPE_SSB:
57 #ifdef CONFIG_BCM47XX_BCMA
58 case BCM47XX_BUS_TYPE_BCMA:
67 static void bcm47xx_machine_halt(
void)
72 #ifdef CONFIG_BCM47XX_SSB
73 case BCM47XX_BUS_TYPE_SSB:
77 #ifdef CONFIG_BCM47XX_BCMA
78 case BCM47XX_BUS_TYPE_BCMA:
87 #ifdef CONFIG_BCM47XX_SSB
94 snprintf(prefix,
sizeof(prefix),
"pci/%u/%u/",
105 static int bcm47xx_get_invariants(
struct ssb_bus *bus,
124 static void __init bcm47xx_register_ssb(
void)
133 " a ssb SPROM callback handler (err %d)\n", err);
136 bcm47xx_get_invariants);
138 panic(
"Failed to initialize SSB bus (err %d)", err);
141 if (
nvram_getenv(
"kernel_args", buf,
sizeof(buf)) >= 0) {
142 if (
strstr(buf,
"console=ttyS1")) {
143 struct ssb_serial_port
port;
148 memcpy(&mcore->serial_ports[0], &mcore->serial_ports[1],
156 #ifdef CONFIG_BCM47XX_BCMA
165 snprintf(prefix,
sizeof(prefix),
"pci/%u/%u/",
175 snprintf(prefix,
sizeof(prefix),
"sb/%u/",
181 pr_warn(
"bcm47xx: unable to fill SPROM for given bustype.\n");
186 static void __init bcm47xx_register_bcma(
void)
192 pr_warn(
"bcm47xx: someone else already registered a bcma SPROM callback handler (err %d)\n", err);
196 panic(
"Failed to initialize BCMA bus (err %d)", err);
208 #ifdef CONFIG_BCM47XX_BCMA
210 bcm47xx_register_bcma();
214 #ifdef CONFIG_BCM47XX_SSB
216 bcm47xx_register_ssb();
225 static int __init bcm47xx_register_bus_complete(
void)
228 #ifdef CONFIG_BCM47XX_SSB
229 case BCM47XX_BUS_TYPE_SSB:
233 #ifdef CONFIG_BCM47XX_BCMA
234 case BCM47XX_BUS_TYPE_BCMA: