Lines Matching +full:bus +full:- +full:power

1 /* SPDX-License-Identifier: GPL-2.0 */
12 #include <linux/dma-mapping.h>
66 u8 maxpwr_bg; /* 2.4GHz Amplifier Max Power (in dBm Q5.2) */
67 u8 maxpwr_al; /* 5.2GHz Amplifier Max Power (in dBm Q5.2) */
68 u8 maxpwr_a; /* 5.3GHz Amplifier Max Power (in dBm Q5.2) */
69 u8 maxpwr_ah; /* 5.8GHz Amplifier Max Power (in dBm Q5.2) */
70 u8 itssi_a; /* Idle TSSI Target for A-PHY */
71 u8 itssi_bg; /* Idle TSSI Target for B/G-PHY */
76 u8 txpid2g[4]; /* 2GHz TX power index */
77 u8 txpid5gl[4]; /* 4.9 - 5.1GHz TX power index */
78 u8 txpid5g[4]; /* 5.1 - 5.5GHz TX power index */
79 u8 txpid5gh[4]; /* 5.5 - ...GHz TX power index */
80 s8 rxpo2g; /* 2GHz RX power offset */
81 s8 rxpo5g; /* 5GHz RX power offset */
90 u16 cck2gpo; /* CCK power offset */
91 u32 ofdm2gpo; /* 2.4GHz OFDM power offset */
92 u32 ofdm5glpo; /* 5.2GHz OFDM power offset */
93 u32 ofdm5gpo; /* 5.3GHz OFDM power offset */
94 u32 ofdm5ghpo; /* 5.8GHz OFDM power offset */
99 u16 boardflags_lo; /* Board flags (bits 0-15) */
100 u16 boardflags_hi; /* Board flags (bits 16-31) */
101 u16 boardflags2_lo; /* Board flags (bits 32-47) */
102 u16 boardflags2_hi; /* Board flags (bits 48-63) */
168 /* power per rate from sromrev 9 */
223 /* Core-ID values. */
258 /* Vendor-ID values */
261 /* Some kernel subsystems poke with dev->drvdata, so we must use the
275 struct ssb_bus *bus; member
281 /* Internal-only stuff follows. */
282 void *drvdata; /* Per-device data */
283 void *devtypedata; /* Per-devicetype (eg 802.11) data */
292 return wrap->sdev; in dev_to_ssb_dev()
299 dev->drvdata = data; in ssb_set_drvdata()
304 return dev->drvdata; in ssb_get_drvdata()
307 /* Devicetype specific user data. This is per device-type (not per device) */
312 return dev->devtypedata; in ssb_get_devtypedata()
340 SSB_BUSTYPE_SSB, /* This SSB bus is the system bus */
341 SSB_BUSTYPE_PCI, /* SSB is connected to PCI bus */
342 SSB_BUSTYPE_PCMCIA, /* SSB is connected to PCMCIA bus */
343 SSB_BUSTYPE_SDIO, /* SSB is connected to SDIO bus */
365 #define SSB_BOARD_BCM94308MP 0x0430 /* 11a-only minipci */
423 * Not valid on all host-buses. So don't use outside of SSB. */
432 * On PCMCIA-host busses this is used to protect the whole MMIO access. */
435 /* The host-bus this backplane is running on. */
437 /* Pointers to the host-bus. Check bustype before using any of these pointers. */
439 /* Pointer to the PCI bus (only valid if bustype == SSB_BUSTYPE_PCI). */
466 /* Software ID number for this bus. */
471 /* The PCI-core device (if available). */
473 /* The MIPS-core device (if available). */
475 /* The EXTif-core device (if available). */
500 /* Internal-only stuff follows. Do not touch. */
502 /* Is the bus already powered up? */
508 /* SDIO connected card requires performing a read after writing a 32-bit value */
512 /* The initialization-invariants. */
523 typedef int (*ssb_invariants_func_t)(struct ssb_bus *bus,
526 /* Register SoC bus. */
527 extern int ssb_bus_host_soc_register(struct ssb_bus *bus,
530 extern int ssb_bus_pcibus_register(struct ssb_bus *bus,
534 extern int ssb_bus_pcmciabus_register(struct ssb_bus *bus,
539 extern int ssb_bus_sdiobus_register(struct ssb_bus *bus,
545 extern void ssb_bus_unregister(struct ssb_bus *bus);
548 extern bool ssb_is_sprom_available(struct ssb_bus *bus);
553 int (*sprom_callback)(struct ssb_bus *bus,
556 /* Suspend a SSB bus.
557 * Call this from the parent bus suspend routine. */
558 extern int ssb_bus_suspend(struct ssb_bus *bus);
559 /* Resume a SSB bus.
560 * Call this from the parent bus resume routine. */
561 extern int ssb_bus_resume(struct ssb_bus *bus);
563 extern u32 ssb_clockspeed(struct ssb_bus *bus);
567 /* Enable a device and pass device-specific SSB_TMSLOW flags.
568 * If no device-specific flags are available, use 0. */
577 return dev->ops->read8(dev, offset); in ssb_read8()
581 return dev->ops->read16(dev, offset); in ssb_read16()
585 return dev->ops->read32(dev, offset); in ssb_read32()
589 dev->ops->write8(dev, offset, value); in ssb_write8()
593 dev->ops->write16(dev, offset, value); in ssb_write16()
597 dev->ops->write32(dev, offset, value); in ssb_write32()
603 dev->ops->block_read(dev, buffer, count, offset, reg_width); in ssb_block_read()
609 dev->ops->block_write(dev, buffer, count, offset, reg_width); in ssb_block_write()
625 /* PCI-host wrapper driver */
635 if (sdev->bus->bustype == SSB_BUSTYPE_PCI) in ssb_pcihost_set_power_state()
636 pci_set_power_state(sdev->bus->host_pci, state); in ssb_pcihost_set_power_state()
651 * that the bus may be completely powered down. SSB will decide,
652 * if it's really time to power down the bus, based on if there
654 extern int ssb_bus_may_powerdown(struct ssb_bus *bus);
655 /* Before initializing and enabling a device, call this to power-up the bus.
656 * If you want to allow use of dynamic-power-control, pass the flag.
657 * Otherwise static always-on powercontrol will be used. */
658 extern int ssb_bus_powerup(struct ssb_bus *bus, bool dynamic_pctl);
660 extern void ssb_commit_settings(struct ssb_bus *bus);