| /linux/Documentation/driver-api/ |
| H A D | i2c.rst | 4 I\ :sup:`2`\ C (or without fancy typography, "I2C") is an acronym for 5 the "Inter-IC" bus, a simple bus protocol which is widely used where low 7 some vendors use another name (such as "Two-Wire Interface", TWI) for 8 the same bus. I2C only needs two signals (SCL for clock, SDA for data), 10 I2C devices use seven bit addresses, and bus speeds of up to 400 kHz; 12 I2C is a multi-master bus; open drain signaling is used to arbitrate 16 The Linux I2C programming interfaces support the master side of bus 18 structured around two kinds of driver, and two kinds of device. An I2C 22 I2C bus segment it manages. On each I2C bus segment will be I2C devices 26 are functions to perform various I2C protocol operations; at this writing [all …]
|
| H A D | ipmb.rst | 6 I2C bus that provides a standardized interconnection between 9 IPMB is also associated with the messaging protocol through the 15 hot-swapping disk drivers in the system chassis, etc... 27 ---------------------------- 29 ipmb-dev-int - This is the driver needed on a Satellite MC to 31 This driver works with the I2C driver and a userspace 34 1) It is an I2C slave backend driver. So, it defines a callback 35 function to set the Satellite MC as an I2C slave. 43 -------------------- 55 Name (_HID, "<Vendor-Specific HID>") // Vendor-Specific HID [all …]
|
| /linux/Documentation/i2c/ |
| H A D | smbus-protocol.rst | 2 The SMBus Protocol 5 The following is a summary of the SMBus protocol. It applies to 6 all revisions of the protocol (1.0, 1.1, and 2.0). 7 Certain protocol features which are not supported by 10 Some adapters understand only the SMBus (System Management Bus) protocol, 11 which is a subset from the I2C protocol. Fortunately, many devices use 14 If you write a driver for some I2C device, please try to use the SMBus 16 I2C protocol). This makes it possible to use the device driver on both 17 SMBus adapters and I2C adapters (the SMBus command set is automatically 18 translated to I2C on I2C adapters, but plain I2C commands can not be [all …]
|
| H A D | summary.rst | 2 Introduction to I2C and SMBus 5 I²C (pronounce: I squared C and written I2C in the kernel documentation) is 6 a protocol developed by Philips. It is a two-wire protocol with variable 9 low bandwidth communications needs. I2C is widely used with embedded 11 and so are not advertised as being I2C but come under different names, 14 The latest official I2C specification is the `"I²C-bus specification and user 15 manual" (UM10204) <https://www.nxp.com/docs/en/user-guide/UM10204.pdf>`_ 18 SMBus (System Management Bus) is based on the I2C protocol, and is mostly 19 a subset of I2C protocols and signaling. Many I2C devices will work on an 21 achieve I2C branding. Modern PC mainboards rely on SMBus. The most common [all …]
|
| H A D | index.rst | 1 .. SPDX-License-Identifier: GPL-2.0 4 I2C/SMBus Subsystem 14 i2c-protocol 15 smbus-protocol 16 instantiating-devices 18 i2c-topology 19 muxes/i2c-mux-gpio 20 i2c-sysfs 21 i2c-address-translators 29 writing-clients [all …]
|
| /linux/include/trace/events/ |
| H A D | smbus.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 13 #include <linux/i2c.h> 17 * drivers/i2c/i2c-core-smbus.c 26 char read_write, u8 command, int protocol, 28 TP_ARGS(adap, addr, flags, read_write, command, protocol, data), 30 protocol == I2C_SMBUS_PROC_CALL || 31 protocol == I2C_SMBUS_BLOCK_PROC_CALL), 38 __field(__u32, protocol ) 41 __entry->adapter_nr = adap->nr; 42 __entry->addr = addr; [all …]
|
| /linux/Documentation/devicetree/bindings/ipmi/ |
| H A D | ipmb-dev.yaml | 1 # SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause) 3 --- 4 $id: http://devicetree.org/schemas/ipmi/ipmb-dev.yaml# 5 $schema: http://devicetree.org/meta-schemas/core.yaml# 10 The IPMB is an I2C bus which provides interconnection between a Baseboard 14 This device uses an I2C slave device to send and receive IPMB messages, 17 devices only support the I2C protocol and not the SMB protocol. 19 IPMB communications protocol Specification V1.0 20 https://www.intel.com/content/dam/www/public/us/en/documents/product-briefs/ipmp-spec-v1.0.pdf 23 - Ninad Palsule <ninad@linux.ibm.com> [all …]
|
| /linux/drivers/input/mouse/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 25 includes the standard 2 or 3-button PS/2 mouse, as well as PS/2 43 bool "ALPS PS/2 mouse protocol extension" if EXPERT 53 bool "BYD PS/2 mouse protocol extension" if EXPERT 63 bool "Logitech PS/2++ mouse protocol extension" if EXPERT 73 bool "Synaptics PS/2 mouse protocol extension" if EXPERT 86 depends on I2C=y || I2C=MOUSE_PS2 95 bool "Cypress PS/2 mouse protocol extension" if EXPERT 105 bool "Fujitsu Lifebook PS/2 mouse protocol extension" if EXPERT 109 Say Y here if you have a Fujitsu B-series Lifebook PS/2 [all …]
|
| /linux/drivers/i2c/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 # I2C subsystem configuration 6 menu "I2C support" 8 config I2C config 9 tristate "I2C support" 13 I2C (pronounce: I-squared-C) is a slow serial bus protocol used in 15 or System Management Bus is a subset of the I2C protocol. More 16 information is contained in the directory <file:Documentation/i2c/>, 19 Both I2C and SMBus are supported here. You will need this for 22 If you want I2C support, you should say Y here and also to the [all …]
|
| H A D | i2c-core-smbus.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * Linux I2C core SMBus and SMBus emulation code 5 * This file contains the SMBus functions which are always included in the I2C 6 * core because they can be emulated via I2C. SMBus specific extensions 7 * (e.g. smbalert) are handled in a separate i2c-smbus module. 9 * All SMBus-related things are written by Frodo Looijaard <frodol@dds.nl> 15 #include <linux/i2c.h> 16 #include <linux/i2c-smbus.h> 21 #include "i2c-core.h" 43 * i2c_smbus_pec - Incremental CRC8 over the given input data array [all …]
|
| /linux/drivers/platform/chrome/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 26 If you have an ACPI-compatible Chromebook, say Y or M here. 31 depends on I2C && DMI && X86 33 This driver instantiates i2c and smbus devices such as 47 The range of memory used is 0xf00000-0x1000000, traditionally 67 depends on I2C 73 devices that have multiple drop-in options for one component. 83 protocol for talking to the EC is defined by the bus driver. 89 tristate "ChromeOS Embedded Controller (I2C)" 90 depends on CROS_EC && I2C [all …]
|
| /linux/drivers/char/tpm/st33zp24/ |
| H A D | i2c.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * STMicroelectronics TPM I2C Linux driver for TPM ST33ZP24 4 * Copyright (C) 2009 - 2016 STMicroelectronics 8 #include <linux/i2c.h> 25 * Send byte to the TIS register according to the ST33ZP24 I2C protocol. 35 phy->buf[0] = tpm_register; in write8_reg() 36 memcpy(phy->buf + 1, tpm_data, tpm_size); in write8_reg() 37 return i2c_master_send(phy->client, phy->buf, tpm_size + 1); in write8_reg() 42 * Recv byte from the TIS register according to the ST33ZP24 I2C protocol. 57 status = i2c_master_recv(phy->client, tpm_data, tpm_size); in read8_reg() [all …]
|
| /linux/drivers/net/mdio/ |
| H A D | mdio-i2c.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * MDIO I2C bridge 5 * Copyright (C) 2015-2016 Russell King 8 * Network PHYs can appear on I2C buses when they are part of SFP module. 13 #include <linux/i2c.h> 14 #include <linux/mdio/mdio-i2c.h> 19 * I2C bus addresses 0x50 and 0x51 are normally an EEPROM, which is 36 struct i2c_adapter *i2c = bus->priv; in i2c_mii_read_default_c45() local 54 msgs[0].len = p - addr; in i2c_mii_read_default_c45() 61 ret = i2c_transfer(i2c, msgs, ARRAY_SIZE(msgs)); in i2c_mii_read_default_c45() [all …]
|
| /linux/drivers/hid/i2c-hid/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 3 tristate "I2C HID support" 5 depends on I2C 10 tristate "HID over I2C transport layer ACPI driver" 16 other HID based devices which is connected to your computer via I2C. 17 This driver supports ACPI-based systems. 22 will be called i2c-hid-acpi. It will also build/depend on the 23 module i2c-hid. 26 tristate "HID over I2C transport layer Open Firmware driver" 28 # (board-file) instantiated "hid-over-i2c" type i2c-clients. [all …]
|
| /linux/drivers/staging/nvec/ |
| H A D | README | 1 NVEC: An NVidia compliant Embedded Controller Protocol Implementation 3 This is an implementation of the NVEC protocol used to communicate with an 4 embedded controller (EC) via I2C bus. The EC is an I2C master while the host 5 processor is the I2C slave. Requests from the host processor to the EC are 8 There is no written documentation of the protocol available to the public, 13 [1] e.g. https://nv-tegra.nvidia.com/gitweb/?p=linux-2.6.git;a=tree;f=arch/arm/mach-tegra/nvec;hb=a…
|
| /linux/drivers/i2c/busses/ |
| H A D | i2c-xgene-slimpro.c | 1 // SPDX-License-Identifier: GPL-2.0-or-later 3 * X-Gene SLIMpro I2C Driver 9 * This driver provides support for X-Gene SLIMpro I2C device access 10 * using the APM X-Gene SLIMpro mailbox driver. 14 #include <linux/dma-mapping.h> 15 #include <linux/i2c.h> 25 #define SLIMPRO_IIC_BUS 1 /* Use I2C bus 1 only */ 60 * SLIMpro I2C message encode 62 * dev - Controller number (0-based) 63 * chip - I2C chip address [all …]
|
| /linux/drivers/net/mctp/ |
| H A D | Kconfig | 11 This driver provides an MCTP-over-serial interface, through a 12 serial line-discipline, as defined by DMTF specification "DSP0253 - 22 compile as a module, use m; the module will be called mctp-serial. 30 tristate "MCTP SMBus/I2C transport" 31 # i2c-mux is optional, but we must build as a module if i2c-mux is a module 33 depends on I2C 37 Provides a driver to access MCTP devices over SMBus/I2C transport, 38 from DMTF specification DSP0237. A MCTP protocol network device is 39 created for each I2C bus that has been assigned a mctp-i2c device. 47 A MCTP protocol network device is created for each I3C bus [all …]
|
| /linux/arch/arm/boot/dts/aspeed/ |
| H A D | aspeed-bmc-facebook-greatlakes.dts | 1 // SPDX-License-Identifier: GPL-2.0-or-later 4 /dts-v1/; 5 #include "aspeed-g6.dtsi" 6 #include <dt-bindings/gpio/aspeed-gpio.h> 7 #include <dt-bindings/leds/leds-pca955x.h> 8 #include <dt-bindings/i2c/i2c.h> 12 compatible = "facebook,greatlakes-bmc", "aspeed,ast2600"; 23 iio-hwmon { 24 compatible = "iio-hwmon"; 25 io-channels = <&adc0 0>, <&adc0 1>, <&adc0 2>, <&adc0 3>, [all …]
|
| /linux/drivers/mfd/ |
| H A D | tps6594-i2c.c | 1 // SPDX-License-Identifier: GPL-2.0 3 * I2C access driver for the following TI PMICs: 4 * - LP8764 5 * - TPS65224 6 * - TPS652G1 7 * - TPS6593 8 * - TPS6594 10 * Copyright (C) 2023 BayLibre Incorporated - https://www.baylibre.com/ 14 #include <linux/i2c.h> 24 MODULE_PARM_DESC(enable_crc, "Enable CRC feature for I2C interface"); [all …]
|
| /linux/drivers/media/usb/cx231xx/ |
| H A D | cx231xx-input.c | 1 // SPDX-License-Identifier: GPL-2.0 7 // however, a few designs are using an external I2C chip for IR, instead 15 #define MODULE_NAME "cx231xx-input" 17 static int get_key_isdbt(struct IR_i2c *ir, enum rc_proto *protocol, in get_key_isdbt() argument 23 dev_dbg(&ir->rc->dev, "%s\n", __func__); in get_key_isdbt() 26 rc = i2c_master_recv(ir->c, &cmd, 1); in get_key_isdbt() 30 return -EIO; in get_key_isdbt() 41 dev_dbg(&ir->rc->dev, "cmd %02x, scan = %02x\n", cmd, scancode); in get_key_isdbt() 43 *protocol = RC_PROTO_OTHER; in get_key_isdbt() 54 dev_dbg(dev->dev, "%s\n", __func__); in cx231xx_ir_init() [all …]
|
| /linux/include/linux/ |
| H A D | i2c.h | 1 /* SPDX-License-Identifier: GPL-2.0-or-later */ 3 * i2c.h - definitions for the Linux i2c bus interface 4 * Copyright (C) 1995-2000 Simon G. Vogl 5 * Copyright (C) 2013-2019 Wolfram Sang <wsa@kernel.org> 24 #include <uapi/linux/i2c.h> 30 /* --- General options ------------------------------------------------ */ 43 /* I2C Frequency Modes */ 69 * i2c_master_recv - issue a single I2C message in master receive mode 83 * i2c_master_recv_dmasafe - issue a single I2C message in master receive mode 99 * i2c_master_send - issue a single I2C message in master transmit mode [all …]
|
| /linux/drivers/media/usb/dvb-usb/ |
| H A D | dib0700_core.c | 1 // SPDX-License-Identifier: GPL-2.0-only 4 * Copyright (C) 2005-6 DiBcom, SA 11 MODULE_PARM_DESC(debug, "set debugging level (1=info,2=fw,4=fwdata,8=data (or-able))." DVB_USB_DEBU… 24 struct dib0700_state *st = d->priv; in dib0700_get_version() 27 if (mutex_lock_interruptible(&d->usb_mutex) < 0) { in dib0700_get_version() 29 return -EINTR; in dib0700_get_version() 32 ret = usb_control_msg(d->udev, usb_rcvctrlpipe(d->udev, 0), in dib0700_get_version() 35 st->buf, 16, USB_CTRL_GET_TIMEOUT); in dib0700_get_version() 37 *hwversion = (st->buf[0] << 24) | (st->buf[1] << 16) | in dib0700_get_version() 38 (st->buf[2] << 8) | st->buf[3]; in dib0700_get_version() [all …]
|
| /linux/drivers/char/tpm/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 26 which is required to validate the PCR 0-7 values. 41 and interposer attacks (see tpm-security.rst). Saying Y 74 tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (SPI)" 79 non-tcg SPI master (i.e. most embedded platforms) that is compliant with the 93 tristate "TPM Interface Specification 1.3 Interface / TPM 2.0 FIFO Interface - (I2C - generic)" 94 depends on I2C 99 (I2C interface) specification and connected to an I2C bus master, 105 tristate "TPM Interface Specification 1.2 Interface / TPM 2.0 FIFO Interface (MMIO - SynQuacer)" 117 tristate "TPM Interface Specification 2.0 Interface (I2C - CR50)" [all …]
|
| /linux/drivers/hid/intel-thc-hid/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0 13 is comprised of 3 key functional blocks: A natively half-duplex 14 Quad I/O capable SPI master; a low latency I2C interface to support 25 HIDSPI (HID over SPI) protocol. It configures THC to work at SPI 36 HIDI2C (HID over I2C) protocol. It configures THC to work in I2C
|
| /linux/drivers/input/joystick/ |
| H A D | Kconfig | 1 # SPDX-License-Identifier: GPL-2.0-only 41 A3D protocol over the PC gameport. 55 module will be called adc-joystick. 63 protocol over the PC gameport. 91 Say Y here if you have a Gravis controller using the GrIP protocol 112 protocol over the PC gameport. 132 Overdrive protocol over PC gameport. 142 DirectConnect (BSP) protocol over the PC gameport. 211 tristate "5-byte Zhenhua RC transmitter" 215 Say Y here if you have a Zhen Hua PPM-4CH transmitter which is [all …]
|