diff options
Diffstat (limited to 'Documentation/i2c')
-rw-r--r-- | Documentation/i2c/busses/i2c-i801 | 3 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-nforce2 | 2 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-ocores | 51 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-piix4 | 40 | ||||
-rw-r--r-- | Documentation/i2c/busses/scx200_acb | 19 |
5 files changed, 105 insertions, 10 deletions
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 index fd4b2712d570..e46c23458242 100644 --- a/Documentation/i2c/busses/i2c-i801 +++ b/Documentation/i2c/busses/i2c-i801 | |||
@@ -21,8 +21,7 @@ Authors: | |||
21 | Module Parameters | 21 | Module Parameters |
22 | ----------------- | 22 | ----------------- |
23 | 23 | ||
24 | * force_addr: int | 24 | None. |
25 | Forcibly enable the ICH at the given address. EXTREMELY DANGEROUS! | ||
26 | 25 | ||
27 | 26 | ||
28 | Description | 27 | Description |
diff --git a/Documentation/i2c/busses/i2c-nforce2 b/Documentation/i2c/busses/i2c-nforce2 index d751282d9b2a..cd49c428a3ab 100644 --- a/Documentation/i2c/busses/i2c-nforce2 +++ b/Documentation/i2c/busses/i2c-nforce2 | |||
@@ -7,6 +7,8 @@ Supported adapters: | |||
7 | * nForce3 250Gb MCP 10de:00E4 | 7 | * nForce3 250Gb MCP 10de:00E4 |
8 | * nForce4 MCP 10de:0052 | 8 | * nForce4 MCP 10de:0052 |
9 | * nForce4 MCP-04 10de:0034 | 9 | * nForce4 MCP-04 10de:0034 |
10 | * nForce4 MCP51 10de:0264 | ||
11 | * nForce4 MCP55 10de:0368 | ||
10 | 12 | ||
11 | Datasheet: not publically available, but seems to be similar to the | 13 | Datasheet: not publically available, but seems to be similar to the |
12 | AMD-8111 SMBus 2.0 adapter. | 14 | AMD-8111 SMBus 2.0 adapter. |
diff --git a/Documentation/i2c/busses/i2c-ocores b/Documentation/i2c/busses/i2c-ocores new file mode 100644 index 000000000000..cfcebb10d14e --- /dev/null +++ b/Documentation/i2c/busses/i2c-ocores | |||
@@ -0,0 +1,51 @@ | |||
1 | Kernel driver i2c-ocores | ||
2 | |||
3 | Supported adapters: | ||
4 | * OpenCores.org I2C controller by Richard Herveille (see datasheet link) | ||
5 | Datasheet: http://www.opencores.org/projects.cgi/web/i2c/overview | ||
6 | |||
7 | Author: Peter Korsgaard <jacmet@sunsite.dk> | ||
8 | |||
9 | Description | ||
10 | ----------- | ||
11 | |||
12 | i2c-ocores is an i2c bus driver for the OpenCores.org I2C controller | ||
13 | IP core by Richard Herveille. | ||
14 | |||
15 | Usage | ||
16 | ----- | ||
17 | |||
18 | i2c-ocores uses the platform bus, so you need to provide a struct | ||
19 | platform_device with the base address and interrupt number. The | ||
20 | dev.platform_data of the device should also point to a struct | ||
21 | ocores_i2c_platform_data (see linux/i2c-ocores.h) describing the | ||
22 | distance between registers and the input clock speed. | ||
23 | |||
24 | E.G. something like: | ||
25 | |||
26 | static struct resource ocores_resources[] = { | ||
27 | [0] = { | ||
28 | .start = MYI2C_BASEADDR, | ||
29 | .end = MYI2C_BASEADDR + 8, | ||
30 | .flags = IORESOURCE_MEM, | ||
31 | }, | ||
32 | [1] = { | ||
33 | .start = MYI2C_IRQ, | ||
34 | .end = MYI2C_IRQ, | ||
35 | .flags = IORESOURCE_IRQ, | ||
36 | }, | ||
37 | }; | ||
38 | |||
39 | static struct ocores_i2c_platform_data myi2c_data = { | ||
40 | .regstep = 2, /* two bytes between registers */ | ||
41 | .clock_khz = 50000, /* input clock of 50MHz */ | ||
42 | }; | ||
43 | |||
44 | static struct platform_device myi2c = { | ||
45 | .name = "ocores-i2c", | ||
46 | .dev = { | ||
47 | .platform_data = &myi2c_data, | ||
48 | }, | ||
49 | .num_resources = ARRAY_SIZE(ocores_resources), | ||
50 | .resource = ocores_resources, | ||
51 | }; | ||
diff --git a/Documentation/i2c/busses/i2c-piix4 b/Documentation/i2c/busses/i2c-piix4 index a1c8f581afed..921476333235 100644 --- a/Documentation/i2c/busses/i2c-piix4 +++ b/Documentation/i2c/busses/i2c-piix4 | |||
@@ -6,6 +6,8 @@ Supported adapters: | |||
6 | Datasheet: Publicly available at the Intel website | 6 | Datasheet: Publicly available at the Intel website |
7 | * ServerWorks OSB4, CSB5, CSB6 and HT-1000 southbridges | 7 | * ServerWorks OSB4, CSB5, CSB6 and HT-1000 southbridges |
8 | Datasheet: Only available via NDA from ServerWorks | 8 | Datasheet: Only available via NDA from ServerWorks |
9 | * ATI IXP southbridges IXP200, IXP300, IXP400 | ||
10 | Datasheet: Not publicly available | ||
9 | * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge | 11 | * Standard Microsystems (SMSC) SLC90E66 (Victory66) southbridge |
10 | Datasheet: Publicly available at the SMSC website http://www.smsc.com | 12 | Datasheet: Publicly available at the SMSC website http://www.smsc.com |
11 | 13 | ||
@@ -21,8 +23,6 @@ Module Parameters | |||
21 | Forcibly enable the PIIX4. DANGEROUS! | 23 | Forcibly enable the PIIX4. DANGEROUS! |
22 | * force_addr: int | 24 | * force_addr: int |
23 | Forcibly enable the PIIX4 at the given address. EXTREMELY DANGEROUS! | 25 | Forcibly enable the PIIX4 at the given address. EXTREMELY DANGEROUS! |
24 | * fix_hstcfg: int | ||
25 | Fix config register. Needed on some boards (Force CPCI735). | ||
26 | 26 | ||
27 | 27 | ||
28 | Description | 28 | Description |
@@ -63,10 +63,36 @@ The PIIX4E is just an new version of the PIIX4; it is supported as well. | |||
63 | The PIIX/PIIX3 does not implement an SMBus or I2C bus, so you can't use | 63 | The PIIX/PIIX3 does not implement an SMBus or I2C bus, so you can't use |
64 | this driver on those mainboards. | 64 | this driver on those mainboards. |
65 | 65 | ||
66 | The ServerWorks Southbridges, the Intel 440MX, and the Victory766 are | 66 | The ServerWorks Southbridges, the Intel 440MX, and the Victory66 are |
67 | identical to the PIIX4 in I2C/SMBus support. | 67 | identical to the PIIX4 in I2C/SMBus support. |
68 | 68 | ||
69 | A few OSB4 southbridges are known to be misconfigured by the BIOS. In this | 69 | If you own Force CPCI735 motherboard or other OSB4 based systems you may need |
70 | case, you have you use the fix_hstcfg module parameter. Do not use it | 70 | to change the SMBus Interrupt Select register so the SMBus controller uses |
71 | unless you know you have to, because in some cases it also breaks | 71 | the SMI mode. |
72 | configuration on southbridges that don't need it. | 72 | |
73 | 1) Use lspci command and locate the PCI device with the SMBus controller: | ||
74 | 00:0f.0 ISA bridge: ServerWorks OSB4 South Bridge (rev 4f) | ||
75 | The line may vary for different chipsets. Please consult the driver source | ||
76 | for all possible PCI ids (and lspci -n to match them). Lets assume the | ||
77 | device is located at 00:0f.0. | ||
78 | 2) Now you just need to change the value in 0xD2 register. Get it first with | ||
79 | command: lspci -xxx -s 00:0f.0 | ||
80 | If the value is 0x3 then you need to change it to 0x1 | ||
81 | setpci -s 00:0f.0 d2.b=1 | ||
82 | |||
83 | Please note that you don't need to do that in all cases, just when the SMBus is | ||
84 | not working properly. | ||
85 | |||
86 | |||
87 | Hardware-specific issues | ||
88 | ------------------------ | ||
89 | |||
90 | This driver will refuse to load on IBM systems with an Intel PIIX4 SMBus. | ||
91 | Some of these machines have an RFID EEPROM (24RF08) connected to the SMBus, | ||
92 | which can easily get corrupted due to a state machine bug. These are mostly | ||
93 | Thinkpad laptops, but desktop systems may also be affected. We have no list | ||
94 | of all affected systems, so the only safe solution was to prevent access to | ||
95 | the SMBus on all IBM systems (detected using DMI data.) | ||
96 | |||
97 | For additional information, read: | ||
98 | http://www2.lm-sensors.nu/~lm78/cvs/lm_sensors2/README.thinkpad | ||
diff --git a/Documentation/i2c/busses/scx200_acb b/Documentation/i2c/busses/scx200_acb index f50e69981ec6..7c07883d4dfc 100644 --- a/Documentation/i2c/busses/scx200_acb +++ b/Documentation/i2c/busses/scx200_acb | |||
@@ -2,14 +2,31 @@ Kernel driver scx200_acb | |||
2 | 2 | ||
3 | Author: Christer Weinigel <wingel@nano-system.com> | 3 | Author: Christer Weinigel <wingel@nano-system.com> |
4 | 4 | ||
5 | The driver supersedes the older, never merged driver named i2c-nscacb. | ||
6 | |||
5 | Module Parameters | 7 | Module Parameters |
6 | ----------------- | 8 | ----------------- |
7 | 9 | ||
8 | * base: int | 10 | * base: up to 4 ints |
9 | Base addresses for the ACCESS.bus controllers on SCx200 and SC1100 devices | 11 | Base addresses for the ACCESS.bus controllers on SCx200 and SC1100 devices |
10 | 12 | ||
13 | By default the driver uses two base addresses 0x820 and 0x840. | ||
14 | If you want only one base address, specify the second as 0 so as to | ||
15 | override this default. | ||
16 | |||
11 | Description | 17 | Description |
12 | ----------- | 18 | ----------- |
13 | 19 | ||
14 | Enable the use of the ACCESS.bus controller on the Geode SCx200 and | 20 | Enable the use of the ACCESS.bus controller on the Geode SCx200 and |
15 | SC1100 processors and the CS5535 and CS5536 Geode companion devices. | 21 | SC1100 processors and the CS5535 and CS5536 Geode companion devices. |
22 | |||
23 | Device-specific notes | ||
24 | --------------------- | ||
25 | |||
26 | The SC1100 WRAP boards are known to use base addresses 0x810 and 0x820. | ||
27 | If the scx200_acb driver is built into the kernel, add the following | ||
28 | parameter to your boot command line: | ||
29 | scx200_acb.base=0x810,0x820 | ||
30 | If the scx200_acb driver is built as a module, add the following line to | ||
31 | the file /etc/modprobe.conf instead: | ||
32 | options scx200_acb base=0x810,0x820 | ||