devicetree.vger.kernel.org archive mirror
 help / color / mirror / Atom feed
* [PATCH v8 0/8] Add tsd,mule-i2c-mux support
@ 2024-09-06 15:54 Farouk Bouabid
  2024-09-06 15:54 ` [PATCH v8 1/8] dt-bindings: i2c: add support for tsd,mule-i2c-mux Farouk Bouabid
                   ` (9 more replies)
  0 siblings, 10 replies; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip, Wolfram Sang

Theobroma Systems Mule is an MCU that emulates a set of I2C devices which
are reachable through an I2C-mux.

The devices on the mux can be selected by writing the appropriate
device number to an I2C config register (0xff) that is not used by
amc6821 logic. This required us to add a new compatible to the amc6821
driver, from which, the new platform device "tsd,mule-i2c-mux" is probed.

The selected device on the mux can be accessed for reading and writing
at I2C address 0x6f.

      +--------+----------------+------------------------------+
      |  Mule                                                  |
 0x18 |        +------------------+                            |
--------+----->|    amc6821       |                            |
      | |      +------------------+                            |
      | +----->| tsd,mule-i2c-mux |---+                        |
      |        +------------------+   |                        |
      |                               V__          +---------+ |
      |                              |   \-------->| isl1208 | |
      |                              |   |         +---------+ |
 0x6f |                              | M |-------->| dev #1  | |
------------------------------------>| U |         +---------+ |
      |                              | X |-------->| dev #2  | |
      |                              |   |         +---------+ |
      |                              |   /-------->| dev #3  | |
      |                              |__/          +---------+ |
      +--------------------------------------------------------+

This patch-series adds support for the tsd,mule-i2c multiplexer
as part of rk3399-puma, px30-ringneck, rk3588-tiger and rk3588-jaguar
boards.

Please merge patch 1 before patch 3
Please merge patches 2, 3 and 4 (and 1) before patches 5, 6, 7, 8

Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>

Changes in v8:
- Rename functions/macro in i2c-mux-mule.c that have "mux_" prefix using
  prefix "mule_i2c_mux_" instead.
- Remove extra "/t" after .driver in i2c-mux-mule.c
- Add a space after "{"" and before "}" for mule_i2c_mux_of_match.
- Link to v7: https://lore.kernel.org/r/20240902-dev-mule-i2c-mux-v7-0-bf7b8f5385ed@cherry.de

Changes in v7:
- Merged __mux_select and mux_select functions in patch 2
- Removed unnecessary prints after mux_alloc and add_adapter calls in patch 2
- Added Guenter's Reviewed-by tag
- Added Rob's Reviewed-by tag
- Added Wolfram's Reviewed/Acked-by tags
- Link to v6: https://lore.kernel.org/r/20240725-dev-mule-i2c-mux-v6-0-f9f6d7b60fb2@cherry.de

Changes in v6:
- Move ti,amc6821 from trivial-devices into its own dt-bindings
- Use same regmap config structure for both tsd,mule and ti,amc6821
- Remove max_register from regmap config structure for amc6821

- Link to v5: https://lore.kernel.org/r/20240708-dev-mule-i2c-mux-v5-0-71446d3f0b8d@cherry.de

Changes in v5:
- Drop the mfd implementation of v4
- Add more dev_probe_err callbacks to tsd,mule-i2c-mux
- Instantiate tsd,mule-i2c-mux as a platform device from amc6821 driver
- add "Theobroma Systems" when describing mule.

- Link to v4: https://lore.kernel.org/lkml/20240618-dev-mule-i2c-mux-v4-0-5462d28354c8@cherry.de/

Changes in v4:
- Drop the previously added i2c adapter quirks
- Add platform driver probe to amc6821.
- Change mule-i2c-mux driver to a platform driver
- Add dev_probe_err in mule-i2c-mux driver
- Add support for tsd,mule in simple-mfd-i2c
- Add tsd,mule mfd to supported dts

- Link to v3: https://lore.kernel.org/r/20240611-dev-mule-i2c-mux-v3-0-08d26a28e001@cherry.de

Changes in v3:
- Change "i2c" in comments/commit-logs to "I2C"
- Fix long line-length
- Warn when "share_addr_with_children" is set and the Mux is not an I2C device
- Fix/stop propagating "I2C_AQ_SKIP_ADDR_CHECK" flag if "share_addr_with_children"
  is not set.
- Fix "old_fw" variable is used to indicate the reversed meaning.

- Link to v2: https://lore.kernel.org/r/20240506-dev-mule-i2c-mux-v2-0-a91c954f65d7@cherry.de

Changes in v2:
- Add i2c-adapter quirks to skip checking for conflict between the mux core
  and a child device address.
- Rename dt-binding to "tsd,mule-i2c-mux.yaml"
- Add Mule description to kconfig
- Fix indentation
- Move device table after probe

- Link to v1: https://lore.kernel.org/r/20240426-dev-mule-i2c-mux-v1-0-045a482f6ffb@theobroma-systems.com

---
Farouk Bouabid (8):
      dt-bindings: i2c: add support for tsd,mule-i2c-mux
      i2c: muxes: add support for tsd,mule-i2c multiplexer
      dt-bindings: hwmon: add support for ti,amc6821
      hwmon: (amc6821) add support for tsd,mule
      arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-jaguar
      arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3399-puma
      arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-tiger
      arm64: dts: rockchip: add tsd,mule-i2c-mux on px30-ringneck

 .../devicetree/bindings/hwmon/ti,amc6821.yaml      |  86 ++++++++++++
 .../devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml  |  69 ++++++++++
 .../devicetree/bindings/trivial-devices.yaml       |   2 -
 arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi    |  24 +++-
 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi      |  24 +++-
 arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts     |  25 +++-
 arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi     |  23 +++-
 drivers/hwmon/amc6821.c                            |  12 +-
 drivers/i2c/muxes/Kconfig                          |  16 +++
 drivers/i2c/muxes/Makefile                         |   1 +
 drivers/i2c/muxes/i2c-mux-mule.c                   | 148 +++++++++++++++++++++
 11 files changed, 404 insertions(+), 26 deletions(-)
---
base-commit: b831f83e40a24f07c8dcba5be408d93beedc820f
change-id: 20240404-dev-mule-i2c-mux-9103cde07021

Best regards,
-- 
Farouk Bouabid <farouk.bouabid@cherry.de>


^ permalink raw reply	[flat|nested] 17+ messages in thread

* [PATCH v8 1/8] dt-bindings: i2c: add support for tsd,mule-i2c-mux
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
@ 2024-09-06 15:54 ` Farouk Bouabid
  2024-09-06 15:54 ` [PATCH v8 2/8] i2c: muxes: add support for tsd,mule-i2c multiplexer Farouk Bouabid
                   ` (8 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip, Wolfram Sang

Theobroma Systems Mule is an MCU that emulates a set of I2C devices,
among which devices that are reachable through an I2C-mux. The devices
on the mux can be selected by writing the appropriate device number to
an I2C config register.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Acked-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---
 .../devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml  | 69 ++++++++++++++++++++++
 1 file changed, 69 insertions(+)

diff --git a/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml b/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml
new file mode 100644
index 000000000000..28139b676661
--- /dev/null
+++ b/Documentation/devicetree/bindings/i2c/tsd,mule-i2c-mux.yaml
@@ -0,0 +1,69 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/i2c/tsd,mule-i2c-mux.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: Theobroma Systems Mule I2C multiplexer
+
+maintainers:
+  - Farouk Bouabid <farouk.bouabid@cherry.de>
+  - Quentin Schulz <quentin.schulz@cherry.de>
+
+description: |
+  Theobroma Systems Mule is an MCU that emulates a set of I2C devices, among
+  which devices that are reachable through an I2C-mux. The devices on the mux
+  can be selected by writing the appropriate device number to an I2C config
+  register.
+
+
+      +--------------------------------------------------+
+      | Mule                                             |
+  0x18|    +---------------+                             |
+  -------->|Config register|----+                        |
+      |    +---------------+    |                        |
+      |                         V_                       |
+      |                        |  \          +--------+  |
+      |                        |   \-------->| dev #0 |  |
+      |                        |   |         +--------+  |
+  0x6f|                        | M |-------->| dev #1 |  |
+  ---------------------------->| U |         +--------+  |
+      |                        | X |-------->| dev #2 |  |
+      |                        |   |         +--------+  |
+      |                        |   /-------->| dev #3 |  |
+      |                        |__/          +--------+  |
+      +--------------------------------------------------+
+
+
+allOf:
+  - $ref: /schemas/i2c/i2c-mux.yaml#
+
+properties:
+  compatible:
+    const: tsd,mule-i2c-mux
+
+required:
+  - compatible
+
+unevaluatedProperties: false
+
+examples:
+  - |
+    i2c-mux {
+        compatible = "tsd,mule-i2c-mux";
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        i2c@0 {
+            reg = <0x0>;
+            #address-cells = <1>;
+            #size-cells = <0>;
+
+            rtc@6f {
+                compatible = "isil,isl1208";
+                reg = <0x6f>;
+            };
+        };
+    };
+...
+

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v8 2/8] i2c: muxes: add support for tsd,mule-i2c multiplexer
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
  2024-09-06 15:54 ` [PATCH v8 1/8] dt-bindings: i2c: add support for tsd,mule-i2c-mux Farouk Bouabid
@ 2024-09-06 15:54 ` Farouk Bouabid
  2024-09-28 16:56   ` Christophe JAILLET
  2024-09-06 15:54 ` [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821 Farouk Bouabid
                   ` (7 subsequent siblings)
  9 siblings, 1 reply; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip, Wolfram Sang

Theobroma Systems Mule is an MCU that emulates a set of I2C devices,
among which an amc6821 and devices that are reachable through an I2C-mux.
The devices on the mux can be selected by writing the appropriate device
number to an I2C config register (amc6821 reg 0xff).

This driver is expected to be probed as a platform device with amc6821
as its parent i2c device.

Add support for the mule-i2c-mux platform driver. The amc6821 driver
support for the mux will be added in a later commit.

Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---
 drivers/i2c/muxes/Kconfig        |  16 +++++
 drivers/i2c/muxes/Makefile       |   1 +
 drivers/i2c/muxes/i2c-mux-mule.c | 148 +++++++++++++++++++++++++++++++++++++++
 3 files changed, 165 insertions(+)

diff --git a/drivers/i2c/muxes/Kconfig b/drivers/i2c/muxes/Kconfig
index db1b9057612a..6d2f66810cdc 100644
--- a/drivers/i2c/muxes/Kconfig
+++ b/drivers/i2c/muxes/Kconfig
@@ -119,4 +119,20 @@ config I2C_MUX_MLXCPLD
 	  This driver can also be built as a module.  If so, the module
 	  will be called i2c-mux-mlxcpld.
 
+config I2C_MUX_MULE
+	tristate "Theobroma Systems Mule I2C device multiplexer"
+	depends on OF && SENSORS_AMC6821
+	help
+	  Mule is an MCU that emulates a set of I2C devices, among which
+	  devices that are reachable through an I2C-mux. The devices on the mux
+	  can be selected by writing the appropriate device number to an I2C
+	  configuration register.
+
+	  If you say yes to this option, support will be included for a
+	  Theobroma Systems Mule I2C multiplexer. This driver provides access to
+	  I2C devices connected on this mux.
+
+	  This driver can also be built as a module.  If so, the module
+	  will be called i2c-mux-mule.
+
 endmenu
diff --git a/drivers/i2c/muxes/Makefile b/drivers/i2c/muxes/Makefile
index 6d9d865e8518..4b24f49515a7 100644
--- a/drivers/i2c/muxes/Makefile
+++ b/drivers/i2c/muxes/Makefile
@@ -10,6 +10,7 @@ obj-$(CONFIG_I2C_MUX_GPIO)	+= i2c-mux-gpio.o
 obj-$(CONFIG_I2C_MUX_GPMUX)	+= i2c-mux-gpmux.o
 obj-$(CONFIG_I2C_MUX_LTC4306)	+= i2c-mux-ltc4306.o
 obj-$(CONFIG_I2C_MUX_MLXCPLD)	+= i2c-mux-mlxcpld.o
+obj-$(CONFIG_I2C_MUX_MULE)	+= i2c-mux-mule.o
 obj-$(CONFIG_I2C_MUX_PCA9541)	+= i2c-mux-pca9541.o
 obj-$(CONFIG_I2C_MUX_PCA954x)	+= i2c-mux-pca954x.o
 obj-$(CONFIG_I2C_MUX_PINCTRL)	+= i2c-mux-pinctrl.o
diff --git a/drivers/i2c/muxes/i2c-mux-mule.c b/drivers/i2c/muxes/i2c-mux-mule.c
new file mode 100644
index 000000000000..8e942470b35f
--- /dev/null
+++ b/drivers/i2c/muxes/i2c-mux-mule.c
@@ -0,0 +1,148 @@
+// SPDX-License-Identifier: GPL-2.0
+/*
+ * Theobroma Systems Mule I2C device multiplexer
+ *
+ * Copyright (C) 2024 Theobroma Systems Design und Consulting GmbH
+ */
+
+#include <linux/i2c-mux.h>
+#include <linux/i2c.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/platform_device.h>
+#include <linux/property.h>
+#include <linux/regmap.h>
+
+#define MULE_I2C_MUX_CONFIG_REG  0xff
+#define MULE_I2C_MUX_DEFAULT_DEV 0x0
+
+struct mule_i2c_reg_mux {
+	struct regmap *regmap;
+};
+
+static int mule_i2c_mux_select(struct i2c_mux_core *muxc, u32 dev)
+{
+	struct mule_i2c_reg_mux *mux = muxc->priv;
+
+	return regmap_write(mux->regmap, MULE_I2C_MUX_CONFIG_REG, dev);
+}
+
+static int mule_i2c_mux_deselect(struct i2c_mux_core *muxc, u32 dev)
+{
+	return mule_i2c_mux_select(muxc, MULE_I2C_MUX_DEFAULT_DEV);
+}
+
+static void mule_i2c_mux_remove(void *data)
+{
+	struct i2c_mux_core *muxc = data;
+
+	i2c_mux_del_adapters(muxc);
+
+	mule_i2c_mux_deselect(muxc, MULE_I2C_MUX_DEFAULT_DEV);
+}
+
+static int mule_i2c_mux_probe(struct platform_device *pdev)
+{
+	struct device *mux_dev = &pdev->dev;
+	struct mule_i2c_reg_mux *priv;
+	struct i2c_client *client;
+	struct i2c_mux_core *muxc;
+	struct device_node *dev;
+	unsigned int readback;
+	int ndev, ret;
+	bool old_fw;
+
+	/* Count devices on the mux */
+	ndev = of_get_child_count(mux_dev->of_node);
+	dev_dbg(mux_dev, "%d devices on the mux\n", ndev);
+
+	client = to_i2c_client(mux_dev->parent);
+
+	muxc = i2c_mux_alloc(client->adapter, mux_dev, ndev, sizeof(*priv),
+			     I2C_MUX_LOCKED, mule_i2c_mux_select, mule_i2c_mux_deselect);
+	if (!muxc)
+		return -ENOMEM;
+
+	priv = i2c_mux_priv(muxc);
+
+	priv->regmap = dev_get_regmap(mux_dev->parent, NULL);
+	if (IS_ERR(priv->regmap))
+		return dev_err_probe(mux_dev, PTR_ERR(priv->regmap),
+				     "No parent i2c register map\n");
+
+	platform_set_drvdata(pdev, muxc);
+
+	/*
+	 * MULE_I2C_MUX_DEFAULT_DEV is guaranteed to exist on all old and new
+	 * mule fw. Mule fw without mux support will accept write ops to the
+	 * config register, but readback returns 0xff (register not updated).
+	 */
+	ret = mule_i2c_mux_select(muxc, MULE_I2C_MUX_DEFAULT_DEV);
+	if (ret)
+		return dev_err_probe(mux_dev, ret,
+				     "Failed to write config register\n");
+
+	ret = regmap_read(priv->regmap, MULE_I2C_MUX_CONFIG_REG, &readback);
+	if (ret)
+		return dev_err_probe(mux_dev, ret,
+				     "Failed to read config register\n");
+
+	old_fw = (readback != MULE_I2C_MUX_DEFAULT_DEV);
+
+	ret = devm_add_action_or_reset(mux_dev, mule_i2c_mux_remove, muxc);
+	if (ret)
+		return dev_err_probe(mux_dev, ret,
+				     "Failed to register mux remove\n");
+
+	/* Create device adapters */
+	for_each_child_of_node(mux_dev->of_node, dev) {
+		u32 reg;
+
+		ret = of_property_read_u32(dev, "reg", &reg);
+		if (ret)
+			return dev_err_probe(mux_dev, ret,
+					     "No reg property found for %s\n",
+					     of_node_full_name(dev));
+
+		if (old_fw && reg != 0) {
+			dev_warn(mux_dev,
+				 "Mux is not supported, please update Mule FW\n");
+			continue;
+		}
+
+		ret = mule_i2c_mux_select(muxc, reg);
+		if (ret) {
+			dev_warn(mux_dev,
+				 "Device %d not supported, please update Mule FW\n", reg);
+			continue;
+		}
+
+		ret = i2c_mux_add_adapter(muxc, 0, reg);
+		if (ret)
+			return ret;
+	}
+
+	mule_i2c_mux_deselect(muxc, MULE_I2C_MUX_DEFAULT_DEV);
+
+	return 0;
+}
+
+static const struct of_device_id mule_i2c_mux_of_match[] = {
+	{ .compatible = "tsd,mule-i2c-mux", },
+	{},
+};
+MODULE_DEVICE_TABLE(of, mule_i2c_mux_of_match);
+
+static struct platform_driver mule_i2c_mux_driver = {
+	.driver = {
+		.name	= "mule-i2c-mux",
+		.of_match_table = mule_i2c_mux_of_match,
+	},
+	.probe		= mule_i2c_mux_probe,
+};
+
+module_platform_driver(mule_i2c_mux_driver);
+
+MODULE_AUTHOR("Farouk Bouabid <farouk.bouabid@cherry.de>");
+MODULE_DESCRIPTION("I2C mux driver for Theobroma Systems Mule");
+MODULE_LICENSE("GPL");

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
  2024-09-06 15:54 ` [PATCH v8 1/8] dt-bindings: i2c: add support for tsd,mule-i2c-mux Farouk Bouabid
  2024-09-06 15:54 ` [PATCH v8 2/8] i2c: muxes: add support for tsd,mule-i2c multiplexer Farouk Bouabid
@ 2024-09-06 15:54 ` Farouk Bouabid
  2024-09-27 14:58   ` Farouk Bouabid
  2024-09-29 23:52   ` Guenter Roeck
  2024-09-06 15:54 ` [PATCH v8 4/8] hwmon: (amc6821) add support for tsd,mule Farouk Bouabid
                   ` (6 subsequent siblings)
  9 siblings, 2 replies; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

Add dt-bindings for amc6821 intelligent temperature monitor and
pulse-width modulation (PWM) fan controller.

Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---

Notes:
    Merge after patch 1

 .../devicetree/bindings/hwmon/ti,amc6821.yaml      | 86 ++++++++++++++++++++++
 .../devicetree/bindings/trivial-devices.yaml       |  2 -
 2 files changed, 86 insertions(+), 2 deletions(-)

diff --git a/Documentation/devicetree/bindings/hwmon/ti,amc6821.yaml b/Documentation/devicetree/bindings/hwmon/ti,amc6821.yaml
new file mode 100644
index 000000000000..5d33f1a23d03
--- /dev/null
+++ b/Documentation/devicetree/bindings/hwmon/ti,amc6821.yaml
@@ -0,0 +1,86 @@
+# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
+%YAML 1.2
+---
+$id: http://devicetree.org/schemas/hwmon/ti,amc6821.yaml#
+$schema: http://devicetree.org/meta-schemas/core.yaml#
+
+title: AMC6821 Intelligent Temperature Monitor and PWM Fan Controller
+
+maintainers:
+  - Farouk Bouabid <farouk.bouabid@cherry.de>
+  - Quentin Schulz <quentin.schulz@cherry.de>
+
+description:
+  Intelligent temperature monitor and pulse-width modulation (PWM) fan
+  controller.
+
+properties:
+  compatible:
+    oneOf:
+      - items:
+          - const: tsd,mule
+          - const: ti,amc6821
+      - const: ti,amc6821
+
+  reg:
+    maxItems: 1
+
+  i2c-mux:
+    type: object
+
+required:
+  - compatible
+  - reg
+
+if:
+  properties:
+    compatible:
+      contains:
+        const: tsd,mule
+
+then:
+  required:
+    - i2c-mux
+
+additionalProperties: false
+
+examples:
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        fan@18 {
+            compatible = "ti,amc6821";
+            reg = <0x18>;
+        };
+    };
+
+  - |
+    i2c {
+        #address-cells = <1>;
+        #size-cells = <0>;
+
+        fan@18 {
+            compatible = "tsd,mule", "ti,amc6821";
+            reg = <0x18>;
+
+            i2c-mux {
+                compatible = "tsd,mule-i2c-mux";
+                #address-cells = <1>;
+                #size-cells = <0>;
+
+                i2c@0 {
+                    reg = <0x0>;
+                    #address-cells = <1>;
+                    #size-cells = <0>;
+
+                    rtc@6f {
+                        compatible = "isil,isl1208";
+                        reg = <0x6f>;
+                    };
+                };
+            };
+        };
+    };
+...
diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
index 7913ca9b6b54..8ba53cc2672b 100644
--- a/Documentation/devicetree/bindings/trivial-devices.yaml
+++ b/Documentation/devicetree/bindings/trivial-devices.yaml
@@ -370,8 +370,6 @@ properties:
           - swir,mangoh-iotport-spi
             # Ambient Light Sensor with SMBUS/Two Wire Serial Interface
           - taos,tsl2550
-            # Temperature Monitoring and Fan Control
-          - ti,amc6821
             # Temperature and humidity sensor with i2c interface
           - ti,hdc1000
             # Temperature and humidity sensor with i2c interface

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v8 4/8] hwmon: (amc6821) add support for tsd,mule
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
                   ` (2 preceding siblings ...)
  2024-09-06 15:54 ` [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821 Farouk Bouabid
@ 2024-09-06 15:54 ` Farouk Bouabid
  2024-09-29 23:53   ` Guenter Roeck
  2024-09-06 15:54 ` [PATCH v8 5/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-jaguar Farouk Bouabid
                   ` (5 subsequent siblings)
  9 siblings, 1 reply; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

Theobroma Systems Mule is an MCU that emulates a set of I2C devices,
among which is an amc6821 and other devices that are reachable through
an I2C-mux.

The devices on the mux can be selected by writing the appropriate device
number to an I2C config register (amc6821: reg 0xff)

Implement "tsd,mule" compatible to instantiate the I2C-mux platform device
when probing the amc6821.

Reviewed-by: Guenter Roeck <linux@roeck-us.net>
Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---
 drivers/hwmon/amc6821.c | 12 +++++++++++-
 1 file changed, 11 insertions(+), 1 deletion(-)

diff --git a/drivers/hwmon/amc6821.c b/drivers/hwmon/amc6821.c
index ec94392fcb65..a3fdbcf01ecd 100644
--- a/drivers/hwmon/amc6821.c
+++ b/drivers/hwmon/amc6821.c
@@ -22,6 +22,7 @@
 #include <linux/minmax.h>
 #include <linux/module.h>
 #include <linux/mutex.h>
+#include <linux/of_platform.h>
 #include <linux/regmap.h>
 #include <linux/slab.h>
 
@@ -897,7 +898,6 @@ static bool amc6821_volatile_reg(struct device *dev, unsigned int reg)
 static const struct regmap_config amc6821_regmap_config = {
 	.reg_bits = 8,
 	.val_bits = 8,
-	.max_register = AMC6821_REG_CONF3,
 	.volatile_reg = amc6821_volatile_reg,
 	.cache_type = REGCACHE_MAPLE,
 };
@@ -924,6 +924,13 @@ static int amc6821_probe(struct i2c_client *client)
 	if (err)
 		return err;
 
+	if (of_device_is_compatible(dev->of_node, "tsd,mule")) {
+		err = devm_of_platform_populate(dev);
+		if (err)
+			return dev_err_probe(dev, err,
+				     "Failed to create sub-devices\n");
+	}
+
 	hwmon_dev = devm_hwmon_device_register_with_info(dev, client->name,
 							 data, &amc6821_chip_info,
 							 amc6821_groups);
@@ -941,6 +948,9 @@ static const struct of_device_id __maybe_unused amc6821_of_match[] = {
 	{
 		.compatible = "ti,amc6821",
 	},
+	{
+		.compatible = "tsd,mule",
+	},
 	{ }
 };
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v8 5/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-jaguar
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
                   ` (3 preceding siblings ...)
  2024-09-06 15:54 ` [PATCH v8 4/8] hwmon: (amc6821) add support for tsd,mule Farouk Bouabid
@ 2024-09-06 15:54 ` Farouk Bouabid
  2024-09-06 15:54 ` [PATCH v8 6/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3399-puma Farouk Bouabid
                   ` (4 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

Add the tsd,mule-i2c-mux alongside with the amc6821 (tsd,mule) and isl1208
as a default device on the mux.

Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---

Notes:
    Merge after patches 1,2,3,4

 arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts | 25 +++++++++++++++++++------
 1 file changed, 19 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts b/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
index 31d2f8994f85..56f87a603581 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
+++ b/arch/arm64/boot/dts/rockchip/rk3588-jaguar.dts
@@ -32,6 +32,7 @@ button-bios-disable {
 
 	aliases {
 		ethernet0 = &gmac0;
+		i2c10 = &i2c10;
 		mmc0 = &sdhci;
 		mmc1 = &sdmmc;
 		rtc0 = &rtc_twi;
@@ -276,8 +277,25 @@ &i2c0 {
 	status = "okay";
 
 	fan@18 {
-		compatible = "ti,amc6821";
+		compatible = "tsd,mule", "ti,amc6821";
 		reg = <0x18>;
+
+		i2c-mux {
+			compatible = "tsd,mule-i2c-mux";
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			i2c10: i2c@0 {
+				reg = <0x0>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				rtc_twi: rtc@6f {
+					compatible = "isil,isl1208";
+					reg = <0x6f>;
+				};
+			};
+		};
 	};
 
 	vdd_npu_s0: regulator@42 {
@@ -313,11 +331,6 @@ regulator-state-mem {
 			regulator-off-in-suspend;
 		};
 	};
-
-	rtc_twi: rtc@6f {
-		compatible = "isil,isl1208";
-		reg = <0x6f>;
-	};
 };
 
 &i2c1 {

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v8 6/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3399-puma
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
                   ` (4 preceding siblings ...)
  2024-09-06 15:54 ` [PATCH v8 5/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-jaguar Farouk Bouabid
@ 2024-09-06 15:54 ` Farouk Bouabid
  2024-09-06 15:54 ` [PATCH v8 7/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-tiger Farouk Bouabid
                   ` (3 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

Add the tsd,mule-i2c-mux alongside with the amc6821 (tsd,mule) and isl1208
as a default device on the mux.

Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---

Notes:
    Merge after patches 1,2,3,4

 arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
index ccbe3a7a1d2c..72a0bca57385 100644
--- a/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3399-puma.dtsi
@@ -10,6 +10,7 @@
 / {
 	aliases {
 		ethernet0 = &gmac;
+		i2c10 = &i2c10;
 		mmc0 = &sdhci;
 	};
 
@@ -378,14 +379,25 @@ &i2c7 {
 	clock-frequency = <400000>;
 
 	fan: fan@18 {
-		compatible = "ti,amc6821";
+		compatible = "tsd,mule", "ti,amc6821";
 		reg = <0x18>;
-		#cooling-cells = <2>;
-	};
 
-	rtc_twi: rtc@6f {
-		compatible = "isil,isl1208";
-		reg = <0x6f>;
+		i2c-mux {
+			compatible = "tsd,mule-i2c-mux";
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			i2c10: i2c@0 {
+				reg = <0x0>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				rtc_twi: rtc@6f {
+					compatible = "isil,isl1208";
+					reg = <0x6f>;
+				};
+			};
+		};
 	};
 };
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v8 7/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-tiger
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
                   ` (5 preceding siblings ...)
  2024-09-06 15:54 ` [PATCH v8 6/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3399-puma Farouk Bouabid
@ 2024-09-06 15:54 ` Farouk Bouabid
  2024-09-06 15:54 ` [PATCH v8 8/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on px30-ringneck Farouk Bouabid
                   ` (2 subsequent siblings)
  9 siblings, 0 replies; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

Add the tsd,mule-i2c-mux alongside with the amc6821 (tsd,mule) and isl1208
as a default device on the mux.

Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---

Notes:
    Merge after patches 1,2,3,4

 arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi | 23 ++++++++++++++++++-----
 1 file changed, 18 insertions(+), 5 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi b/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
index 615094bb8ba3..a02f1178c60c 100644
--- a/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
+++ b/arch/arm64/boot/dts/rockchip/rk3588-tiger.dtsi
@@ -12,6 +12,7 @@ / {
 	compatible = "tsd,rk3588-tiger", "rockchip,rk3588";
 
 	aliases {
+		i2c10 = &i2c10;
 		mmc0 = &sdhci;
 		rtc0 = &rtc_twi;
 	};
@@ -224,13 +225,25 @@ &i2c6 {
 	status = "okay";
 
 	fan@18 {
-		compatible = "ti,amc6821";
+		compatible = "tsd,mule", "ti,amc6821";
 		reg = <0x18>;
-	};
 
-	rtc_twi: rtc@6f {
-		compatible = "isil,isl1208";
-		reg = <0x6f>;
+		i2c-mux {
+			compatible = "tsd,mule-i2c-mux";
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			i2c10: i2c@0 {
+				reg = <0x0>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				rtc_twi: rtc@6f {
+					compatible = "isil,isl1208";
+					reg = <0x6f>;
+				};
+			};
+		};
 	};
 };
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* [PATCH v8 8/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on px30-ringneck
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
                   ` (6 preceding siblings ...)
  2024-09-06 15:54 ` [PATCH v8 7/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-tiger Farouk Bouabid
@ 2024-09-06 15:54 ` Farouk Bouabid
  2024-09-07  8:34 ` [PATCH v8 0/8] Add tsd,mule-i2c-mux support Andi Shyti
  2024-09-30 10:55 ` (subset) " Heiko Stuebner
  9 siblings, 0 replies; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-06 15:54 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Farouk Bouabid, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

Add the tsd,mule-i2c-mux alongside with the amc6821 (tsd,mule) and isl1208
as a default device on the mux.

Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
---

Notes:
    Merge after patches 1,2,3,4

 arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi | 24 ++++++++++++++++++------
 1 file changed, 18 insertions(+), 6 deletions(-)

diff --git a/arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi b/arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi
index bb1aea82e666..a683ed3e2fce 100644
--- a/arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi
+++ b/arch/arm64/boot/dts/rockchip/px30-ringneck.dtsi
@@ -9,6 +9,7 @@
 
 / {
 	aliases {
+		i2c10 = &i2c10;
 		mmc0 = &emmc;
 		mmc1 = &sdio;
 		rtc0 = &rtc_twi;
@@ -292,14 +293,25 @@ &i2c1 {
 	clock-frequency = <400000>;
 
 	fan: fan@18 {
-		compatible = "ti,amc6821";
+		compatible = "tsd,mule", "ti,amc6821";
 		reg = <0x18>;
-		#cooling-cells = <2>;
-	};
 
-	rtc_twi: rtc@6f {
-		compatible = "isil,isl1208";
-		reg = <0x6f>;
+		i2c-mux {
+			compatible = "tsd,mule-i2c-mux";
+			#address-cells = <1>;
+			#size-cells = <0>;
+
+			i2c10: i2c@0 {
+				reg = <0x0>;
+				#address-cells = <1>;
+				#size-cells = <0>;
+
+				rtc_twi: rtc@6f {
+					compatible = "isil,isl1208";
+					reg = <0x6f>;
+				};
+			};
+		};
 	};
 };
 

-- 
2.34.1


^ permalink raw reply related	[flat|nested] 17+ messages in thread

* Re: [PATCH v8 0/8] Add tsd,mule-i2c-mux support
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
                   ` (7 preceding siblings ...)
  2024-09-06 15:54 ` [PATCH v8 8/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on px30-ringneck Farouk Bouabid
@ 2024-09-07  8:34 ` Andi Shyti
  2024-09-30 10:55 ` (subset) " Heiko Stuebner
  9 siblings, 0 replies; 17+ messages in thread
From: Andi Shyti @ 2024-09-07  8:34 UTC (permalink / raw)
  To: Farouk Bouabid
  Cc: Rob Herring, Krzysztof Kozlowski, Conor Dooley, Quentin Schulz,
	Peter Rosin, Jean Delvare, Guenter Roeck, Heiko Stuebner,
	linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip, Wolfram Sang

Hi Farouk,

> Farouk Bouabid (8):
>       dt-bindings: i2c: add support for tsd,mule-i2c-mux
>       i2c: muxes: add support for tsd,mule-i2c multiplexer

Patch 1 and 2 merged to i2c/i2c-host.

Thanks for following up on the reviews.
Andi

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821
  2024-09-06 15:54 ` [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821 Farouk Bouabid
@ 2024-09-27 14:58   ` Farouk Bouabid
  2024-09-28 16:39     ` Guenter Roeck
  2024-09-29 23:52   ` Guenter Roeck
  1 sibling, 1 reply; 17+ messages in thread
From: Farouk Bouabid @ 2024-09-27 14:58 UTC (permalink / raw)
  To: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Quentin Schulz, Peter Rosin, Jean Delvare, Guenter Roeck,
	Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

Hi,

On 06.09.24 17:54, Farouk Bouabid wrote:
> Add dt-bindings for amc6821 intelligent temperature monitor and
> pulse-width modulation (PWM) fan controller.
>
> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
> ---
>
> Notes:
>      Merge after patch 1

Patch 1 is merged in next-20240910 and it represents the dependency 
required for patches 3. I guess we should be ready to merge patches 3 
and 4 through the hwmon subsystem.

Thanks,

Farouk


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821
  2024-09-27 14:58   ` Farouk Bouabid
@ 2024-09-28 16:39     ` Guenter Roeck
  0 siblings, 0 replies; 17+ messages in thread
From: Guenter Roeck @ 2024-09-28 16:39 UTC (permalink / raw)
  To: Farouk Bouabid, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Quentin Schulz, Peter Rosin, Jean Delvare,
	Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

On 9/27/24 07:58, Farouk Bouabid wrote:
> Hi,
> 
> On 06.09.24 17:54, Farouk Bouabid wrote:
>> Add dt-bindings for amc6821 intelligent temperature monitor and
>> pulse-width modulation (PWM) fan controller.
>>
>> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
>> Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
>> ---
>>
>> Notes:
>>      Merge after patch 1
> 
> Patch 1 is merged in next-20240910 and it represents the dependency required for patches 3. I guess we should be ready to merge patches 3 and 4 through the hwmon subsystem.
> 

I'll do that after the commit window closes.

Guenter



^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v8 2/8] i2c: muxes: add support for tsd,mule-i2c multiplexer
  2024-09-06 15:54 ` [PATCH v8 2/8] i2c: muxes: add support for tsd,mule-i2c multiplexer Farouk Bouabid
@ 2024-09-28 16:56   ` Christophe JAILLET
  2024-09-28 17:00     ` Guenter Roeck
  0 siblings, 1 reply; 17+ messages in thread
From: Christophe JAILLET @ 2024-09-28 16:56 UTC (permalink / raw)
  To: Farouk Bouabid, Andi Shyti, Rob Herring, Krzysztof Kozlowski,
	Conor Dooley, Quentin Schulz, Peter Rosin, Jean Delvare,
	Guenter Roeck, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip, Wolfram Sang

Le 06/09/2024 à 17:54, Farouk Bouabid a écrit :
> Theobroma Systems Mule is an MCU that emulates a set of I2C devices,
> among which an amc6821 and devices that are reachable through an I2C-mux.
> The devices on the mux can be selected by writing the appropriate device
> number to an I2C config register (amc6821 reg 0xff).
> 
> This driver is expected to be probed as a platform device with amc6821
> as its parent i2c device.
> 
> Add support for the mule-i2c-mux platform driver. The amc6821 driver
> support for the mux will be added in a later commit.
> 
> Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
> Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
> ---

Hi,

> +static const struct of_device_id mule_i2c_mux_of_match[] = {
> +	{ .compatible = "tsd,mule-i2c-mux", },
> +	{},

Nitpick (in case of v9): usually, a comma is not added after a terminator.

> +};

...

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v8 2/8] i2c: muxes: add support for tsd,mule-i2c multiplexer
  2024-09-28 16:56   ` Christophe JAILLET
@ 2024-09-28 17:00     ` Guenter Roeck
  0 siblings, 0 replies; 17+ messages in thread
From: Guenter Roeck @ 2024-09-28 17:00 UTC (permalink / raw)
  To: Christophe JAILLET, Farouk Bouabid, Andi Shyti, Rob Herring,
	Krzysztof Kozlowski, Conor Dooley, Quentin Schulz, Peter Rosin,
	Jean Delvare, Heiko Stuebner
  Cc: linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip, Wolfram Sang

On 9/28/24 09:56, Christophe JAILLET wrote:
> Le 06/09/2024 à 17:54, Farouk Bouabid a écrit :
>> Theobroma Systems Mule is an MCU that emulates a set of I2C devices,
>> among which an amc6821 and devices that are reachable through an I2C-mux.
>> The devices on the mux can be selected by writing the appropriate device
>> number to an I2C config register (amc6821 reg 0xff).
>>
>> This driver is expected to be probed as a platform device with amc6821
>> as its parent i2c device.
>>
>> Add support for the mule-i2c-mux platform driver. The amc6821 driver
>> support for the mux will be added in a later commit.
>>
>> Reviewed-by: Wolfram Sang <wsa+renesas@sang-engineering.com>
>> Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>
>> ---
> 
> Hi,
> 
>> +static const struct of_device_id mule_i2c_mux_of_match[] = {
>> +    { .compatible = "tsd,mule-i2c-mux", },
>> +    {},
> 
> Nitpick (in case of v9): usually, a comma is not added after a terminator.
> 

That is a bit late. The patch is already in the upstream kernel.

Guenter


^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821
  2024-09-06 15:54 ` [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821 Farouk Bouabid
  2024-09-27 14:58   ` Farouk Bouabid
@ 2024-09-29 23:52   ` Guenter Roeck
  1 sibling, 0 replies; 17+ messages in thread
From: Guenter Roeck @ 2024-09-29 23:52 UTC (permalink / raw)
  To: Farouk Bouabid
  Cc: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Quentin Schulz, Peter Rosin, Jean Delvare, Heiko Stuebner,
	linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

On Fri, Sep 06, 2024 at 05:54:14PM +0200, Farouk Bouabid wrote:
> Add dt-bindings for amc6821 intelligent temperature monitor and
> pulse-width modulation (PWM) fan controller.
> 
> Reviewed-by: Rob Herring (Arm) <robh@kernel.org>
> Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>

Applied to hwmon-next.

Thanks,
Guenter

> ---
> 
> Notes:
>     Merge after patch 1
> 
>  .../devicetree/bindings/hwmon/ti,amc6821.yaml      | 86 ++++++++++++++++++++++
>  .../devicetree/bindings/trivial-devices.yaml       |  2 -
>  2 files changed, 86 insertions(+), 2 deletions(-)
> 
> diff --git a/Documentation/devicetree/bindings/hwmon/ti,amc6821.yaml b/Documentation/devicetree/bindings/hwmon/ti,amc6821.yaml
> new file mode 100644
> index 000000000000..5d33f1a23d03
> --- /dev/null
> +++ b/Documentation/devicetree/bindings/hwmon/ti,amc6821.yaml
> @@ -0,0 +1,86 @@
> +# SPDX-License-Identifier: (GPL-2.0-only OR BSD-2-Clause)
> +%YAML 1.2
> +---
> +$id: http://devicetree.org/schemas/hwmon/ti,amc6821.yaml#
> +$schema: http://devicetree.org/meta-schemas/core.yaml#
> +
> +title: AMC6821 Intelligent Temperature Monitor and PWM Fan Controller
> +
> +maintainers:
> +  - Farouk Bouabid <farouk.bouabid@cherry.de>
> +  - Quentin Schulz <quentin.schulz@cherry.de>
> +
> +description:
> +  Intelligent temperature monitor and pulse-width modulation (PWM) fan
> +  controller.
> +
> +properties:
> +  compatible:
> +    oneOf:
> +      - items:
> +          - const: tsd,mule
> +          - const: ti,amc6821
> +      - const: ti,amc6821
> +
> +  reg:
> +    maxItems: 1
> +
> +  i2c-mux:
> +    type: object
> +
> +required:
> +  - compatible
> +  - reg
> +
> +if:
> +  properties:
> +    compatible:
> +      contains:
> +        const: tsd,mule
> +
> +then:
> +  required:
> +    - i2c-mux
> +
> +additionalProperties: false
> +
> +examples:
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        fan@18 {
> +            compatible = "ti,amc6821";
> +            reg = <0x18>;
> +        };
> +    };
> +
> +  - |
> +    i2c {
> +        #address-cells = <1>;
> +        #size-cells = <0>;
> +
> +        fan@18 {
> +            compatible = "tsd,mule", "ti,amc6821";
> +            reg = <0x18>;
> +
> +            i2c-mux {
> +                compatible = "tsd,mule-i2c-mux";
> +                #address-cells = <1>;
> +                #size-cells = <0>;
> +
> +                i2c@0 {
> +                    reg = <0x0>;
> +                    #address-cells = <1>;
> +                    #size-cells = <0>;
> +
> +                    rtc@6f {
> +                        compatible = "isil,isl1208";
> +                        reg = <0x6f>;
> +                    };
> +                };
> +            };
> +        };
> +    };
> +...
> diff --git a/Documentation/devicetree/bindings/trivial-devices.yaml b/Documentation/devicetree/bindings/trivial-devices.yaml
> index 7913ca9b6b54..8ba53cc2672b 100644
> --- a/Documentation/devicetree/bindings/trivial-devices.yaml
> +++ b/Documentation/devicetree/bindings/trivial-devices.yaml
> @@ -370,8 +370,6 @@ properties:
>            - swir,mangoh-iotport-spi
>              # Ambient Light Sensor with SMBUS/Two Wire Serial Interface
>            - taos,tsl2550
> -            # Temperature Monitoring and Fan Control
> -          - ti,amc6821
>              # Temperature and humidity sensor with i2c interface
>            - ti,hdc1000
>              # Temperature and humidity sensor with i2c interface

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: [PATCH v8 4/8] hwmon: (amc6821) add support for tsd,mule
  2024-09-06 15:54 ` [PATCH v8 4/8] hwmon: (amc6821) add support for tsd,mule Farouk Bouabid
@ 2024-09-29 23:53   ` Guenter Roeck
  0 siblings, 0 replies; 17+ messages in thread
From: Guenter Roeck @ 2024-09-29 23:53 UTC (permalink / raw)
  To: Farouk Bouabid
  Cc: Andi Shyti, Rob Herring, Krzysztof Kozlowski, Conor Dooley,
	Quentin Schulz, Peter Rosin, Jean Delvare, Heiko Stuebner,
	linux-i2c, devicetree, linux-kernel, linux-hwmon,
	linux-arm-kernel, linux-rockchip

On Fri, Sep 06, 2024 at 05:54:15PM +0200, Farouk Bouabid wrote:
> Theobroma Systems Mule is an MCU that emulates a set of I2C devices,
> among which is an amc6821 and other devices that are reachable through
> an I2C-mux.
> 
> The devices on the mux can be selected by writing the appropriate device
> number to an I2C config register (amc6821: reg 0xff)
> 
> Implement "tsd,mule" compatible to instantiate the I2C-mux platform device
> when probing the amc6821.
> 
> Reviewed-by: Guenter Roeck <linux@roeck-us.net>
> Signed-off-by: Farouk Bouabid <farouk.bouabid@cherry.de>

Applied to hwmon-next.

Thanks,
Guenter

^ permalink raw reply	[flat|nested] 17+ messages in thread

* Re: (subset) [PATCH v8 0/8] Add tsd,mule-i2c-mux support
  2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
                   ` (8 preceding siblings ...)
  2024-09-07  8:34 ` [PATCH v8 0/8] Add tsd,mule-i2c-mux support Andi Shyti
@ 2024-09-30 10:55 ` Heiko Stuebner
  9 siblings, 0 replies; 17+ messages in thread
From: Heiko Stuebner @ 2024-09-30 10:55 UTC (permalink / raw)
  To: Krzysztof Kozlowski, Rob Herring, Quentin Schulz, Andi Shyti,
	Guenter Roeck, Jean Delvare, Peter Rosin, Farouk Bouabid,
	Conor Dooley
  Cc: Heiko Stuebner, linux-arm-kernel, linux-i2c, linux-kernel,
	linux-rockchip, linux-hwmon, Wolfram Sang, devicetree

On Fri, 06 Sep 2024 17:54:11 +0200, Farouk Bouabid wrote:
> Theobroma Systems Mule is an MCU that emulates a set of I2C devices which
> are reachable through an I2C-mux.
> 
> The devices on the mux can be selected by writing the appropriate
> device number to an I2C config register (0xff) that is not used by
> amc6821 logic. This required us to add a new compatible to the amc6821
> driver, from which, the new platform device "tsd,mule-i2c-mux" is probed.
> 
> [...]

Applied, thanks!

[5/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-jaguar
      commit: 08866412e325feb87ad70a6b19ff0d165f59b401
[6/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3399-puma
      commit: 84a4e9bf4c1ebe5e71baa5a94b13e168f35e85f5
[7/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-tiger
      commit: 21b2e2365f1462d3dc8fddfd0703c2f675d55381
[8/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on px30-ringneck
      commit: 157707e00085083079cdc9f5014ac31cc3319128

Best regards,
-- 
Heiko Stuebner <heiko@sntech.de>

^ permalink raw reply	[flat|nested] 17+ messages in thread

end of thread, other threads:[~2024-09-30 10:56 UTC | newest]

Thread overview: 17+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2024-09-06 15:54 [PATCH v8 0/8] Add tsd,mule-i2c-mux support Farouk Bouabid
2024-09-06 15:54 ` [PATCH v8 1/8] dt-bindings: i2c: add support for tsd,mule-i2c-mux Farouk Bouabid
2024-09-06 15:54 ` [PATCH v8 2/8] i2c: muxes: add support for tsd,mule-i2c multiplexer Farouk Bouabid
2024-09-28 16:56   ` Christophe JAILLET
2024-09-28 17:00     ` Guenter Roeck
2024-09-06 15:54 ` [PATCH v8 3/8] dt-bindings: hwmon: add support for ti,amc6821 Farouk Bouabid
2024-09-27 14:58   ` Farouk Bouabid
2024-09-28 16:39     ` Guenter Roeck
2024-09-29 23:52   ` Guenter Roeck
2024-09-06 15:54 ` [PATCH v8 4/8] hwmon: (amc6821) add support for tsd,mule Farouk Bouabid
2024-09-29 23:53   ` Guenter Roeck
2024-09-06 15:54 ` [PATCH v8 5/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-jaguar Farouk Bouabid
2024-09-06 15:54 ` [PATCH v8 6/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3399-puma Farouk Bouabid
2024-09-06 15:54 ` [PATCH v8 7/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on rk3588-tiger Farouk Bouabid
2024-09-06 15:54 ` [PATCH v8 8/8] arm64: dts: rockchip: add tsd,mule-i2c-mux on px30-ringneck Farouk Bouabid
2024-09-07  8:34 ` [PATCH v8 0/8] Add tsd,mule-i2c-mux support Andi Shyti
2024-09-30 10:55 ` (subset) " Heiko Stuebner

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).