ramips: add rt3352 SPI_CS1 pinmux
authorMathias Kresin <dev@kresin.me>
Wed, 22 Aug 2018 06:02:20 +0000 (08:02 +0200)
committerJo-Philipp Wich <jo@mein.io>
Tue, 18 Dec 2018 16:47:51 +0000 (17:47 +0100)
The rt3352 has a pin that can be used as second spi chip select,
watchdog reset or GPIO. The pinmux setup was missing the definition of
said pin but it is already used in the SoC dtsi.

Signed-off-by: Mathias Kresin <dev@kresin.me>
(backported from 1d08951628ace1d3c3d2bced6aea582e5ca3fe79)
(rebased patches)
Signed-off-by: Jo-Philipp Wich <jo@mein.io>
target/linux/ramips/patches-4.14/0001-MIPS-ralink-Add-rt3352-SPI_CS1-pinmux.patch [new file with mode: 0644]
target/linux/ramips/patches-4.14/0024-GPIO-add-named-gpio-exports.patch
target/linux/ramips/patches-4.14/0032-USB-dwc2-add-device_reset.patch
target/linux/ramips/patches-4.14/0053-mtd-spi-nor-add-w25q256-3b-mode-switch.patch
target/linux/ramips/patches-4.14/0054-mtd-spi-nor-w25q256-respect-default-mode.patch
target/linux/ramips/patches-4.14/302-spi-nor-add-gd25q512.patch
target/linux/ramips/patches-4.14/303-spi-nor-enable-4B-opcodes-for-mx66l51235l.patch

diff --git a/target/linux/ramips/patches-4.14/0001-MIPS-ralink-Add-rt3352-SPI_CS1-pinmux.patch b/target/linux/ramips/patches-4.14/0001-MIPS-ralink-Add-rt3352-SPI_CS1-pinmux.patch
new file mode 100644 (file)
index 0000000..4f803df
--- /dev/null
@@ -0,0 +1,45 @@
+From 35d017947401d9f449a7e55e52506744e0c62577 Mon Sep 17 00:00:00 2001
+From: Mathias Kresin <dev@kresin.me>
+Date: Wed, 22 Aug 2018 22:38:06 +0200
+Subject: [PATCH] MIPS: ralink: Add rt3352 SPI_CS1 pinmux
+
+The rt3352 has a pin that can be used as second spi chip select,
+watchdog reset or GPIO. The pinmux setup was missing the definition of
+said pin.
+
+The pin is configured via the same bit on rt5350, so reuse the existing
+macro.
+
+Signed-off-by: Mathias Kresin <dev@kresin.me>
+Signed-off-by: Paul Burton <paul.burton@mips.com>
+Patchwork: https://patchwork.linux-mips.org/patch/20301/
+Cc: John Crispin <john@phrozen.org>
+Cc: Ralf Baechle <ralf@linux-mips.org>
+Cc: James Hogan <jhogan@kernel.org>
+Cc: linux-mips@linux-mips.org
+Cc: linux-kernel@vger.kernel.org
+---
+ arch/mips/ralink/rt305x.c | 5 +++++
+ 1 file changed, 5 insertions(+)
+
+--- a/arch/mips/ralink/rt305x.c
++++ b/arch/mips/ralink/rt305x.c
+@@ -49,6 +49,10 @@ static struct rt2880_pmx_func rgmii_func
+ static struct rt2880_pmx_func rt3352_lna_func[] = { FUNC("lna", 0, 36, 2) };
+ static struct rt2880_pmx_func rt3352_pa_func[] = { FUNC("pa", 0, 38, 2) };
+ static struct rt2880_pmx_func rt3352_led_func[] = { FUNC("led", 0, 40, 5) };
++static struct rt2880_pmx_func rt3352_cs1_func[] = {
++      FUNC("spi_cs1", 0, 45, 1),
++      FUNC("wdg_cs1", 1, 45, 1),
++};
+ static struct rt2880_pmx_group rt3050_pinmux_data[] = {
+       GRP("i2c", i2c_func, 1, RT305X_GPIO_MODE_I2C),
+@@ -75,6 +79,7 @@ static struct rt2880_pmx_group rt3352_pi
+       GRP("lna", rt3352_lna_func, 1, RT3352_GPIO_MODE_LNA),
+       GRP("pa", rt3352_pa_func, 1, RT3352_GPIO_MODE_PA),
+       GRP("led", rt3352_led_func, 1, RT5350_GPIO_MODE_PHY_LED),
++      GRP("spi_cs1", rt3352_cs1_func, 2, RT5350_GPIO_MODE_SPI_CS1),
+       { 0 }
+ };
index 9b5562481a387dc36adca0749322605d9e9a820e..6b831b84f91c8736a1855dc75135270adb6af74f 100644 (file)
@@ -22,7 +22,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  #include "gpiolib.h"
  
-@@ -507,3 +509,69 @@ void of_gpiochip_remove(struct gpio_chip
+@@ -507,3 +509,66 @@ void of_gpiochip_remove(struct gpio_chip
        gpiochip_remove_pin_ranges(chip);
        of_node_put(chip->of_node);
  }
index d9449eb39f8c2b317f4642e5f207af3c76970750..aa73d3542f8e8c9fe082a4169e300987528a7419 100644 (file)
@@ -18,7 +18,7 @@ Signed-off-by: John Crispin <blogic@openwrt.org>
  
  #include <linux/usb/hcd.h>
  #include <linux/usb/ch11.h>
-@@ -5171,6 +5172,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
+@@ -5200,6 +5201,8 @@ int dwc2_hcd_init(struct dwc2_hsotg *hso
  
        retval = -ENOMEM;
  
index 02b6ffbc2a0b0f293b5c57b73b93dd8bff564fce..9a18e515ae2ad5981838f74036b50c56c43d8def 100644 (file)
@@ -116,7 +116,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
  
        spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_LOCK);
        return ret;
-@@ -1175,7 +1227,7 @@ static const struct flash_info spi_nor_i
+@@ -1176,7 +1228,7 @@ static const struct flash_info spi_nor_i
        { "w25q80", INFO(0xef5014, 0, 64 * 1024,  16, SECT_4K) },
        { "w25q80bl", INFO(0xef4014, 0, 64 * 1024,  16, SECT_4K) },
        { "w25q128", INFO(0xef4018, 0, 64 * 1024, 256, SECT_4K) },
@@ -125,7 +125,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        { "w25m512jv", INFO(0xef7119, 0, 64 * 1024, 1024,
                        SECT_4K | SPI_NOR_QUAD_READ | SPI_NOR_DUAL_READ) },
  
-@@ -1235,6 +1287,9 @@ static int spi_nor_read(struct mtd_info
+@@ -1236,6 +1288,9 @@ static int spi_nor_read(struct mtd_info
        if (ret)
                return ret;
  
@@ -135,7 +135,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        while (len) {
                loff_t addr = from;
  
-@@ -1259,6 +1314,18 @@ static int spi_nor_read(struct mtd_info
+@@ -1260,6 +1315,18 @@ static int spi_nor_read(struct mtd_info
        ret = 0;
  
  read_err:
@@ -154,7 +154,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ);
        return ret;
  }
-@@ -1360,6 +1427,10 @@ static int spi_nor_write(struct mtd_info
+@@ -1361,6 +1428,10 @@ static int spi_nor_write(struct mtd_info
        if (ret)
                return ret;
  
@@ -165,7 +165,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        for (i = 0; i < len; ) {
                ssize_t written;
                loff_t addr = to + i;
-@@ -1400,6 +1471,7 @@ static int spi_nor_write(struct mtd_info
+@@ -1401,6 +1472,7 @@ static int spi_nor_write(struct mtd_info
        }
  
  write_err:
@@ -173,7 +173,7 @@ Signed-off-by: Felix Fietkau <nbd@nbd.name>
        spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
        return ret;
  }
-@@ -2816,8 +2888,10 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -2817,8 +2889,10 @@ int spi_nor_scan(struct spi_nor *nor, co
        } else if (mtd->size > 0x1000000) {
                /* enable 4-byte addressing if the device exceeds 16MiB */
                nor->addr_width = 4;
index 6bce3194f29d7f20eb53b4821610d6d1e437d3f6..f621e13768fde3331d7a02f5dedd4adb7ed38e92 100644 (file)
@@ -33,7 +33,7 @@
  /*
   * Write status register 1 byte
   * Returns negative if error occurred.
-@@ -2888,9 +2897,16 @@ int spi_nor_scan(struct spi_nor *nor, co
+@@ -2889,9 +2898,16 @@ int spi_nor_scan(struct spi_nor *nor, co
        } else if (mtd->size > 0x1000000) {
                /* enable 4-byte addressing if the device exceeds 16MiB */
                nor->addr_width = 4;
index e5c39db68f41bdad8c414d9ef592981595454885..7a42c78a4ce41d85a0cefee90115541fe295e898 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1059,6 +1059,11 @@ static const struct flash_info spi_nor_i
+@@ -1060,6 +1060,11 @@ static const struct flash_info spi_nor_i
                        SECT_4K | SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ |
                        SPI_NOR_HAS_LOCK | SPI_NOR_HAS_TB)
        },
index 95993fe74c9a5d6ddf2af3034805ef0f8ef6b651..ab0146961b09fe718915adcf83b2ac53bc66887e 100644 (file)
@@ -1,6 +1,6 @@
 --- a/drivers/mtd/spi-nor/spi-nor.c
 +++ b/drivers/mtd/spi-nor/spi-nor.c
-@@ -1098,7 +1098,7 @@ static const struct flash_info spi_nor_i
+@@ -1099,7 +1099,7 @@ static const struct flash_info spi_nor_i
        { "mx25l25635e", INFO(0xc22019, 0, 64 * 1024, 512, SPI_NOR_DUAL_READ | SPI_NOR_QUAD_READ) },
        { "mx25u25635f", INFO(0xc22539, 0, 64 * 1024, 512, SECT_4K | SPI_NOR_4B_OPCODES) },
        { "mx25l25655e", INFO(0xc22619, 0, 64 * 1024, 512, 0) },