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/for-5.10' of git://git.kernel.org/pub/scm/linux/ker…
…nel/git/wsa/linux Pull i2c updates from Wolfram Sang: - if a host can be a client, too, the I2C core can now use it to emulate SMBus HostNotify support (STM32 and R-Car added this so far) - also for client mode, a testunit has been added. It can create rare situations on the bus, so host controllers can be tested - a binding has been added to mark the bus as "single-master". This allows for better timeout detections - new driver for Mellanox Bluefield - massive refactoring of the Tegra driver - EEPROMs recognized by the at24 driver can now have custom names - rest is driver updates * 'i2c/for-5.10' of git://git.kernel.org/pub/scm/linux/kernel/git/wsa/linux: (80 commits) Documentation: i2c: add testunit docs to index i2c: tegra: Improve driver module description i2c: tegra: Clean up whitespaces, newlines and indentation i2c: tegra: Clean up and improve comments i2c: tegra: Clean up printk messages i2c: tegra: Clean up variable names i2c: tegra: Improve formatting of variables i2c: tegra: Check errors for both positive and negative values i2c: tegra: Factor out hardware initialization into separate function i2c: tegra: Factor out register polling into separate function i2c: tegra: Factor out packet header setup from tegra_i2c_xfer_msg() i2c: tegra: Factor out error recovery from tegra_i2c_xfer_msg() i2c: tegra: Rename wait/poll functions i2c: tegra: Remove "dma" variable from tegra_i2c_xfer_msg() i2c: tegra: Remove redundant check in tegra_i2c_issue_bus_clear() i2c: tegra: Remove likely/unlikely from the code i2c: tegra: Remove outdated barrier() i2c: tegra: Clean up variable types i2c: tegra: Reorder location of functions in the code i2c: tegra: Clean up probe function ...
- Loading branch information
Showing
41 changed files
with
4,009 additions
and
920 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
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 |
---|---|---|
|
@@ -9,36 +9,53 @@ title: Freescale Low Power Inter IC (LPI2C) for i.MX | |
maintainers: | ||
- Anson Huang <[email protected]> | ||
|
||
allOf: | ||
- $ref: /schemas/i2c/i2c-controller.yaml# | ||
|
||
properties: | ||
compatible: | ||
enum: | ||
- fsl,imx7ulp-lpi2c | ||
- fsl,imx8qxp-lpi2c | ||
- fsl,imx8qm-lpi2c | ||
oneOf: | ||
- enum: | ||
- fsl,imx7ulp-lpi2c | ||
- fsl,imx8qm-lpi2c | ||
- items: | ||
- const: fsl,imx8qxp-lpi2c | ||
- const: fsl,imx7ulp-lpi2c | ||
|
||
reg: | ||
maxItems: 1 | ||
|
||
interrupts: | ||
maxItems: 1 | ||
|
||
assigned-clock-parents: true | ||
assigned-clock-rates: true | ||
assigned-clocks: true | ||
clock-frequency: true | ||
|
||
clock-names: | ||
maxItems: 1 | ||
|
||
clocks: | ||
maxItems: 1 | ||
|
||
power-domains: | ||
maxItems: 1 | ||
|
||
required: | ||
- compatible | ||
- reg | ||
- interrupts | ||
- clocks | ||
|
||
additionalProperties: false | ||
unevaluatedProperties: false | ||
|
||
examples: | ||
- | | ||
#include <dt-bindings/clock/imx7ulp-clock.h> | ||
#include <dt-bindings/interrupt-controller/arm-gic.h> | ||
lpi2c7@40a50000 { | ||
i2c@40a50000 { | ||
compatible = "fsl,imx7ulp-lpi2c"; | ||
reg = <0x40A50000 0x10000>; | ||
interrupt-parent = <&intc>; | ||
|
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 |
---|---|---|
|
@@ -9,6 +9,9 @@ title: Freescale Inter IC (I2C) and High Speed Inter IC (HS-I2C) for i.MX | |
maintainers: | ||
- Wolfram Sang <[email protected]> | ||
|
||
allOf: | ||
- $ref: /schemas/i2c/i2c-controller.yaml# | ||
|
||
properties: | ||
compatible: | ||
oneOf: | ||
|
@@ -18,6 +21,9 @@ properties: | |
- items: | ||
- const: fsl,imx35-i2c | ||
- const: fsl,imx1-i2c | ||
- items: | ||
- const: fsl,imx7d-i2c | ||
- const: fsl,imx21-i2c | ||
- items: | ||
- enum: | ||
- fsl,imx25-i2c | ||
|
@@ -75,7 +81,7 @@ required: | |
- interrupts | ||
- clocks | ||
|
||
additionalProperties: false | ||
unevaluatedProperties: false | ||
|
||
examples: | ||
- | | ||
|
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
42 changes: 42 additions & 0 deletions
42
Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt
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,42 @@ | ||
Device tree configuration for the Mellanox I2C SMBus on BlueField SoCs | ||
|
||
Required Properties: | ||
|
||
- compatible : should be "mellanox,i2c-mlxbf1" or "mellanox,i2c-mlxbf2". | ||
|
||
- reg : address offset and length of the device registers. The | ||
registers consist of the following set of resources: | ||
1) Smbus block registers. | ||
2) Cause master registers. | ||
3) Cause slave registers. | ||
4) Cause coalesce registers (if compatible isn't set | ||
to "mellanox,i2c-mlxbf1"). | ||
|
||
- interrupts : interrupt number. | ||
|
||
Optional Properties: | ||
|
||
- clock-frequency : bus frequency used to configure timing registers; | ||
allowed values are 100000, 400000 and 1000000; | ||
those are expressed in Hz. Default is 100000. | ||
|
||
Example: | ||
|
||
i2c@2804000 { | ||
compatible = "mellanox,i2c-mlxbf1"; | ||
reg = <0x02804000 0x800>, | ||
<0x02801200 0x020>, | ||
<0x02801260 0x020>; | ||
interrupts = <57>; | ||
clock-frequency = <100000>; | ||
}; | ||
|
||
i2c@2808800 { | ||
compatible = "mellanox,i2c-mlxbf2"; | ||
reg = <0x02808800 0x600>, | ||
<0x02808e00 0x020>, | ||
<0x02808e20 0x020>, | ||
<0x02808e40 0x010>; | ||
interrupts = <57>; | ||
clock-frequency = <400000>; | ||
}; |
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
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,69 @@ | ||
.. SPDX-License-Identifier: GPL-2.0 | ||
================================ | ||
Linux I2C slave testunit backend | ||
================================ | ||
|
||
by Wolfram Sang <[email protected]> in 2020 | ||
|
||
This backend can be used to trigger test cases for I2C bus masters which | ||
require a remote device with certain capabilities (and which are usually not so | ||
easy to obtain). Examples include multi-master testing, and SMBus Host Notify | ||
testing. For some tests, the I2C slave controller must be able to switch | ||
between master and slave mode because it needs to send data, too. | ||
|
||
Note that this is a device for testing and debugging. It should not be enabled | ||
in a production build. And while there is some versioning and we try hard to | ||
keep backward compatibility, there is no stable ABI guaranteed! | ||
|
||
Instantiating the device is regular. Example for bus 0, address 0x30: | ||
|
||
# echo "slave-testunit 0x1030" > /sys/bus/i2c/devices/i2c-0/new_device | ||
|
||
After that, you will have a write-only device listening. Reads will just return | ||
an 8-bit version number of the testunit. When writing, the device consists of 4 | ||
8-bit registers and all must be written to start a testcase, i.e. you must | ||
always write 4 bytes to the device. The registers are: | ||
|
||
0x00 CMD - which test to trigger | ||
0x01 DATAL - configuration byte 1 for the test | ||
0x02 DATAH - configuration byte 2 for the test | ||
0x03 DELAY - delay in n * 10ms until test is started | ||
|
||
Using 'i2cset' from the i2c-tools package, the generic command looks like: | ||
|
||
# i2cset -y <bus_num> <testunit_address> <CMD> <DATAL> <DATAH> <DELAY> i | ||
|
||
DELAY is a generic parameter which will delay the execution of the test in CMD. | ||
While a command is running (including the delay), new commands will not be | ||
acknowledged. You need to wait until the old one is completed. | ||
|
||
The commands are described in the following section. An invalid command will | ||
result in the transfer not being acknowledged. | ||
|
||
Commands | ||
-------- | ||
|
||
0x00 NOOP (reserved for future use) | ||
|
||
0x01 READ_BYTES (also needs master mode) | ||
DATAL - address to read data from (lower 7 bits, highest bit currently unused) | ||
DATAH - number of bytes to read | ||
|
||
This is useful to test if your bus master driver is handling multi-master | ||
correctly. You can trigger the testunit to read bytes from another device on | ||
the bus. If the bus master under test also wants to access the bus at the same | ||
time, the bus will be busy. Example to read 128 bytes from device 0x50 after | ||
50ms of delay: | ||
|
||
# i2cset -y 0 0x30 0x01 0x50 0x80 0x05 i | ||
|
||
0x02 SMBUS_HOST_NOTIFY (also needs master mode) | ||
DATAL - low byte of the status word to send | ||
DATAH - high byte of the status word to send | ||
|
||
This test will send an SMBUS_HOST_NOTIFY message to the host. Note that the | ||
status word is currently ignored in the Linux Kernel. Example to send a | ||
notification after 10ms: | ||
|
||
# i2cset -y 0 0x30 0x02 0x42 0x64 0x01 i |
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 |
---|---|---|
|
@@ -11159,6 +11159,12 @@ W: http://www.melfas.com | |
F: Documentation/devicetree/bindings/input/touchscreen/melfas_mip4.txt | ||
F: drivers/input/touchscreen/melfas_mip4.c | ||
|
||
MELLANOX BLUEFIELD I2C DRIVER | ||
M: Khalil Blaiech <[email protected]> | ||
L: [email protected] | ||
S: Supported | ||
F: drivers/i2c/busses/i2c-mlxbf.c | ||
|
||
MELLANOX ETHERNET DRIVER (mlx4_en) | ||
M: Tariq Toukan <[email protected]> | ||
L: [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
Oops, something went wrong.