embedded.c (da733563be5a9da26fe81d9f007262d00b846e22) | embedded.c (bde327eff8a722df1198df9b14464f84f1adfb65) |
---|---|
1/* 2 * Sonics Silicon Backplane 3 * Embedded systems support code 4 * 5 * Copyright 2005-2008, Broadcom Corporation 6 * Copyright 2006-2008, Michael Buesch <m@bues.ch> | 1/* 2 * Sonics Silicon Backplane 3 * Embedded systems support code 4 * 5 * Copyright 2005-2008, Broadcom Corporation 6 * Copyright 2006-2008, Michael Buesch <m@bues.ch> |
7 * Copyright 2012, Hauke Mehrtens <hauke@hauke-m.de> |
|
7 * 8 * Licensed under the GNU/GPL. See COPYING for details. 9 */ 10 11#include <linux/export.h> | 8 * 9 * Licensed under the GNU/GPL. See COPYING for details. 10 */ 11 12#include <linux/export.h> |
13#include <linux/platform_device.h> |
|
12#include <linux/ssb/ssb.h> 13#include <linux/ssb/ssb_embedded.h> 14#include <linux/ssb/ssb_driver_pci.h> 15#include <linux/ssb/ssb_driver_gige.h> 16#include <linux/pci.h> 17 18#include "ssb_private.h" 19 --- 7 unchanged lines hidden (view full) --- 27 if (ssb_extif_available(&bus->extif)) { 28 ssb_extif_watchdog_timer_set(&bus->extif, ticks); 29 return 0; 30 } 31 return -ENODEV; 32} 33EXPORT_SYMBOL(ssb_watchdog_timer_set); 34 | 14#include <linux/ssb/ssb.h> 15#include <linux/ssb/ssb_embedded.h> 16#include <linux/ssb/ssb_driver_pci.h> 17#include <linux/ssb/ssb_driver_gige.h> 18#include <linux/pci.h> 19 20#include "ssb_private.h" 21 --- 7 unchanged lines hidden (view full) --- 29 if (ssb_extif_available(&bus->extif)) { 30 ssb_extif_watchdog_timer_set(&bus->extif, ticks); 31 return 0; 32 } 33 return -ENODEV; 34} 35EXPORT_SYMBOL(ssb_watchdog_timer_set); 36 |
37int ssb_watchdog_register(struct ssb_bus *bus) 38{ 39 struct bcm47xx_wdt wdt = {}; 40 struct platform_device *pdev; 41 42 if (ssb_chipco_available(&bus->chipco)) { 43 wdt.driver_data = &bus->chipco; 44 wdt.timer_set = ssb_chipco_watchdog_timer_set_wdt; 45 wdt.timer_set_ms = ssb_chipco_watchdog_timer_set_ms; 46 wdt.max_timer_ms = bus->chipco.max_timer_ms; 47 } else if (ssb_extif_available(&bus->extif)) { 48 wdt.driver_data = &bus->extif; 49 wdt.timer_set = ssb_extif_watchdog_timer_set_wdt; 50 wdt.timer_set_ms = ssb_extif_watchdog_timer_set_ms; 51 wdt.max_timer_ms = SSB_EXTIF_WATCHDOG_MAX_TIMER_MS; 52 } else { 53 return -ENODEV; 54 } 55 56 pdev = platform_device_register_data(NULL, "bcm47xx-wdt", 57 bus->busnumber, &wdt, 58 sizeof(wdt)); 59 if (IS_ERR(pdev)) { 60 ssb_dprintk(KERN_INFO PFX 61 "can not register watchdog device, err: %li\n", 62 PTR_ERR(pdev)); 63 return PTR_ERR(pdev); 64 } 65 66 bus->watchdog = pdev; 67 return 0; 68} 69 |
|
35u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask) 36{ 37 unsigned long flags; 38 u32 res = 0; 39 40 spin_lock_irqsave(&bus->gpio_lock, flags); 41 if (ssb_chipco_available(&bus->chipco)) 42 res = ssb_chipco_gpio_in(&bus->chipco, mask); --- 182 unchanged lines hidden --- | 70u32 ssb_gpio_in(struct ssb_bus *bus, u32 mask) 71{ 72 unsigned long flags; 73 u32 res = 0; 74 75 spin_lock_irqsave(&bus->gpio_lock, flags); 76 if (ssb_chipco_available(&bus->chipco)) 77 res = ssb_chipco_gpio_in(&bus->chipco, mask); --- 182 unchanged lines hidden --- |