MIPS: PCI: Add detection of IOC3 on IO7, IO8, IO9 and Fuel
authorThomas Bogendoerfer <tbogendoerfer@suse.de>
Fri, 24 Jan 2020 13:16:08 +0000 (14:16 +0100)
committerPaul Burton <paulburton@kernel.org>
Fri, 24 Jan 2020 19:37:45 +0000 (11:37 -0800)
Add detection for IOC3 chips in IP35 machines.

Signed-off-by: Thomas Bogendoerfer <tbogendoerfer@suse.de>
Signed-off-by: Paul Burton <paulburton@kernel.org>
Cc: Ralf Baechle <ralf@linux-mips.org>
Cc: James Hogan <jhogan@kernel.org>
Cc: linux-mips@vger.kernel.org
Cc: linux-kernel@vger.kernel.org
arch/mips/include/asm/sn/ioc3.h
arch/mips/pci/pci-xtalk-bridge.c

index 3865d32..2c09c17 100644 (file)
@@ -598,5 +598,9 @@ struct ioc3_etxd {
 #define        IOC3_SUBSYS_IP30_SYSBOARD       0xc304
 #define        IOC3_SUBSYS_MENET               0xc305
 #define        IOC3_SUBSYS_MENET4              0xc306
+#define        IOC3_SUBSYS_IO7                 0xc307
+#define        IOC3_SUBSYS_IO8                 0xc308
+#define        IOC3_SUBSYS_IO9                 0xc309
+#define        IOC3_SUBSYS_IP34_SYSBOARD       0xc30A
 
 #endif /* MIPS_SN_IOC3_H */
index ef5ca7c..3b2552f 100644 (file)
@@ -499,6 +499,26 @@ static void bridge_setup_menet(struct bridge_controller *bc)
        bc->ioc3_sid[3] = IOC3_SID(IOC3_SUBSYS_MENET4);
 }
 
+static void bridge_setup_io7(struct bridge_controller *bc)
+{
+       bc->ioc3_sid[4] = IOC3_SID(IOC3_SUBSYS_IO7);
+}
+
+static void bridge_setup_io8(struct bridge_controller *bc)
+{
+       bc->ioc3_sid[4] = IOC3_SID(IOC3_SUBSYS_IO8);
+}
+
+static void bridge_setup_io9(struct bridge_controller *bc)
+{
+       bc->ioc3_sid[1] = IOC3_SID(IOC3_SUBSYS_IO9);
+}
+
+static void bridge_setup_ip34_fuel_sysboard(struct bridge_controller *bc)
+{
+       bc->ioc3_sid[4] = IOC3_SID(IOC3_SUBSYS_IP34_SYSBOARD);
+}
+
 #define BRIDGE_BOARD_SETUP(_partno, _setup)    \
        { .match = _partno, .setup = _setup }
 
@@ -516,6 +536,10 @@ static const struct {
        BRIDGE_BOARD_SETUP("030-0887-", bridge_setup_ip30_sysboard),
        BRIDGE_BOARD_SETUP("030-1467-", bridge_setup_ip30_sysboard),
        BRIDGE_BOARD_SETUP("030-0873-", bridge_setup_menet),
+       BRIDGE_BOARD_SETUP("030-1557-", bridge_setup_io7),
+       BRIDGE_BOARD_SETUP("030-1673-", bridge_setup_io8),
+       BRIDGE_BOARD_SETUP("030-1771-", bridge_setup_io9),
+       BRIDGE_BOARD_SETUP("030-1707-", bridge_setup_ip34_fuel_sysboard),
 };
 
 static void bridge_setup_board(struct bridge_controller *bc, char *partnum)