diff options
author | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
---|---|---|
committer | Glenn Elliott <gelliott@cs.unc.edu> | 2012-03-04 19:47:13 -0500 |
commit | c71c03bda1e86c9d5198c5d83f712e695c4f2a1e (patch) | |
tree | ecb166cb3e2b7e2adb3b5e292245fefd23381ac8 /Documentation/i2c | |
parent | ea53c912f8a86a8567697115b6a0d8152beee5c8 (diff) | |
parent | 6a00f206debf8a5c8899055726ad127dbeeed098 (diff) |
Merge branch 'mpi-master' into wip-k-fmlpwip-k-fmlp
Conflicts:
litmus/sched_cedf.c
Diffstat (limited to 'Documentation/i2c')
-rw-r--r-- | Documentation/i2c/busses/i2c-diolan-u2c | 26 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-i801 | 10 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-parport-light | 2 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-sis96x | 2 | ||||
-rw-r--r-- | Documentation/i2c/busses/i2c-taos-evm | 2 | ||||
-rw-r--r-- | Documentation/i2c/instantiating-devices | 2 | ||||
-rw-r--r-- | Documentation/i2c/muxes/gpio-i2cmux | 65 | ||||
-rw-r--r-- | Documentation/i2c/upgrading-clients | 18 | ||||
-rw-r--r-- | Documentation/i2c/writing-clients | 2 |
9 files changed, 113 insertions, 16 deletions
diff --git a/Documentation/i2c/busses/i2c-diolan-u2c b/Documentation/i2c/busses/i2c-diolan-u2c new file mode 100644 index 000000000000..30fe4bb9a069 --- /dev/null +++ b/Documentation/i2c/busses/i2c-diolan-u2c | |||
@@ -0,0 +1,26 @@ | |||
1 | Kernel driver i2c-diolan-u2c | ||
2 | |||
3 | Supported adapters: | ||
4 | * Diolan U2C-12 I2C-USB adapter | ||
5 | Documentation: | ||
6 | http://www.diolan.com/i2c/u2c12.html | ||
7 | |||
8 | Author: Guenter Roeck <guenter.roeck@ericsson.com> | ||
9 | |||
10 | Description | ||
11 | ----------- | ||
12 | |||
13 | This is the driver for the Diolan U2C-12 USB-I2C adapter. | ||
14 | |||
15 | The Diolan U2C-12 I2C-USB Adapter provides a low cost solution to connect | ||
16 | a computer to I2C slave devices using a USB interface. It also supports | ||
17 | connectivity to SPI devices. | ||
18 | |||
19 | This driver only supports the I2C interface of U2C-12. The driver does not use | ||
20 | interrupts. | ||
21 | |||
22 | |||
23 | Module parameters | ||
24 | ----------------- | ||
25 | |||
26 | * frequency: I2C bus frequency | ||
diff --git a/Documentation/i2c/busses/i2c-i801 b/Documentation/i2c/busses/i2c-i801 index e307914a3eda..2871fd500349 100644 --- a/Documentation/i2c/busses/i2c-i801 +++ b/Documentation/i2c/busses/i2c-i801 | |||
@@ -15,10 +15,16 @@ Supported adapters: | |||
15 | * Intel 82801I (ICH9) | 15 | * Intel 82801I (ICH9) |
16 | * Intel EP80579 (Tolapai) | 16 | * Intel EP80579 (Tolapai) |
17 | * Intel 82801JI (ICH10) | 17 | * Intel 82801JI (ICH10) |
18 | * Intel 3400/5 Series (PCH) | 18 | * Intel 5/3400 Series (PCH) |
19 | * Intel Cougar Point (PCH) | 19 | * Intel 6 Series (PCH) |
20 | * Intel Patsburg (PCH) | ||
21 | * Intel DH89xxCC (PCH) | ||
22 | * Intel Panther Point (PCH) | ||
20 | Datasheets: Publicly available at the Intel website | 23 | Datasheets: Publicly available at the Intel website |
21 | 24 | ||
25 | On Intel Patsburg and later chipsets, both the normal host SMBus controller | ||
26 | and the additional 'Integrated Device Function' controllers are supported. | ||
27 | |||
22 | Authors: | 28 | Authors: |
23 | Mark Studebaker <mdsxyz123@yahoo.com> | 29 | Mark Studebaker <mdsxyz123@yahoo.com> |
24 | Jean Delvare <khali@linux-fr.org> | 30 | Jean Delvare <khali@linux-fr.org> |
diff --git a/Documentation/i2c/busses/i2c-parport-light b/Documentation/i2c/busses/i2c-parport-light index bdc9cbb2e0f2..c22ee063e1e5 100644 --- a/Documentation/i2c/busses/i2c-parport-light +++ b/Documentation/i2c/busses/i2c-parport-light | |||
@@ -4,7 +4,7 @@ Author: Jean Delvare <khali@linux-fr.org> | |||
4 | 4 | ||
5 | This driver is a light version of i2c-parport. It doesn't depend | 5 | This driver is a light version of i2c-parport. It doesn't depend |
6 | on the parport driver, and uses direct I/O access instead. This might be | 6 | on the parport driver, and uses direct I/O access instead. This might be |
7 | prefered on embedded systems where wasting memory for the clean but heavy | 7 | preferred on embedded systems where wasting memory for the clean but heavy |
8 | parport handling is not an option. The drawback is a reduced portability | 8 | parport handling is not an option. The drawback is a reduced portability |
9 | and the impossibility to daisy-chain other parallel port devices. | 9 | and the impossibility to daisy-chain other parallel port devices. |
10 | 10 | ||
diff --git a/Documentation/i2c/busses/i2c-sis96x b/Documentation/i2c/busses/i2c-sis96x index 70e6a0cc1e15..0b979f3252a4 100644 --- a/Documentation/i2c/busses/i2c-sis96x +++ b/Documentation/i2c/busses/i2c-sis96x | |||
@@ -35,7 +35,7 @@ or perhaps this... | |||
35 | 35 | ||
36 | (kernel versions later than 2.4.18 may fill in the "Unknown"s) | 36 | (kernel versions later than 2.4.18 may fill in the "Unknown"s) |
37 | 37 | ||
38 | If you cant see it please look on quirk_sis_96x_smbus | 38 | If you can't see it please look on quirk_sis_96x_smbus |
39 | (drivers/pci/quirks.c) (also if southbridge detection fails) | 39 | (drivers/pci/quirks.c) (also if southbridge detection fails) |
40 | 40 | ||
41 | I suspect that this driver could be made to work for the following SiS | 41 | I suspect that this driver could be made to work for the following SiS |
diff --git a/Documentation/i2c/busses/i2c-taos-evm b/Documentation/i2c/busses/i2c-taos-evm index 9146e33be6dd..63f62bcbf592 100644 --- a/Documentation/i2c/busses/i2c-taos-evm +++ b/Documentation/i2c/busses/i2c-taos-evm | |||
@@ -13,7 +13,7 @@ Currently supported devices are: | |||
13 | 13 | ||
14 | * TAOS TSL2550 EVM | 14 | * TAOS TSL2550 EVM |
15 | 15 | ||
16 | For addtional information on TAOS products, please see | 16 | For additional information on TAOS products, please see |
17 | http://www.taosinc.com/ | 17 | http://www.taosinc.com/ |
18 | 18 | ||
19 | 19 | ||
diff --git a/Documentation/i2c/instantiating-devices b/Documentation/i2c/instantiating-devices index 87da405a8597..9edb75d8c9b9 100644 --- a/Documentation/i2c/instantiating-devices +++ b/Documentation/i2c/instantiating-devices | |||
@@ -100,7 +100,7 @@ static int __devinit usb_hcd_pnx4008_probe(struct platform_device *pdev) | |||
100 | (...) | 100 | (...) |
101 | i2c_adap = i2c_get_adapter(2); | 101 | i2c_adap = i2c_get_adapter(2); |
102 | memset(&i2c_info, 0, sizeof(struct i2c_board_info)); | 102 | memset(&i2c_info, 0, sizeof(struct i2c_board_info)); |
103 | strlcpy(i2c_info.name, "isp1301_pnx", I2C_NAME_SIZE); | 103 | strlcpy(i2c_info.type, "isp1301_pnx", I2C_NAME_SIZE); |
104 | isp1301_i2c_client = i2c_new_probed_device(i2c_adap, &i2c_info, | 104 | isp1301_i2c_client = i2c_new_probed_device(i2c_adap, &i2c_info, |
105 | normal_i2c, NULL); | 105 | normal_i2c, NULL); |
106 | i2c_put_adapter(i2c_adap); | 106 | i2c_put_adapter(i2c_adap); |
diff --git a/Documentation/i2c/muxes/gpio-i2cmux b/Documentation/i2c/muxes/gpio-i2cmux new file mode 100644 index 000000000000..811cd78d4cdc --- /dev/null +++ b/Documentation/i2c/muxes/gpio-i2cmux | |||
@@ -0,0 +1,65 @@ | |||
1 | Kernel driver gpio-i2cmux | ||
2 | |||
3 | Author: Peter Korsgaard <peter.korsgaard@barco.com> | ||
4 | |||
5 | Description | ||
6 | ----------- | ||
7 | |||
8 | gpio-i2cmux is an i2c mux driver providing access to I2C bus segments | ||
9 | from a master I2C bus and a hardware MUX controlled through GPIO pins. | ||
10 | |||
11 | E.G.: | ||
12 | |||
13 | ---------- ---------- Bus segment 1 - - - - - | ||
14 | | | SCL/SDA | |-------------- | | | ||
15 | | |------------| | | ||
16 | | | | | Bus segment 2 | | | ||
17 | | Linux | GPIO 1..N | MUX |--------------- Devices | ||
18 | | |------------| | | | | ||
19 | | | | | Bus segment M | ||
20 | | | | |---------------| | | ||
21 | ---------- ---------- - - - - - | ||
22 | |||
23 | SCL/SDA of the master I2C bus is multiplexed to bus segment 1..M | ||
24 | according to the settings of the GPIO pins 1..N. | ||
25 | |||
26 | Usage | ||
27 | ----- | ||
28 | |||
29 | gpio-i2cmux uses the platform bus, so you need to provide a struct | ||
30 | platform_device with the platform_data pointing to a struct | ||
31 | gpio_i2cmux_platform_data with the I2C adapter number of the master | ||
32 | bus, the number of bus segments to create and the GPIO pins used | ||
33 | to control it. See include/linux/gpio-i2cmux.h for details. | ||
34 | |||
35 | E.G. something like this for a MUX providing 4 bus segments | ||
36 | controlled through 3 GPIO pins: | ||
37 | |||
38 | #include <linux/gpio-i2cmux.h> | ||
39 | #include <linux/platform_device.h> | ||
40 | |||
41 | static const unsigned myboard_gpiomux_gpios[] = { | ||
42 | AT91_PIN_PC26, AT91_PIN_PC25, AT91_PIN_PC24 | ||
43 | }; | ||
44 | |||
45 | static const unsigned myboard_gpiomux_values[] = { | ||
46 | 0, 1, 2, 3 | ||
47 | }; | ||
48 | |||
49 | static struct gpio_i2cmux_platform_data myboard_i2cmux_data = { | ||
50 | .parent = 1, | ||
51 | .base_nr = 2, /* optional */ | ||
52 | .values = myboard_gpiomux_values, | ||
53 | .n_values = ARRAY_SIZE(myboard_gpiomux_values), | ||
54 | .gpios = myboard_gpiomux_gpios, | ||
55 | .n_gpios = ARRAY_SIZE(myboard_gpiomux_gpios), | ||
56 | .idle = 4, /* optional */ | ||
57 | }; | ||
58 | |||
59 | static struct platform_device myboard_i2cmux = { | ||
60 | .name = "gpio-i2cmux", | ||
61 | .id = 0, | ||
62 | .dev = { | ||
63 | .platform_data = &myboard_i2cmux_data, | ||
64 | }, | ||
65 | }; | ||
diff --git a/Documentation/i2c/upgrading-clients b/Documentation/i2c/upgrading-clients index 9a45f9bb6a25..d6991625c407 100644 --- a/Documentation/i2c/upgrading-clients +++ b/Documentation/i2c/upgrading-clients | |||
@@ -61,7 +61,7 @@ static int example_attach(struct i2c_adapter *adap, int addr, int kind) | |||
61 | return 0; | 61 | return 0; |
62 | } | 62 | } |
63 | 63 | ||
64 | static int __devexit example_detach(struct i2c_client *client) | 64 | static int example_detach(struct i2c_client *client) |
65 | { | 65 | { |
66 | struct example_state *state = i2c_get_clientdata(client); | 66 | struct example_state *state = i2c_get_clientdata(client); |
67 | 67 | ||
@@ -81,7 +81,7 @@ static struct i2c_driver example_driver = { | |||
81 | .name = "example", | 81 | .name = "example", |
82 | }, | 82 | }, |
83 | .attach_adapter = example_attach_adapter, | 83 | .attach_adapter = example_attach_adapter, |
84 | .detach_client = __devexit_p(example_detach), | 84 | .detach_client = example_detach, |
85 | .suspend = example_suspend, | 85 | .suspend = example_suspend, |
86 | .resume = example_resume, | 86 | .resume = example_resume, |
87 | }; | 87 | }; |
@@ -93,7 +93,7 @@ Updating the client | |||
93 | The new style binding model will check against a list of supported | 93 | The new style binding model will check against a list of supported |
94 | devices and their associated address supplied by the code registering | 94 | devices and their associated address supplied by the code registering |
95 | the busses. This means that the driver .attach_adapter and | 95 | the busses. This means that the driver .attach_adapter and |
96 | .detach_adapter methods can be removed, along with the addr_data, | 96 | .detach_client methods can be removed, along with the addr_data, |
97 | as follows: | 97 | as follows: |
98 | 98 | ||
99 | - static struct i2c_driver example_driver; | 99 | - static struct i2c_driver example_driver; |
@@ -110,14 +110,14 @@ as follows: | |||
110 | 110 | ||
111 | static struct i2c_driver example_driver = { | 111 | static struct i2c_driver example_driver = { |
112 | - .attach_adapter = example_attach_adapter, | 112 | - .attach_adapter = example_attach_adapter, |
113 | - .detach_client = __devexit_p(example_detach), | 113 | - .detach_client = example_detach, |
114 | } | 114 | } |
115 | 115 | ||
116 | Add the probe and remove methods to the i2c_driver, as so: | 116 | Add the probe and remove methods to the i2c_driver, as so: |
117 | 117 | ||
118 | static struct i2c_driver example_driver = { | 118 | static struct i2c_driver example_driver = { |
119 | + .probe = example_probe, | 119 | + .probe = example_probe, |
120 | + .remove = __devexit_p(example_remove), | 120 | + .remove = example_remove, |
121 | } | 121 | } |
122 | 122 | ||
123 | Change the example_attach method to accept the new parameters | 123 | Change the example_attach method to accept the new parameters |
@@ -199,8 +199,8 @@ to delete the i2c_detach_client call. It is possible that you | |||
199 | can also remove the ret variable as it is not not needed for | 199 | can also remove the ret variable as it is not not needed for |
200 | any of the core functions. | 200 | any of the core functions. |
201 | 201 | ||
202 | - static int __devexit example_detach(struct i2c_client *client) | 202 | - static int example_detach(struct i2c_client *client) |
203 | + static int __devexit example_remove(struct i2c_client *client) | 203 | + static int example_remove(struct i2c_client *client) |
204 | { | 204 | { |
205 | struct example_state *state = i2c_get_clientdata(client); | 205 | struct example_state *state = i2c_get_clientdata(client); |
206 | 206 | ||
@@ -253,7 +253,7 @@ static int example_probe(struct i2c_client *client, | |||
253 | return 0; | 253 | return 0; |
254 | } | 254 | } |
255 | 255 | ||
256 | static int __devexit example_remove(struct i2c_client *client) | 256 | static int example_remove(struct i2c_client *client) |
257 | { | 257 | { |
258 | struct example_state *state = i2c_get_clientdata(client); | 258 | struct example_state *state = i2c_get_clientdata(client); |
259 | 259 | ||
@@ -275,7 +275,7 @@ static struct i2c_driver example_driver = { | |||
275 | }, | 275 | }, |
276 | .id_table = example_idtable, | 276 | .id_table = example_idtable, |
277 | .probe = example_probe, | 277 | .probe = example_probe, |
278 | .remove = __devexit_p(example_remove), | 278 | .remove = example_remove, |
279 | .suspend = example_suspend, | 279 | .suspend = example_suspend, |
280 | .resume = example_resume, | 280 | .resume = example_resume, |
281 | }; | 281 | }; |
diff --git a/Documentation/i2c/writing-clients b/Documentation/i2c/writing-clients index 5ebf5af1d716..5aa53374ea2a 100644 --- a/Documentation/i2c/writing-clients +++ b/Documentation/i2c/writing-clients | |||
@@ -38,7 +38,7 @@ static struct i2c_driver foo_driver = { | |||
38 | .name = "foo", | 38 | .name = "foo", |
39 | }, | 39 | }, |
40 | 40 | ||
41 | .id_table = foo_ids, | 41 | .id_table = foo_idtable, |
42 | .probe = foo_probe, | 42 | .probe = foo_probe, |
43 | .remove = foo_remove, | 43 | .remove = foo_remove, |
44 | /* if device autodetection is needed: */ | 44 | /* if device autodetection is needed: */ |