diff options
Diffstat (limited to 'target/linux/ramips/patches-3.8/0068-reset-MIPS-ralink-add-core-device-reset-wrapper.patch')
-rw-r--r-- | target/linux/ramips/patches-3.8/0068-reset-MIPS-ralink-add-core-device-reset-wrapper.patch | 135 |
1 files changed, 0 insertions, 135 deletions
diff --git a/target/linux/ramips/patches-3.8/0068-reset-MIPS-ralink-add-core-device-reset-wrapper.patch b/target/linux/ramips/patches-3.8/0068-reset-MIPS-ralink-add-core-device-reset-wrapper.patch deleted file mode 100644 index 29a0991595..0000000000 --- a/target/linux/ramips/patches-3.8/0068-reset-MIPS-ralink-add-core-device-reset-wrapper.patch +++ /dev/null @@ -1,135 +0,0 @@ -From 42c26796ae7bcfe0b33a4145de5a392e32bc9bac Mon Sep 17 00:00:00 2001 -From: John Crispin <blogic@openwrt.org> -Date: Wed, 8 May 2013 22:08:39 +0200 -Subject: [PATCH 68/79] reset: MIPS: ralink: add core/device reset wrapper - -Add a helper for reseting different devices ont he SoC. - -Signed-off-by: John Crispin <blogic@openwrt.org> ---- - arch/mips/Kconfig | 1 + - arch/mips/ralink/of.c | 59 ++++++++++++++++++++++++++++++++++++++++++++++ - arch/mips/ralink/reset.c | 1 + - 3 files changed, 61 insertions(+) - -diff --git a/arch/mips/Kconfig b/arch/mips/Kconfig -index 2498972..ef5272f 100644 ---- a/arch/mips/Kconfig -+++ b/arch/mips/Kconfig -@@ -450,6 +450,7 @@ config RALINK - select HAVE_MACH_CLKDEV - select CLKDEV_LOOKUP - select ARCH_REQUIRE_GPIOLIB -+ select ARCH_HAS_RESET_CONTROLLER - - config SGI_IP22 - bool "SGI IP22 (Indy/Indigo2)" -diff --git a/arch/mips/ralink/of.c b/arch/mips/ralink/of.c -index 8efb02b..2faf478 100644 ---- a/arch/mips/ralink/of.c -+++ b/arch/mips/ralink/of.c -@@ -14,16 +14,22 @@ - #include <linux/sizes.h> - #include <linux/of_fdt.h> - #include <linux/kernel.h> -+#include <linux/module.h> - #include <linux/bootmem.h> - #include <linux/of_platform.h> - #include <linux/of_address.h> -+#include <linux/reset-controller.h> - - #include <asm/reboot.h> - #include <asm/bootinfo.h> - #include <asm/addrspace.h> - -+#include <asm/mach-ralink/ralink_regs.h> -+ - #include "common.h" - -+#define SYSC_REG_RESET_CTRL 0x034 -+ - __iomem void *rt_sysc_membase; - __iomem void *rt_memc_membase; - -@@ -96,6 +102,53 @@ void __init plat_mem_setup(void) - soc_info.mem_size_max * SZ_1M); - } - -+static int ralink_assert_device(struct reset_controller_dev *rcdev, unsigned long id) -+{ -+ u32 val; -+ -+ if (id < 8) -+ return -1; -+ -+ val = rt_sysc_r32(SYSC_REG_RESET_CTRL); -+ val |= BIT(id); -+ rt_sysc_w32(val, SYSC_REG_RESET_CTRL); -+ -+ return 0; -+} -+ -+static int ralink_deassert_device(struct reset_controller_dev *rcdev, unsigned long id) -+{ -+ u32 val; -+ -+ if (id < 8) -+ return -1; -+ -+ val = rt_sysc_r32(SYSC_REG_RESET_CTRL); -+ val &= ~BIT(id); -+ rt_sysc_w32(val, SYSC_REG_RESET_CTRL); -+ -+ return 0; -+} -+ -+static int ralink_reset_device(struct reset_controller_dev *rcdev, unsigned long id) -+{ -+ ralink_assert_device(rcdev, id); -+ return ralink_deassert_device(rcdev, id); -+} -+ -+static struct reset_control_ops reset_ops = { -+ .reset = ralink_reset_device, -+ .assert = ralink_assert_device, -+ .deassert = ralink_deassert_device, -+}; -+ -+static struct reset_controller_dev reset_dev = { -+ .ops = &reset_ops, -+ .owner = THIS_MODULE, -+ .nr_resets = 32, -+ .of_reset_n_cells = 1, -+}; -+ - static int __init plat_of_setup(void) - { - static struct of_device_id of_ids[3]; -@@ -110,6 +163,12 @@ static int __init plat_of_setup(void) - if (of_platform_populate(NULL, of_ids, NULL, NULL)) - panic("failed to populate DT\n"); - -+ reset_dev.of_node = of_find_compatible_node(NULL, NULL, "ralink,rt2880-reset"); -+ if (!reset_dev.of_node) -+ panic("Failed to find reset controller node"); -+ -+ reset_controller_register(&reset_dev); -+ - ralink_pinmux(); - - return 0; -diff --git a/arch/mips/ralink/reset.c b/arch/mips/ralink/reset.c -index 22120e5..6c15f4f 100644 ---- a/arch/mips/ralink/reset.c -+++ b/arch/mips/ralink/reset.c -@@ -10,6 +10,7 @@ - - #include <linux/pm.h> - #include <linux/io.h> -+#include <linux/module.h> - - #include <asm/reboot.h> - --- -1.7.10.4 - |