Home
last modified time | relevance | path

Searched full:smbus (Results 1 – 25 of 330) sorted by relevance

12345678910>>...14

/linux-6.12.1/drivers/i2c/busses/
Di2c-pasemi-core.c5 * SMBus host driver for PA Semi PWRficient
45 static inline void reg_write(struct pasemi_smbus *smbus, int reg, int val) in reg_write() argument
47 dev_dbg(smbus->dev, "smbus write reg %x val %08x\n", reg, val); in reg_write()
48 iowrite32(val, smbus->ioaddr + reg); in reg_write()
51 static inline int reg_read(struct pasemi_smbus *smbus, int reg) in reg_read() argument
54 ret = ioread32(smbus->ioaddr + reg); in reg_read()
55 dev_dbg(smbus->dev, "smbus read reg %x val %08x\n", reg, ret); in reg_read()
59 #define TXFIFO_WR(smbus, reg) reg_write((smbus), REG_MTXFIFO, (reg)) argument
60 #define RXFIFO_RD(smbus) reg_read((smbus), REG_MRXFIFO) argument
62 static void pasemi_reset(struct pasemi_smbus *smbus) in pasemi_reset() argument
[all …]
Di2c-amd8111.c3 * SMBus 2.0 driver for AMD-8111 IO-Hub.
21 MODULE_DESCRIPTION("AMD8111 SMBus 2.0 driver");
68 static int amd_ec_wait_write(struct amd_smbus *smbus) in amd_ec_wait_write() argument
72 while ((inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_IBF) && --timeout) in amd_ec_wait_write()
76 dev_warn(&smbus->dev->dev, in amd_ec_wait_write()
84 static int amd_ec_wait_read(struct amd_smbus *smbus) in amd_ec_wait_read() argument
88 while ((~inb(smbus->base + AMD_EC_SC) & AMD_EC_SC_OBF) && --timeout) in amd_ec_wait_read()
92 dev_warn(&smbus->dev->dev, in amd_ec_wait_read()
100 static int amd_ec_read(struct amd_smbus *smbus, unsigned char address, in amd_ec_read() argument
105 status = amd_ec_wait_write(smbus); in amd_ec_read()
[all …]
Di2c-nforce2.c3 SMBus driver for nVidia nForce2 MCP
9 SMBus 2.0 driver for AMD-8111 IO-Hub
35 /* Note: we assume there can only be one nForce2, with two SMBus interfaces */
51 MODULE_DESCRIPTION("nForce2/3/4/5xx SMBus driver");
64 * nVidia nForce2 SMBus control register definitions
72 * ACPI 2.0 chapter 13 SMBus 2.0 EC register model
74 #define NVIDIA_SMB_PRTCL (smbus->base + 0x00) /* protocol, PEC */
75 #define NVIDIA_SMB_STS (smbus->base + 0x01) /* status */
76 #define NVIDIA_SMB_ADDR (smbus->base + 0x02) /* address */
77 #define NVIDIA_SMB_CMD (smbus->base + 0x03) /* command */
[all …]
Di2c-pasemi-platform.c5 * PA Semi PWRficient SMBus host driver for Apple SoCs
19 struct pasemi_smbus smbus; member
32 data->smbus.clk_div = DIV_ROUND_UP(clk_rate, 16 * frequency); in pasemi_platform_i2c_calc_clk_div()
33 if (data->smbus.clk_div < 4) in pasemi_platform_i2c_calc_clk_div()
34 return dev_err_probe(data->smbus.dev, -EINVAL, in pasemi_platform_i2c_calc_clk_div()
37 if (data->smbus.clk_div > 0xff) in pasemi_platform_i2c_calc_clk_div()
38 return dev_err_probe(data->smbus.dev, -EINVAL, in pasemi_platform_i2c_calc_clk_div()
49 struct pasemi_smbus *smbus; in pasemi_platform_i2c_probe() local
59 smbus = &data->smbus; in pasemi_platform_i2c_probe()
60 smbus->dev = dev; in pasemi_platform_i2c_probe()
[all …]
Di2c-pasemi-pci.c5 * SMBus host driver for PA Semi PWRficient
28 struct pasemi_smbus *smbus; in pasemi_smb_pci_probe() local
36 smbus = devm_kzalloc(&dev->dev, sizeof(*smbus), GFP_KERNEL); in pasemi_smb_pci_probe()
37 if (!smbus) in pasemi_smb_pci_probe()
40 smbus->dev = &dev->dev; in pasemi_smb_pci_probe()
43 smbus->clk_div = CLK_100K_DIV; in pasemi_smb_pci_probe()
49 smbus->hw_rev = PASEMI_HW_REV_PCI; in pasemi_smb_pci_probe()
55 smbus->ioaddr = pcim_iomap(dev, 0, 0); in pasemi_smb_pci_probe()
56 if (!smbus->ioaddr) in pasemi_smb_pci_probe()
59 smbus->adapter.class = I2C_CLASS_HWMON; in pasemi_smb_pci_probe()
[all …]
Di2c-piix4.c18 SMBus interfaces.
32 #include <linux/i2c-smbus.h>
39 /* PIIX4 SMBus address offsets */
188 "SMBus base address memory region 0x%x already in use.\n", in piix4_sb800_region_request()
198 dev_err(dev, "SMBus base address mapping failed.\n"); in piix4_sb800_region_request()
210 "SMBus base address index region 0x%x already in use.\n", in piix4_sb800_region_request()
235 * w/ SMBus PCI revision ID 0x51 or greater. MMIO is supported on in piix4_sb800_use_mmio()
253 /* On some motherboards, it was reported that accessing the SMBus in piix4_setup()
257 "Accessing the SMBus on this system is unsafe!\n"); in piix4_setup()
261 /* Don't access SMBus on IBM systems which get corrupted eeproms */ in piix4_setup()
[all …]
Di2c-viapro.c30 Note: we assume there can only be one device, with one SMBus interface.
50 /* SMBus address offsets */
62 /* SMBus data in configuration space can be found in two places,
84 MODULE_PARM_DESC(force, "Forcibly enable the SMBus. DANGEROUS!");
91 "Forcibly enable the SMBus at the given address. "
136 /* Make sure the SMBus host is ready to start transmitting */ in vt596_transaction()
138 dev_dbg(&vt596_adapter.dev, "SMBus busy (0x%02x). " in vt596_transaction()
143 dev_err(&vt596_adapter.dev, "SMBus reset failed! " in vt596_transaction()
158 /* If the SMBus is still busy, we give up */ in vt596_transaction()
161 dev_err(&vt596_adapter.dev, "SMBus timeout!\n"); in vt596_transaction()
[all …]
Di2c-sis96x.c17 We assume there can only be one SiS96x with one SMBus interface.
33 /* SiS96x SMBus registers */
54 /* SiS96x SMBus constants */
76 /* Execute a SMBus transaction.
85 dev_dbg(&sis96x_adapter.dev, "SMBus transaction %d\n", size); in sis96x_transaction()
87 /* Make sure the SMBus host is ready to start transmitting */ in sis96x_transaction()
90 dev_dbg(&sis96x_adapter.dev, "SMBus busy (0x%02x). " in sis96x_transaction()
121 /* If the SMBus is still busy, we give up */ in sis96x_transaction()
123 dev_dbg(&sis96x_adapter.dev, "SMBus Timeout! (0x%02x)\n", temp); in sis96x_transaction()
261 dev_err(&dev->dev, "SiS96x SMBus base address " in sis96x_probe()
[all …]
Di2c-isch.c3 i2c-isch.c - Linux kernel driver for Intel SCH chipset SMBus
15 Note: we assume there can only be one device, with one SMBus interface.
27 /* SCH SMBus address offsets */
69 /* Make sure the SMBus host is ready to start transmitting */ in sch_transaction()
78 dev_dbg(&sch_adapter.dev, "SMBus error (%02x). " in sch_transaction()
85 "SMBus is not ready: (%02x)\n", temp); in sch_transaction()
98 /* If the SMBus is still busy, we give up */ in sch_transaction()
100 dev_err(&sch_adapter.dev, "SMBus Timeout!\n"); in sch_transaction()
104 dev_dbg(&sch_adapter.dev, "Bus collision! SMBus may be " in sch_transaction()
143 /* Make sure the SMBus host is not busy */ in sch_access()
[all …]
Di2c-amd756.c22 Note: we assume there can only be one device, with one SMBus interface.
35 /* AMD756 SMBus address offsets */
76 SMBUS event = I/O 28-29 bit 11
107 /* Make sure the SMBus host is ready to start transmitting */ in amd756_transaction()
109 dev_dbg(&adap->dev, "SMBus busy (%04x). Waiting...\n", temp); in amd756_transaction()
115 /* If the SMBus is still busy, we give up */ in amd756_transaction()
132 /* If the SMBus is still busy, we give up */ in amd756_transaction()
140 dev_dbg(&adap->dev, "SMBus Protocol error (no response)!\n"); in amd756_transaction()
145 dev_warn(&adap->dev, "SMBus collision!\n"); in amd756_transaction()
150 dev_dbg(&adap->dev, "SMBus protocol timeout!\n"); in amd756_transaction()
[all …]
DKconfig9 comment "PC SMBus host controller drivers"
59 support for the first (SMBus 1.0) I2C interface of the AMD 8111 and
66 tristate "SMBus multiplexing on the Tyan S4882"
69 Enabling this option will add specific SMBus support for the Tyan
70 S4882 motherboard. On this 4-CPU board, the SMBus is multiplexed
83 second (SMBus 2.0) AMD 8111 mainboard I2C interface.
172 Optional support for multiplexed SMBUS on certain systems with
176 tristate "Intel SCH SMBus 1.0"
180 Say Y here if you want to use SMBus controller on the Intel SCH
187 tristate "Intel iSMT SMBus Controller"
[all …]
/linux-6.12.1/Documentation/i2c/
Dsmbus-protocol.rst2 The SMBus Protocol
5 The following is a summary of the SMBus protocol. It applies to
10 Some adapters understand only the SMBus (System Management Bus) protocol,
12 only the same subset, which makes it possible to put them on an SMBus.
14 If you write a driver for some I2C device, please try to use the SMBus
17 SMBus adapters and I2C adapters (the SMBus command set is automatically
19 handled at all on most pure SMBus adapters).
21 Below is a list of SMBus protocol operations, and the functions executing
22 them. Note that the names used in the SMBus protocol specifications usually
24 single data byte, the functions using SMBus protocol operation names execute
[all …]
Dfunctionality.rst2 I2C/SMBus Functionality
8 Because not every I2C or SMBus adapter implements everything in the
22 I2C_FUNC_I2C Plain i2c-level commands (Pure SMBus
29 I2C_FUNC_SMBUS_QUICK Handles the SMBus write_quick command
30 I2C_FUNC_SMBUS_READ_BYTE Handles the SMBus read_byte command
31 I2C_FUNC_SMBUS_WRITE_BYTE Handles the SMBus write_byte command
32 I2C_FUNC_SMBUS_READ_BYTE_DATA Handles the SMBus read_byte_data command
33 I2C_FUNC_SMBUS_WRITE_BYTE_DATA Handles the SMBus write_byte_data command
34 I2C_FUNC_SMBUS_READ_WORD_DATA Handles the SMBus read_word_data command
35 I2C_FUNC_SMBUS_WRITE_WORD_DATA Handles the SMBus write_byte_data command
[all …]
Dfault-codes.rst2 I2C/SMBUS Fault Codes
6 codes in the I2C/SMBus stack.
26 I2C and SMBus fault codes
56 Returned by SMBus logic when an invalid Packet Error Code byte
59 fault is only reported on read transactions; the SMBus slave
65 Returned by SMBus adapters when the bus was busy for longer
67 SMBus adapter) needs some fault recovery (such as resetting),
106 doesn't support SMBus block transfers is asked to execute
119 or SMBus (or chip-specific) protocol specifications. One
120 case is when the length of an SMBus block data response
[all …]
Di2c-stub.rst8 This module is a very simple fake I2C/SMBus driver. It implements six
9 types of SMBus commands: write quick, (r/w) byte, (r/w) byte data, (r/w)
10 word data, (r/w) I2C block data, and (r/w) SMBus block data.
13 driver, which will then only react to SMBus commands to these addresses.
25 SMBus block command support is disabled by default, and must be enabled
29 SMBus block commands must be written to configure an SMBus command for
30 SMBus block operations. Writes can be partial. Block read commands always
47 The SMBus addresses to emulate chips at.
Dsummary.rst2 Introduction to I2C and SMBus
18 SMBus (System Management Bus) is based on the I2C protocol, and is mostly
20 SMBus, but some SMBus protocols add semantics beyond what is required to
21 achieve I2C branding. Modern PC mainboards rely on SMBus. The most common
22 devices connected through SMBus are RAM modules configured using I2C EEPROMs,
25 Because the SMBus is mostly a subset of the generalized I2C bus, we can
27 meet both SMBus and I2C electrical constraints; and others which can't
28 implement all the common SMBus protocol semantics or messages.
Ddev-interface.rst28 #include <i2c/smbus.h>
58 Well, you are all set up now. You can now use SMBus commands or plain
59 I2C to communicate with your device. SMBus commands are preferred if
66 /* Using SMBus commands */
92 Note that only a subset of the I2C and SMBus protocols can be achieved by
118 Selects SMBus PEC (packet error checking) generation and verification
120 Used only for SMBus transactions. This request only has an effect if the
151 You can do SMBus level transactions (see documentation file smbus-protocol.rst
195 device you want to access) and I2C_PEC (enable or disable SMBus error
201 performs an SMBus transaction using i2c-core-smbus.c:i2c_smbus_xfer().
[all …]
/linux-6.12.1/Documentation/i2c/busses/
Di2c-i801.rst55 On Intel Patsburg and later chipsets, both the normal host SMBus controller
73 0x01 disable SMBus PEC
77 0x20 disable SMBus Host Notify
99 The SMBus controller is function 3 in device 1f. Class 0c05 is SMBus Serial
103 SMBus controller.
118 SMBus 2.0 Support
121 The 82801DB (ICH4) and later chips support several SMBus 2.0 features.
130 Hidden ICH SMBus
134 SMBus device at 00:1f.3 in lspci, and you can't figure out any way in the
140 SMBus was hidden on purpose because it'll be driven by ACPI. If the
[all …]
Di2c-piix4.rst45 SMBus - you can not access it on I2C levels. The good news is that it
46 natively understands SMBus commands and you do not have to worry about
47 timing problems. The bad news is that non-SMBus devices connected to it can
58 find such an entry, you have a PIIX4 SMBus controller.
60 On some computers (most notably, some Dells), the SMBus is disabled by
67 'force' does, but it will also set a new base I/O port address. The SMBus
74 The PIIX/PIIX3 does not implement an SMBus or I2C bus, so you can't use
78 identical to the PIIX4 in I2C/SMBus support.
81 PIIX4-compatible SMBus controllers. If your BIOS initializes the
83 an "Auxiliary SMBus Host Controller".
[all …]
Di2c-amd8111.rst6 * AMD-8111 SMBus 2.0 PCI interface
20 00:07.2 SMBus: Advanced Micro Devices [AMD] AMD-8111 SMBus 2.0 (rev 02)
21 Subsystem: Advanced Micro Devices [AMD] AMD-8111 SMBus 2.0
32 SMBus 2.0 Support
41 Note that for the 8111, there are two SMBus adapters. The SMBus 2.0 adapter
42 is supported by this driver, and the SMBus 1.0 adapter is supported by the
/linux-6.12.1/drivers/i2c/
Di2c-core-smbus.c3 * 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>
10 * SMBus 2.0 support by Mark Studebaker <mdsxyz123@yahoo.com> and
16 #include <linux/i2c-smbus.h>
23 #include <trace/events/smbus.h>
26 /* The SMBus parts */
59 /* Assume a 7-bit address, which is reasonable for SMBus */
[all …]
DKconfig14 many micro controller applications and developed by Philips. SMBus,
19 Both I2C and SMBus are supported here. You will need this for
90 tristate "SMBus-specific protocols" if !I2C_HELPER_AUTO
92 Say Y here if you want support for SMBus extensions to the I2C
94 the SMBus Alert protocol and the SMBus Host Notify protocol.
97 will be called i2c-smbus.
103 tristate "I2C/SMBus Test Stub"
106 This module may be useful to developers of SMBus client drivers,
134 multi-master, SMBus Host Notify, etc. Please read
/linux-6.12.1/Documentation/driver-api/
Di2c.rst1 I\ :sup:`2`\ C and SMBus Subsystem
29 The System Management Bus (SMBus) is a sibling protocol. Most SMBus
31 for SMBus, and it standardizes particular protocol messages and idioms.
32 Controllers that support I2C can also support most SMBus operations, but
33 SMBus controllers don't support all the protocol options that an I2C
34 controller will. There are functions to perform various SMBus protocol
35 operations, either using I2C primitives or by issuing SMBus commands to
47 .. kernel-doc:: drivers/i2c/i2c-core-smbus.c
/linux-6.12.1/Documentation/translations/it_IT/i2c/
Dsummary.rst2 Introduzione a I2C e SMBus
22 SMBus (Bus per la gestione del sistema) si basa sul protocollo I2C ed è
24 I2C funzioneranno su SMBus, ma alcuni protocolli SMBus aggiungono semantica
26 SMBus. I più comuni dispositivi collegati tramite SMBus sono moduli RAM
30 Poiché SMBus è principalmente un sottoinsieme del bus I2C,
32 soddisfano i vincoli elettrici sia di SMBus che di I2C; e altri che non possono
33 implementare tutta la semantica o messaggi comuni del protocollo SMBus.
/linux-6.12.1/drivers/misc/eeprom/
Didt_89hpesx.c11 * NOTE of the IDT 89HPESx SMBus-slave interface driver
13 * IDT PCIe-switches. IDT provides a simple SMBus interface to perform IO-
15 * SMBus of switches. Using that interface this the driver creates a simple
20 * Additionally IDT 89HPESx SMBus interface has an ability to write/read
55 #define IDT_89HPESX_DESC "IDT 89HPESx SMBus-slave interface driver"
80 * @smb_write: SMBus write method
81 * @smb_read: SMBus read method
82 * @smb_mtx: SMBus mutex
112 * @ccode: SMBus command code
149 * SMBus command code macros
[all …]

12345678910>>...14