mirror of
https://github.com/AetherDroid/android_kernel_samsung_on5xelte.git
synced 2025-09-06 16:28:04 -04:00
Fixed MTP to work with TWRP
This commit is contained in:
commit
f6dfaef42e
50820 changed files with 20846062 additions and 0 deletions
42
Documentation/i2c/busses/i2c-ali1535
Normal file
42
Documentation/i2c/busses/i2c-ali1535
Normal file
|
@ -0,0 +1,42 @@
|
|||
Kernel driver i2c-ali1535
|
||||
|
||||
Supported adapters:
|
||||
* Acer Labs, Inc. ALI 1535 (south bridge)
|
||||
Datasheet: Now under NDA
|
||||
http://www.ali.com.tw/
|
||||
|
||||
Authors:
|
||||
Frodo Looijaard <frodol@dds.nl>,
|
||||
Philip Edelbrock <phil@netroedge.com>,
|
||||
Mark D. Studebaker <mdsxyz123@yahoo.com>,
|
||||
Dan Eaton <dan.eaton@rocketlogix.com>,
|
||||
Stephen Rousset<stephen.rousset@rocketlogix.com>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This is the driver for the SMB Host controller on Acer Labs Inc. (ALI)
|
||||
M1535 South Bridge.
|
||||
|
||||
The M1535 is a South bridge for portable systems. It is very similar to the
|
||||
M15x3 South bridges also produced by Acer Labs Inc. Some of the registers
|
||||
within the part have moved and some have been redefined slightly.
|
||||
Additionally, the sequencing of the SMBus transactions has been modified to
|
||||
be more consistent with the sequencing recommended by the manufacturer and
|
||||
observed through testing. These changes are reflected in this driver and
|
||||
can be identified by comparing this driver to the i2c-ali15x3 driver. For
|
||||
an overview of these chips see http://www.acerlabs.com
|
||||
|
||||
The SMB controller is part of the M7101 device, which is an ACPI-compliant
|
||||
Power Management Unit (PMU).
|
||||
|
||||
The whole M7101 device has to be enabled for the SMB to work. You can't
|
||||
just enable the SMB alone. The SMB and the ACPI have separate I/O spaces.
|
||||
We make sure that the SMB is enabled. We leave the ACPI alone.
|
||||
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
This driver controls the SMB Host only. This driver does not use
|
||||
interrupts.
|
27
Documentation/i2c/busses/i2c-ali1563
Normal file
27
Documentation/i2c/busses/i2c-ali1563
Normal file
|
@ -0,0 +1,27 @@
|
|||
Kernel driver i2c-ali1563
|
||||
|
||||
Supported adapters:
|
||||
* Acer Labs, Inc. ALI 1563 (south bridge)
|
||||
Datasheet: Now under NDA
|
||||
http://www.ali.com.tw/
|
||||
|
||||
Author: Patrick Mochel <mochel@digitalimplant.org>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This is the driver for the SMB Host controller on Acer Labs Inc. (ALI)
|
||||
M1563 South Bridge.
|
||||
|
||||
For an overview of these chips see http://www.acerlabs.com
|
||||
|
||||
The M1563 southbridge is deceptively similar to the M1533, with a few
|
||||
notable exceptions. One of those happens to be the fact they upgraded the
|
||||
i2c core to be SMBus 2.0 compliant, and happens to be almost identical to
|
||||
the i2c controller found in the Intel 801 south bridges.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
This driver controls the SMB Host only. This driver does not use
|
||||
interrupts.
|
112
Documentation/i2c/busses/i2c-ali15x3
Normal file
112
Documentation/i2c/busses/i2c-ali15x3
Normal file
|
@ -0,0 +1,112 @@
|
|||
Kernel driver i2c-ali15x3
|
||||
|
||||
Supported adapters:
|
||||
* Acer Labs, Inc. ALI 1533 and 1543C (south bridge)
|
||||
Datasheet: Now under NDA
|
||||
http://www.ali.com.tw/
|
||||
|
||||
Authors:
|
||||
Frodo Looijaard <frodol@dds.nl>,
|
||||
Philip Edelbrock <phil@netroedge.com>,
|
||||
Mark D. Studebaker <mdsxyz123@yahoo.com>
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* force_addr: int
|
||||
Initialize the base address of the i2c controller
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
The force_addr parameter is useful for boards that don't set the address in
|
||||
the BIOS. Does not do a PCI force; the device must still be present in
|
||||
lspci. Don't use this unless the driver complains that the base address is
|
||||
not set.
|
||||
|
||||
Example: 'modprobe i2c-ali15x3 force_addr=0xe800'
|
||||
|
||||
SMBus periodically hangs on ASUS P5A motherboards and can only be cleared
|
||||
by a power cycle. Cause unknown (see Issues below).
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This is the driver for the SMB Host controller on Acer Labs Inc. (ALI)
|
||||
M1541 and M1543C South Bridges.
|
||||
|
||||
The M1543C is a South bridge for desktop systems.
|
||||
The M1541 is a South bridge for portable systems.
|
||||
They are part of the following ALI chipsets:
|
||||
|
||||
* "Aladdin Pro 2" includes the M1621 Slot 1 North bridge with AGP and
|
||||
100MHz CPU Front Side bus
|
||||
* "Aladdin V" includes the M1541 Socket 7 North bridge with AGP and 100MHz
|
||||
CPU Front Side bus
|
||||
Some Aladdin V motherboards:
|
||||
Asus P5A
|
||||
Atrend ATC-5220
|
||||
BCM/GVC VP1541
|
||||
Biostar M5ALA
|
||||
Gigabyte GA-5AX (** Generally doesn't work because the BIOS doesn't
|
||||
enable the 7101 device! **)
|
||||
Iwill XA100 Plus
|
||||
Micronics C200
|
||||
Microstar (MSI) MS-5169
|
||||
|
||||
* "Aladdin IV" includes the M1541 Socket 7 North bridge
|
||||
with host bus up to 83.3 MHz.
|
||||
|
||||
For an overview of these chips see http://www.acerlabs.com. At this time the
|
||||
full data sheets on the web site are password protected, however if you
|
||||
contact the ALI office in San Jose they may give you the password.
|
||||
|
||||
The M1533/M1543C devices appear as FOUR separate devices on the PCI bus. An
|
||||
output of lspci will show something similar to the following:
|
||||
|
||||
00:02.0 USB Controller: Acer Laboratories Inc. M5237 (rev 03)
|
||||
00:03.0 Bridge: Acer Laboratories Inc. M7101 <= THIS IS THE ONE WE NEED
|
||||
00:07.0 ISA bridge: Acer Laboratories Inc. M1533 (rev c3)
|
||||
00:0f.0 IDE interface: Acer Laboratories Inc. M5229 (rev c1)
|
||||
|
||||
** IMPORTANT **
|
||||
** If you have a M1533 or M1543C on the board and you get
|
||||
** "ali15x3: Error: Can't detect ali15x3!"
|
||||
** then run lspci.
|
||||
** If you see the 1533 and 5229 devices but NOT the 7101 device,
|
||||
** then you must enable ACPI, the PMU, SMB, or something similar
|
||||
** in the BIOS.
|
||||
** The driver won't work if it can't find the M7101 device.
|
||||
|
||||
The SMB controller is part of the M7101 device, which is an ACPI-compliant
|
||||
Power Management Unit (PMU).
|
||||
|
||||
The whole M7101 device has to be enabled for the SMB to work. You can't
|
||||
just enable the SMB alone. The SMB and the ACPI have separate I/O spaces.
|
||||
We make sure that the SMB is enabled. We leave the ACPI alone.
|
||||
|
||||
Features
|
||||
--------
|
||||
|
||||
This driver controls the SMB Host only. The SMB Slave
|
||||
controller on the M15X3 is not enabled. This driver does not use
|
||||
interrupts.
|
||||
|
||||
|
||||
Issues
|
||||
------
|
||||
|
||||
This driver requests the I/O space for only the SMB
|
||||
registers. It doesn't use the ACPI region.
|
||||
|
||||
On the ASUS P5A motherboard, there are several reports that
|
||||
the SMBus will hang and this can only be resolved by
|
||||
powering off the computer. It appears to be worse when the board
|
||||
gets hot, for example under heavy CPU load, or in the summer.
|
||||
There may be electrical problems on this board.
|
||||
On the P5A, the W83781D sensor chip is on both the ISA and
|
||||
SMBus. Therefore the SMBus hangs can generally be avoided
|
||||
by accessing the W83781D on the ISA bus only.
|
||||
|
25
Documentation/i2c/busses/i2c-amd756
Normal file
25
Documentation/i2c/busses/i2c-amd756
Normal file
|
@ -0,0 +1,25 @@
|
|||
Kernel driver i2c-amd756
|
||||
|
||||
Supported adapters:
|
||||
* AMD 756
|
||||
* AMD 766
|
||||
* AMD 768
|
||||
* AMD 8111
|
||||
Datasheets: Publicly available on AMD website
|
||||
|
||||
* nVidia nForce
|
||||
Datasheet: Unavailable
|
||||
|
||||
Authors:
|
||||
Frodo Looijaard <frodol@dds.nl>,
|
||||
Philip Edelbrock <phil@netroedge.com>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This driver supports the AMD 756, 766, 768 and 8111 Peripheral Bus
|
||||
Controllers, and the nVidia nForce.
|
||||
|
||||
Note that for the 8111, there are two SMBus adapters. The SMBus 1.0 adapter
|
||||
is supported by this driver, and the SMBus 2.0 adapter is supported by the
|
||||
i2c-amd8111 driver.
|
41
Documentation/i2c/busses/i2c-amd8111
Normal file
41
Documentation/i2c/busses/i2c-amd8111
Normal file
|
@ -0,0 +1,41 @@
|
|||
Kernel driver i2c-adm8111
|
||||
|
||||
Supported adapters:
|
||||
* AMD-8111 SMBus 2.0 PCI interface
|
||||
|
||||
Datasheets:
|
||||
AMD datasheet not yet available, but almost everything can be found
|
||||
in the publicly available ACPI 2.0 specification, which the adapter
|
||||
follows.
|
||||
|
||||
Author: Vojtech Pavlik <vojtech@suse.cz>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
If you see something like this:
|
||||
|
||||
00:07.2 SMBus: Advanced Micro Devices [AMD] AMD-8111 SMBus 2.0 (rev 02)
|
||||
Subsystem: Advanced Micro Devices [AMD] AMD-8111 SMBus 2.0
|
||||
Flags: medium devsel, IRQ 19
|
||||
I/O ports at d400 [size=32]
|
||||
|
||||
in your 'lspci -v', then this driver is for your chipset.
|
||||
|
||||
Process Call Support
|
||||
--------------------
|
||||
|
||||
Supported.
|
||||
|
||||
SMBus 2.0 Support
|
||||
-----------------
|
||||
|
||||
Supported. Both PEC and block process call support is implemented. Slave
|
||||
mode or host notification are not yet implemented.
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
Note that for the 8111, there are two SMBus adapters. The SMBus 2.0 adapter
|
||||
is supported by this driver, and the SMBus 1.0 adapter is supported by the
|
||||
i2c-amd756 driver.
|
26
Documentation/i2c/busses/i2c-diolan-u2c
Normal file
26
Documentation/i2c/busses/i2c-diolan-u2c
Normal file
|
@ -0,0 +1,26 @@
|
|||
Kernel driver i2c-diolan-u2c
|
||||
|
||||
Supported adapters:
|
||||
* Diolan U2C-12 I2C-USB adapter
|
||||
Documentation:
|
||||
http://www.diolan.com/i2c/u2c12.html
|
||||
|
||||
Author: Guenter Roeck <linux@roeck-us.net>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This is the driver for the Diolan U2C-12 USB-I2C adapter.
|
||||
|
||||
The Diolan U2C-12 I2C-USB Adapter provides a low cost solution to connect
|
||||
a computer to I2C slave devices using a USB interface. It also supports
|
||||
connectivity to SPI devices.
|
||||
|
||||
This driver only supports the I2C interface of U2C-12. The driver does not use
|
||||
interrupts.
|
||||
|
||||
|
||||
Module parameters
|
||||
-----------------
|
||||
|
||||
* frequency: I2C bus frequency
|
163
Documentation/i2c/busses/i2c-i801
Normal file
163
Documentation/i2c/busses/i2c-i801
Normal file
|
@ -0,0 +1,163 @@
|
|||
Kernel driver i2c-i801
|
||||
|
||||
Supported adapters:
|
||||
* Intel 82801AA and 82801AB (ICH and ICH0 - part of the
|
||||
'810' and '810E' chipsets)
|
||||
* Intel 82801BA (ICH2 - part of the '815E' chipset)
|
||||
* Intel 82801CA/CAM (ICH3)
|
||||
* Intel 82801DB (ICH4) (HW PEC supported)
|
||||
* Intel 82801EB/ER (ICH5) (HW PEC supported)
|
||||
* Intel 6300ESB
|
||||
* Intel 82801FB/FR/FW/FRW (ICH6)
|
||||
* Intel 82801G (ICH7)
|
||||
* Intel 631xESB/632xESB (ESB2)
|
||||
* Intel 82801H (ICH8)
|
||||
* Intel 82801I (ICH9)
|
||||
* Intel EP80579 (Tolapai)
|
||||
* Intel 82801JI (ICH10)
|
||||
* Intel 5/3400 Series (PCH)
|
||||
* Intel 6 Series (PCH)
|
||||
* Intel Patsburg (PCH)
|
||||
* Intel DH89xxCC (PCH)
|
||||
* Intel Panther Point (PCH)
|
||||
* Intel Lynx Point (PCH)
|
||||
* Intel Lynx Point-LP (PCH)
|
||||
* Intel Avoton (SOC)
|
||||
* Intel Wellsburg (PCH)
|
||||
* Intel Coleto Creek (PCH)
|
||||
* Intel Wildcat Point (PCH)
|
||||
* Intel Wildcat Point-LP (PCH)
|
||||
* Intel BayTrail (SOC)
|
||||
* Intel Sunrise Point-H (PCH)
|
||||
Datasheets: Publicly available at the Intel website
|
||||
|
||||
On Intel Patsburg and later chipsets, both the normal host SMBus controller
|
||||
and the additional 'Integrated Device Function' controllers are supported.
|
||||
|
||||
Authors:
|
||||
Mark Studebaker <mdsxyz123@yahoo.com>
|
||||
Jean Delvare <jdelvare@suse.de>
|
||||
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* disable_features (bit vector)
|
||||
Disable selected features normally supported by the device. This makes it
|
||||
possible to work around possible driver or hardware bugs if the feature in
|
||||
question doesn't work as intended for whatever reason. Bit values:
|
||||
0x01 disable SMBus PEC
|
||||
0x02 disable the block buffer
|
||||
0x08 disable the I2C block read functionality
|
||||
0x10 don't use interrupts
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The ICH (properly known as the 82801AA), ICH0 (82801AB), ICH2 (82801BA),
|
||||
ICH3 (82801CA/CAM) and later devices (PCH) are Intel chips that are a part of
|
||||
Intel's '810' chipset for Celeron-based PCs, '810E' chipset for
|
||||
Pentium-based PCs, '815E' chipset, and others.
|
||||
|
||||
The ICH chips contain at least SEVEN separate PCI functions in TWO logical
|
||||
PCI devices. An output of lspci will show something similar to the
|
||||
following:
|
||||
|
||||
00:1e.0 PCI bridge: Intel Corporation: Unknown device 2418 (rev 01)
|
||||
00:1f.0 ISA bridge: Intel Corporation: Unknown device 2410 (rev 01)
|
||||
00:1f.1 IDE interface: Intel Corporation: Unknown device 2411 (rev 01)
|
||||
00:1f.2 USB Controller: Intel Corporation: Unknown device 2412 (rev 01)
|
||||
00:1f.3 Unknown class [0c05]: Intel Corporation: Unknown device 2413 (rev 01)
|
||||
|
||||
The SMBus controller is function 3 in device 1f. Class 0c05 is SMBus Serial
|
||||
Controller.
|
||||
|
||||
The ICH chips are quite similar to Intel's PIIX4 chip, at least in the
|
||||
SMBus controller.
|
||||
|
||||
|
||||
Process Call Support
|
||||
--------------------
|
||||
|
||||
Not supported.
|
||||
|
||||
|
||||
I2C Block Read Support
|
||||
----------------------
|
||||
|
||||
I2C block read is supported on the 82801EB (ICH5) and later chips.
|
||||
|
||||
|
||||
SMBus 2.0 Support
|
||||
-----------------
|
||||
|
||||
The 82801DB (ICH4) and later chips support several SMBus 2.0 features.
|
||||
|
||||
|
||||
Interrupt Support
|
||||
-----------------
|
||||
|
||||
PCI interrupt support is supported on the 82801EB (ICH5) and later chips.
|
||||
|
||||
|
||||
Hidden ICH SMBus
|
||||
----------------
|
||||
|
||||
If your system has an Intel ICH south bridge, but you do NOT see the
|
||||
SMBus device at 00:1f.3 in lspci, and you can't figure out any way in the
|
||||
BIOS to enable it, it means it has been hidden by the BIOS code. Asus is
|
||||
well known for first doing this on their P4B motherboard, and many other
|
||||
boards after that. Some vendor machines are affected as well.
|
||||
|
||||
The first thing to try is the "i2c_ec" ACPI driver. It could be that the
|
||||
SMBus was hidden on purpose because it'll be driven by ACPI. If the
|
||||
i2c_ec driver works for you, just forget about the i2c-i801 driver and
|
||||
don't try to unhide the ICH SMBus. Even if i2c_ec doesn't work, you
|
||||
better make sure that the SMBus isn't used by the ACPI code. Try loading
|
||||
the "fan" and "thermal" drivers, and check in /proc/acpi/fan and
|
||||
/proc/acpi/thermal_zone. If you find anything there, it's likely that
|
||||
the ACPI is accessing the SMBus and it's safer not to unhide it. Only
|
||||
once you are certain that ACPI isn't using the SMBus, you can attempt
|
||||
to unhide it.
|
||||
|
||||
In order to unhide the SMBus, we need to change the value of a PCI
|
||||
register before the kernel enumerates the PCI devices. This is done in
|
||||
drivers/pci/quirks.c, where all affected boards must be listed (see
|
||||
function asus_hides_smbus_hostbridge.) If the SMBus device is missing,
|
||||
and you think there's something interesting on the SMBus (e.g. a
|
||||
hardware monitoring chip), you need to add your board to the list.
|
||||
|
||||
The motherboard is identified using the subvendor and subdevice IDs of the
|
||||
host bridge PCI device. Get yours with "lspci -n -v -s 00:00.0":
|
||||
|
||||
00:00.0 Class 0600: 8086:2570 (rev 02)
|
||||
Subsystem: 1043:80f2
|
||||
Flags: bus master, fast devsel, latency 0
|
||||
Memory at fc000000 (32-bit, prefetchable) [size=32M]
|
||||
Capabilities: [e4] #09 [2106]
|
||||
Capabilities: [a0] AGP version 3.0
|
||||
|
||||
Here the host bridge ID is 2570 (82865G/PE/P), the subvendor ID is 1043
|
||||
(Asus) and the subdevice ID is 80f2 (P4P800-X). You can find the symbolic
|
||||
names for the bridge ID and the subvendor ID in include/linux/pci_ids.h,
|
||||
and then add a case for your subdevice ID at the right place in
|
||||
drivers/pci/quirks.c. Then please give it very good testing, to make sure
|
||||
that the unhidden SMBus doesn't conflict with e.g. ACPI.
|
||||
|
||||
If it works, proves useful (i.e. there are usable chips on the SMBus)
|
||||
and seems safe, please submit a patch for inclusion into the kernel.
|
||||
|
||||
Note: There's a useful script in lm_sensors 2.10.2 and later, named
|
||||
unhide_ICH_SMBus (in prog/hotplug), which uses the fakephp driver to
|
||||
temporarily unhide the SMBus without having to patch and recompile your
|
||||
kernel. It's very convenient if you just want to check if there's
|
||||
anything interesting on your hidden ICH SMBus.
|
||||
|
||||
|
||||
**********************
|
||||
The lm_sensors project gratefully acknowledges the support of Texas
|
||||
Instruments in the initial development of this driver.
|
||||
|
||||
The lm_sensors project gratefully acknowledges the support of Intel in the
|
||||
development of SMBus 2.0 / ICH4 features of this driver.
|
36
Documentation/i2c/busses/i2c-ismt
Normal file
36
Documentation/i2c/busses/i2c-ismt
Normal file
|
@ -0,0 +1,36 @@
|
|||
Kernel driver i2c-ismt
|
||||
|
||||
Supported adapters:
|
||||
* Intel S12xx series SOCs
|
||||
|
||||
Authors:
|
||||
Bill Brown <bill.e.brown@intel.com>
|
||||
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* bus_speed (unsigned int)
|
||||
Allows changing of the bus speed. Normally, the bus speed is set by the BIOS
|
||||
and never needs to be changed. However, some SMBus analyzers are too slow for
|
||||
monitoring the bus during debug, thus the need for this module parameter.
|
||||
Specify the bus speed in kHz.
|
||||
Available bus frequency settings:
|
||||
0 no change
|
||||
80 kHz
|
||||
100 kHz
|
||||
400 kHz
|
||||
1000 kHz
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The S12xx series of SOCs have a pair of integrated SMBus 2.0 controllers
|
||||
targeted primarily at the microserver and storage markets.
|
||||
|
||||
The S12xx series contain a pair of PCI functions. An output of lspci will show
|
||||
something similar to the following:
|
||||
|
||||
00:13.0 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 0
|
||||
00:13.1 System peripheral: Intel Corporation Centerton SMBus 2.0 Controller 1
|
50
Documentation/i2c/busses/i2c-nforce2
Normal file
50
Documentation/i2c/busses/i2c-nforce2
Normal file
|
@ -0,0 +1,50 @@
|
|||
Kernel driver i2c-nforce2
|
||||
|
||||
Supported adapters:
|
||||
* nForce2 MCP 10de:0064
|
||||
* nForce2 Ultra 400 MCP 10de:0084
|
||||
* nForce3 Pro150 MCP 10de:00D4
|
||||
* nForce3 250Gb MCP 10de:00E4
|
||||
* nForce4 MCP 10de:0052
|
||||
* nForce4 MCP-04 10de:0034
|
||||
* nForce MCP51 10de:0264
|
||||
* nForce MCP55 10de:0368
|
||||
* nForce MCP61 10de:03EB
|
||||
* nForce MCP65 10de:0446
|
||||
* nForce MCP67 10de:0542
|
||||
* nForce MCP73 10de:07D8
|
||||
* nForce MCP78S 10de:0752
|
||||
* nForce MCP79 10de:0AA2
|
||||
|
||||
Datasheet: not publicly available, but seems to be similar to the
|
||||
AMD-8111 SMBus 2.0 adapter.
|
||||
|
||||
Authors:
|
||||
Hans-Frieder Vogt <hfvogt@gmx.net>,
|
||||
Thomas Leibold <thomas@plx.com>,
|
||||
Patrick Dreker <patrick@dreker.de>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
i2c-nforce2 is a driver for the SMBuses included in the nVidia nForce2 MCP.
|
||||
|
||||
If your 'lspci -v' listing shows something like the following,
|
||||
|
||||
00:01.1 SMBus: nVidia Corporation: Unknown device 0064 (rev a2)
|
||||
Subsystem: Asustek Computer, Inc.: Unknown device 0c11
|
||||
Flags: 66Mhz, fast devsel, IRQ 5
|
||||
I/O ports at c000 [size=32]
|
||||
Capabilities: <available only to root>
|
||||
|
||||
then this driver should support the SMBuses of your motherboard.
|
||||
|
||||
|
||||
Notes
|
||||
-----
|
||||
|
||||
The SMBus adapter in the nForce2 chipset seems to be very similar to the
|
||||
SMBus 2.0 adapter in the AMD-8111 south bridge. However, I could only get
|
||||
the driver to work with direct I/O access, which is different to the EC
|
||||
interface of the AMD-8111. Tested on Asus A7N8X. The ACPI DSDT table of the
|
||||
Asus A7N8X lists two SMBuses, both of which are supported by this driver.
|
68
Documentation/i2c/busses/i2c-ocores
Normal file
68
Documentation/i2c/busses/i2c-ocores
Normal file
|
@ -0,0 +1,68 @@
|
|||
Kernel driver i2c-ocores
|
||||
|
||||
Supported adapters:
|
||||
* OpenCores.org I2C controller by Richard Herveille (see datasheet link)
|
||||
Datasheet: http://www.opencores.org/projects.cgi/web/i2c/overview
|
||||
|
||||
Author: Peter Korsgaard <jacmet@sunsite.dk>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
i2c-ocores is an i2c bus driver for the OpenCores.org I2C controller
|
||||
IP core by Richard Herveille.
|
||||
|
||||
Usage
|
||||
-----
|
||||
|
||||
i2c-ocores uses the platform bus, so you need to provide a struct
|
||||
platform_device with the base address and interrupt number. The
|
||||
dev.platform_data of the device should also point to a struct
|
||||
ocores_i2c_platform_data (see linux/i2c-ocores.h) describing the
|
||||
distance between registers and the input clock speed.
|
||||
There is also a possibility to attach a list of i2c_board_info which
|
||||
the i2c-ocores driver will add to the bus upon creation.
|
||||
|
||||
E.G. something like:
|
||||
|
||||
static struct resource ocores_resources[] = {
|
||||
[0] = {
|
||||
.start = MYI2C_BASEADDR,
|
||||
.end = MYI2C_BASEADDR + 8,
|
||||
.flags = IORESOURCE_MEM,
|
||||
},
|
||||
[1] = {
|
||||
.start = MYI2C_IRQ,
|
||||
.end = MYI2C_IRQ,
|
||||
.flags = IORESOURCE_IRQ,
|
||||
},
|
||||
};
|
||||
|
||||
/* optional board info */
|
||||
struct i2c_board_info ocores_i2c_board_info[] = {
|
||||
{
|
||||
I2C_BOARD_INFO("tsc2003", 0x48),
|
||||
.platform_data = &tsc2003_platform_data,
|
||||
.irq = TSC_IRQ
|
||||
},
|
||||
{
|
||||
I2C_BOARD_INFO("adv7180", 0x42 >> 1),
|
||||
.irq = ADV_IRQ
|
||||
}
|
||||
};
|
||||
|
||||
static struct ocores_i2c_platform_data myi2c_data = {
|
||||
.regstep = 2, /* two bytes between registers */
|
||||
.clock_khz = 50000, /* input clock of 50MHz */
|
||||
.devices = ocores_i2c_board_info, /* optional table of devices */
|
||||
.num_devices = ARRAY_SIZE(ocores_i2c_board_info), /* table size */
|
||||
};
|
||||
|
||||
static struct platform_device myi2c = {
|
||||
.name = "ocores-i2c",
|
||||
.dev = {
|
||||
.platform_data = &myi2c_data,
|
||||
},
|
||||
.num_resources = ARRAY_SIZE(ocores_resources),
|
||||
.resource = ocores_resources,
|
||||
};
|
177
Documentation/i2c/busses/i2c-parport
Normal file
177
Documentation/i2c/busses/i2c-parport
Normal file
|
@ -0,0 +1,177 @@
|
|||
Kernel driver i2c-parport
|
||||
|
||||
Author: Jean Delvare <jdelvare@suse.de>
|
||||
|
||||
This is a unified driver for several i2c-over-parallel-port adapters,
|
||||
such as the ones made by Philips, Velleman or ELV. This driver is
|
||||
meant as a replacement for the older, individual drivers:
|
||||
* i2c-philips-par
|
||||
* i2c-elv
|
||||
* i2c-velleman
|
||||
* video/i2c-parport (NOT the same as this one, dedicated to home brew
|
||||
teletext adapters)
|
||||
|
||||
It currently supports the following devices:
|
||||
* (type=0) Philips adapter
|
||||
* (type=1) home brew teletext adapter
|
||||
* (type=2) Velleman K8000 adapter
|
||||
* (type=3) ELV adapter
|
||||
* (type=4) Analog Devices ADM1032 evaluation board
|
||||
* (type=5) Analog Devices evaluation boards: ADM1025, ADM1030, ADM1031
|
||||
* (type=6) Barco LPT->DVI (K5800236) adapter
|
||||
* (type=7) One For All JP1 parallel port adapter
|
||||
|
||||
These devices use different pinout configurations, so you have to tell
|
||||
the driver what you have, using the type module parameter. There is no
|
||||
way to autodetect the devices. Support for different pinout configurations
|
||||
can be easily added when needed.
|
||||
|
||||
Earlier kernels defaulted to type=0 (Philips). But now, if the type
|
||||
parameter is missing, the driver will simply fail to initialize.
|
||||
|
||||
SMBus alert support is available on adapters which have this line properly
|
||||
connected to the parallel port's interrupt pin.
|
||||
|
||||
|
||||
Building your own adapter
|
||||
-------------------------
|
||||
|
||||
If you want to build you own i2c-over-parallel-port adapter, here is
|
||||
a sample electronics schema (credits go to Sylvain Munaut):
|
||||
|
||||
Device PC
|
||||
Side ___________________Vdd (+) Side
|
||||
| | |
|
||||
--- --- ---
|
||||
| | | | | |
|
||||
|R| |R| |R|
|
||||
| | | | | |
|
||||
--- --- ---
|
||||
| | |
|
||||
| | /| |
|
||||
SCL ----------x--------o |-----------x------------------- pin 2
|
||||
| \| | |
|
||||
| | |
|
||||
| |\ | |
|
||||
SDA ----------x----x---| o---x--------------------------- pin 13
|
||||
| |/ |
|
||||
| |
|
||||
| /| |
|
||||
---------o |----------------x-------------- pin 3
|
||||
\| | |
|
||||
| |
|
||||
--- ---
|
||||
| | | |
|
||||
|R| |R|
|
||||
| | | |
|
||||
--- ---
|
||||
| |
|
||||
### ###
|
||||
GND GND
|
||||
|
||||
Remarks:
|
||||
- This is the exact pinout and electronics used on the Analog Devices
|
||||
evaluation boards.
|
||||
/|
|
||||
- All inverters -o |- must be 74HC05, they must be open collector output.
|
||||
\|
|
||||
- All resitors are 10k.
|
||||
- Pins 18-25 of the parallel port connected to GND.
|
||||
- Pins 4-9 (D2-D7) could be used as VDD is the driver drives them high.
|
||||
The ADM1032 evaluation board uses D4-D7. Beware that the amount of
|
||||
current you can draw from the parallel port is limited. Also note that
|
||||
all connected lines MUST BE driven at the same state, else you'll short
|
||||
circuit the output buffers! So plugging the I2C adapter after loading
|
||||
the i2c-parport module might be a good safety since data line state
|
||||
prior to init may be unknown.
|
||||
- This is 5V!
|
||||
- Obviously you cannot read SCL (so it's not really standard-compliant).
|
||||
Pretty easy to add, just copy the SDA part and use another input pin.
|
||||
That would give (ELV compatible pinout):
|
||||
|
||||
|
||||
Device PC
|
||||
Side ______________________________Vdd (+) Side
|
||||
| | | |
|
||||
--- --- --- ---
|
||||
| | | | | | | |
|
||||
|R| |R| |R| |R|
|
||||
| | | | | | | |
|
||||
--- --- --- ---
|
||||
| | | |
|
||||
| | |\ | |
|
||||
SCL ----------x--------x--| o---x------------------------ pin 15
|
||||
| | |/ |
|
||||
| | |
|
||||
| | /| |
|
||||
| ---o |-------------x-------------- pin 2
|
||||
| \| | |
|
||||
| | |
|
||||
| | |
|
||||
| |\ | |
|
||||
SDA ---------------x---x--| o--------x------------------- pin 10
|
||||
| |/ |
|
||||
| |
|
||||
| /| |
|
||||
---o |------------------x--------- pin 3
|
||||
\| | |
|
||||
| |
|
||||
--- ---
|
||||
| | | |
|
||||
|R| |R|
|
||||
| | | |
|
||||
--- ---
|
||||
| |
|
||||
### ###
|
||||
GND GND
|
||||
|
||||
|
||||
If possible, you should use the same pinout configuration as existing
|
||||
adapters do, so you won't even have to change the code.
|
||||
|
||||
|
||||
Similar (but different) drivers
|
||||
-------------------------------
|
||||
|
||||
This driver is NOT the same as the i2c-pport driver found in the i2c
|
||||
package. The i2c-pport driver makes use of modern parallel port features so
|
||||
that you don't need additional electronics. It has other restrictions
|
||||
however, and was not ported to Linux 2.6 (yet).
|
||||
|
||||
This driver is also NOT the same as the i2c-pcf-epp driver found in the
|
||||
lm_sensors package. The i2c-pcf-epp driver doesn't use the parallel port as
|
||||
an I2C bus directly. Instead, it uses it to control an external I2C bus
|
||||
master. That driver was not ported to Linux 2.6 (yet) either.
|
||||
|
||||
|
||||
Legacy documentation for Velleman adapter
|
||||
-----------------------------------------
|
||||
|
||||
Useful links:
|
||||
Velleman http://www.velleman.be/
|
||||
Velleman K8000 Howto http://howto.htlw16.ac.at/k8000-howto.html
|
||||
|
||||
The project has lead to new libs for the Velleman K8000 and K8005:
|
||||
LIBK8000 v1.99.1 and LIBK8005 v0.21
|
||||
With these libs, you can control the K8000 interface card and the K8005
|
||||
stepper motor card with the simple commands which are in the original
|
||||
Velleman software, like SetIOchannel, ReadADchannel, SendStepCCWFull and
|
||||
many more, using /dev/velleman.
|
||||
http://home.wanadoo.nl/hihihi/libk8000.htm
|
||||
http://home.wanadoo.nl/hihihi/libk8005.htm
|
||||
http://struyve.mine.nu:8080/index.php?block=k8000
|
||||
http://sourceforge.net/projects/libk8005/
|
||||
|
||||
|
||||
One For All JP1 parallel port adapter
|
||||
-------------------------------------
|
||||
|
||||
The JP1 project revolves around a set of remote controls which expose
|
||||
the I2C bus their internal configuration EEPROM lives on via a 6 pin
|
||||
jumper in the battery compartment. More details can be found at:
|
||||
|
||||
http://www.hifi-remote.com/jp1/
|
||||
|
||||
Details of the simple parallel port hardware can be found at:
|
||||
|
||||
http://www.hifi-remote.com/jp1/hardware.shtml
|
22
Documentation/i2c/busses/i2c-parport-light
Normal file
22
Documentation/i2c/busses/i2c-parport-light
Normal file
|
@ -0,0 +1,22 @@
|
|||
Kernel driver i2c-parport-light
|
||||
|
||||
Author: Jean Delvare <jdelvare@suse.de>
|
||||
|
||||
This driver is a light version of i2c-parport. It doesn't depend
|
||||
on the parport driver, and uses direct I/O access instead. This might be
|
||||
preferred on embedded systems where wasting memory for the clean but heavy
|
||||
parport handling is not an option. The drawback is a reduced portability
|
||||
and the impossibility to daisy-chain other parallel port devices.
|
||||
|
||||
Please see i2c-parport for documentation.
|
||||
|
||||
Module parameters:
|
||||
|
||||
* type: type of adapter (see i2c-parport or modinfo)
|
||||
|
||||
* base: base I/O address
|
||||
Default is 0x378 which is fairly common for parallel ports, at least on PC.
|
||||
|
||||
* irq: optional IRQ
|
||||
This must be passed if you want SMBus alert support, assuming your adapter
|
||||
actually supports this.
|
23
Documentation/i2c/busses/i2c-pca-isa
Normal file
23
Documentation/i2c/busses/i2c-pca-isa
Normal file
|
@ -0,0 +1,23 @@
|
|||
Kernel driver i2c-pca-isa
|
||||
|
||||
Supported adapters:
|
||||
This driver supports ISA boards using the Philips PCA 9564
|
||||
Parallel bus to I2C bus controller
|
||||
|
||||
Author: Ian Campbell <icampbell@arcom.com>, Arcom Control Systems
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* base int
|
||||
I/O base address
|
||||
* irq int
|
||||
IRQ interrupt
|
||||
* clock int
|
||||
Clock rate as described in table 1 of PCA9564 datasheet
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This driver supports ISA boards using the Philips PCA 9564
|
||||
Parallel bus to I2C bus controller
|
110
Documentation/i2c/busses/i2c-piix4
Normal file
110
Documentation/i2c/busses/i2c-piix4
Normal file
|
@ -0,0 +1,110 @@
|
|||
Kernel driver i2c-piix4
|
||||
|
||||
Supported adapters:
|
||||
* Intel 82371AB PIIX4 and PIIX4E
|
||||
* Intel 82443MX (440MX)
|
||||
Datasheet: Publicly available at the Intel website
|
||||
* ServerWorks OSB4, CSB5, CSB6, HT-1000 and HT-1100 southbridges
|
||||
Datasheet: Only available via NDA from ServerWorks
|
||||
* ATI IXP200, IXP300, IXP400, SB600, SB700 and SB800 southbridges
|
||||
Datasheet: Not publicly available
|
||||
SB700 register reference available at:
|
||||
http://support.amd.com/us/Embedded_TechDocs/43009_sb7xx_rrg_pub_1.00.pdf
|
||||
* AMD SP5100 (SB700 derivative found on some server mainboards)
|
||||
Datasheet: Publicly available at the AMD website
|
||||
http://support.amd.com/us/Embedded_TechDocs/44413.pdf
|
||||
* AMD Hudson-2, ML, CZ
|
||||
Datasheet: Not publicly available
|
||||
* Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge
|
||||
Datasheet: Publicly available at the SMSC website http://www.smsc.com
|
||||
|
||||
Authors:
|
||||
Frodo Looijaard <frodol@dds.nl>
|
||||
Philip Edelbrock <phil@netroedge.com>
|
||||
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* force: int
|
||||
Forcibly enable the PIIX4. DANGEROUS!
|
||||
* force_addr: int
|
||||
Forcibly enable the PIIX4 at the given address. EXTREMELY DANGEROUS!
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
The PIIX4 (properly known as the 82371AB) is an Intel chip with a lot of
|
||||
functionality. Among other things, it implements the PCI bus. One of its
|
||||
minor functions is implementing a System Management Bus. This is a true
|
||||
SMBus - you can not access it on I2C levels. The good news is that it
|
||||
natively understands SMBus commands and you do not have to worry about
|
||||
timing problems. The bad news is that non-SMBus devices connected to it can
|
||||
confuse it mightily. Yes, this is known to happen...
|
||||
|
||||
Do 'lspci -v' and see whether it contains an entry like this:
|
||||
|
||||
0000:00:02.3 Bridge: Intel Corp. 82371AB/EB/MB PIIX4 ACPI (rev 02)
|
||||
Flags: medium devsel, IRQ 9
|
||||
|
||||
Bus and device numbers may differ, but the function number must be
|
||||
identical (like many PCI devices, the PIIX4 incorporates a number of
|
||||
different 'functions', which can be considered as separate devices). If you
|
||||
find such an entry, you have a PIIX4 SMBus controller.
|
||||
|
||||
On some computers (most notably, some Dells), the SMBus is disabled by
|
||||
default. If you use the insmod parameter 'force=1', the kernel module will
|
||||
try to enable it. THIS IS VERY DANGEROUS! If the BIOS did not set up a
|
||||
correct address for this module, you could get in big trouble (read:
|
||||
crashes, data corruption, etc.). Try this only as a last resort (try BIOS
|
||||
updates first, for example), and backup first! An even more dangerous
|
||||
option is 'force_addr=<IOPORT>'. This will not only enable the PIIX4 like
|
||||
'force' foes, but it will also set a new base I/O port address. The SMBus
|
||||
parts of the PIIX4 needs a range of 8 of these addresses to function
|
||||
correctly. If these addresses are already reserved by some other device,
|
||||
you will get into big trouble! DON'T USE THIS IF YOU ARE NOT VERY SURE
|
||||
ABOUT WHAT YOU ARE DOING!
|
||||
|
||||
The PIIX4E is just an new version of the PIIX4; it is supported as well.
|
||||
The PIIX/PIIX3 does not implement an SMBus or I2C bus, so you can't use
|
||||
this driver on those mainboards.
|
||||
|
||||
The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are
|
||||
identical to the PIIX4 in I2C/SMBus support.
|
||||
|
||||
The AMD SB700, SB800, SP5100 and Hudson-2 chipsets implement two
|
||||
PIIX4-compatible SMBus controllers. If your BIOS initializes the
|
||||
secondary controller, it will be detected by this driver as
|
||||
an "Auxiliary SMBus Host Controller".
|
||||
|
||||
If you own Force CPCI735 motherboard or other OSB4 based systems you may need
|
||||
to change the SMBus Interrupt Select register so the SMBus controller uses
|
||||
the SMI mode.
|
||||
|
||||
1) Use lspci command and locate the PCI device with the SMBus controller:
|
||||
00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 4f)
|
||||
The line may vary for different chipsets. Please consult the driver source
|
||||
for all possible PCI ids (and lspci -n to match them). Lets assume the
|
||||
device is located at 00:0f.0.
|
||||
2) Now you just need to change the value in 0xD2 register. Get it first with
|
||||
command: lspci -xxx -s 00:0f.0
|
||||
If the value is 0x3 then you need to change it to 0x1
|
||||
setpci -s 00:0f.0 d2.b=1
|
||||
|
||||
Please note that you don't need to do that in all cases, just when the SMBus is
|
||||
not working properly.
|
||||
|
||||
|
||||
Hardware-specific issues
|
||||
------------------------
|
||||
|
||||
This driver will refuse to load on IBM systems with an Intel PIIX4 SMBus.
|
||||
Some of these machines have an RFID EEPROM (24RF08) connected to the SMBus,
|
||||
which can easily get corrupted due to a state machine bug. These are mostly
|
||||
Thinkpad laptops, but desktop systems may also be affected. We have no list
|
||||
of all affected systems, so the only safe solution was to prevent access to
|
||||
the SMBus on all IBM systems (detected using DMI data.)
|
||||
|
||||
For additional information, read:
|
||||
http://www.lm-sensors.org/browser/lm-sensors/trunk/README
|
59
Documentation/i2c/busses/i2c-sis5595
Normal file
59
Documentation/i2c/busses/i2c-sis5595
Normal file
|
@ -0,0 +1,59 @@
|
|||
Kernel driver i2c-sis5595
|
||||
|
||||
Authors:
|
||||
Frodo Looijaard <frodol@dds.nl>,
|
||||
Mark D. Studebaker <mdsxyz123@yahoo.com>,
|
||||
Philip Edelbrock <phil@netroedge.com>
|
||||
|
||||
Supported adapters:
|
||||
* Silicon Integrated Systems Corp. SiS5595 Southbridge
|
||||
Datasheet: Publicly available at the Silicon Integrated Systems Corp. site.
|
||||
|
||||
Note: all have mfr. ID 0x1039.
|
||||
|
||||
SUPPORTED PCI ID
|
||||
5595 0008
|
||||
|
||||
Note: these chips contain a 0008 device which is incompatible with the
|
||||
5595. We recognize these by the presence of the listed
|
||||
"blacklist" PCI ID and refuse to load.
|
||||
|
||||
NOT SUPPORTED PCI ID BLACKLIST PCI ID
|
||||
540 0008 0540
|
||||
550 0008 0550
|
||||
5513 0008 5511
|
||||
5581 0008 5597
|
||||
5582 0008 5597
|
||||
5597 0008 5597
|
||||
5598 0008 5597/5598
|
||||
630 0008 0630
|
||||
645 0008 0645
|
||||
646 0008 0646
|
||||
648 0008 0648
|
||||
650 0008 0650
|
||||
651 0008 0651
|
||||
730 0008 0730
|
||||
735 0008 0735
|
||||
745 0008 0745
|
||||
746 0008 0746
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* force_addr=0xaddr Set the I/O base address. Useful for boards
|
||||
that don't set the address in the BIOS. Does not do a
|
||||
PCI force; the device must still be present in lspci.
|
||||
Don't use this unless the driver complains that the
|
||||
base address is not set.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
i2c-sis5595 is a true SMBus host driver for motherboards with the SiS5595
|
||||
southbridges.
|
||||
|
||||
WARNING: If you are trying to access the integrated sensors on the SiS5595
|
||||
chip, you want the sis5595 driver for those, not this driver. This driver
|
||||
is a BUS driver, not a CHIP driver. A BUS driver is used by other CHIP
|
||||
drivers to access chips on the bus.
|
||||
|
58
Documentation/i2c/busses/i2c-sis630
Normal file
58
Documentation/i2c/busses/i2c-sis630
Normal file
|
@ -0,0 +1,58 @@
|
|||
Kernel driver i2c-sis630
|
||||
|
||||
Supported adapters:
|
||||
* Silicon Integrated Systems Corp (SiS)
|
||||
630 chipset (Datasheet: available at http://www.sfr-fresh.com/linux)
|
||||
730 chipset
|
||||
964 chipset
|
||||
* Possible other SiS chipsets ?
|
||||
|
||||
Author: Alexander Malysh <amalysh@web.de>
|
||||
Amaury Decrême <amaury.decreme@gmail.com> - SiS964 support
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* force = [1|0] Forcibly enable the SIS630. DANGEROUS!
|
||||
This can be interesting for chipsets not named
|
||||
above to check if it works for you chipset, but DANGEROUS!
|
||||
|
||||
* high_clock = [1|0] Forcibly set Host Master Clock to 56KHz (default,
|
||||
what your BIOS use). DANGEROUS! This should be a bit
|
||||
faster, but freeze some systems (i.e. my Laptop).
|
||||
SIS630/730 chip only.
|
||||
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This SMBus only driver is known to work on motherboards with the above
|
||||
named chipsets.
|
||||
|
||||
If you see something like this:
|
||||
|
||||
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 630 Host (rev 31)
|
||||
00:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513
|
||||
|
||||
or like this:
|
||||
|
||||
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 730 Host (rev 02)
|
||||
00:01.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513
|
||||
|
||||
or like this:
|
||||
|
||||
00:00.0 Host bridge: Silicon Integrated Systems [SiS] 760/M760 Host (rev 02)
|
||||
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] SiS964 [MuTIOL Media IO]
|
||||
LPC Controller (rev 36)
|
||||
|
||||
in your 'lspci' output , then this driver is for your chipset.
|
||||
|
||||
Thank You
|
||||
---------
|
||||
Philip Edelbrock <phil@netroedge.com>
|
||||
- testing SiS730 support
|
||||
Mark M. Hoffman <mhoffman@lightlink.com>
|
||||
- bug fixes
|
||||
|
||||
To anyone else which I forgot here ;), thanks!
|
||||
|
73
Documentation/i2c/busses/i2c-sis96x
Normal file
73
Documentation/i2c/busses/i2c-sis96x
Normal file
|
@ -0,0 +1,73 @@
|
|||
Kernel driver i2c-sis96x
|
||||
|
||||
Replaces 2.4.x i2c-sis645
|
||||
|
||||
Supported adapters:
|
||||
* Silicon Integrated Systems Corp (SiS)
|
||||
Any combination of these host bridges:
|
||||
645, 645DX (aka 646), 648, 650, 651, 655, 735, 745, 746
|
||||
and these south bridges:
|
||||
961, 962, 963(L)
|
||||
|
||||
Author: Mark M. Hoffman <mhoffman@lightlink.com>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
This SMBus only driver is known to work on motherboards with the above
|
||||
named chipset combinations. The driver was developed without benefit of a
|
||||
proper datasheet from SiS. The SMBus registers are assumed compatible with
|
||||
those of the SiS630, although they are located in a completely different
|
||||
place. Thanks to Alexander Malysh <amalysh@web.de> for providing the
|
||||
SiS630 datasheet (and driver).
|
||||
|
||||
The command "lspci" as root should produce something like these lines:
|
||||
|
||||
00:00.0 Host bridge: Silicon Integrated Systems [SiS]: Unknown device 0645
|
||||
00:02.0 ISA bridge: Silicon Integrated Systems [SiS] 85C503/5513
|
||||
00:02.1 SMBus: Silicon Integrated Systems [SiS]: Unknown device 0016
|
||||
|
||||
or perhaps this...
|
||||
|
||||
00:00.0 Host bridge: Silicon Integrated Systems [SiS]: Unknown device 0645
|
||||
00:02.0 ISA bridge: Silicon Integrated Systems [SiS]: Unknown device 0961
|
||||
00:02.1 SMBus: Silicon Integrated Systems [SiS]: Unknown device 0016
|
||||
|
||||
(kernel versions later than 2.4.18 may fill in the "Unknown"s)
|
||||
|
||||
If you can't see it please look on quirk_sis_96x_smbus
|
||||
(drivers/pci/quirks.c) (also if southbridge detection fails)
|
||||
|
||||
I suspect that this driver could be made to work for the following SiS
|
||||
chipsets as well: 635, and 635T. If anyone owns a board with those chips
|
||||
AND is willing to risk crashing & burning an otherwise well-behaved kernel
|
||||
in the name of progress... please contact me at <mhoffman@lightlink.com> or
|
||||
via the linux-i2c mailing list: <linux-i2c@vger.kernel.org>. Please send bug
|
||||
reports and/or success stories as well.
|
||||
|
||||
|
||||
TO DOs
|
||||
------
|
||||
|
||||
* The driver does not support SMBus block reads/writes; I may add them if a
|
||||
scenario is found where they're needed.
|
||||
|
||||
|
||||
Thank You
|
||||
---------
|
||||
|
||||
Mark D. Studebaker <mdsxyz123@yahoo.com>
|
||||
- design hints and bug fixes
|
||||
Alexander Maylsh <amalysh@web.de>
|
||||
- ditto, plus an important datasheet... almost the one I really wanted
|
||||
Hans-Günter Lütke Uphues <hg_lu@t-online.de>
|
||||
- patch for SiS735
|
||||
Robert Zwerus <arzie@dds.nl>
|
||||
- testing for SiS645DX
|
||||
Kianusch Sayah Karadji <kianusch@sk-tech.net>
|
||||
- patch for SiS645DX/962
|
||||
Ken Healy
|
||||
- patch for SiS655
|
||||
|
||||
To anyone else who has written w/ feedback, thanks!
|
||||
|
46
Documentation/i2c/busses/i2c-taos-evm
Normal file
46
Documentation/i2c/busses/i2c-taos-evm
Normal file
|
@ -0,0 +1,46 @@
|
|||
Kernel driver i2c-taos-evm
|
||||
|
||||
Author: Jean Delvare <jdelvare@suse.de>
|
||||
|
||||
This is a driver for the evaluation modules for TAOS I2C/SMBus chips.
|
||||
The modules include an SMBus master with limited capabilities, which can
|
||||
be controlled over the serial port. Virtually all evaluation modules
|
||||
are supported, but a few lines of code need to be added for each new
|
||||
module to instantiate the right I2C chip on the bus. Obviously, a driver
|
||||
for the chip in question is also needed.
|
||||
|
||||
Currently supported devices are:
|
||||
|
||||
* TAOS TSL2550 EVM
|
||||
|
||||
For additional information on TAOS products, please see
|
||||
http://www.taosinc.com/
|
||||
|
||||
|
||||
Using this driver
|
||||
-----------------
|
||||
|
||||
In order to use this driver, you'll need the serport driver, and the
|
||||
inputattach tool, which is part of the input-utils package. The following
|
||||
commands will tell the kernel that you have a TAOS EVM on the first
|
||||
serial port:
|
||||
|
||||
# modprobe serport
|
||||
# inputattach --taos-evm /dev/ttyS0
|
||||
|
||||
|
||||
Technical details
|
||||
-----------------
|
||||
|
||||
Only 4 SMBus transaction types are supported by the TAOS evaluation
|
||||
modules:
|
||||
* Receive Byte
|
||||
* Send Byte
|
||||
* Read Byte
|
||||
* Write Byte
|
||||
|
||||
The communication protocol is text-based and pretty simple. It is
|
||||
described in a PDF document on the CD which comes with the evaluation
|
||||
module. The communication is rather slow, because the serial port has
|
||||
to operate at 1200 bps. However, I don't think this is a big concern in
|
||||
practice, as these modules are meant for evaluation and testing only.
|
34
Documentation/i2c/busses/i2c-via
Normal file
34
Documentation/i2c/busses/i2c-via
Normal file
|
@ -0,0 +1,34 @@
|
|||
Kernel driver i2c-via
|
||||
|
||||
Supported adapters:
|
||||
* VIA Technologies, InC. VT82C586B
|
||||
Datasheet: Publicly available at the VIA website
|
||||
|
||||
Author: Kyösti Mälkki <kmalkki@cc.hut.fi>
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
i2c-via is an i2c bus driver for motherboards with VIA chipset.
|
||||
|
||||
The following VIA pci chipsets are supported:
|
||||
- MVP3, VP3, VP2/97, VPX/97
|
||||
- others with South bridge VT82C586B
|
||||
|
||||
Your lspci listing must show this :
|
||||
|
||||
Bridge: VIA Technologies, Inc. VT82C586B ACPI (rev 10)
|
||||
|
||||
Problems?
|
||||
|
||||
Q: You have VT82C586B on the motherboard, but not in the listing.
|
||||
|
||||
A: Go to your BIOS setup, section PCI devices or similar.
|
||||
Turn USB support on, and try again.
|
||||
|
||||
Q: No error messages, but still i2c doesn't seem to work.
|
||||
|
||||
A: This can happen. This driver uses the pins VIA recommends in their
|
||||
datasheets, but there are several ways the motherboard manufacturer
|
||||
can actually wire the lines.
|
||||
|
73
Documentation/i2c/busses/i2c-viapro
Normal file
73
Documentation/i2c/busses/i2c-viapro
Normal file
|
@ -0,0 +1,73 @@
|
|||
Kernel driver i2c-viapro
|
||||
|
||||
Supported adapters:
|
||||
* VIA Technologies, Inc. VT82C596A/B
|
||||
Datasheet: Sometimes available at the VIA website
|
||||
|
||||
* VIA Technologies, Inc. VT82C686A/B
|
||||
Datasheet: Sometimes available at the VIA website
|
||||
|
||||
* VIA Technologies, Inc. VT8231, VT8233, VT8233A
|
||||
Datasheet: available on request from VIA
|
||||
|
||||
* VIA Technologies, Inc. VT8235, VT8237R, VT8237A, VT8237S, VT8251
|
||||
Datasheet: available on request and under NDA from VIA
|
||||
|
||||
* VIA Technologies, Inc. CX700
|
||||
Datasheet: available on request and under NDA from VIA
|
||||
|
||||
* VIA Technologies, Inc. VX800/VX820
|
||||
Datasheet: available on http://linux.via.com.tw
|
||||
|
||||
* VIA Technologies, Inc. VX855/VX875
|
||||
Datasheet: available on http://linux.via.com.tw
|
||||
|
||||
* VIA Technologies, Inc. VX900
|
||||
Datasheet: available on http://linux.via.com.tw
|
||||
|
||||
Authors:
|
||||
Kyösti Mälkki <kmalkki@cc.hut.fi>,
|
||||
Mark D. Studebaker <mdsxyz123@yahoo.com>,
|
||||
Jean Delvare <jdelvare@suse.de>
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* force: int
|
||||
Forcibly enable the SMBus controller. DANGEROUS!
|
||||
* force_addr: int
|
||||
Forcibly enable the SMBus at the given address. EXTREMELY DANGEROUS!
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
i2c-viapro is a true SMBus host driver for motherboards with one of the
|
||||
supported VIA south bridges.
|
||||
|
||||
Your lspci -n listing must show one of these :
|
||||
|
||||
device 1106:3050 (VT82C596A function 3)
|
||||
device 1106:3051 (VT82C596B function 3)
|
||||
device 1106:3057 (VT82C686 function 4)
|
||||
device 1106:3074 (VT8233)
|
||||
device 1106:3147 (VT8233A)
|
||||
device 1106:8235 (VT8231 function 4)
|
||||
device 1106:3177 (VT8235)
|
||||
device 1106:3227 (VT8237R)
|
||||
device 1106:3337 (VT8237A)
|
||||
device 1106:3372 (VT8237S)
|
||||
device 1106:3287 (VT8251)
|
||||
device 1106:8324 (CX700)
|
||||
device 1106:8353 (VX800/VX820)
|
||||
device 1106:8409 (VX855/VX875)
|
||||
device 1106:8410 (VX900)
|
||||
|
||||
If none of these show up, you should look in the BIOS for settings like
|
||||
enable ACPI / SMBus or even USB.
|
||||
|
||||
Except for the oldest chips (VT82C596A/B, VT82C686A and most probably
|
||||
VT8231), this driver supports I2C block transactions. Such transactions
|
||||
are mainly useful to read from and write to EEPROMs.
|
||||
|
||||
The CX700/VX800/VX820 additionally appears to support SMBus PEC, although
|
||||
this driver doesn't implement it yet.
|
32
Documentation/i2c/busses/scx200_acb
Normal file
32
Documentation/i2c/busses/scx200_acb
Normal file
|
@ -0,0 +1,32 @@
|
|||
Kernel driver scx200_acb
|
||||
|
||||
Author: Christer Weinigel <wingel@nano-system.com>
|
||||
|
||||
The driver supersedes the older, never merged driver named i2c-nscacb.
|
||||
|
||||
Module Parameters
|
||||
-----------------
|
||||
|
||||
* base: up to 4 ints
|
||||
Base addresses for the ACCESS.bus controllers on SCx200 and SC1100 devices
|
||||
|
||||
By default the driver uses two base addresses 0x820 and 0x840.
|
||||
If you want only one base address, specify the second as 0 so as to
|
||||
override this default.
|
||||
|
||||
Description
|
||||
-----------
|
||||
|
||||
Enable the use of the ACCESS.bus controller on the Geode SCx200 and
|
||||
SC1100 processors and the CS5535 and CS5536 Geode companion devices.
|
||||
|
||||
Device-specific notes
|
||||
---------------------
|
||||
|
||||
The SC1100 WRAP boards are known to use base addresses 0x810 and 0x820.
|
||||
If the scx200_acb driver is built into the kernel, add the following
|
||||
parameter to your boot command line:
|
||||
scx200_acb.base=0x810,0x820
|
||||
If the scx200_acb driver is built as a module, add the following line to
|
||||
a configuration file in /etc/modprobe.d/ instead:
|
||||
options scx200_acb base=0x810,0x820
|
Loading…
Add table
Add a link
Reference in a new issue