* [PATCH v3 0/2] i2c: added driver for Mellanox BlueField SoC
@ 2019-01-30 18:01 Khalil Blaiech
2019-01-30 18:01 ` [PATCH v3 2/2] dt-bindings: i2c: I2C binding " Khalil Blaiech
0 siblings, 1 reply; 3+ messages in thread
From: Khalil Blaiech @ 2019-01-30 18:01 UTC (permalink / raw)
To: Rob Herring, Wolfram Sang, Wolfram Sang, Andy Gross, David Woods
Cc: Khalil Blaiech, linux-i2c, devicetree, arm-soc
Added I2C SMBus driver and device tree bindings documentation.
Changes since v2:
1) Device bindings documentation:
- Omit shared resources from the controller instance.
- Update the 'compatible' property and support the second
generation of the Mellanox BlueField SoC.
- Fix file format; replace spaces with tabs.
2) Device driver source:
- Provide common register definition.
- Update the "compatible" string and add a new entry to
the mlx_i2c_dt_ids array.
- Add a new entry to the mlx_i2c_acpi_ids array tosupport
a new device _HID.
- Update the device probe routines to derive the device
type based on the instance property described in either
devicetree or ACPI.
- Define new handlers to request and release the shared
resources. These handlers relies on the device type.
Khalil Blaiech (2):
i2c: i2c-mlx: I2C SMBus driver for Mellanox BlueField SoC
dt-bindings: i2c: I2C binding for Mellanox BlueField SoC
.../devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt | 71 +
drivers/i2c/busses/Kconfig | 13 +
drivers/i2c/busses/Makefile | 1 +
drivers/i2c/busses/i2c-mlx.c | 2512 ++++++++++++++++++++
4 files changed, 2597 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt
create mode 100644 drivers/i2c/busses/i2c-mlx.c
--
2.1.2
^ permalink raw reply [flat|nested] 3+ messages in thread
* [PATCH v3 2/2] dt-bindings: i2c: I2C binding for Mellanox BlueField SoC
2019-01-30 18:01 [PATCH v3 0/2] i2c: added driver for Mellanox BlueField SoC Khalil Blaiech
@ 2019-01-30 18:01 ` Khalil Blaiech
2019-02-13 22:23 ` Rob Herring
0 siblings, 1 reply; 3+ messages in thread
From: Khalil Blaiech @ 2019-01-30 18:01 UTC (permalink / raw)
To: Rob Herring, Wolfram Sang, Wolfram Sang, David Woods
Cc: Khalil Blaiech, linux-i2c, devicetree, arm-soc
Added device tree bindings documentation for Mellanox BlueField
I2C SMBus controller.
Reviewed-by: David Woods <dwoods@mellanox.com>
Signed-off-by: Khalil Blaiech <kblaiech@mellanox.com>
---
.../devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt | 71 ++++++++++++++++++++++
1 file changed, 71 insertions(+)
create mode 100644 Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt
diff --git a/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt b/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt
new file mode 100644
index 0000000..db20b23
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt
@@ -0,0 +1,71 @@
+Device tree configuration for the Mellanox I2C SMBus on BlueField SoCs
+
+Required Properties:
+- reg : address offset and length of the device registers. The
+ registers consists of a set of dedicated and shared
+ resources:
+
+ 1: Smbus block registers.
+ 2: Cause master registers.
+ 3: Cause slave registers.
+
+ The BlueField SoCs includes three I2C bus controllers;
+ the set of resources <address length> must be defined
+ as follow:
+
+ BlueField 1:
+
+ * i2c bus 0:
+ <0x02804000 0x800> /* Smbus[0] */
+ <0x02801200 0x020> /* Cause Master[0] */
+ <0x02801260 0x020> /* Cause Slave[0] */
+
+ * i2c bus 1:
+ <0x02804800 0x800> /* Smbus[1] */
+ <0x02801220 0x020> /* Cause Master[1] */
+ <0x02801280 0x020> /* Cause Slave[1] */
+
+ * i2c bus 2:
+ <0x02805000 0x800> /* Smbus[2] */
+ <0x02801240 0x020> /* Cause Master[2] */
+ <0x028012a0 0x020> /* Cause Slave[2] */
+
+ BlueField 2:
+
+ * i2c bus 0:
+ <0x02804000 0x800> /* Smbus[0] */
+ <0x02801400 0x020> /* Cause Master[0] */
+ <0x02801540 0x020> /* Cause Slave[0] */
+
+ * i2c bus 1:
+ <0x02804800 0x800> /* Smbus[1] */
+ <0x02801420 0x020> /* Cause Master[1] */
+ <0x02801560 0x020> /* Cause Slave[1] */
+
+ * i2c bus 2:
+ <0x02805000 0x800> /* Smbus[2] */
+ <0x02801440 0x020> /* Cause Master[2] */
+ <0x02801580 0x020> /* Cause Slave[2] */
+
+- compatible : should be "mellanox,i2c-mlxbf1" or "mellanox,i2c-mlxbf2".
+- 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.
+
+Example:
+
+aliases {
+ i2c0 = &i2c_0
+};
+
+i2c_0: i2c {
+ compatible = "mellanox,i2c-mlxbf1";
+ reg = <0x02804000 0x800>,
+ <0x02801200 0x020>,
+ <0x02801260 0x020>;
+ interrupts = <57>;
+ clock-frequency = <100000>;
+};
--
2.1.2
^ permalink raw reply related [flat|nested] 3+ messages in thread
* Re: [PATCH v3 2/2] dt-bindings: i2c: I2C binding for Mellanox BlueField SoC
2019-01-30 18:01 ` [PATCH v3 2/2] dt-bindings: i2c: I2C binding " Khalil Blaiech
@ 2019-02-13 22:23 ` Rob Herring
0 siblings, 0 replies; 3+ messages in thread
From: Rob Herring @ 2019-02-13 22:23 UTC (permalink / raw)
To: Khalil Blaiech
Cc: Wolfram Sang, Wolfram Sang, David Woods, linux-i2c, devicetree,
arm-soc
On Wed, Jan 30, 2019 at 01:01:32PM -0500, Khalil Blaiech wrote:
> Added device tree bindings documentation for Mellanox BlueField
> I2C SMBus controller.
>
> Reviewed-by: David Woods <dwoods@mellanox.com>
> Signed-off-by: Khalil Blaiech <kblaiech@mellanox.com>
> ---
> .../devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt | 71 ++++++++++++++++++++++
> 1 file changed, 71 insertions(+)
> create mode 100644 Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt
>
> diff --git a/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt b/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt
> new file mode 100644
> index 0000000..db20b23
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/i2c/mellanox,i2c-mlxbf.txt
> @@ -0,0 +1,71 @@
> +Device tree configuration for the Mellanox I2C SMBus on BlueField SoCs
> +
> +Required Properties:
> +- reg : address offset and length of the device registers. The
> + registers consists of a set of dedicated and shared
> + resources:
> +
> + 1: Smbus block registers.
> + 2: Cause master registers.
> + 3: Cause slave registers.
> +
> + The BlueField SoCs includes three I2C bus controllers;
> + the set of resources <address length> must be defined
> + as follow:
> +
> + BlueField 1:
> +
> + * i2c bus 0:
> + <0x02804000 0x800> /* Smbus[0] */
> + <0x02801200 0x020> /* Cause Master[0] */
> + <0x02801260 0x020> /* Cause Slave[0] */
> +
> + * i2c bus 1:
> + <0x02804800 0x800> /* Smbus[1] */
> + <0x02801220 0x020> /* Cause Master[1] */
> + <0x02801280 0x020> /* Cause Slave[1] */
> +
> + * i2c bus 2:
> + <0x02805000 0x800> /* Smbus[2] */
> + <0x02801240 0x020> /* Cause Master[2] */
> + <0x028012a0 0x020> /* Cause Slave[2] */
> +
> + BlueField 2:
> +
> + * i2c bus 0:
> + <0x02804000 0x800> /* Smbus[0] */
> + <0x02801400 0x020> /* Cause Master[0] */
> + <0x02801540 0x020> /* Cause Slave[0] */
> +
> + * i2c bus 1:
> + <0x02804800 0x800> /* Smbus[1] */
> + <0x02801420 0x020> /* Cause Master[1] */
> + <0x02801560 0x020> /* Cause Slave[1] */
> +
> + * i2c bus 2:
> + <0x02805000 0x800> /* Smbus[2] */
> + <0x02801440 0x020> /* Cause Master[2] */
> + <0x02801580 0x020> /* Cause Slave[2] */
You can remove all these addresses from the binding. The important part
is just that it is 3 entries and what each entry is.
> +
> +- compatible : should be "mellanox,i2c-mlxbf1" or "mellanox,i2c-mlxbf2".
Usually we put this first.
> +- interrupts : interrupt number.
Some space before tab here.
> +
> +Optional Properties:
> +- clock-frequency : bus frequency used to configure timing registers;
> + allowed values are 100000, 400000 and 1000000;
> + those are expressed in Hz.
What's the default if not present?
> +
> +Example:
> +
> +aliases {
> + i2c0 = &i2c_0
> +};
Don't need to show aliases in examples.
> +
> +i2c_0: i2c {
i2c@2804000
> + compatible = "mellanox,i2c-mlxbf1";
> + reg = <0x02804000 0x800>,
> + <0x02801200 0x020>,
> + <0x02801260 0x020>;
> + interrupts = <57>;
> + clock-frequency = <100000>;
> +};
> --
> 2.1.2
>
^ permalink raw reply [flat|nested] 3+ messages in thread
end of thread, other threads:[~2019-02-13 22:23 UTC | newest]
Thread overview: 3+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2019-01-30 18:01 [PATCH v3 0/2] i2c: added driver for Mellanox BlueField SoC Khalil Blaiech
2019-01-30 18:01 ` [PATCH v3 2/2] dt-bindings: i2c: I2C binding " Khalil Blaiech
2019-02-13 22:23 ` Rob Herring
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).