Skip to content

Commit

Permalink
---
Browse files Browse the repository at this point in the history
yaml
---
r: 86287
b: refs/heads/master
c: 42bfad4
h: refs/heads/master
i:
  86285: 8a885a7
  86283: a88516d
  86279: c37ab44
  86271: 5f505c2
v: v3
  • Loading branch information
Michael Buesch authored and John W. Linville committed Feb 21, 2008
1 parent 59a634e commit b20c43e
Show file tree
Hide file tree
Showing 8 changed files with 64 additions and 1 deletion.
2 changes: 1 addition & 1 deletion [refs]
Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
---
refs/heads/master: 58ff70d4feae29cbb7ace410fa6585ef3afb44b6
refs/heads/master: 42bfad4f71637c4eb4791aa8062063c4a8526522
6 changes: 6 additions & 0 deletions trunk/drivers/ssb/Kconfig
Original file line number Diff line number Diff line change
Expand Up @@ -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
Expand Down
1 change: 1 addition & 0 deletions trunk/drivers/ssb/Makefile
Original file line number Diff line number Diff line change
@@ -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
Expand Down
6 changes: 6 additions & 0 deletions trunk/drivers/ssb/driver_extif.c
Original file line number Diff line number Diff line change
Expand Up @@ -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;
Expand Down
26 changes: 26 additions & 0 deletions trunk/drivers/ssb/embedded.c
Original file line number Diff line number Diff line change
@@ -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;
}
5 changes: 5 additions & 0 deletions trunk/include/linux/ssb/ssb_driver_chipcommon.h
Original file line number Diff line number Diff line change
Expand Up @@ -360,6 +360,11 @@ struct ssb_chipcommon {
u16 fast_pwrup_delay;
};

static inline bool ssb_chipco_available(struct ssb_chipcommon *cc)
{
return (cc->dev != NULL);
}

extern void ssb_chipcommon_init(struct ssb_chipcommon *cc);

#include <linux/pm.h>
Expand Down
9 changes: 9 additions & 0 deletions trunk/include/linux/ssb/ssb_driver_extif.h
Original file line number Diff line number Diff line change
Expand Up @@ -171,6 +171,9 @@ extern void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
extern void ssb_extif_timing_init(struct ssb_extif *extif,
unsigned long ns);

extern void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
u32 ticks);

u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask);

void ssb_extif_gpio_out(struct ssb_extif *extif, u32 mask, u32 value);
Expand Down Expand Up @@ -200,5 +203,11 @@ void ssb_extif_get_clockcontrol(struct ssb_extif *extif,
{
}

static inline
void ssb_extif_watchdog_timer_set(struct ssb_extif *extif,
u32 ticks)
{
}

#endif /* CONFIG_SSB_DRIVER_EXTIF */
#endif /* LINUX_SSB_EXTIFCORE_H_ */
10 changes: 10 additions & 0 deletions trunk/include/linux/ssb/ssb_embedded.h
Original file line number Diff line number Diff line change
@@ -0,0 +1,10 @@
#ifndef LINUX_SSB_EMBEDDED_H_
#define LINUX_SSB_EMBEDDED_H_

#include <linux/types.h>
#include <linux/ssb/ssb.h>


extern int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks);

#endif /* LINUX_SSB_EMBEDDED_H_ */

0 comments on commit b20c43e

Please sign in to comment.