diff options
author | Florian Fainelli <f.fainelli@gmail.com> | 2016-05-20 11:35:57 -0700 |
---|---|---|
committer | Florian Fainelli <f.fainelli@gmail.com> | 2016-05-31 11:06:34 -0700 |
commit | 34642650e5bc052674b982433631fcc619237225 (patch) | |
tree | 383de7808001700460f631f41bf354b30c118702 /drivers/soc/brcmstb | |
parent | 1a695a905c18548062509178b98bc91e67510864 (diff) |
soc: Move brcmstb to bcm/brcmstb
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>
Diffstat (limited to 'drivers/soc/brcmstb')
-rw-r--r-- | drivers/soc/brcmstb/Kconfig | 10 | ||||
-rw-r--r-- | drivers/soc/brcmstb/Makefile | 1 | ||||
-rw-r--r-- | drivers/soc/brcmstb/biuctrl.c | 116 | ||||
-rw-r--r-- | drivers/soc/brcmstb/common.c | 99 |
4 files changed, 0 insertions, 226 deletions
diff --git a/drivers/soc/brcmstb/Kconfig b/drivers/soc/brcmstb/Kconfig deleted file mode 100644 index 7fec3b4c80a1..000000000000 --- a/drivers/soc/brcmstb/Kconfig +++ /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 index 9120b2715d3e..000000000000 --- a/drivers/soc/brcmstb/Makefile +++ /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 index 9049c076f9a1..000000000000 --- a/drivers/soc/brcmstb/biuctrl.c +++ /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 index 94e7335553f4..000000000000 --- a/drivers/soc/brcmstb/common.c +++ /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); |