[PATCH 1/7] drivers: bus: Add ti-sysc bus driver

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Adds minimal support for the sysc interconnect target module found
on many TI SoCs. With this device tree includes have been rearagned.
We need the driver to probe the child devices of the bus.

Signed-off-by: Teresa Remmet <t.remmet@xxxxxxxxx>
---
 drivers/bus/Kconfig   |  7 +++++++
 drivers/bus/Makefile  |  1 +
 drivers/bus/ti-sysc.c | 45 +++++++++++++++++++++++++++++++++++++++++++++
 3 files changed, 53 insertions(+)
 create mode 100644 drivers/bus/ti-sysc.c

diff --git a/drivers/bus/Kconfig b/drivers/bus/Kconfig
index 202df59762e8..7d35a663fdb5 100644
--- a/drivers/bus/Kconfig
+++ b/drivers/bus/Kconfig
@@ -6,6 +6,13 @@ config BUS_OMAP_GPMC
 	depends on OMAP_GPMC
 	bool "TI OMAP/AM33xx GPMC support"
 
+config TI_SYSC
+	depends on ARCH_OMAP
+	bool "TI sysc interconnect target module driver"
+	help
+          Generic driver for Texas Instruments interconnect target module
+          found on many TI SoCs.
+
 config IMX_WEIM
 	depends on ARCH_IMX
 	bool "i.MX WEIM driver"
diff --git a/drivers/bus/Makefile b/drivers/bus/Makefile
index 4b7aa888aba8..ba5cee40636b 100644
--- a/drivers/bus/Makefile
+++ b/drivers/bus/Makefile
@@ -1,3 +1,4 @@
 obj-$(CONFIG_BUS_OMAP_GPMC)	+= omap-gpmc.o
 obj-$(CONFIG_IMX_WEIM)		+= imx-weim.o
 obj-$(CONFIG_MVEBU_MBUS)	+= mvebu-mbus.o
+obj-$(CONFIG_TI_SYSC)		+= ti-sysc.o
diff --git a/drivers/bus/ti-sysc.c b/drivers/bus/ti-sysc.c
new file mode 100644
index 000000000000..b42ee7c895c7
--- /dev/null
+++ b/drivers/bus/ti-sysc.c
@@ -0,0 +1,45 @@
+/* SPDX-License-Identifier: GPL-2.0 */
+/*
+ * Copyright (C) 2019 Phytec Messtechnik GmbH, Teresa Remmet <t.remmet@xxxxxxxxx>
+ */
+
+#include <common.h>
+#include <init.h>
+#include <of.h>
+#include <linux/err.h>
+
+static const struct of_device_id sysc_match_table[] = {
+	{ .compatible = "simple-bus", },
+	{ /* sentinel */ },
+};
+
+static int ti_sysc_probe(struct device_d *dev)
+{
+	int ret;
+
+	ret = of_platform_populate(dev->device_node, sysc_match_table, dev);
+	if (ret)
+		dev_err(dev, "%s fail to create devices.\n",
+					dev->device_node->full_name);
+	return ret;
+};
+
+static struct of_device_id ti_sysc_dt_ids[] = {
+	{ .compatible = "ti,sysc-omap4",},
+	{ .compatible = "ti,sysc-omap4-simple",},
+	{ .compatible = "ti,sysc-omap4-timer",},
+	{ .compatible = "ti,sysc-omap2",},
+	{ },
+};
+
+static struct driver_d ti_sysc_driver = {
+	.name = "ti-sysc",
+	.probe = ti_sysc_probe,
+	.of_compatible = DRV_OF_COMPAT(ti_sysc_dt_ids),
+};
+
+static int ti_sysc_init(void)
+{
+	return platform_driver_register(&ti_sysc_driver);
+}
+postcore_initcall(ti_sysc_init);
-- 
2.7.4


_______________________________________________
barebox mailing list
barebox@xxxxxxxxxxxxxxxxxxx
http://lists.infradead.org/mailman/listinfo/barebox



[Index of Archives]     [Linux Embedded]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]     [XFree86]

  Powered by Linux