[Feature] add GA346 baseline version

Change-Id: Ic62933698569507dcf98240cdf5d9931ae34348f
diff --git a/src/kernel/linux/v4.19/drivers/clk/mediatek/clk-bringup.c b/src/kernel/linux/v4.19/drivers/clk/mediatek/clk-bringup.c
new file mode 100755
index 0000000..37327cf
--- /dev/null
+++ b/src/kernel/linux/v4.19/drivers/clk/mediatek/clk-bringup.c
@@ -0,0 +1,64 @@
+// SPDX-License-Identifier: GPL-2.0
+
+/*
+
+ * Copyright (c) 2020 MediaTek Inc.
+
+ */
+#include <linux/clk.h>
+#include <linux/clk-provider.h>
+#include <linux/kernel.h>
+#include <linux/module.h>
+#include <linux/of.h>
+#include <linux/of_platform.h>
+static const struct of_device_id bring_up_id_table[] = {
+	{ .compatible = "mediatek,clk-bring-up",},
+	{ .compatible = "mediatek,mt8163-bring-up",},
+	{ .compatible = "mediatek,mt8173-bring-up",},
+	{ },
+};
+MODULE_DEVICE_TABLE(of, bring_up_id_table);
+static int bring_up_probe(struct platform_device *pdev)
+{
+	struct clk *clk;
+	int clk_con, i;
+	int ret = 0;
+	clk_con = of_count_phandle_with_args(pdev->dev.of_node, "clocks",
+			"#clock-cells");
+	pr_notice("sum: %d\n", clk_con);
+	for (i = 0; i < clk_con; i++) {
+		clk = of_clk_get(pdev->dev.of_node, i);
+		if (IS_ERR(clk)) {
+			long ret = PTR_ERR(clk);
+			if (ret == -EPROBE_DEFER)
+				pr_notice("clk %d is not ready\n", i);
+			else
+				pr_notice("get clk %d fail, ret=%d, clk_con=%d\n",
+				       i, (int)ret, clk_con);
+		} else {
+			pr_notice("get clk [%d]: %s ok\n", i,
+					__clk_get_name(clk));
+			ret = clk_prepare_enable(clk);
+			if (ret) {
+				pr_err("cannot force-on bringup clk node\n");
+				pr_notice("enable clk %d fail, ret=%d, clk_con=%d\n",
+                                       i, (int)ret, clk_con);
+			}
+		}
+	}
+	return ret;
+}
+static int bring_up_remove(struct platform_device *pdev)
+{
+	return 0;
+}
+static struct platform_driver clk_bring_up = {
+	.probe		= bring_up_probe,
+	.remove		= bring_up_remove,
+	.driver		= {
+		.name	= "clk_bring_up",
+		.owner	= THIS_MODULE,
+		.of_match_table = bring_up_id_table,
+	},
+};
+module_platform_driver(clk_bring_up);