On 07/04/2025 19:28, Ivan Vecera wrote:
This adds base MFD driver for Microchip Azurite ZL3073x chip family.
Please do not use "This commit/patch/change", but imperative mood. See
longer explanation here:
https://elixir.bootlin.com/linux/v5.17.1/source/Documentation/process/submitting-patches.rst#L95
These chips provide DPLL and PHC (PTP) functionality and they can
be connected over I2C or SPI bus.
...
+/**
+ * zl3073x_get_regmap_config - return pointer to regmap config
+ *
+ * Returns pointer to regmap config
+ */
+const struct regmap_config *zl3073x_get_regmap_config(void)
+{
+ return &zl3073x_regmap_config;
+}
+EXPORT_SYMBOL_NS_GPL(zl3073x_get_regmap_config, "ZL3073X");
+
+struct zl3073x_dev *zl3073x_dev_alloc(struct device *dev)
+{
+ struct zl3073x_dev *zldev;
+
+ return devm_kzalloc(dev, sizeof(*zldev), GFP_KERNEL);
+}
+EXPORT_SYMBOL_NS_GPL(zl3073x_dev_alloc, "ZL3073X");
+
+int zl3073x_dev_init(struct zl3073x_dev *zldev)
+{
+ devm_mutex_init(zldev->dev, &zldev->lock);
+
+ return 0;
+}
+EXPORT_SYMBOL_NS_GPL(zl3073x_dev_init, "ZL3073X");
+
+void zl3073x_dev_exit(struct zl3073x_dev *zldev)
+{
+}
+EXPORT_SYMBOL_NS_GPL(zl3073x_dev_exit, "ZL3073X");
Why do you add empty exports?
diff --git a/drivers/mfd/zl3073x-spi.c b/drivers/mfd/zl3073x-spi.c
new file mode 100644
index 0000000000000..a6b9a366a7585
--- /dev/null
+++ b/drivers/mfd/zl3073x-spi.c
@@ -0,0 +1,71 @@
+// SPDX-License-Identifier: GPL-2.0-only
+
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/spi/spi.h>
+#include "zl3073x.h"
+
+static const struct spi_device_id zl3073x_spi_id[] = {
+ { "zl3073x-spi", },
+ { /* sentinel */ },
+};
+MODULE_DEVICE_TABLE(spi, zl3073x_spi_id);
+
+static const struct of_device_id zl3073x_spi_of_match[] = {
+ { .compatible = "microchip,zl3073x-spi" },
You need bindings. If they are somewhere in this patchset then you need
correct order so before users (see DT submitting patches).
+static void zl3073x_spi_remove(struct spi_device *spidev)
+{
+ struct zl3073x_dev *zldev;
+
+ zldev = spi_get_drvdata(spidev);
+ zl3073x_dev_exit(zldev);
+}
+
+static struct spi_driver zl3073x_spi_driver = {
+ .driver = {
+ .name = "zl3073x-spi",
+ .of_match_table = of_match_ptr(zl3073x_spi_of_match),
Drop of_match_ptr, you have warnings here.
+ },
+ .probe = zl3073x_spi_probe,
+ .remove = zl3073x_spi_remove,
+ .id_table = zl3073x_spi_id,
+};
+
Best regards,
Krzysztof