]> git.kernelconcepts.de Git - karo-tx-uboot.git/commitdiff
arm/km: introduce kmsugp1 target
authorGerlando Falauto <gerlando.falauto@keymile.com>
Thu, 13 Feb 2014 15:43:00 +0000 (16:43 +0100)
committerAlbert ARIBAUD <albert.u.boot@aribaud.net>
Thu, 13 Feb 2014 16:45:36 +0000 (17:45 +0100)
KMSUGP1 is from a u-boot perspective (almost) identical to KMNUSA.
The only difference is that the PCIe reset is connected to Kirkwood pin
MPP7_PEX_RST_OUTn, we use a dedicated config flag KM_PCIE_RESET_MPP7.
Such pin should theoretically be handled by the PCIe subsystem
automatically, but this turned out not to be the case.
So simply configure this PIN as a GPIO and issue a pulse manually.

Signed-off-by: Gerlando Falauto <gerlando.falauto@keymile.com>
Cc: Karlheinz Jerg <karlheinz.jerg@keymile.com>
Cc: Valentin Longchamp <valenting.longchamp@keymile.com>
Cc: Holger Brunck <holger.brunck@keymile.com>
Acked-by: Valentin Longchamp <valentin.longchamp@keymile.com>
board/keymile/km_arm/fpga_config.c
board/keymile/km_arm/km_arm.c
boards.cfg
include/configs/km_kirkwood.h

index cbfc7d21759031668e07629a982f7e3809fea3ad..51a3cfe6478301fd022074f28e2d6c71e4d1e607 100644 (file)
@@ -189,6 +189,31 @@ int wait_for_fpga_config(void)
        return 0;
 }
 
+#if defined(KM_PCIE_RESET_MPP7)
+
+#define KM_PEX_RST_GPIO_PIN    7
+int fpga_reset(void)
+{
+       if (!check_boco2()) {
+               /* we do not have BOCO2, this is not really used */
+               return 0;
+       }
+
+       printf("PCIe reset through GPIO7: ");
+       /* apply PCIe reset via GPIO */
+       kw_gpio_set_valid(KM_PEX_RST_GPIO_PIN, 1);
+       kw_gpio_direction_output(KM_PEX_RST_GPIO_PIN, 1);
+       kw_gpio_set_value(KM_PEX_RST_GPIO_PIN, 0);
+       udelay(1000*10);
+       kw_gpio_set_value(KM_PEX_RST_GPIO_PIN, 1);
+
+       printf(" done\n");
+
+       return 0;
+}
+
+#else
+
 #define PRST1          0x4
 #define PCIE_RST       0x10
 #define TRAFFIC_RST    0x04
@@ -219,6 +244,7 @@ int fpga_reset(void)
 
        return 0;
 }
+#endif
 
 /* the FPGA was configured, we configure the BOCO2 so that the EEPROM
  * is available from the Bobcat SPI bus */
index 5f32e70f10afe551a3b9cf0565b223bbd183b941..35402c800bd31df15c7162e03a7c327c50878bb7 100644 (file)
@@ -46,7 +46,11 @@ static const u32 kwmpp_config[] = {
        MPP4_NF_IO6,
        MPP5_NF_IO7,
        MPP6_SYSRST_OUTn,
+#if defined(KM_PCIE_RESET_MPP7)
+       MPP7_GPO,
+#else
        MPP7_PEX_RST_OUTn,
+#endif
 #if defined(CONFIG_SYS_I2C_SOFT)
        MPP8_GPIO,              /* SDA */
        MPP9_GPIO,              /* SCL */
index a5165c8f53a94184b69e235a641f68b4969163d4..f6a74880b9fa32623f6f1ae52861d52687310ee9 100644 (file)
@@ -173,6 +173,7 @@ Active  arm         arm926ejs      kirkwood    keymile         km_arm
 Active  arm         arm926ejs      kirkwood    keymile         km_arm              km_kirkwood_pci                      km_kirkwood:KM_KIRKWOOD_PCI                                                                                                       Valentin Longchamp <valentin.longchamp@keymile.com>
 Active  arm         arm926ejs      kirkwood    keymile         km_arm              kmcoge5un                            km_kirkwood:KM_COGE5UN                                                                                                            Valentin Longchamp <valentin.longchamp@keymile.com>
 Active  arm         arm926ejs      kirkwood    keymile         km_arm              kmnusa                               km_kirkwood:KM_NUSA                                                                                                               Valentin Longchamp <valentin.longchamp@keymile.com>
+Active  arm         arm926ejs      kirkwood    keymile         km_arm              kmsugp1                              km_kirkwood:KM_SUGP1                                                                                                              Valentin Longchamp <valentin.longchamp@keymile.com>
 Active  arm         arm926ejs      kirkwood    keymile         km_arm              kmsuv31                              km_kirkwood:KM_SUV31                                                                                                              Valentin Longchamp <valentin.longchamp@keymile.com>
 Active  arm         arm926ejs      kirkwood    keymile         km_arm              mgcoge3un                            km_kirkwood:KM_MGCOGE3UN                                                                                                          Valentin Longchamp <valentin.longchamp@keymile.com>
 Active  arm         arm926ejs      kirkwood    keymile         km_arm              portl2                               km_kirkwood:KM_PORTL2                                                                                                             Valentin Longchamp <valentin.longchamp@keymile.com>
index 2bd89b1e249210e95fa79ee5973d86457f382af5..2cde1770cdc1bf81832099f2a566fdf17ac4cd2b 100644 (file)
 #define CONFIG_KM_DISABLE_PCIE
 #define CONFIG_KM_IVM_BUS              1       /* I2C2 (Mux-Port 1)*/
 
-/* KM_NUSA */
-#elif defined(CONFIG_KM_NUSA)
+/* KM_NUSA / KM_SUGP1 */
+#elif defined(CONFIG_KM_NUSA) || defined(CONFIG_KM_SUGP1)
 #define CONFIG_KM_IVM_BUS              1       /* I2C2 (Mux-Port 1)*/
+
+# if defined(CONFIG_KM_NUSA)
 #define CONFIG_IDENT_STRING            "\nKeymile NUSA"
 #define CONFIG_HOSTNAME                        kmnusa
+# elif defined(CONFIG_KM_SUGP1)
+#define CONFIG_IDENT_STRING            "\nKeymile SUGP1"
+#define CONFIG_HOSTNAME                        kmsugp1
+#define KM_PCIE_RESET_MPP7
+#endif
+
 #undef CONFIG_SYS_KWD_CONFIG
 #define CONFIG_SYS_KWD_CONFIG \
                $(SRCTREE)/$(CONFIG_BOARDDIR)/kwbimage_128M16_1.cfg