mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 03:27:44 -04:00
ssb: Fix watchdog access for devices without a chipcommon
This fixes the SSB watchdog access for devices without a chipcommon. These devices have the watchdog on the extif. Signed-off-by: Michael Buesch <[email protected]> Signed-off-by: John W. Linville <[email protected]>
This commit is contained in:
parent
58ff70d4fe
commit
42bfad4f71
7 changed files with 63 additions and 0 deletions
|
|
@ -105,6 +105,12 @@ config SSB_DRIVER_MIPS
|
|||
|
||||
If unsure, say N
|
||||
|
||||
# Assumption: We are on embedded, if we compile the MIPS core.
|
||||
config SSB_EMBEDDED
|
||||
bool
|
||||
depends on SSB_DRIVER_MIPS
|
||||
default y
|
||||
|
||||
config SSB_DRIVER_EXTIF
|
||||
bool "SSB Broadcom EXTIF core driver (EXPERIMENTAL)"
|
||||
depends on SSB_DRIVER_MIPS && EXPERIMENTAL
|
||||
|
|
|
|||
|
|
@ -1,5 +1,6 @@
|
|||
# core
|
||||
ssb-y += main.o scan.o
|
||||
ssb-$(CONFIG_SSB_EMBEDDED) += embedded.o
|
||||
|
||||
# host support
|
||||
ssb-$(CONFIG_SSB_PCIHOST) += pci.o pcihost_wrapper.o
|
||||
|
|
|
|||
|
|
@ -110,6 +110,12 @@ void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
|
|||
*m = extif_read32(extif, SSB_EXTIF_CLOCK_SB);
|
||||
}
|
||||
|
||||
void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
|
||||
u32 ticks)
|
||||
{
|
||||
extif_write32(extif, SSB_EXTIF_WATCHDOG, ticks);
|
||||
}
|
||||
|
||||
u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask)
|
||||
{
|
||||
return extif_read32(extif, SSB_EXTIF_GPIO_IN) & mask;
|
||||
|
|
|
|||
26
drivers/ssb/embedded.c
Normal file
26
drivers/ssb/embedded.c
Normal file
|
|
@ -0,0 +1,26 @@
|
|||
/*
|
||||
* Sonics Silicon Backplane
|
||||
* Embedded systems support code
|
||||
*
|
||||
* Copyright 2005-2008, Broadcom Corporation
|
||||
* Copyright 2006-2008, Michael Buesch <mb@bu3sch.de>
|
||||
*
|
||||
* Licensed under the GNU/GPL. See COPYING for details.
|
||||
*/
|
||||
|
||||
#include <linux/ssb/ssb.h>
|
||||
#include <linux/ssb/ssb_embedded.h>
|
||||
|
||||
|
||||
int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks)
|
||||
{
|
||||
if (ssb_chipco_available(&bus->chipco)) {
|
||||
ssb_chipco_watchdog_timer_set(&bus->chipco, ticks);
|
||||
return 0;
|
||||
}
|
||||
if (ssb_extif_available(&bus->extif)) {
|
||||
ssb_extif_watchdog_timer_set(&bus->extif, ticks);
|
||||
return 0;
|
||||
}
|
||||
return -ENODEV;
|
||||
}
|
||||
Loading…
Reference in a new issue