|
@@ -245,6 +245,36 @@ static const struct platform_device_id s2mps11_clk_id[] = {
|
|
|
};
|
|
|
MODULE_DEVICE_TABLE(platform, s2mps11_clk_id);
|
|
|
|
|
|
+#ifdef CONFIG_OF
|
|
|
+/*
|
|
|
+ * Device is instantiated through parent MFD device and device matching is done
|
|
|
+ * through platform_device_id.
|
|
|
+ *
|
|
|
+ * However if device's DT node contains proper clock compatible and driver is
|
|
|
+ * built as a module, then the *module* matching will be done trough DT aliases.
|
|
|
+ * This requires of_device_id table. In the same time this will not change the
|
|
|
+ * actual *device* matching so do not add .of_match_table.
|
|
|
+ */
|
|
|
+static const struct of_device_id s2mps11_dt_match[] = {
|
|
|
+ {
|
|
|
+ .compatible = "samsung,s2mps11-clk",
|
|
|
+ .data = (void *)S2MPS11X,
|
|
|
+ }, {
|
|
|
+ .compatible = "samsung,s2mps13-clk",
|
|
|
+ .data = (void *)S2MPS13X,
|
|
|
+ }, {
|
|
|
+ .compatible = "samsung,s2mps14-clk",
|
|
|
+ .data = (void *)S2MPS14X,
|
|
|
+ }, {
|
|
|
+ .compatible = "samsung,s5m8767-clk",
|
|
|
+ .data = (void *)S5M8767X,
|
|
|
+ }, {
|
|
|
+ /* Sentinel */
|
|
|
+ },
|
|
|
+};
|
|
|
+MODULE_DEVICE_TABLE(of, s2mps11_dt_match);
|
|
|
+#endif
|
|
|
+
|
|
|
static struct platform_driver s2mps11_clk_driver = {
|
|
|
.driver = {
|
|
|
.name = "s2mps11-clk",
|