brcm63xx: drop 3.18 support
[openwrt/openwrt.git] / target / linux / brcm63xx / patches-3.18 / 377-MIPS-BCM63XX-register-lookup-for-ephy-reset-gpio.patch
diff --git a/target/linux/brcm63xx/patches-3.18/377-MIPS-BCM63XX-register-lookup-for-ephy-reset-gpio.patch b/target/linux/brcm63xx/patches-3.18/377-MIPS-BCM63XX-register-lookup-for-ephy-reset-gpio.patch
deleted file mode 100644 (file)
index 30f6ba5..0000000
+++ /dev/null
@@ -1,138 +0,0 @@
-From d13bdf92ec885105cf107183f8464c40e5f3b93b Mon Sep 17 00:00:00 2001
-From: Jonas Gorski <jogo@openwrt.org>
-Date: Sat, 21 Feb 2015 17:21:59 +0100
-Subject: [PATCH 4/6] MIPS: BCM63XX: register lookup for ephy-reset gpio
-
-
-Signed-off-by: Jonas Gorski <jogo@openwrt.org>
----
- arch/mips/bcm63xx/boards/board_bcm963xx.c          |    2 +-
- arch/mips/bcm63xx/boards/board_common.c            |    7 +++--
- arch/mips/bcm63xx/gpio.c                           |   32 ++++++++++++++++++++
- arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h  |    2 ++
- .../mips/include/asm/mach-bcm63xx/board_bcm963xx.h |    5 +--
- 5 files changed, 42 insertions(+), 6 deletions(-)
-
---- a/arch/mips/bcm63xx/boards/board_bcm963xx.c
-+++ b/arch/mips/bcm63xx/boards/board_bcm963xx.c
-@@ -59,7 +59,7 @@ static struct board_info __initdata boar
-       },
-       .ephy_reset_gpio                = 36,
--      .ephy_reset_gpio_flags          = GPIOF_INIT_HIGH,
-+      .ephy_reset_gpio_flags          = GPIO_ACTIVE_LOW,
- };
- #endif
---- a/arch/mips/bcm63xx/boards/board_common.c
-+++ b/arch/mips/bcm63xx/boards/board_common.c
-@@ -278,9 +278,10 @@ int __init board_register_devices(void)
-               platform_device_register(&bcm63xx_gpio_leds);
-       }
--      if (board.ephy_reset_gpio && board.ephy_reset_gpio_flags)
--              gpio_request_one(board.ephy_reset_gpio,
--                              board.ephy_reset_gpio_flags, "ephy-reset");
-+      if (board.ephy_reset_gpio && board.ephy_reset_gpio_flags) {
-+              bcm63xx_gpio_ephy_reset(board.ephy_reset_gpio,
-+                                      board.ephy_reset_gpio_flags);
-+      }
-       /* count number of BUTTONs defined by this device */
-       while (button_count < ARRAY_SIZE(board.buttons) && board.buttons[button_count].desc)
---- a/arch/mips/bcm63xx/gpio.c
-+++ b/arch/mips/bcm63xx/gpio.c
-@@ -8,15 +8,24 @@
-  * Copyright (C) Jonas Gorski <jogo@openwrt.org>
-  */
-+#include <asm/addrspace.h>
-+
- #include <linux/kernel.h>
- #include <linux/platform_device.h>
- #include <linux/basic_mmio_gpio.h>
- #include <linux/gpio.h>
-+#include <linux/gpio/machine.h>
- #include <bcm63xx_cpu.h>
- #include <bcm63xx_gpio.h>
- #include <bcm63xx_regs.h>
-+/* for registering lookups; make them large enough to hold OF names */
-+static char *gpio_chip_labels[] = {
-+      "xxxxxxxx.gpio-controller",
-+      "xxxxxxxx.gpio-controller",
-+};
-+
- static void __init bcm63xx_gpio_init_one(int id, int dir, int data, int ngpio)
- {
-       struct resource res[2];
-@@ -40,6 +49,7 @@ static void __init bcm63xx_gpio_init_one
-       pdata.base = id * 32;
-       pdata.ngpio = ngpio;
-+      sprintf(gpio_chip_labels[id], "bcm63xx-gpio.%d", id);
-       platform_device_register_resndata(NULL, "bcm63xx-gpio", id, res, 2,
-                                         &pdata, sizeof(pdata));
- }
-@@ -64,3 +74,25 @@ int __init bcm63xx_gpio_init(void)
-       return 0;
- }
-+
-+static struct gpiod_lookup_table ephy_reset = {
-+      .dev_id = "bcm63xx_enet_shared.0",
-+      .table = {
-+              { /* filled at runtime */ },
-+              { },
-+      },
-+};
-+
-+
-+void bcm63xx_gpio_ephy_reset(int hw_gpio, enum gpio_lookup_flags flags)
-+{
-+      if (ephy_reset.table[0].chip_label)
-+              return;
-+
-+      ephy_reset.table[0].chip_label = gpio_chip_labels[hw_gpio / 32];
-+      ephy_reset.table[0].chip_hwnum = hw_gpio % 32;
-+      ephy_reset.table[0].con_id = "ephy-reset";
-+      ephy_reset.table[0].flags = flags;
-+
-+      gpiod_add_lookup_table(&ephy_reset);
-+}
---- a/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
-+++ b/arch/mips/include/asm/mach-bcm63xx/bcm63xx_gpio.h
-@@ -2,9 +2,11 @@
- #define BCM63XX_GPIO_H
- #include <linux/init.h>
-+#include <linux/gpio/machine.h>
- #include <bcm63xx_cpu.h>
- int __init bcm63xx_gpio_init(void);
-+void bcm63xx_gpio_ephy_reset(int hw_gpio, enum gpio_lookup_flags flags);
- static inline unsigned long bcm63xx_gpio_count(void)
- {
---- a/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-+++ b/arch/mips/include/asm/mach-bcm63xx/board_bcm963xx.h
-@@ -4,6 +4,7 @@
- #include <linux/types.h>
- #include <linux/gpio.h>
- #include <linux/gpio_keys.h>
-+#include <linux/gpio/machine.h>
- #include <linux/leds.h>
- #include <bcm63xx_dev_enet.h>
- #include <bcm63xx_dev_usb_usbd.h>
-@@ -58,8 +59,8 @@ struct board_info {
-       /* External PHY reset GPIO */
-       unsigned int ephy_reset_gpio;
--      /* External PHY reset GPIO flags from gpio.h */
--      unsigned long ephy_reset_gpio_flags;
-+      /* External PHY reset GPIO flags from gpio/machine.h */
-+      enum gpio_lookup_flags ephy_reset_gpio_flags;
-       /* fallback sprom config */
-       struct fallback_sprom_data fallback_sprom;