ralink: drop v3.8 support
[openwrt.git] / target / linux / ramips / patches-3.8 / 0045-MIPS-ralink-add-pinmux-driver.patch
diff --git a/target/linux/ramips/patches-3.8/0045-MIPS-ralink-add-pinmux-driver.patch b/target/linux/ramips/patches-3.8/0045-MIPS-ralink-add-pinmux-driver.patch
deleted file mode 100644 (file)
index 546719d..0000000
+++ /dev/null
@@ -1,141 +0,0 @@
-From c7107291df4035794c67d7a904fe7419fedc5922 Mon Sep 17 00:00:00 2001
-From: John Crispin <blogic@openwrt.org>
-Date: Mon, 22 Apr 2013 23:11:42 +0200
-Subject: [PATCH 45/79] MIPS: ralink: add pinmux driver
-
-Add code to setup the pinmux on ralonk SoC. The SoC has a single 32 bit register
-for this functionality with simple on/off bits. Building a full featured pinctrl
-driver would be overkill.
-
-Signed-off-by: John Crispin <blogic@openwrt.org>
----
- arch/mips/ralink/Makefile |    2 +-
- arch/mips/ralink/common.h |    2 ++
- arch/mips/ralink/of.c     |    2 ++
- arch/mips/ralink/pinmux.c |   77 +++++++++++++++++++++++++++++++++++++++++++++
- 4 files changed, 82 insertions(+), 1 deletion(-)
- create mode 100644 arch/mips/ralink/pinmux.c
-
-diff --git a/arch/mips/ralink/Makefile b/arch/mips/ralink/Makefile
-index 38cf1a8..341b4de 100644
---- a/arch/mips/ralink/Makefile
-+++ b/arch/mips/ralink/Makefile
-@@ -6,7 +6,7 @@
- # Copyright (C) 2009-2011 Gabor Juhos <juhosg@openwrt.org>
- # Copyright (C) 2013 John Crispin <blogic@openwrt.org>
--obj-y := prom.o of.o reset.o clk.o irq.o
-+obj-y := prom.o of.o reset.o clk.o irq.o pinmux.o
- obj-$(CONFIG_SOC_RT288X) += rt288x.o
- obj-$(CONFIG_SOC_RT305X) += rt305x.o
-diff --git a/arch/mips/ralink/common.h b/arch/mips/ralink/common.h
-index 83144c3..f113fd6 100644
---- a/arch/mips/ralink/common.h
-+++ b/arch/mips/ralink/common.h
-@@ -50,4 +50,6 @@ extern void prom_soc_init(struct ralink_soc_info *soc_info);
- __iomem void *plat_of_remap_node(const char *node);
-+void ralink_pinmux(void);
-+
- #endif /* _RALINK_COMMON_H__ */
-diff --git a/arch/mips/ralink/of.c b/arch/mips/ralink/of.c
-index fb15695..f916774 100644
---- a/arch/mips/ralink/of.c
-+++ b/arch/mips/ralink/of.c
-@@ -110,6 +110,8 @@ static int __init plat_of_setup(void)
-       if (of_platform_populate(NULL, of_ids, NULL, NULL))
-               panic("failed to populate DT\n");
-+      ralink_pinmux();
-+
-       return 0;
- }
-diff --git a/arch/mips/ralink/pinmux.c b/arch/mips/ralink/pinmux.c
-new file mode 100644
-index 0000000..1720216
---- /dev/null
-+++ b/arch/mips/ralink/pinmux.c
-@@ -0,0 +1,77 @@
-+/*
-+ *  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.
-+ *
-+ *  Copyright (C) 2013 John Crispin <blogic@openwrt.org>
-+ */
-+
-+#include <linux/kernel.h>
-+#include <linux/of.h>
-+
-+#include <asm/mach-ralink/ralink_regs.h>
-+
-+#include "common.h"
-+
-+#define SYSC_REG_GPIO_MODE    0x60
-+
-+static int ralink_mux_mask(const char *name, struct ralink_pinmux_grp *grps, u32* mask)
-+{
-+      for (; grps && grps->name; grps++)
-+              if (!strcmp(grps->name, name)) {
-+                      *mask = grps->mask;
-+                      return 0;
-+              }
-+
-+      return -1;
-+}
-+
-+void ralink_pinmux(void)
-+{
-+      const __be32 *wdt;
-+      struct device_node *np;
-+      struct property *prop;
-+      const char *uart, *pin;
-+      u32 mode = 0;
-+      int m;
-+
-+      np = of_find_compatible_node(NULL, NULL, "ralink,rt3050-sysc");
-+      if (!np)
-+              return;
-+
-+      of_property_for_each_string(np, "ralink,gpiomux", prop, pin) {
-+              if (!ralink_mux_mask(pin, rt_gpio_pinmux.mode, &m)) {
-+                      mode |= m;
-+                      pr_debug("pinmux: registered gpiomux \"%s\"\n", pin);
-+              } else {
-+                      pr_err("pinmux: failed to load \"%s\"\n", pin);
-+              }
-+      }
-+
-+      of_property_for_each_string(np, "ralink,pinmux", prop, pin) {
-+              if (!ralink_mux_mask(pin, rt_gpio_pinmux.mode, &m)) {
-+                      mode &= ~m;
-+                      pr_debug("pinmux: registered pinmux \"%s\"\n", pin);
-+              } else {
-+                      pr_err("pinmux: failed to load group \"%s\"\n", pin);
-+              }
-+      }
-+
-+      of_property_read_string(np, "ralink,uartmux", &uart);
-+      if (uart) {
-+              mode &= ~(rt_gpio_pinmux.uart_mask << rt_gpio_pinmux.uart_shift);
-+              if (ralink_mux_mask(uart, rt_gpio_pinmux.uart, &m)) {
-+                      pr_err("pinmux: failed to load uartmux \"%s\"\n", uart);
-+                      mode |= rt_gpio_pinmux.uart_mask << rt_gpio_pinmux.uart_shift;
-+              } else {
-+                      mode |= m << rt_gpio_pinmux.uart_shift;
-+                      pr_debug("pinmux: registered uartmux \"%s\"\n", uart);
-+              }
-+      }
-+
-+      wdt = of_get_property(np, "ralink,wdtmux", NULL);
-+      if (wdt && *wdt && rt_gpio_pinmux.wdt_reset)
-+              rt_gpio_pinmux.wdt_reset();
-+
-+      rt_sysc_w32(mode, SYSC_REG_GPIO_MODE);
-+}
--- 
-1.7.10.4
-