forked from torvalds/linux
-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Merge branch 'i2c-embedded/for-next' of git://git.pengutronix.de/git/…
…wsa/linux Pull i2c-embedded changes from Wolfram Sang: "Major changes: - lots of devicetree additions for existing drivers. I tried hard to make sure the bindings are proper. In more complicated cases, I requested acks from people having more experience with them than me. That took a bit of extra time and also some time went into discussions with developers about what bindings are and what not. I have the feeling that the workflow with bindings should be improved to scale better. I will spend some more thought on this... - i2c-muxes are succesfully used meanwhile, so we dropped EXPERIMENTAL for them and renamed the drivers to a standard pattern to match the rest of the subsystem. They can also be used with devicetree now. - ixp2000 was removed since the whole platform goes away. - cleanups (strlcpy instead of strcpy, NULL instead of 0) - The rest is typical driver fixes I assume. All patches have been in linux-next at least since v3.4-rc6." Fixed up trivial conflict in arch/arm/mach-lpc32xx/common.c due to the same patch already having come in through the arm/soc trees, with additional patches on top of it. * 'i2c-embedded/for-next' of git://git.pengutronix.de/git/wsa/linux: (35 commits) i2c: davinci: Free requested IRQ in remove i2c: ocores: register OF i2c devices i2c: tegra: notify transfer-complete after clearing status. I2C: xiic: Add OF binding support i2c: Rename last mux driver to standard pattern i2c: tegra: fix 10bit address configuration i2c: muxes: rename first set of drivers to a standard pattern of/i2c: implement of_find_i2c_adapter_by_node i2c: implement i2c_verify_adapter i2c-s3c2410: Add HDMIPHY quirk for S3C2440 i2c-s3c2410: Rework device type handling i2c: muxes are not EXPERIMENTAL anymore i2c/of: Automatically populate i2c mux busses from device tree data. i2c: Add a struct device * parameter to i2c_add_mux_adapter() of/i2c: call i2c_verify_client from of_find_i2c_device_by_node i2c: designware: Add clk_{un}prepare() support i2c: designware: add PM support i2c: ixp2000: remove driver i2c: pnx: add device tree support i2c: imx: don't use strcpy but strlcpy ...
- Loading branch information
Showing
37 changed files
with
483 additions
and
498 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,60 @@ | ||
Common i2c bus multiplexer/switch properties. | ||
|
||
An i2c bus multiplexer/switch will have several child busses that are | ||
numbered uniquely in a device dependent manner. The nodes for an i2c bus | ||
multiplexer/switch will have one child node for each child | ||
bus. | ||
|
||
Required properties: | ||
- #address-cells = <1>; | ||
- #size-cells = <0>; | ||
|
||
Required properties for child nodes: | ||
- #address-cells = <1>; | ||
- #size-cells = <0>; | ||
- reg : The sub-bus number. | ||
|
||
Optional properties for child nodes: | ||
- Other properties specific to the multiplexer/switch hardware. | ||
- Child nodes conforming to i2c bus binding | ||
|
||
|
||
Example : | ||
|
||
/* | ||
An NXP pca9548 8 channel I2C multiplexer at address 0x70 | ||
with two NXP pca8574 GPIO expanders attached, one each to | ||
ports 3 and 4. | ||
*/ | ||
|
||
mux@70 { | ||
compatible = "nxp,pca9548"; | ||
reg = <0x70>; | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
|
||
i2c@3 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
reg = <3>; | ||
|
||
gpio1: gpio@38 { | ||
compatible = "nxp,pca8574"; | ||
reg = <0x38>; | ||
#gpio-cells = <2>; | ||
gpio-controller; | ||
}; | ||
}; | ||
i2c@4 { | ||
#address-cells = <1>; | ||
#size-cells = <0>; | ||
reg = <4>; | ||
|
||
gpio2: gpio@38 { | ||
compatible = "nxp,pca8574"; | ||
reg = <0x38>; | ||
#gpio-cells = <2>; | ||
gpio-controller; | ||
}; | ||
}; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,22 @@ | ||
Xilinx IIC controller: | ||
|
||
Required properties: | ||
- compatible : Must be "xlnx,xps-iic-2.00.a" | ||
- reg : IIC register location and length | ||
- interrupts : IIC controller unterrupt | ||
- #address-cells = <1> | ||
- #size-cells = <0> | ||
|
||
Optional properties: | ||
- Child nodes conforming to i2c bus binding | ||
|
||
Example: | ||
|
||
axi_iic_0: i2c@40800000 { | ||
compatible = "xlnx,xps-iic-2.00.a"; | ||
interrupts = < 1 2 >; | ||
reg = < 0x40800000 0x10000 >; | ||
|
||
#size-cells = <0>; | ||
#address-cells = <1>; | ||
}; |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -1,11 +1,11 @@ | ||
Kernel driver gpio-i2cmux | ||
Kernel driver i2c-gpio-mux | ||
|
||
Author: Peter Korsgaard <[email protected]> | ||
|
||
Description | ||
----------- | ||
|
||
gpio-i2cmux is an i2c mux driver providing access to I2C bus segments | ||
i2c-gpio-mux is an i2c mux driver providing access to I2C bus segments | ||
from a master I2C bus and a hardware MUX controlled through GPIO pins. | ||
|
||
E.G.: | ||
|
@@ -26,16 +26,16 @@ according to the settings of the GPIO pins 1..N. | |
Usage | ||
----- | ||
|
||
gpio-i2cmux uses the platform bus, so you need to provide a struct | ||
i2c-gpio-mux uses the platform bus, so you need to provide a struct | ||
platform_device with the platform_data pointing to a struct | ||
gpio_i2cmux_platform_data with the I2C adapter number of the master | ||
bus, the number of bus segments to create and the GPIO pins used | ||
to control it. See include/linux/gpio-i2cmux.h for details. | ||
to control it. See include/linux/i2c-gpio-mux.h for details. | ||
|
||
E.G. something like this for a MUX providing 4 bus segments | ||
controlled through 3 GPIO pins: | ||
|
||
#include <linux/gpio-i2cmux.h> | ||
#include <linux/i2c-gpio-mux.h> | ||
#include <linux/platform_device.h> | ||
|
||
static const unsigned myboard_gpiomux_gpios[] = { | ||
|
@@ -57,7 +57,7 @@ static struct gpio_i2cmux_platform_data myboard_i2cmux_data = { | |
}; | ||
|
||
static struct platform_device myboard_i2cmux = { | ||
.name = "gpio-i2cmux", | ||
.name = "i2c-gpio-mux", | ||
.id = 0, | ||
.dev = { | ||
.platform_data = &myboard_i2cmux_data, | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
|
@@ -2988,9 +2988,9 @@ GENERIC GPIO I2C MULTIPLEXER DRIVER | |
M: Peter Korsgaard <[email protected]> | ||
L: [email protected] | ||
S: Supported | ||
F: drivers/i2c/muxes/gpio-i2cmux.c | ||
F: include/linux/gpio-i2cmux.h | ||
F: Documentation/i2c/muxes/gpio-i2cmux | ||
F: drivers/i2c/muxes/i2c-mux-gpio.c | ||
F: include/linux/i2c-mux-gpio.h | ||
F: Documentation/i2c/muxes/i2c-mux-gpio | ||
|
||
GENERIC HDLC (WAN) DRIVERS | ||
M: Krzysztof Halasa <[email protected]> | ||
|
@@ -5148,7 +5148,7 @@ PCA9541 I2C BUS MASTER SELECTOR DRIVER | |
M: Guenter Roeck <[email protected]> | ||
L: [email protected] | ||
S: Maintained | ||
F: drivers/i2c/muxes/pca9541.c | ||
F: drivers/i2c/muxes/i2c-mux-pca9541.c | ||
|
||
PCA9564/PCA9665 I2C BUS DRIVER | ||
M: Wolfram Sang <[email protected]> | ||
|
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Oops, something went wrong.