/linux/drivers/net/phy/ |
H A D | mdio_bus.c | 1 // SPDX-License-Identifier: GPL-2.0+ 2 /* MDIO Bus interface 40 #include "mdio-boardinfo.h" 45 mdiodev->reset_gpio = gpiod_get_optional(&mdiodev->dev, in mdiobus_register_gpiod() 47 if (IS_ERR(mdiodev->reset_gpio)) in mdiobus_register_gpiod() 48 return PTR_ERR(mdiodev->reset_gpio); in mdiobus_register_gpiod() 50 if (mdiodev->reset_gpio) in mdiobus_register_gpiod() 51 gpiod_set_consumer_name(mdiodev->reset_gpio, "PHY reset"); in mdiobus_register_gpiod() 60 reset = reset_control_get_optional_exclusive(&mdiodev->dev, "phy"); in mdiobus_register_reset() 64 mdiodev->reset_ctrl = reset; in mdiobus_register_reset() [all …]
|
/linux/sound/hda/ |
H A D | hdac_controller.c | 1 // SPDX-License-Identifier: GPL-2.0-only 3 * HD-audio controller helpers 15 static void azx_clear_corbrp(struct hdac_bus *bus) in azx_clear_corbrp() argument 19 for (timeout = 1000; timeout > 0; timeout--) { in azx_clear_corbrp() 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() 29 for (timeout = 1000; timeout > 0; timeout--) { in azx_clear_corbrp() 30 if (snd_hdac_chip_readw(bus, CORBRP) == 0) in azx_clear_corbrp() [all …]
|
H A D | hdac_bus.c | 1 // SPDX-License-Identifier: GPL-2.0-only 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() [all …]
|
/linux/drivers/gpu/drm/nouveau/nvkm/subdev/i2c/ |
H A D | anx9805.c | 28 #include "bus.h" 32 struct nvkm_i2c_bus *bus; member 33 u8 addr; member 39 u8 addr; member 45 struct anx9805_bus *bus = anx9805_bus(base); in anx9805_bus_xfer() local 46 struct anx9805_pad *pad = bus->pad; in anx9805_bus_xfer() 47 struct i2c_adapter *adap = &pad->bus->i2c; in anx9805_bus_xfer() 49 int ret = -ETIMEDOUT; in anx9805_bus_xfer() 53 tmp = nvkm_rdi2cr(adap, pad->addr, 0x07) & ~0x10; in anx9805_bus_xfer() 54 nvkm_wri2cr(adap, pad->addr, 0x07, tmp | 0x10); in anx9805_bus_xfer() [all …]
|
H A D | busnv50.c | 25 #include "bus.h" 31 u32 addr; 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 …]
|
/linux/drivers/net/dsa/sja1105/ |
H A D | sja1105_mdio.c | 1 // SPDX-License-Identifier: GPL-2.0 4 #include <linux/pcs/pcs-xpcs.h> 10 int sja1105_pcs_mdio_read_c45(struct mii_bus *bus, int phy, int mmd, int reg) in sja1105_pcs_mdio_read_c45() argument 12 struct sja1105_mdio_private *mdio_priv = bus->priv; in sja1105_pcs_mdio_read_c45() 13 struct sja1105_private *priv = mdio_priv->priv; in sja1105_pcs_mdio_read_c45() 14 u64 addr; in sja1105_pcs_mdio_read_c45() local 18 addr = (mmd << 16) | reg; in sja1105_pcs_mdio_read_c45() 28 rc = sja1105_xfer_u32(priv, SPI_READ, addr, &tmp, NULL); in sja1105_pcs_mdio_read_c45() 35 int sja1105_pcs_mdio_write_c45(struct mii_bus *bus, int phy, int mmd, in sja1105_pcs_mdio_write_c45() argument 38 struct sja1105_mdio_private *mdio_priv = bus->priv; in sja1105_pcs_mdio_write_c45() [all …]
|
/linux/drivers/media/pci/cx25821/ |
H A D | cx25821-i2c.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 22 MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time"); 27 printk(KERN_DEBUG "%s/0: " fmt, dev->name, ##arg); \ 38 struct cx25821_i2c *bus = i2c_adap->algo_data; in i2c_slave_did_ack() local 39 struct cx25821_dev *dev = bus->dev; in i2c_slave_did_ack() 40 return cx_read(bus->reg_stat) & 0x01; in i2c_slave_did_ack() 45 struct cx25821_i2c *bus = i2c_adap->algo_data; in i2c_is_busy() local 46 struct cx25821_dev *dev = bus->dev; in i2c_is_busy() 47 return cx_read(bus->reg_stat) & 0x02 ? 1 : 0; in i2c_is_busy() 69 struct cx25821_i2c *bus = i2c_adap->algo_data; in i2c_sendbytes() local [all …]
|
/linux/drivers/pci/controller/ |
H A D | pci-thunder-ecam.c | 1 // SPDX-License-Identifier: GPL-2.0 11 #include <linux/pci-ecam.h> 29 static int handle_ea_bar(u32 e0, int bar, struct pci_bus *bus, in handle_ea_bar() argument 32 void __iomem *addr; in handle_ea_bar() local 35 /* Entries are 16-byte aligned; bits[2,3] select word in entry */ in handle_ea_bar() 43 addr = bus->ops->map_bus(bus, devfn, bar); /* BAR 0 */ in handle_ea_bar() 44 if (!addr) in handle_ea_bar() 47 v = readl(addr); in handle_ea_bar() 49 v |= 2; /* EA entry-1. Base-L */ in handle_ea_bar() 57 addr = bus->ops->map_bus(bus, devfn, bar); /* BAR 0 */ in handle_ea_bar() [all …]
|
/linux/arch/powerpc/platforms/maple/ |
H A D | pci.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 19 #include <asm/pci-bridge.h> 22 #include <asm/ppc-pci.h> 23 #include <asm/isa-bridge.h> 37 for (; node; node = node->sibling) { in fixup_one_level_bus_range() 42 /* For PCI<->PCI bridges or CardBus bridges, we go down */ in fixup_one_level_bus_range() 43 class_code = of_get_property(node, "class-code", NULL); in fixup_one_level_bus_range() 47 bus_range = of_get_property(node, "bus-range", &len); in fixup_one_level_bus_range() 52 higher = fixup_one_level_bus_range(node->child, higher); in fixup_one_level_bus_range() 57 /* This routine fixes the "bus-range" property of all bridges in the [all …]
|
/linux/drivers/soundwire/ |
H A D | bus.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) 2 // Copyright(c) 2015-17 Intel Corporation. 11 #include "bus.h" 17 static int sdw_get_id(struct sdw_bus *bus) in sdw_get_id() argument 24 bus->id = rc; in sdw_get_id() 26 if (bus->controller_id == -1) in sdw_get_id() 27 bus->controller_id = rc; in sdw_get_id() 33 * sdw_bus_master_add() - add a bus Master instance 34 * @bus: bus instance 38 * Initializes the bus instance, read properties and create child [all …]
|
H A D | slave.c | 1 // SPDX-License-Identifier: (GPL-2.0 OR BSD-3-Clause) 2 // Copyright(c) 2015-17 Intel Corporation. 8 #include "bus.h" 15 mutex_destroy(&slave->sdw_dev_lock); in sdw_slave_release() 25 int sdw_slave_add(struct sdw_bus *bus, in sdw_slave_add() argument 34 return -ENOMEM; in sdw_slave_add() 37 memcpy(&slave->id, id, sizeof(*id)); in sdw_slave_add() 38 slave->dev.parent = bus->dev; in sdw_slave_add() 39 slave->dev.fwnode = fwnode; in sdw_slave_add() 41 if (id->unique_id == SDW_IGNORED_UNIQUE_ID) { in sdw_slave_add() [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) 18 __field(unsigned short, addr) 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) 34 __field(int, bus) [all …]
|
/linux/drivers/infiniband/hw/hfi1/ |
H A D | qsfp.c | 1 // SPDX-License-Identifier: GPL-2.0 OR BSD-3-Clause 12 /* for the given bus number, return the CSR for reading an i2c line */ 18 /* for the given bus number, return the CSR for writing an i2c line */ 26 struct hfi1_i2c_bus *bus = (struct hfi1_i2c_bus *)data; in hfi1_setsda() local 27 struct hfi1_devdata *dd = bus->controlling_dd; in hfi1_setsda() 31 target_oe = i2c_oe_csr(bus->num); in hfi1_setsda() 50 struct hfi1_i2c_bus *bus = (struct hfi1_i2c_bus *)data; in hfi1_setscl() local 51 struct hfi1_devdata *dd = bus->controlling_dd; in hfi1_setscl() 55 target_oe = i2c_oe_csr(bus->num); in hfi1_setscl() 74 struct hfi1_i2c_bus *bus = (struct hfi1_i2c_bus *)data; in hfi1_getsda() local [all …]
|
/linux/drivers/of/ |
H A D | fdt_address.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 * FDT Address translation based on u-boot fdt_support.c which in turn was 9 * Copyright 2010-2011 Freescale Semiconductor, Inc. 27 static void __init of_dump_addr(const char *s, const __be32 *addr, int na) in of_dump_addr() argument 30 while(na--) in of_dump_addr() 31 pr_cont(" %08x", *(addr++)); in of_dump_addr() 35 static void __init of_dump_addr(const char *s, const __be32 *addr, int na) { } in of_dump_addr() argument 38 /* Callbacks for bus specific translators */ 42 u64 (*map)(__be32 *addr, const __be32 *range, 44 int (*translate)(__be32 *addr, u64 offset, int na); [all …]
|
/linux/drivers/net/mdio/ |
H A D | mdio-aspeed.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 15 #define DRV_NAME "mdio-aspeed" 48 static int aspeed_mdio_op(struct mii_bus *bus, u8 st, u8 op, u8 phyad, u8 regad, in aspeed_mdio_op() argument 51 struct aspeed_mdio *ctx = bus->priv; in aspeed_mdio_op() 54 dev_dbg(&bus->dev, "%s: st: %u op: %u, phyad: %u, regad: %u, data: %u\n", in aspeed_mdio_op() 64 iowrite32(ctrl, ctx->base + ASPEED_MDIO_CTRL); in aspeed_mdio_op() 66 return readl_poll_timeout(ctx->base + ASPEED_MDIO_CTRL, ctrl, in aspeed_mdio_op() 72 static int aspeed_mdio_get_data(struct mii_bus *bus) in aspeed_mdio_get_data() argument 74 struct aspeed_mdio *ctx = bus->priv; in aspeed_mdio_get_data() 78 rc = readl_poll_timeout(ctx->base + ASPEED_MDIO_DATA, data, in aspeed_mdio_get_data() [all …]
|
/linux/arch/sparc/kernel/ |
H A D | pci_common.c | 1 // SPDX-License-Identifier: GPL-2.0 21 unsigned long bus, in config_out_of_range() argument 25 if (bus < pbm->pci_first_busno || in config_out_of_range() 26 bus > pbm->pci_last_busno) in config_out_of_range() 32 unsigned long bus, in sun4u_config_mkaddr() argument 36 unsigned long rbits = pbm->config_space_reg_bits; in sun4u_config_mkaddr() 38 if (config_out_of_range(pbm, bus, devfn, reg)) in sun4u_config_mkaddr() 41 reg = (reg & ((1 << rbits) - 1)); in sun4u_config_mkaddr() 43 bus <<= rbits + 8; in sun4u_config_mkaddr() 45 return (void *) (pbm->config_space | bus | devfn | reg); in sun4u_config_mkaddr() [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, 26 unsigned short addr); 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() [all …]
|
/linux/drivers/net/dsa/mv88e6xxx/ |
H A D | phy.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 16 int mv88e6165_phy_read(struct mv88e6xxx_chip *chip, struct mii_bus *bus, in mv88e6165_phy_read() argument 17 int addr, int reg, u16 *val) in mv88e6165_phy_read() argument 19 return mv88e6xxx_read(chip, addr, reg, val); in mv88e6165_phy_read() 22 int mv88e6165_phy_write(struct mv88e6xxx_chip *chip, struct mii_bus *bus, in mv88e6165_phy_write() argument 23 int addr, int reg, u16 val) in mv88e6165_phy_write() argument 25 return mv88e6xxx_write(chip, addr, reg, val); in mv88e6165_phy_write() 30 int addr = phy; /* PHY devices addresses start at 0x0 */ in mv88e6xxx_phy_read() local 31 struct mii_bus *bus; in mv88e6xxx_phy_read() local 33 bus = mv88e6xxx_default_mdio_bus(chip); in mv88e6xxx_phy_read() [all …]
|
/linux/drivers/media/pci/cx23885/ |
H A D | cx23885-i2c.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 15 #include <media/v4l2-common.h> 23 MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time"); 39 struct cx23885_i2c *bus = i2c_adap->algo_data; in i2c_slave_did_ack() local 40 struct cx23885_dev *dev = bus->dev; in i2c_slave_did_ack() 41 return cx_read(bus->reg_stat) & 0x01; in i2c_slave_did_ack() 46 struct cx23885_i2c *bus = i2c_adap->algo_data; in i2c_is_busy() local 47 struct cx23885_dev *dev = bus->dev; in i2c_is_busy() 48 return cx_read(bus->reg_stat) & 0x02 ? 1 : 0; in i2c_is_busy() 70 struct cx23885_i2c *bus = i2c_adap->algo_data; in i2c_sendbytes() local [all …]
|
/linux/include/sound/ |
H A D | hdaudio.h | 1 /* SPDX-License-Identifier: GPL-2.0 */ 3 * HD-audio core stuff 12 #include <linux/io-64-nonatomic-lo-hi.h> 34 * exported bus type 50 * HD-audi 55 struct hdac_bus *bus; global() member 56 unsigned int addr; /* codec address */ global() member 271 dma_addr_t addr; /* physical address of CORB/RIRB buffer */ global() member 297 unsigned long addr; global() member 420 snd_hdac_aligned_mmio(bus) global() argument 422 snd_hdac_aligned_mmio(bus) global() argument 423 snd_hdac_aligned_read(addr,mask) global() argument 424 snd_hdac_aligned_write(val,addr,mask) global() argument 427 snd_hdac_reg_writeb(struct hdac_bus * bus,void __iomem * addr,u8 val) snd_hdac_reg_writeb() argument 436 snd_hdac_reg_writew(struct hdac_bus * bus,void __iomem * addr,u16 val) snd_hdac_reg_writew() argument 445 snd_hdac_reg_readb(struct hdac_bus * bus,void __iomem * addr) snd_hdac_reg_readb() argument 451 snd_hdac_reg_readw(struct hdac_bus * bus,void __iomem * addr) snd_hdac_reg_readw() argument 457 snd_hdac_reg_writel(bus,addr,val) global() argument 458 snd_hdac_reg_readl(bus,addr) global() argument 459 snd_hdac_reg_writeq(bus,addr,val) global() argument 460 snd_hdac_reg_readq(bus,addr) global() argument 504 snd_hdac_updatel(addr,reg,mask,val) global() argument 507 snd_hdac_updatew(addr,reg,mask,val) global() argument 514 struct hdac_bus *bus; global() member [all...] |
/linux/arch/powerpc/platforms/pasemi/ |
H A D | pci.c | 1 // SPDX-License-Identifier: GPL-2.0-only 18 #include <asm/pci-bridge.h> 19 #include <asm/isa-bridge.h> 22 #include <asm/ppc-pci.h> 26 #define PA_PXP_CFA(bus, devfn, off) (((bus) << 20) | ((devfn) << 12) | (off)) argument 28 static inline int pa_pxp_offset_valid(u8 bus, u8 devfn, int offset) in pa_pxp_offset_valid() argument 31 * well, so allow larger offset. It's really a two-function device but the in pa_pxp_offset_valid() 34 if (bus == 0 && devfn == 0) in pa_pxp_offset_valid() 41 u8 bus, u8 devfn, int offset) in pa_pxp_cfg_addr() argument 43 return hose->cfg_data + PA_PXP_CFA(bus, devfn, offset); in pa_pxp_cfg_addr() [all …]
|
/linux/drivers/ssb/ |
H A D | host_soc.c | 18 struct ssb_bus *bus = dev->bus; in ssb_host_soc_read8() local 20 offset += dev->core_index * SSB_CORE_SIZE; in ssb_host_soc_read8() 21 return readb(bus->mmio + offset); in ssb_host_soc_read8() 26 struct ssb_bus *bus = dev->bus; in ssb_host_soc_read16() local 28 offset += dev->core_index * SSB_CORE_SIZE; in ssb_host_soc_read16() 29 return readw(bus->mmio + offset); in ssb_host_soc_read16() 34 struct ssb_bus *bus = dev->bus; in ssb_host_soc_read32() local 36 offset += dev->core_index * SSB_CORE_SIZE; in ssb_host_soc_read32() 37 return readl(bus->mmio + offset); in ssb_host_soc_read32() 44 struct ssb_bus *bus = dev->bus; in ssb_host_soc_block_read() local [all …]
|
/linux/drivers/media/usb/em28xx/ |
H A D | em28xx-i2c.c | 1 // SPDX-License-Identifier: GPL-2.0+ 3 // em28xx-i2c.c - driver for Empia EM2800/EM2820/2840 USB video capture devices 20 #include <media/v4l2-common.h> 23 /* ----------------------------------------------------------- */ 27 MODULE_PARM_DESC(i2c_scan, "scan i2c bus at insmod time"); 35 dev_printk(KERN_DEBUG, &dev->intf->dev, \ 54 switch (dev->i2c_speed & 0x03) { in em28xx_i2c_timeout() 73 static int em2800_i2c_send_bytes(struct em28xx *dev, u8 addr, u8 *buf, u16 len) in em2800_i2c_send_bytes() argument 80 return -EOPNOTSUPP; in em2800_i2c_send_bytes() 82 b2[5] = 0x80 + len - 1; in em2800_i2c_send_bytes() [all …]
|
/linux/arch/m68k/coldfire/ |
H A D | pci.c | 2 * pci.c -- PCI bus support for ColdFire processors 26 * PCI bus memory (no reason not to really). IO space is mapped in its own 34 * We need to be careful probing on bus 0 (directly connected to host 53 static unsigned long mcf_mk_pcicar(int bus, unsigned int devfn, int where) in mcf_mk_pcicar() argument 55 return (bus << PCICAR_BUSN) | (devfn << PCICAR_DEVFNN) | (where & 0xfc); in mcf_mk_pcicar() 58 static int mcf_pci_readconfig(struct pci_bus *bus, unsigned int devfn, in mcf_pci_readconfig() argument 61 unsigned long addr; in mcf_pci_readconfig() local 65 if (bus->number == 0) { in mcf_pci_readconfig() 70 addr = mcf_mk_pcicar(bus->number, devfn, where); in mcf_pci_readconfig() 71 __raw_writel(PCICAR_E | addr, PCICAR); in mcf_pci_readconfig() [all …]
|
/linux/arch/x86/pci/ |
H A D | numachip.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * Numascale NumaConnect-specific PCI code 19 static inline char __iomem *pci_dev_base(unsigned int seg, unsigned int bus, unsigned int devfn) in pci_dev_base() argument 21 struct pci_mmcfg_region *cfg = pci_mmconfig_lookup(seg, bus); in pci_dev_base() 23 if (cfg && cfg->virt) in pci_dev_base() 24 return cfg->virt + (PCI_MMCFG_BUS_OFFSET(bus) | (devfn << 12)); in pci_dev_base() 28 static int pci_mmcfg_read_numachip(unsigned int seg, unsigned int bus, in pci_mmcfg_read_numachip() argument 31 char __iomem *addr; in pci_mmcfg_read_numachip() local 33 /* Why do we have this when nobody checks it. How about a BUG()!? -AK */ in pci_mmcfg_read_numachip() 34 if (unlikely((bus > 255) || (devfn > 255) || (reg > 4095))) { in pci_mmcfg_read_numachip() [all …]
|