diff options
Diffstat (limited to 'target/linux/ramips/patches-3.10/0009-MIPS-ralink-add-support-for-reset-controller-API.patch')
-rw-r--r-- | target/linux/ramips/patches-3.10/0009-MIPS-ralink-add-support-for-reset-controller-API.patch | 126 |
1 files changed, 0 insertions, 126 deletions
diff --git a/target/linux/ramips/patches-3.10/0009-MIPS-ralink-add-support-for-reset-controller-API.patch b/target/linux/ramips/patches-3.10/0009-MIPS-ralink-add-support-for-reset-controller-API.patch deleted file mode 100644 index c30a5dd..0000000 --- a/target/linux/ramips/patches-3.10/0009-MIPS-ralink-add-support-for-reset-controller-API.patch +++ /dev/null @@ -1,126 +0,0 @@ -From 4e694014a11a407e309f62c7daade545ba71dcf1 Mon Sep 17 00:00:00 2001 -From: John Crispin <blogic@openwrt.org> -Date: Sun, 28 Jul 2013 13:54:22 +0200 -Subject: [PATCH 09/25] MIPS: ralink: add support for reset-controller API - -Add a helper for reseting different devices on the SoC. - -Signed-off-by: John Crispin <blogic@openwrt.org> ---- - arch/mips/Kconfig | 1 + - arch/mips/ralink/common.h | 2 ++ - arch/mips/ralink/of.c | 3 +++ - arch/mips/ralink/reset.c | 62 +++++++++++++++++++++++++++++++++++++++++++++ - 4 files changed, 68 insertions(+) - ---- a/arch/mips/Kconfig -+++ b/arch/mips/Kconfig -@@ -374,6 +374,7 @@ config MACH_VR41XX - select CSRC_R4K - select SYS_HAS_CPU_VR41XX - select ARCH_REQUIRE_GPIOLIB -+ select ARCH_HAS_RESET_CONTROLLER - - config NXP_STB220 - bool "NXP STB220 board" ---- a/arch/mips/ralink/common.h -+++ b/arch/mips/ralink/common.h -@@ -46,6 +46,8 @@ extern void ralink_of_remap(void); - extern void ralink_clk_init(void); - extern void ralink_clk_add(const char *dev, unsigned long rate); - -+extern void ralink_rst_init(void); -+ - extern void prom_soc_init(struct ralink_soc_info *soc_info); - - __iomem void *plat_of_remap_node(const char *node); ---- a/arch/mips/ralink/of.c -+++ b/arch/mips/ralink/of.c -@@ -110,6 +110,9 @@ static int __init plat_of_setup(void) - if (of_platform_populate(NULL, of_ids, NULL, NULL)) - panic("failed to populate DT\n"); - -+ /* make sure ithat the reset controller is setup early */ -+ ralink_rst_init(); -+ - return 0; - } - ---- a/arch/mips/ralink/reset.c -+++ b/arch/mips/ralink/reset.c -@@ -10,6 +10,8 @@ - - #include <linux/pm.h> - #include <linux/io.h> -+#include <linux/of.h> -+#include <linux/reset-controller.h> - - #include <asm/reboot.h> - -@@ -19,6 +21,66 @@ - #define SYSC_REG_RESET_CTRL 0x034 - #define RSTCTL_RESET_SYSTEM BIT(0) - -+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, -+}; -+ -+void ralink_rst_init(void) -+{ -+ reset_dev.of_node = of_find_compatible_node(NULL, NULL, -+ "ralink,rt2880-reset"); -+ if (!reset_dev.of_node) -+ pr_err("Failed to find reset controller node"); -+ else -+ reset_controller_register(&reset_dev); -+} -+ - static void ralink_restart(char *command) - { - local_irq_disable(); |