diff options
Diffstat (limited to 'drivers/ssb/driver_extif.c')
| -rw-r--r-- | drivers/ssb/driver_extif.c | 24 | 
1 files changed, 22 insertions, 2 deletions
diff --git a/drivers/ssb/driver_extif.c b/drivers/ssb/driver_extif.c index dc47f30e9cf..553227a3062 100644 --- a/drivers/ssb/driver_extif.c +++ b/drivers/ssb/driver_extif.c @@ -112,10 +112,30 @@ 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) +u32 ssb_extif_watchdog_timer_set_wdt(struct bcm47xx_wdt *wdt, u32 ticks)  { +	struct ssb_extif *extif = bcm47xx_wdt_get_drvdata(wdt); + +	return ssb_extif_watchdog_timer_set(extif, ticks); +} + +u32 ssb_extif_watchdog_timer_set_ms(struct bcm47xx_wdt *wdt, u32 ms) +{ +	struct ssb_extif *extif = bcm47xx_wdt_get_drvdata(wdt); +	u32 ticks = (SSB_EXTIF_WATCHDOG_CLK / 1000) * ms; + +	ticks = ssb_extif_watchdog_timer_set(extif, ticks); + +	return (ticks * 1000) / SSB_EXTIF_WATCHDOG_CLK; +} + +u32 ssb_extif_watchdog_timer_set(struct ssb_extif *extif, u32 ticks) +{ +	if (ticks > SSB_EXTIF_WATCHDOG_MAX_TIMER) +		ticks = SSB_EXTIF_WATCHDOG_MAX_TIMER;  	extif_write32(extif, SSB_EXTIF_WATCHDOG, ticks); + +	return ticks;  }  u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask)  |