Lines Matching refs:extif
20 static inline u32 extif_read32(struct ssb_extif *extif, u16 offset) in extif_read32() argument
22 return ssb_read32(extif->dev, offset); in extif_read32()
25 static inline void extif_write32(struct ssb_extif *extif, u16 offset, u32 value) in extif_write32() argument
27 ssb_write32(extif->dev, offset, value); in extif_write32()
30 static inline u32 extif_write32_masked(struct ssb_extif *extif, u16 offset, in extif_write32_masked() argument
34 value |= extif_read32(extif, offset) & ~mask; in extif_write32_masked()
35 extif_write32(extif, offset, value); in extif_write32_masked()
55 int ssb_extif_serial_init(struct ssb_extif *extif, struct ssb_serial_port *ports) in ssb_extif_serial_init() argument
60 extif_write32(extif, SSB_EXTIF_GPIO_INTPOL, 0); in ssb_extif_serial_init()
61 extif_write32(extif, SSB_EXTIF_GPIO_INTMASK, 0); in ssb_extif_serial_init()
71 extif_write32(extif, SSB_EXTIF_GPIO_INTMASK, 2); in ssb_extif_serial_init()
86 void ssb_extif_timing_init(struct ssb_extif *extif, unsigned long ns) in ssb_extif_timing_init() argument
91 extif_write32(extif, SSB_EXTIF_PROG_CFG, SSB_EXTCFG_EN); in ssb_extif_timing_init()
97 extif_write32(extif, SSB_EXTIF_PROG_WAITCNT, tmp); in ssb_extif_timing_init()
104 extif_write32(extif, SSB_EXTIF_PROG_WAITCNT, tmp); in ssb_extif_timing_init()
107 void ssb_extif_get_clockcontrol(struct ssb_extif *extif, in ssb_extif_get_clockcontrol() argument
111 *n = extif_read32(extif, SSB_EXTIF_CLOCK_N); in ssb_extif_get_clockcontrol()
112 *m = extif_read32(extif, SSB_EXTIF_CLOCK_SB); in ssb_extif_get_clockcontrol()
117 struct ssb_extif *extif = bcm47xx_wdt_get_drvdata(wdt); in ssb_extif_watchdog_timer_set_wdt() local
119 return ssb_extif_watchdog_timer_set(extif, ticks); in ssb_extif_watchdog_timer_set_wdt()
124 struct ssb_extif *extif = bcm47xx_wdt_get_drvdata(wdt); in ssb_extif_watchdog_timer_set_ms() local
127 ticks = ssb_extif_watchdog_timer_set(extif, ticks); in ssb_extif_watchdog_timer_set_ms()
132 u32 ssb_extif_watchdog_timer_set(struct ssb_extif *extif, u32 ticks) in ssb_extif_watchdog_timer_set() argument
136 extif_write32(extif, SSB_EXTIF_WATCHDOG, ticks); in ssb_extif_watchdog_timer_set()
141 void ssb_extif_init(struct ssb_extif *extif) in ssb_extif_init() argument
143 if (!extif->dev) in ssb_extif_init()
145 spin_lock_init(&extif->gpio_lock); in ssb_extif_init()
148 u32 ssb_extif_gpio_in(struct ssb_extif *extif, u32 mask) in ssb_extif_gpio_in() argument
150 return extif_read32(extif, SSB_EXTIF_GPIO_IN) & mask; in ssb_extif_gpio_in()
153 u32 ssb_extif_gpio_out(struct ssb_extif *extif, u32 mask, u32 value) in ssb_extif_gpio_out() argument
158 spin_lock_irqsave(&extif->gpio_lock, flags); in ssb_extif_gpio_out()
159 res = extif_write32_masked(extif, SSB_EXTIF_GPIO_OUT(0), in ssb_extif_gpio_out()
161 spin_unlock_irqrestore(&extif->gpio_lock, flags); in ssb_extif_gpio_out()
166 u32 ssb_extif_gpio_outen(struct ssb_extif *extif, u32 mask, u32 value) in ssb_extif_gpio_outen() argument
171 spin_lock_irqsave(&extif->gpio_lock, flags); in ssb_extif_gpio_outen()
172 res = extif_write32_masked(extif, SSB_EXTIF_GPIO_OUTEN(0), in ssb_extif_gpio_outen()
174 spin_unlock_irqrestore(&extif->gpio_lock, flags); in ssb_extif_gpio_outen()
179 u32 ssb_extif_gpio_polarity(struct ssb_extif *extif, u32 mask, u32 value) in ssb_extif_gpio_polarity() argument
184 spin_lock_irqsave(&extif->gpio_lock, flags); in ssb_extif_gpio_polarity()
185 res = extif_write32_masked(extif, SSB_EXTIF_GPIO_INTPOL, mask, value); in ssb_extif_gpio_polarity()
186 spin_unlock_irqrestore(&extif->gpio_lock, flags); in ssb_extif_gpio_polarity()
191 u32 ssb_extif_gpio_intmask(struct ssb_extif *extif, u32 mask, u32 value) in ssb_extif_gpio_intmask() argument
196 spin_lock_irqsave(&extif->gpio_lock, flags); in ssb_extif_gpio_intmask()
197 res = extif_write32_masked(extif, SSB_EXTIF_GPIO_INTMASK, mask, value); in ssb_extif_gpio_intmask()
198 spin_unlock_irqrestore(&extif->gpio_lock, flags); in ssb_extif_gpio_intmask()