/linux/drivers/ssb/ |
H A D | sdio.c | 3 * SDIO-Hostbus related functions 9 * Copyright 2007-2008 Michael Buesch <m@bues.ch> 60 #define SBSDIO_FUNC1_SBADDRMID 0x1000b /* SB Address window Mid (b23-b16) */ 61 #define SBSDIO_FUNC1_SBADDRHIGH 0x1000c /* SB Address window High (b24-b31) */ 71 #define SBSDIO_SB_ACCESS_2_4B_FLAG 0x8000 /* forces 32-bit SB access */ 78 * ------- ------- ------------------------------------------ 85 * In order to access the contents of a 32-bit Silicon Backplane address 94 * a 32-bit access flag 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() [all …]
|
/linux/drivers/net/ethernet/arc/ |
H A D | emac_mdio.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Copyright (C) 2004-2013 Synopsys, Inc. (www.synopsys.com) 19 * arc_mdio_complete_wait - Waits until MDIO transaction is completed. 20 * @priv: Pointer to ARC EMAC private data structure. 22 * returns: 0 on success, -ETIMEDOUT on a timeout. 42 return -ETIMEDOUT; in arc_mdio_complete_wait() 46 * arc_mdio_read - MDIO interface read function. 47 * @bus: Pointer to MII bus structure. 51 * returns: The register contents on success, -ETIMEDOUT on a timeout. 56 static int arc_mdio_read(struct mii_bus *bus, int phy_addr, int reg_num) in arc_mdio_read() argument [all …]
|
/linux/drivers/i2c/busses/ |
H A D | i2c-npcm7xx.c | 1 // SPDX-License-Identifier: GPL-2.0 30 * of the bus. 125 #define NPCM_I2CTXF_CTL 0x12 /* Tx-FIFO Control */ 126 #define NPCM_I2CT_OUT 0x14 /* Bus T.O. */ 127 #define NPCM_I2CPEC 0x16 /* PEC Data */ 128 #define NPCM_I2CTXF_STS 0x1A /* Tx-FIFO Status */ 129 #define NPCM_I2CRXF_STS 0x1C /* Rx-FIFO Status */ 130 #define NPCM_I2CRXF_CTL 0x1E /* Rx-FIFO Control */ 155 #define NPCM_I2CST_BER BIT(5) /* Bus error */ 161 #define NPCM_I2CCST_BB BIT(1) /* Bus busy */ [all …]
|
/linux/sound/i2c/ |
H A D | i2c.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * (c) 1998 Gerd Knorr <kraxel@cs.tu-berlin.de> 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() 40 return -EINVAL; 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() [all …]
|
/linux/arch/mips/pci/ |
H A D | ops-bcm63xx.c | 15 #include "pci-bcm63xx.h" 18 * swizzle 32bits data to return only the needed part 20 static int postprocess_read(u32 data, int where, unsigned int size) in postprocess_read() argument 27 ret = (data >> ((where & 3) << 3)) & 0xff; in postprocess_read() 30 ret = (data >> ((where & 3) << 3)) & 0xffff; in postprocess_read() 33 ret = data; in postprocess_read() 90 /* type 0 cycle for local bus, type 1 cycle for anything else */ in bcm63xx_setup_cfg_access() 92 /* FIXME: how to specify bus ??? */ in bcm63xx_setup_cfg_access() 104 u32 data; in bcm63xx_do_cfg_read() local 106 /* two phase cycle, first we write address, then read data at in bcm63xx_do_cfg_read() [all …]
|
H A D | ops-loongson2.c | 1 // SPDX-License-Identifier: GPL-2.0-only 29 #define MAX_DEV_NUM (31 - ID_SEL_BEGIN) 33 struct pci_bus *bus, in loongson_pcibios_config_access() argument 35 u32 *data) in loongson_pcibios_config_access() argument 37 u32 busnum = bus->number; in loongson_pcibios_config_access() 46 /* board-specific part,currently,only fuloong2f,yeeloong2f in loongson_pcibios_config_access() 60 *data = cs5536_pci_conf_read4(function, reg); in loongson_pcibios_config_access() 63 cs5536_pci_conf_write4(function, reg, *data); in loongson_pcibios_config_access() 69 /* Type 0 configuration for onboard PCI bus */ in loongson_pcibios_config_access() 71 return -1; in loongson_pcibios_config_access() [all …]
|
/linux/Documentation/ABI/obsolete/ |
H A D | sysfs-driver-hid-roccat-ryos | 1 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 4 Description: When written, this file lets one select which data from which 5 profile will be read next. The data has to be 3 bytes long. 9 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 17 The data has to be 3 bytes long. 18 The device will reject invalid data. 21 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 25 a specific profile. Profile index is included in written data. 26 The data has to be 125 bytes long. 31 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… [all …]
|
H A D | sysfs-driver-hid-roccat-isku | 1 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 4 Description: The integer value of this attribute ranges from 0-4. 12 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 15 Description: When read, this file returns general data like firmware version. 16 The data is 6 bytes long. 20 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 26 written data. The data has to be 6 bytes long. 31 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 36 in written data. The data has to be 6 bytes long. 41 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… [all …]
|
H A D | sysfs-driver-hid-roccat-konepure | 1 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 9 The data has to be 3 bytes long. 10 The mouse will reject invalid data. 13 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 16 Description: When written, this file lets one select which data from which 17 profile will be read next. The data has to be 3 bytes long. 21 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… 24 Description: When read, this file returns general data like firmware version. 26 The data is 6 bytes long. 29 What: /sys/bus/usb/devices/<busnum>-<devnum>:<config num>.<interface num>/<hid-bus>:<vendor-id>:<p… [all …]
|
/linux/drivers/net/mdio/ |
H A D | mdio-ipq4019.c | 1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 21 #define MDIO_MODE_DIV(x) FIELD_PREP(MDIO_MODE_DIV_MASK, (x) - 1) 58 static int ipq4019_mdio_wait_busy(struct mii_bus *bus) in ipq4019_mdio_wait_busy() argument 60 struct ipq4019_mdio_data *priv = bus->priv; in ipq4019_mdio_wait_busy() 63 return readl_poll_timeout(priv->membase + MDIO_CMD_REG, busy, in ipq4019_mdio_wait_busy() 68 static int ipq4019_mdio_read_c45(struct mii_bus *bus, int mii_id, int mmd, in ipq4019_mdio_read_c45() argument 71 struct ipq4019_mdio_data *priv = bus->priv; in ipq4019_mdio_read_c45() 72 unsigned int data; in ipq4019_mdio_read_c45() local 75 if (ipq4019_mdio_wait_busy(bus)) in ipq4019_mdio_read_c45() 76 return -ETIMEDOUT; in ipq4019_mdio_read_c45() [all …]
|
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/ |
H A D | busnv50.c | 25 #include "bus.h" 32 u32 data; member 38 struct nv50_i2c_bus *bus = nv50_i2c_bus(base); in nv50_i2c_bus_drive_scl() local 39 struct nvkm_device *device = bus->base.pad->i2c->subdev.device; in nv50_i2c_bus_drive_scl() 40 if (state) bus->data |= 0x01; in nv50_i2c_bus_drive_scl() 41 else bus->data &= 0xfe; in nv50_i2c_bus_drive_scl() 42 nvkm_wr32(device, bus->addr, bus->data); in nv50_i2c_bus_drive_scl() 48 struct nv50_i2c_bus *bus = nv50_i2c_bus(base); in nv50_i2c_bus_drive_sda() local 49 struct nvkm_device *device = bus->base.pad->i2c->subdev.device; in nv50_i2c_bus_drive_sda() 50 if (state) bus->data |= 0x02; in nv50_i2c_bus_drive_sda() [all …]
|
H A D | bus.c | 24 #include "bus.h" 30 * i2c-algo-bit 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() 47 nvkm_i2c_bus_setscl(void *data, int state) in nvkm_i2c_bus_setscl() argument 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() 54 nvkm_i2c_bus_setsda(void *data, int state) in nvkm_i2c_bus_setsda() argument [all …]
|
/linux/drivers/pmdomain/bcm/ |
H A D | bcm-pmb.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 7 #include <dt-bindings/soc/bcm-pmb.h> 80 u8 bus; member 86 const struct bcm_pmb_pd_data *data; member 90 static int bcm_pmb_bpcm_read(struct bcm_pmb *pmb, int bus, u8 device, in bcm_pmb_bpcm_read() argument 93 void __iomem *base = pmb->base + bus * 0x20; in bcm_pmb_bpcm_read() 97 spin_lock_irqsave(&pmb->lock, flags); in bcm_pmb_bpcm_read() 99 spin_unlock_irqrestore(&pmb->lock, flags); in bcm_pmb_bpcm_read() 102 *val = pmb->little_endian ? le32_to_cpu(*val) : be32_to_cpu(*val); in bcm_pmb_bpcm_read() 107 static int bcm_pmb_bpcm_write(struct bcm_pmb *pmb, int bus, u8 device, in bcm_pmb_bpcm_write() argument [all …]
|
/linux/drivers/i2c/muxes/ |
H A D | i2c-mux-pca9541.c | 2 * I2C multiplexer driver for PCA9541 bus master selector 6 * Author: Guenter Roeck <linux@roeck-us.net> 11 * Copyright (c) 2008-2009 Rodolfo Giometti <giometti@linux.it> 12 * Copyright (c) 2008-2009 Eurotech S.p.A. <info@eurotech.it> 23 #include <linux/i2c-mux.h> 29 * The PCA9541 is a bus master selector. It supports two I2C masters connected 30 * to a single slave bus. 32 * Before each bus transaction, a master has to acquire bus ownership. After the 33 * transaction is complete, bus ownership has to be released. This fits well 36 * single-channel I2C bus multiplexer. [all …]
|
/linux/Documentation/driver-api/soundwire/ |
H A D | summary.rst | 6 SoundWire is used for transporting data typically related to audio 10 SoundWire is a 2-pin multi-drop interface with data and clock line. It 14 (1) Transporting all of payload data channels, control information, and setup 15 commands over a single two-pin interface. 18 (Dual Data Rate) data transmission. 20 (3) Clock scaling and optional multiple data lanes to give wide flexibility 21 in data rate to match system requirements. 23 (4) Device status monitoring, including interrupt-style alerts to the Master. 26 interfaces share the common Bus containing data and clock line. Each of the 27 Slaves can support up to 14 Data Ports. 13 Data Ports are dedicated to audio [all …]
|
/linux/drivers/video/fbdev/via/ |
H A D | via_aux.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 19 struct i2c_adapter *adap; /* the I2C device to access the bus */ 20 struct list_head drivers; /* drivers for devices on this bus */ 26 struct via_aux_bus *bus; /* the I2C bus used */ member 30 void *data; /* private data of this driver */ member 39 void via_aux_free(struct via_aux_bus *bus); 40 const struct fb_videomode *via_aux_get_preferred_mode(struct via_aux_bus *bus); 45 struct via_aux_drv *data = kmalloc(sizeof(*data), GFP_KERNEL); in via_aux_add() local 47 if (!data) in via_aux_add() 50 *data = *drv; in via_aux_add() [all …]
|
/linux/drivers/pci/pcie/ |
H A D | pme.c | 1 // SPDX-License-Identifier: GPL-2.0 5 * Copyright (C) 2007 - 2009 Intel Corp 6 * Copyright (C) 2007 - 2009 Shaohua Li <shaohua.li@intel.com> 28 * that using MSI for PCIe PME signaling doesn't play well with PCIe PME-based 29 * wake-up from system sleep states. 50 * pcie_pme_interrupt_enable - Enable/disable PCIe PME interrupt generation. 65 * pcie_pme_walk_bus - Scan a PCI bus for devices asserting PME#. 66 * @bus: PCI bus to scan. 68 * Scan given PCI bus and all buses under it for devices asserting PME#. 70 static bool pcie_pme_walk_bus(struct pci_bus *bus) in pcie_pme_walk_bus() argument [all …]
|
/linux/arch/sh/drivers/pci/ |
H A D | ops-sh7786.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Generic SH7786 PCI-Express operations. 5 * Copyright (C) 2009 - 2010 Paul Mundt 12 #include "pcie-sh7786.h" 20 struct pci_bus *bus, unsigned int devfn, int where, u32 *data) in sh7786_pcie_config_access() argument 22 struct pci_channel *chan = bus->sysdata; in sh7786_pcie_config_access() 27 type = !!bus->parent; in sh7786_pcie_config_access() 30 if (bus->number > 255 || dev > 31 || func > 7) in sh7786_pcie_config_access() 34 * While each channel has its own memory-mapped extended config in sh7786_pcie_config_access() 42 * the same channel <-> device access works for any PCI_SLOT() in sh7786_pcie_config_access() [all …]
|
/linux/include/linux/i3c/ |
H A D | master.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 27 /* notifier actions. notifier call data is the struct i3c_bus */ 39 * struct i3c_i2c_dev_desc - Common part of the I3C/I2C device descriptor 44 * @master_priv: master private data assigned to the device. Can be used to 62 * struct i2c_dev_boardinfo - I2C device board information 68 * This structure is used to attach board-level information to an I2C device. 69 * Each I2C device connected on the I3C bus should have one. 78 * struct i2c_dev_desc - I2 121 void *data; global() member 240 struct i3c_bus *bus; global() member 524 struct i3c_bus bus; global() member 536 i3c_bus_for_each_i2cdev(bus,dev) global() argument 547 i3c_bus_for_each_i3cdev(bus,dev) global() argument 602 i3c_dev_set_master_data(struct i3c_dev_desc * dev,void * data) i3c_dev_set_master_data() argument 630 i2c_dev_set_master_data(struct i2c_dev_desc * dev,void * data) i2c_dev_set_master_data() argument [all...] |
/linux/include/linux/soundwire/ |
H A D | sdw.h | 1 /* SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) */ 2 /* Copyright(c) 2015-17 Intel Corporation. */ 83 * enum sdw_slave_status - Slave status 84 * @SDW_SLAVE_UNATTACHED: Slave is not attached with the bus. 85 * @SDW_SLAVE_ATTACHED: Slave is attached with bus. 101 * @SDW_CLK_PRE_DEPREPARE: pre clock stop de-prepar 674 struct sdw_bus *bus; global() member 703 struct sdw_bus *bus; global() member [all...] |
/linux/arch/powerpc/platforms/powermac/ |
H A D | low_i2c.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 5 * Copyright (C) 2003-2005 Ben. Herrenschmidt (benh@kernel.crashing.org) 19 * as the interrupt is currently used by i2c-keywest. In the long run, we 20 * might want to get rid of those high-level interfaces to linux i2c layer 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, 95 u32 subaddr, u8 *data, int len); 107 * i2c-keywest */ [all …]
|
/linux/drivers/net/wireless/broadcom/brcm80211/brcmfmac/ |
H A D | bus.h | 1 // SPDX-License-Identifier: ISC 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). 75 * @stop: clear pending frames, disable data flow. 76 * @txdata: send a data frame to the dongle. When the data 83 * @gettxq: obtain a reference of bus transmit queue (optional). 91 * bus specific driver. For control messages to common driver 104 int (*get_memdump)(struct device *dev, void *data, size_t len); [all …]
|
/linux/include/trace/events/ |
H A D | fsi_master_i2cr.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 15 __field(int, bus) 21 __entry->bus = client->adapter->nr; 22 __entry->rc = rc; 23 memcpy(__entry->command, &command, sizeof(uint32_t)); 24 __entry->addr = client->addr; 26 TP_printk("%d-%02x command:{ %*ph } rc:%d", __entry->bus, __entry->addr, 27 (int)sizeof(uint32_t), __entry->command, __entry->rc) 31 TP_PROTO(const struct i2c_client *client, uint32_t command, uint64_t *data), 32 TP_ARGS(client, command, data), [all …]
|
/linux/drivers/pci/controller/ |
H A D | pci-loongson.c | 1 // SPDX-License-Identifier: GPL-2.0 12 #include <linux/pci-acpi.h> 13 #include <linux/pci-ecam.h> 52 const struct loongson_pci_data *data; member 58 dev->class = PCI_CLASS_BRIDGE_PCI_NORMAL; in bridge_class_quirk() 73 pdev->mmio_always_on = 1; in system_bus_quirk() 74 pdev->non_compliant_bars = 1; in system_bus_quirk() 93 struct pci_bus *bus = pdev->bus; in loongson_set_min_mrrs_quirk() local 108 while (!pci_is_root_bus(bus)) { in loongson_set_min_mrrs_quirk() 109 bridge = bus->self; in loongson_set_min_mrrs_quirk() [all …]
|
/linux/drivers/net/ethernet/hisilicon/ |
H A D | hns_mdio.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Copyright (c) 2014-2015 Hisilicon Limited. 23 #define MDIO_DRV_NAME "Hi-HNS_MDIO" 24 #define MDIO_BUS_NAME "Hisilicon MII Bus" 101 mdio_write_reg((a)->vbase, (reg), (value)) 126 mdio_set_reg_field((dev)->vbase, (reg), (mask), (shift), (val)) 137 mdio_get_reg_field((dev)->vbase, (reg), (mask), (shift)) 140 mdio_get_reg_field((dev)->vbase, (reg), 0x1ull, (bit)) 153 regmap_write(mdio_dev->subctrl_vbase, cfg_reg, set_val); in mdio_sc_cfg_reg_write() 155 for (time_cnt = MDIO_TIMEOUT; time_cnt; time_cnt--) { in mdio_sc_cfg_reg_write() [all …]
|