| /linux/drivers/i2c/busses/ |
| H A D | i2c-npcm7xx.c | 30 * of the bus. 126 #define NPCM_I2CT_OUT 0x14 /* Bus T.O. */ 155 #define NPCM_I2CST_BER BIT(5) /* Bus error */ 161 #define NPCM_I2CCST_BB BIT(1) /* Bus busy */ 596 bool ber_state; /* Indicate the bus error state */ 599 static inline void npcm_i2c_select_bank(struct npcm_i2c *bus, in npcm_i2c_select_bank() argument 602 u8 i2cctl3 = ioread8(bus->reg + NPCM_I2CCTL3); in npcm_i2c_select_bank() 608 iowrite8(i2cctl3, bus->reg + NPCM_I2CCTL3); in npcm_i2c_select_bank() 611 static void npcm_i2c_init_params(struct npcm_i2c *bus) in npcm_i2c_init_params() argument 613 bus->stop_ind = I2C_NO_STATUS_IND; in npcm_i2c_init_params() [all …]
|
| H A D | i2c-aspeed.c | 171 static int aspeed_i2c_reset(struct aspeed_i2c_bus *bus); 173 /* precondition: bus.lock has been acquired. */ 174 static void aspeed_i2c_do_stop(struct aspeed_i2c_bus *bus) in aspeed_i2c_do_stop() argument 176 bus->master_state = ASPEED_I2C_MASTER_STOP; in aspeed_i2c_do_stop() 177 writel(ASPEED_I2CD_M_STOP_CMD, bus->base + ASPEED_I2C_CMD_REG); in aspeed_i2c_do_stop() 180 static int aspeed_i2c_recover_bus(struct aspeed_i2c_bus *bus) in aspeed_i2c_recover_bus() argument 186 spin_lock_irqsave(&bus->lock, flags); in aspeed_i2c_recover_bus() 187 command = readl(bus->base + ASPEED_I2C_CMD_REG); in aspeed_i2c_recover_bus() 190 /* Bus is idle: no recovery needed. */ in aspeed_i2c_recover_bus() 193 dev_dbg(bus->dev, "SCL hung (state %x), attempting recovery\n", in aspeed_i2c_recover_bus() [all …]
|
| /linux/sound/hda/core/ |
| H A D | controller.c | 15 static void azx_clear_corbrp(struct hdac_bus *bus) in azx_clear_corbrp() argument 20 if (snd_hdac_chip_readw(bus, CORBRP) & AZX_CORBRP_RST) in azx_clear_corbrp() 25 dev_err(bus->dev, "CORB reset timeout#1, CORBRP = %d\n", in azx_clear_corbrp() 26 snd_hdac_chip_readw(bus, CORBRP)); in azx_clear_corbrp() 28 snd_hdac_chip_writew(bus, CORBRP, 0); in azx_clear_corbrp() 30 if (snd_hdac_chip_readw(bus, CORBRP) == 0) in azx_clear_corbrp() 35 dev_err(bus->dev, "CORB reset timeout#2, CORBRP = %d\n", in azx_clear_corbrp() 36 snd_hdac_chip_readw(bus, CORBRP)); in azx_clear_corbrp() 41 * @bus: HD-audio core bus 43 void snd_hdac_bus_init_cmd_io(struct hdac_bus *bus) in snd_hdac_bus_init_cmd_io() argument [all …]
|
| H A D | bus.c | 3 * HD-audio core bus driver 24 * snd_hdac_bus_init - initialize a HD-audio bas bus 25 * @bus: the pointer to bus object 27 * @ops: bus verb operators 31 int snd_hdac_bus_init(struct hdac_bus *bus, struct device *dev, in snd_hdac_bus_init() argument 34 memset(bus, 0, sizeof(*bus)); in snd_hdac_bus_init() 35 bus->dev = dev; in snd_hdac_bus_init() 37 bus->ops = ops; in snd_hdac_bus_init() 39 bus->ops = &default_ops; in snd_hdac_bus_init() 40 bus->dma_type = SNDRV_DMA_TYPE_DEV; in snd_hdac_bus_init() [all …]
|
| /linux/sound/i2c/ |
| H A D | i2c.c | 25 static int snd_i2c_bit_probeaddr(struct snd_i2c_bus *bus, 34 static int snd_i2c_bus_free(struct snd_i2c_bus *bus) in snd_i2c_bus_free() argument 39 if (snd_BUG_ON(!bus)) in snd_i2c_bus_free() 41 while (!list_empty(&bus->devices)) { in snd_i2c_bus_free() 42 device = snd_i2c_device(bus->devices.next); in snd_i2c_bus_free() 45 if (bus->master) in snd_i2c_bus_free() 46 list_del(&bus->buses); in snd_i2c_bus_free() 48 while (!list_empty(&bus->buses)) { in snd_i2c_bus_free() 49 slave = snd_i2c_slave_bus(bus->buses.next); in snd_i2c_bus_free() 50 snd_device_free(bus->card, slave); in snd_i2c_bus_free() [all …]
|
| /linux/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/ |
| H A D | bit.c | 24 #include "bus.h" 32 nvkm_i2c_drive_scl(struct nvkm_i2c_bus *bus, int state) in nvkm_i2c_drive_scl() argument 34 bus->func->drive_scl(bus, state); in nvkm_i2c_drive_scl() 38 nvkm_i2c_drive_sda(struct nvkm_i2c_bus *bus, int state) in nvkm_i2c_drive_sda() argument 40 bus->func->drive_sda(bus, state); in nvkm_i2c_drive_sda() 44 nvkm_i2c_sense_scl(struct nvkm_i2c_bus *bus) in nvkm_i2c_sense_scl() argument 46 return bus->func->sense_scl(bus); in nvkm_i2c_sense_scl() 50 nvkm_i2c_sense_sda(struct nvkm_i2c_bus *bus) in nvkm_i2c_sense_sda() argument 52 return bus->func->sense_sda(bus); in nvkm_i2c_sense_sda() 56 nvkm_i2c_delay(struct nvkm_i2c_bus *bus, u32 nsec) in nvkm_i2c_delay() argument [all …]
|
| H A D | bus.c | 24 #include "bus.h" 35 struct nvkm_i2c_bus *bus = container_of(adap, typeof(*bus), i2c); in nvkm_i2c_bus_pre_xfer() local 36 return nvkm_i2c_bus_acquire(bus); in nvkm_i2c_bus_pre_xfer() 42 struct nvkm_i2c_bus *bus = container_of(adap, typeof(*bus), i2c); in nvkm_i2c_bus_post_xfer() local 43 return nvkm_i2c_bus_release(bus); in nvkm_i2c_bus_post_xfer() 49 struct nvkm_i2c_bus *bus = data; in nvkm_i2c_bus_setscl() local 50 bus->func->drive_scl(bus, state); in nvkm_i2c_bus_setscl() 56 struct nvkm_i2c_bus *bus = data; in nvkm_i2c_bus_setsda() local 57 bus->func->drive_sda(bus, state); in nvkm_i2c_bus_setsda() 63 struct nvkm_i2c_bus *bus = data; in nvkm_i2c_bus_getscl() local [all …]
|
| /linux/drivers/ssb/ |
| H A D | driver_gpio.c | 28 struct ssb_bus *bus = gpiochip_get_data(chip); in ssb_gpio_to_irq() local 30 if (bus->bustype == SSB_BUSTYPE_SSB) in ssb_gpio_to_irq() 31 return irq_find_mapping(bus->irq_domain, gpio); in ssb_gpio_to_irq() 43 struct ssb_bus *bus = gpiochip_get_data(chip); in ssb_gpio_chipco_get_value() local 45 return !!ssb_chipco_gpio_in(&bus->chipco, 1 << gpio); in ssb_gpio_chipco_get_value() 51 struct ssb_bus *bus = gpiochip_get_data(chip); in ssb_gpio_chipco_set_value() local 53 ssb_chipco_gpio_out(&bus->chipco, 1 << gpio, value ? 1 << gpio : 0); in ssb_gpio_chipco_set_value() 61 struct ssb_bus *bus = gpiochip_get_data(chip); in ssb_gpio_chipco_direction_input() local 63 ssb_chipco_gpio_outen(&bus->chipco, 1 << gpio, 0); in ssb_gpio_chipco_direction_input() 70 struct ssb_bus *bus = gpiochip_get_data(chip); in ssb_gpio_chipco_direction_output() local [all …]
|
| H A D | scan.c | 3 * Bus scanning 160 static u32 scan_read32(struct ssb_bus *bus, u8 current_coreidx, in scan_read32() argument 165 switch (bus->bustype) { in scan_read32() 173 ssb_pcmcia_switch_segment(bus, 1); in scan_read32() 176 ssb_pcmcia_switch_segment(bus, 0); in scan_read32() 177 lo = readw(bus->mmio + offset); in scan_read32() 178 hi = readw(bus->mmio + offset + 2); in scan_read32() 182 return ssb_sdio_scan_read32(bus, offset); in scan_read32() 184 return readl(bus->mmio + offset); in scan_read32() 187 static int scan_switchcore(struct ssb_bus *bus, u8 coreidx) in scan_switchcore() argument [all …]
|
| H A D | embedded.c | 23 int ssb_watchdog_timer_set(struct ssb_bus *bus, u32 ticks) in ssb_watchdog_timer_set() argument 25 if (ssb_chipco_available(&bus->chipco)) { in ssb_watchdog_timer_set() 26 ssb_chipco_watchdog_timer_set(&bus->chipco, ticks); in ssb_watchdog_timer_set() 29 if (ssb_extif_available(&bus->extif)) { in ssb_watchdog_timer_set() 30 ssb_extif_watchdog_timer_set(&bus->extif, ticks); in ssb_watchdog_timer_set() 37 int ssb_watchdog_register(struct ssb_bus *bus) in ssb_watchdog_register() argument 42 if (ssb_chipco_available(&bus->chipco)) { in ssb_watchdog_register() 43 wdt.driver_data = &bus->chipco; in ssb_watchdog_register() 46 wdt.max_timer_ms = bus->chipco.max_timer_ms; in ssb_watchdog_register() 47 } else if (ssb_extif_available(&bus->extif)) { in ssb_watchdog_register() [all …]
|
| H A D | sdio.c | 104 static inline struct device *ssb_sdio_dev(struct ssb_bus *bus) in ssb_sdio_dev() argument 106 return &bus->host_sdio->dev; in ssb_sdio_dev() 110 static int ssb_sdio_writeb(struct ssb_bus *bus, unsigned int addr, u8 val) in ssb_sdio_writeb() argument 114 sdio_writeb(bus->host_sdio, val, addr, &error); in ssb_sdio_writeb() 116 dev_dbg(ssb_sdio_dev(bus), "%08X <- %02x, error %d\n", in ssb_sdio_writeb() 124 static u8 ssb_sdio_readb(struct ssb_bus *bus, unsigned int addr) 129 val = sdio_readb(bus->host_sdio, addr, &error); 131 dev_dbg(ssb_sdio_dev(bus), "%08X -> %02x, error %d\n", 140 static int ssb_sdio_set_sbaddr_window(struct ssb_bus *bus, u32 address) in ssb_sdio_set_sbaddr_window() argument 144 error = ssb_sdio_writeb(bus, SBSDIO_FUNC1_SBADDRLOW, in ssb_sdio_set_sbaddr_window() [all …]
|
| /linux/Documentation/ABI/testing/ |
| H A D | sysfs-bus-i3c | 1 What: /sys/bus/i3c/devices/i3c-<bus-id> 5 An I3C bus. This directory will contain one sub-directory per 6 I3C device present on the bus. 8 What: /sys/bus/i3c/devices/i3c-<bus-id>/current_master 12 Expose the master that owns the bus (<bus-id>-<master-pid>) at 13 the time this file is read. Note that bus ownership can change 17 What: /sys/bus/i3c/devices/i3c-<bus-id>/mode 21 I3C bus mode. Can be "pure", "mixed-fast" or "mixed-slow". See 25 What: /sys/bus/i3c/devices/i3c-<bus-id>/i3c_scl_frequency 32 What: /sys/bus/i3c/devices/i3c-<bus-id>/i2c_scl_frequency [all …]
|
| H A D | sysfs-bus-soundwire-slave | 1 What: /sys/bus/soundwire/devices/sdw:.../status 2 /sys/bus/soundwire/devices/sdw:.../device_number 16 physically present on the bus, and conversely devices 19 What: /sys/bus/soundwire/devices/sdw:.../dev-properties/mipi_revision 20 /sys/bus/soundwire/devices/sdw:.../dev-properties/wake_capable 21 /sys/bus/soundwire/devices/sdw:.../dev-properties/test_mode_capable 22 /sys/bus/soundwire/devices/sdw:.../dev-properties/clk_stop_mode1 23 /sys/bus/soundwire/devices/sdw:.../dev-properties/simple_clk_stop_capable 24 /sys/bus/soundwire/devices/sdw:.../dev-properties/clk_stop_timeout 25 /sys/bus/soundwire/devices/sdw:.../dev-properties/ch_prep_timeout [all …]
|
| /linux/drivers/bcma/ |
| H A D | main.c | 3 * Bus subsystem 23 /* contains the number the next bus should get. */ 80 static u16 bcma_cc_core_id(struct bcma_bus *bus) in bcma_cc_core_id() argument 82 if (bus->chipinfo.id == BCMA_CHIP_ID_BCM4706) in bcma_cc_core_id() 87 struct bcma_device *bcma_find_core_unit(struct bcma_bus *bus, u16 coreid, in bcma_find_core_unit() argument 92 list_for_each_entry(core, &bus->cores, list) { in bcma_find_core_unit() 114 bcma_warn(core->bus, "Timeout waiting for register 0x%04X!\n", reg); in bcma_wait_value() 192 bcma_debug(core->bus, "bcma_of_get_irq() failed with rc=%d\n", in bcma_of_get_irq() 216 struct bcma_bus *bus = core->bus; in bcma_core_irq() local 219 switch (bus->hosttype) { in bcma_core_irq() [all …]
|
| H A D | driver_mips.c | 36 return dev->bus->chipinfo.id == BCMA_CHIP_ID_BCM47162 && in bcma_core_mips_bcm47162a0_quirk() 37 dev->bus->chipinfo.rev == 0 && dev->id.id == BCMA_CORE_MIPS_74K; in bcma_core_mips_bcm47162a0_quirk() 43 return (dev->bus->chipinfo.id == BCMA_CHIP_ID_BCM5357 || in bcma_core_mips_bcm5357b0_quirk() 44 dev->bus->chipinfo.id == BCMA_CHIP_ID_BCM4749) && in bcma_core_mips_bcm5357b0_quirk() 45 dev->bus->chipinfo.pkg == 11 && in bcma_core_mips_bcm5357b0_quirk() 72 struct bcma_device *mdev = dev->bus->drv_mips.core; in bcma_core_mips_irq() 91 struct bcma_bus *bus = dev->bus; in bcma_core_mips_set_irq() local 92 struct bcma_device *mdev = bus->drv_mips.core; in bcma_core_mips_set_irq() 122 list_for_each_entry(core, &bus->cores, list) { in bcma_core_mips_set_irq() 134 bcma_debug(bus, "set_irq: core 0x%04x, irq %d => %d\n", in bcma_core_mips_set_irq() [all …]
|
| H A D | host_pci.c | 16 int win2 = core->bus->host_is_pcie2 ? in bcma_host_pci_switch_core() 19 pci_write_config_dword(core->bus->host_pci, BCMA_PCI_BAR0_WIN, in bcma_host_pci_switch_core() 21 pci_write_config_dword(core->bus->host_pci, win2, core->wrap); in bcma_host_pci_switch_core() 22 core->bus->mapped_core = core; in bcma_host_pci_switch_core() 23 bcma_debug(core->bus, "Switched to core: 0x%X\n", core->id.id); in bcma_host_pci_switch_core() 37 if (core->bus->mapped_core != core) in bcma_host_pci_provide_access_to_core() 45 return ioread8(core->bus->mmio + offset); in bcma_host_pci_read8() 51 return ioread16(core->bus->mmio + offset); in bcma_host_pci_read16() 57 return ioread32(core->bus->mmio + offset); in bcma_host_pci_read32() 64 iowrite8(value, core->bus->mmio + offset); in bcma_host_pci_write8() [all …]
|
| /linux/arch/powerpc/platforms/pasemi/ |
| H A D | gpio_mdio.c | 34 #define MDC_PIN(bus) (((struct gpio_priv *)bus->priv)->mdc_pin) argument 35 #define MDIO_PIN(bus) (((struct gpio_priv *)bus->priv)->mdio_pin) argument 37 static inline void mdio_lo(struct mii_bus *bus) in mdio_lo() argument 39 out_le32(gpio_regs+0x10, 1 << MDIO_PIN(bus)); in mdio_lo() 42 static inline void mdio_hi(struct mii_bus *bus) in mdio_hi() argument 44 out_le32(gpio_regs, 1 << MDIO_PIN(bus)); in mdio_hi() 47 static inline void mdc_lo(struct mii_bus *bus) in mdc_lo() argument 49 out_le32(gpio_regs+0x10, 1 << MDC_PIN(bus)); in mdc_lo() 52 static inline void mdc_hi(struct mii_bus *bus) in mdc_hi() argument 54 out_le32(gpio_regs, 1 << MDC_PIN(bus)); in mdc_hi() [all …]
|
| /linux/drivers/net/wireless/silabs/wfx/ |
| H A D | bus_sdio.c | 19 #include "bus.h" 55 struct wfx_sdio_priv *bus = priv; in wfx_sdio_copy_from_io() local 65 sdio_addr |= (bus->buf_id_rx + 1) << 7; in wfx_sdio_copy_from_io() 66 ret = sdio_memcpy_fromio(bus->func, dst, sdio_addr, count); in wfx_sdio_copy_from_io() 68 bus->buf_id_rx = (bus->buf_id_rx + 1) % 4; in wfx_sdio_copy_from_io() 75 struct wfx_sdio_priv *bus = priv; in wfx_sdio_copy_to_io() local 85 sdio_addr |= bus->buf_id_tx << 7; in wfx_sdio_copy_to_io() 87 ret = sdio_memcpy_toio(bus->func, sdio_addr, (void *)src, count); in wfx_sdio_copy_to_io() 89 bus->buf_id_tx = (bus->buf_id_tx + 1) % 32; in wfx_sdio_copy_to_io() 96 struct wfx_sdio_priv *bus = priv; in wfx_sdio_lock() local [all …]
|
| /linux/include/linux/device/ |
| H A D | bus.h | 3 * bus.h - the bus-specific portions of the driver model 25 * struct bus_type - The bus type of the device 27 * @name: The name of the bus. 29 * @bus_groups: Default attributes of the bus. 30 * @dev_groups: Default attributes of the devices on the bus. 31 * @drv_groups: Default attributes of the device drivers on the bus. 33 * is added for this bus. It should return a positive value if the 40 * @probe: Called when a new device or driver add to this bus, and callback 49 * @remove: Called when a device removed from this bus. 51 * @irq_get_affinity: Get IRQ affinity mask for the device on this bus. [all …]
|
| /linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/ |
| H A D | bus.h | 43 /* The level of bus communication with the dongle */ 49 /* The level of bus communication with the dongle */ 71 * struct brcmf_bus_ops - bus callback operations. 73 * @preinit: execute bus/device specific dongle init commands (optional). 83 * @gettxq: obtain a reference of bus transmit queue (optional). 91 * bus specific driver. For control messages to common driver 114 * struct brcmf_bus_msgbuf - bus ringbuf if in case of msgbuf. 136 * struct brcmf_bus_stats - bus statistic counters. 147 * struct brcmf_bus - interface structure between common and bus layer 149 * @bus_priv: pointer to private bus device. [all …]
|
| /linux/drivers/spmi/ |
| H A D | spmi-pmic-arb.c | 135 * struct spmi_pmic_arb_bus - SPMI PMIC Arbiter Bus object 137 * @pmic_arb: the SPMI PMIC Arbiter the bus belongs to. 141 * @spmic: spmi controller registered for this bus 144 * bus instance 146 * particular SPMI bus instance 155 * @id: unique ID of the bus 230 int (*init_apid)(struct spmi_pmic_arb_bus *bus, int index); 231 int (*ppid_to_apid)(struct spmi_pmic_arb_bus *bus, u16 ppid); 233 int (*offset)(struct spmi_pmic_arb_bus *bus, u8 sid, u16 addr, 238 void __iomem *(*owner_acc_status)(struct spmi_pmic_arb_bus *bus, u8 m, [all …]
|
| /linux/drivers/net/phy/ |
| H A D | mdio_bus.c | 2 /* MDIO Bus interface 41 if (mdiodev->bus->mdio_map[mdiodev->addr]) in mdiobus_register_device() 53 mdiodev->bus->mdio_map[mdiodev->addr] = mdiodev; in mdiobus_register_device() 61 if (mdiodev->bus->mdio_map[mdiodev->addr] != mdiodev) in mdiobus_unregister_device() 66 mdiodev->bus->mdio_map[mdiodev->addr] = NULL; in mdiobus_unregister_device() 72 static struct mdio_device *mdiobus_find_device(struct mii_bus *bus, int addr) in mdiobus_find_device() argument 74 bool addr_valid = addr >= 0 && addr < ARRAY_SIZE(bus->mdio_map); in mdiobus_find_device() 79 return bus->mdio_map[addr]; in mdiobus_find_device() 82 struct phy_device *mdiobus_get_phy(struct mii_bus *bus, int addr) in mdiobus_get_phy() argument 86 mdiodev = mdiobus_find_device(bus, addr); in mdiobus_get_phy() [all …]
|
| /linux/Documentation/i2c/ |
| H A D | i2c-sysfs.rst | 12 kernel abstracts the MUX channels into logical I2C bus numbers. However, there 13 is a gap of knowledge to map from the I2C bus physical number and MUX topology 14 to logical I2C bus number. This doc is aimed to fill in this gap, so the 38 so you can find the I2C Sysfs under ``/sys/bus/i2c/devices`` 43 the first number is I2C bus number, and the second number is I2C address. 47 blueline:/sys/bus/i2c/devices $ ls 51 ``i2c-2`` is an I2C bus whose number is 2, and ``2-0049`` is an I2C device 52 on bus 2 address 0x49 bound with a kernel driver. 59 (Physical) I2C Bus Controller 63 physical I2C bus controllers. The controllers are hardware and physical, and the [all …]
|
| /linux/drivers/net/wireless/quantenna/qtnfmac/ |
| H A D | bus.h | 44 int (*data_tx)(struct qtnf_bus *bus, struct sk_buff *skb, 47 void (*data_tx_use_meta_set)(struct qtnf_bus *bus, bool use_meta); 71 /* bus private data */ 75 static inline bool qtnf_fw_is_up(struct qtnf_bus *bus) in qtnf_fw_is_up() argument 77 enum qtnf_fw_state state = bus->fw_state; in qtnf_fw_is_up() 83 static inline bool qtnf_fw_is_attached(struct qtnf_bus *bus) in qtnf_fw_is_attached() argument 85 enum qtnf_fw_state state = bus->fw_state; in qtnf_fw_is_attached() 92 static inline void *get_bus_priv(struct qtnf_bus *bus) in get_bus_priv() argument 94 if (WARN(!bus, "qtnfmac: invalid bus pointer")) in get_bus_priv() 97 return &bus->bus_priv; in get_bus_priv() [all …]
|
| /linux/arch/powerpc/platforms/powermac/ |
| H A D | low_i2c.c | 72 * A bus structure. Each bus in the system has such a structure associated. 92 int (*open)(struct pmac_i2c_bus *bus); 93 void (*close)(struct pmac_i2c_bus *bus); 94 int (*xfer)(struct pmac_i2c_bus *bus, u8 addrdir, int subsize, 384 static int kw_i2c_open(struct pmac_i2c_bus *bus) in kw_i2c_open() argument 386 struct pmac_i2c_host_kw *host = bus->hostdata; in kw_i2c_open() 391 static void kw_i2c_close(struct pmac_i2c_bus *bus) in kw_i2c_close() argument 393 struct pmac_i2c_host_kw *host = bus->hostdata; in kw_i2c_close() 397 static int kw_i2c_xfer(struct pmac_i2c_bus *bus, u8 addrdir, int subsize, in kw_i2c_xfer() argument 400 struct pmac_i2c_host_kw *host = bus->hostdata; in kw_i2c_xfer() [all …]
|