1 --- a/drivers/ssb/Kconfig
2 +++ b/drivers/ssb/Kconfig
7 +# Assumption: We are on embedded, if we compile the MIPS core.
10 + depends on SSB_DRIVER_MIPS
13 config SSB_DRIVER_EXTIF
14 bool "SSB Broadcom EXTIF core driver (EXPERIMENTAL)"
15 depends on SSB_DRIVER_MIPS && EXPERIMENTAL
16 --- a/drivers/ssb/Makefile
17 +++ b/drivers/ssb/Makefile
20 ssb-y += main.o scan.o
21 +ssb-$(CONFIG_SSB_EMBEDDED) += embedded.o
24 ssb-$(CONFIG_SSB_PCIHOST) += pci.o pcihost_wrapper.o
25 --- a/drivers/ssb/driver_extif.c
26 +++ b/drivers/ssb/driver_extif.c
31 +void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
34 + extif_write32(extif, SSB_EXTIF_WATCHDOG, ticks);
37 #ifdef CONFIG_SSB_SERIAL
38 static bool serial_exists(u8 *regs)
41 +++ b/drivers/ssb/embedded.c
44 + * Sonics Silicon Backplane
45 + * Embedded systems support code
47 + * Copyright 2005-2008, Broadcom Corporation
48 + * Copyright 2006-2008, Michael Buesch <mb@bu3sch.de>
50 + * Licensed under the GNU/GPL. See COPYING for details.
53 +#include <linux/ssb/ssb.h>
54 +#include <linux/ssb/ssb_embedded.h>
57 +int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks)
59 + if (ssb_chipco_available(&bus->chipco)) {
60 + ssb_chipco_watchdog_timer_set(&bus->chipco, ticks);
63 + if (ssb_extif_available(&bus->extif)) {
64 + ssb_extif_watchdog_timer_set(&bus->extif, ticks);
69 --- a/include/linux/ssb/ssb_driver_chipcommon.h
70 +++ b/include/linux/ssb/ssb_driver_chipcommon.h
75 +static inline bool ssb_chipco_available(struct ssb_chipcommon *cc)
77 + return (cc->dev != NULL);
80 extern void ssb_chipcommon_init(struct ssb_chipcommon *cc);
83 --- a/include/linux/ssb/ssb_driver_extif.h
84 +++ b/include/linux/ssb/ssb_driver_extif.h
86 u32 ssb_extif_gpio_polarity(struct ssb_extif *extif, u32 mask, u32 value);
87 u32 ssb_extif_gpio_intmask(struct ssb_extif *extif, u32 mask, u32 value);
89 +extern void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
92 #ifdef CONFIG_SSB_SERIAL
93 extern int ssb_extif_serial_init(struct ssb_extif *extif,
94 struct ssb_serial_port *ports);
100 +void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
105 #endif /* CONFIG_SSB_DRIVER_EXTIF */
106 #endif /* LINUX_SSB_EXTIFCORE_H_ */
108 +++ b/include/linux/ssb/ssb_embedded.h
110 +#ifndef LINUX_SSB_EMBEDDED_H_
111 +#define LINUX_SSB_EMBEDDED_H_
113 +#include <linux/types.h>
114 +#include <linux/ssb/ssb.h>
117 +extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks);
119 +#endif /* LINUX_SSB_EMBEDDED_H_ */