soc: Move brcmstb to bcm/brcmstb
authorFlorian Fainelli <f.fainelli@gmail.com>
Fri, 20 May 2016 18:35:57 +0000 (11:35 -0700)
committerFlorian Fainelli <f.fainelli@gmail.com>
Tue, 31 May 2016 18:06:34 +0000 (11:06 -0700)
Unify the different Broadcom SoCs directory and have everybody live
under drivers/soc/bcm/*.

Acked-by: Scott Branden <scott.branden@broadcom.com>
Signed-off-by: Florian Fainelli <f.fainelli@gmail.com>
drivers/soc/Kconfig
drivers/soc/Makefile
drivers/soc/bcm/Kconfig
drivers/soc/bcm/Makefile
drivers/soc/bcm/brcmstb/Makefile [new file with mode: 0644]
drivers/soc/bcm/brcmstb/biuctrl.c [new file with mode: 0644]
drivers/soc/bcm/brcmstb/common.c [new file with mode: 0644]
drivers/soc/brcmstb/Kconfig [deleted file]
drivers/soc/brcmstb/Makefile [deleted file]
drivers/soc/brcmstb/biuctrl.c [deleted file]
drivers/soc/brcmstb/common.c [deleted file]

index cb58ef0d9b2c50e071eeb453dca3a7aaac52a8de..91d5c05d395fc8d924f3d1155df1d308b728d2a8 100644 (file)
@@ -1,7 +1,6 @@
 menu "SOC (System On Chip) specific Drivers"
 
 source "drivers/soc/bcm/Kconfig"
-source "drivers/soc/brcmstb/Kconfig"
 source "drivers/soc/fsl/qe/Kconfig"
 source "drivers/soc/mediatek/Kconfig"
 source "drivers/soc/qcom/Kconfig"
index 380230f03874d4adb216b90a7433eb592123aa40..b75e3bd0a01e700de75bd713de3862bc73843e8e 100644 (file)
@@ -3,7 +3,6 @@
 #
 
 obj-y                          += bcm/
-obj-$(CONFIG_SOC_BRCMSTB)      += brcmstb/
 obj-$(CONFIG_ARCH_DOVE)                += dove/
 obj-$(CONFIG_MACH_DOVE)                += dove/
 obj-y                          += fsl/
index 3066edea184d765a670ded0cead470597654abc1..97156aeed286be91272b4d6133c1e6483ce001c1 100644 (file)
@@ -1,3 +1,5 @@
+menu "Broadcom SoC drivers"
+
 config RASPBERRYPI_POWER
        bool "Raspberry Pi power domain driver"
        depends on ARCH_BCM2835 || COMPILE_TEST
@@ -7,3 +9,16 @@ config RASPBERRYPI_POWER
        help
          This enables support for the RPi power domains which can be enabled
          or disabled via the RPi firmware.
+
+config SOC_BRCMSTB
+       bool "Broadcom STB SoC drivers"
+       depends on ARM
+       select SOC_BUS
+       help
+         Enables drivers for the Broadcom Set-Top Box (STB) series of chips.
+         This option alone enables only some support code, while the drivers
+         can be enabled individually within this menu.
+
+         If unsure, say N.
+
+endmenu
index 63aa3eb23087b65c9779a1b3db22390a541ee49a..dc4fced72d21fcff4633d600c60c5c18121c9908 100644 (file)
@@ -1 +1,2 @@
 obj-$(CONFIG_RASPBERRYPI_POWER)        += raspberrypi-power.o
+obj-$(CONFIG_SOC_BRCMSTB)      += brcmstb/
diff --git a/drivers/soc/bcm/brcmstb/Makefile b/drivers/soc/bcm/brcmstb/Makefile
new file mode 100644 (file)
index 0000000..9120b27
--- /dev/null
@@ -0,0 +1 @@
+obj-y                          += common.o biuctrl.o
diff --git a/drivers/soc/bcm/brcmstb/biuctrl.c b/drivers/soc/bcm/brcmstb/biuctrl.c
new file mode 100644 (file)
index 0000000..9049c07
--- /dev/null
@@ -0,0 +1,116 @@
+/*
+ * Broadcom STB SoCs Bus Unit Interface controls
+ *
+ * Copyright (C) 2015, Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#define pr_fmt(fmt)    "brcmstb: " KBUILD_MODNAME ": " fmt
+
+#include <linux/kernel.h>
+#include <linux/io.h>
+#include <linux/of_address.h>
+#include <linux/syscore_ops.h>
+
+#define CPU_CREDIT_REG_OFFSET                  0x184
+#define  CPU_CREDIT_REG_MCPx_WR_PAIRING_EN_MASK        0x70000000
+
+static void __iomem *cpubiuctrl_base;
+static bool mcp_wr_pairing_en;
+
+static int __init mcp_write_pairing_set(void)
+{
+       u32 creds = 0;
+
+       if (!cpubiuctrl_base)
+               return -1;
+
+       creds = readl_relaxed(cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
+       if (mcp_wr_pairing_en) {
+               pr_info("MCP: Enabling write pairing\n");
+               writel_relaxed(creds | CPU_CREDIT_REG_MCPx_WR_PAIRING_EN_MASK,
+                            cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
+       } else if (creds & CPU_CREDIT_REG_MCPx_WR_PAIRING_EN_MASK) {
+               pr_info("MCP: Disabling write pairing\n");
+               writel_relaxed(creds & ~CPU_CREDIT_REG_MCPx_WR_PAIRING_EN_MASK,
+                               cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
+       } else {
+               pr_info("MCP: Write pairing already disabled\n");
+       }
+
+       return 0;
+}
+
+static int __init setup_hifcpubiuctrl_regs(void)
+{
+       struct device_node *np;
+       int ret = 0;
+
+       np = of_find_compatible_node(NULL, NULL, "brcm,brcmstb-cpu-biu-ctrl");
+       if (!np) {
+               pr_err("missing BIU control node\n");
+               return -ENODEV;
+       }
+
+       cpubiuctrl_base = of_iomap(np, 0);
+       if (!cpubiuctrl_base) {
+               pr_err("failed to remap BIU control base\n");
+               ret = -ENOMEM;
+               goto out;
+       }
+
+       mcp_wr_pairing_en = of_property_read_bool(np, "brcm,write-pairing");
+out:
+       of_node_put(np);
+       return ret;
+}
+
+#ifdef CONFIG_PM_SLEEP
+static u32 cpu_credit_reg_dump;  /* for save/restore */
+
+static int brcmstb_cpu_credit_reg_suspend(void)
+{
+       if (cpubiuctrl_base)
+               cpu_credit_reg_dump =
+                       readl_relaxed(cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
+       return 0;
+}
+
+static void brcmstb_cpu_credit_reg_resume(void)
+{
+       if (cpubiuctrl_base)
+               writel_relaxed(cpu_credit_reg_dump,
+                               cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
+}
+
+static struct syscore_ops brcmstb_cpu_credit_syscore_ops = {
+       .suspend = brcmstb_cpu_credit_reg_suspend,
+       .resume = brcmstb_cpu_credit_reg_resume,
+};
+#endif
+
+
+void __init brcmstb_biuctrl_init(void)
+{
+       int ret;
+
+       setup_hifcpubiuctrl_regs();
+
+       ret = mcp_write_pairing_set();
+       if (ret) {
+               pr_err("MCP: Unable to disable write pairing!\n");
+               return;
+       }
+
+#ifdef CONFIG_PM_SLEEP
+       register_syscore_ops(&brcmstb_cpu_credit_syscore_ops);
+#endif
+}
diff --git a/drivers/soc/bcm/brcmstb/common.c b/drivers/soc/bcm/brcmstb/common.c
new file mode 100644 (file)
index 0000000..94e7335
--- /dev/null
@@ -0,0 +1,99 @@
+/*
+ * Copyright © 2014 NVIDIA Corporation
+ * Copyright © 2015 Broadcom Corporation
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2 as
+ * published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ */
+
+#include <linux/io.h>
+#include <linux/of.h>
+#include <linux/of_address.h>
+#include <linux/slab.h>
+#include <linux/soc/brcmstb/brcmstb.h>
+#include <linux/sys_soc.h>
+
+#include <soc/brcmstb/common.h>
+
+static u32 family_id;
+static u32 product_id;
+
+static const struct of_device_id brcmstb_machine_match[] = {
+       { .compatible = "brcm,brcmstb", },
+       { }
+};
+
+bool soc_is_brcmstb(void)
+{
+       struct device_node *root;
+
+       root = of_find_node_by_path("/");
+       if (!root)
+               return false;
+
+       return of_match_node(brcmstb_machine_match, root) != NULL;
+}
+
+static const struct of_device_id sun_top_ctrl_match[] = {
+       { .compatible = "brcm,brcmstb-sun-top-ctrl", },
+       { }
+};
+
+static int __init brcmstb_soc_device_init(void)
+{
+       struct soc_device_attribute *soc_dev_attr;
+       struct soc_device *soc_dev;
+       struct device_node *sun_top_ctrl;
+       void __iomem *sun_top_ctrl_base;
+       int ret = 0;
+
+       sun_top_ctrl = of_find_matching_node(NULL, sun_top_ctrl_match);
+       if (!sun_top_ctrl)
+               return -ENODEV;
+
+       sun_top_ctrl_base = of_iomap(sun_top_ctrl, 0);
+       if (!sun_top_ctrl_base)
+               return -ENODEV;
+
+       family_id = readl(sun_top_ctrl_base);
+       product_id = readl(sun_top_ctrl_base + 0x4);
+
+       soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+       if (!soc_dev_attr) {
+               ret = -ENOMEM;
+               goto out;
+       }
+
+       soc_dev_attr->family = kasprintf(GFP_KERNEL, "%x",
+                                        family_id >> 28 ?
+                                        family_id >> 16 : family_id >> 8);
+       soc_dev_attr->soc_id = kasprintf(GFP_KERNEL, "%x",
+                                        product_id >> 28 ?
+                                        product_id >> 16 : product_id >> 8);
+       soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%c%d",
+                                        ((product_id & 0xf0) >> 4) + 'A',
+                                          product_id & 0xf);
+
+       soc_dev = soc_device_register(soc_dev_attr);
+       if (IS_ERR(soc_dev)) {
+               kfree(soc_dev_attr->family);
+               kfree(soc_dev_attr->soc_id);
+               kfree(soc_dev_attr->revision);
+               kfree(soc_dev_attr);
+               ret = -ENODEV;
+               goto out;
+       }
+
+       return 0;
+
+out:
+       iounmap(sun_top_ctrl_base);
+       return ret;
+}
+arch_initcall(brcmstb_soc_device_init);
diff --git a/drivers/soc/brcmstb/Kconfig b/drivers/soc/brcmstb/Kconfig
deleted file mode 100644 (file)
index 7fec3b4..0000000
+++ /dev/null
@@ -1,10 +0,0 @@
-menuconfig SOC_BRCMSTB
-       bool "Broadcom STB SoC drivers"
-       depends on ARM
-       select SOC_BUS
-       help
-         Enables drivers for the Broadcom Set-Top Box (STB) series of chips.
-         This option alone enables only some support code, while the drivers
-         can be enabled individually within this menu.
-
-         If unsure, say N.
diff --git a/drivers/soc/brcmstb/Makefile b/drivers/soc/brcmstb/Makefile
deleted file mode 100644 (file)
index 9120b27..0000000
+++ /dev/null
@@ -1 +0,0 @@
-obj-y                          += common.o biuctrl.o
diff --git a/drivers/soc/brcmstb/biuctrl.c b/drivers/soc/brcmstb/biuctrl.c
deleted file mode 100644 (file)
index 9049c07..0000000
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Broadcom STB SoCs Bus Unit Interface controls
- *
- * Copyright (C) 2015, Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#define pr_fmt(fmt)    "brcmstb: " KBUILD_MODNAME ": " fmt
-
-#include <linux/kernel.h>
-#include <linux/io.h>
-#include <linux/of_address.h>
-#include <linux/syscore_ops.h>
-
-#define CPU_CREDIT_REG_OFFSET                  0x184
-#define  CPU_CREDIT_REG_MCPx_WR_PAIRING_EN_MASK        0x70000000
-
-static void __iomem *cpubiuctrl_base;
-static bool mcp_wr_pairing_en;
-
-static int __init mcp_write_pairing_set(void)
-{
-       u32 creds = 0;
-
-       if (!cpubiuctrl_base)
-               return -1;
-
-       creds = readl_relaxed(cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
-       if (mcp_wr_pairing_en) {
-               pr_info("MCP: Enabling write pairing\n");
-               writel_relaxed(creds | CPU_CREDIT_REG_MCPx_WR_PAIRING_EN_MASK,
-                            cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
-       } else if (creds & CPU_CREDIT_REG_MCPx_WR_PAIRING_EN_MASK) {
-               pr_info("MCP: Disabling write pairing\n");
-               writel_relaxed(creds & ~CPU_CREDIT_REG_MCPx_WR_PAIRING_EN_MASK,
-                               cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
-       } else {
-               pr_info("MCP: Write pairing already disabled\n");
-       }
-
-       return 0;
-}
-
-static int __init setup_hifcpubiuctrl_regs(void)
-{
-       struct device_node *np;
-       int ret = 0;
-
-       np = of_find_compatible_node(NULL, NULL, "brcm,brcmstb-cpu-biu-ctrl");
-       if (!np) {
-               pr_err("missing BIU control node\n");
-               return -ENODEV;
-       }
-
-       cpubiuctrl_base = of_iomap(np, 0);
-       if (!cpubiuctrl_base) {
-               pr_err("failed to remap BIU control base\n");
-               ret = -ENOMEM;
-               goto out;
-       }
-
-       mcp_wr_pairing_en = of_property_read_bool(np, "brcm,write-pairing");
-out:
-       of_node_put(np);
-       return ret;
-}
-
-#ifdef CONFIG_PM_SLEEP
-static u32 cpu_credit_reg_dump;  /* for save/restore */
-
-static int brcmstb_cpu_credit_reg_suspend(void)
-{
-       if (cpubiuctrl_base)
-               cpu_credit_reg_dump =
-                       readl_relaxed(cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
-       return 0;
-}
-
-static void brcmstb_cpu_credit_reg_resume(void)
-{
-       if (cpubiuctrl_base)
-               writel_relaxed(cpu_credit_reg_dump,
-                               cpubiuctrl_base + CPU_CREDIT_REG_OFFSET);
-}
-
-static struct syscore_ops brcmstb_cpu_credit_syscore_ops = {
-       .suspend = brcmstb_cpu_credit_reg_suspend,
-       .resume = brcmstb_cpu_credit_reg_resume,
-};
-#endif
-
-
-void __init brcmstb_biuctrl_init(void)
-{
-       int ret;
-
-       setup_hifcpubiuctrl_regs();
-
-       ret = mcp_write_pairing_set();
-       if (ret) {
-               pr_err("MCP: Unable to disable write pairing!\n");
-               return;
-       }
-
-#ifdef CONFIG_PM_SLEEP
-       register_syscore_ops(&brcmstb_cpu_credit_syscore_ops);
-#endif
-}
diff --git a/drivers/soc/brcmstb/common.c b/drivers/soc/brcmstb/common.c
deleted file mode 100644 (file)
index 94e7335..0000000
+++ /dev/null
@@ -1,99 +0,0 @@
-/*
- * Copyright © 2014 NVIDIA Corporation
- * Copyright © 2015 Broadcom Corporation
- *
- * This program is free software; you can redistribute it and/or modify
- * it under the terms of the GNU General Public License version 2 as
- * published by the Free Software Foundation.
- *
- * This program is distributed in the hope that it will be useful,
- * but WITHOUT ANY WARRANTY; without even the implied warranty of
- * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
- * GNU General Public License for more details.
- */
-
-#include <linux/io.h>
-#include <linux/of.h>
-#include <linux/of_address.h>
-#include <linux/slab.h>
-#include <linux/soc/brcmstb/brcmstb.h>
-#include <linux/sys_soc.h>
-
-#include <soc/brcmstb/common.h>
-
-static u32 family_id;
-static u32 product_id;
-
-static const struct of_device_id brcmstb_machine_match[] = {
-       { .compatible = "brcm,brcmstb", },
-       { }
-};
-
-bool soc_is_brcmstb(void)
-{
-       struct device_node *root;
-
-       root = of_find_node_by_path("/");
-       if (!root)
-               return false;
-
-       return of_match_node(brcmstb_machine_match, root) != NULL;
-}
-
-static const struct of_device_id sun_top_ctrl_match[] = {
-       { .compatible = "brcm,brcmstb-sun-top-ctrl", },
-       { }
-};
-
-static int __init brcmstb_soc_device_init(void)
-{
-       struct soc_device_attribute *soc_dev_attr;
-       struct soc_device *soc_dev;
-       struct device_node *sun_top_ctrl;
-       void __iomem *sun_top_ctrl_base;
-       int ret = 0;
-
-       sun_top_ctrl = of_find_matching_node(NULL, sun_top_ctrl_match);
-       if (!sun_top_ctrl)
-               return -ENODEV;
-
-       sun_top_ctrl_base = of_iomap(sun_top_ctrl, 0);
-       if (!sun_top_ctrl_base)
-               return -ENODEV;
-
-       family_id = readl(sun_top_ctrl_base);
-       product_id = readl(sun_top_ctrl_base + 0x4);
-
-       soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
-       if (!soc_dev_attr) {
-               ret = -ENOMEM;
-               goto out;
-       }
-
-       soc_dev_attr->family = kasprintf(GFP_KERNEL, "%x",
-                                        family_id >> 28 ?
-                                        family_id >> 16 : family_id >> 8);
-       soc_dev_attr->soc_id = kasprintf(GFP_KERNEL, "%x",
-                                        product_id >> 28 ?
-                                        product_id >> 16 : product_id >> 8);
-       soc_dev_attr->revision = kasprintf(GFP_KERNEL, "%c%d",
-                                        ((product_id & 0xf0) >> 4) + 'A',
-                                          product_id & 0xf);
-
-       soc_dev = soc_device_register(soc_dev_attr);
-       if (IS_ERR(soc_dev)) {
-               kfree(soc_dev_attr->family);
-               kfree(soc_dev_attr->soc_id);
-               kfree(soc_dev_attr->revision);
-               kfree(soc_dev_attr);
-               ret = -ENODEV;
-               goto out;
-       }
-
-       return 0;
-
-out:
-       iounmap(sun_top_ctrl_base);
-       return ret;
-}
-arch_initcall(brcmstb_soc_device_init);