Signed-off-by: Daniel Golle <[email protected]>

diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-ap9x-pci.c 
b/target/linux/ar71xx/files/arch/mips/ath79/dev-ap9x-pci.c
index c08e438..713d3f8 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/dev-ap9x-pci.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-ap9x-pci.c
@@ -109,6 +109,16 @@ __init void ap91_pci_init(u8 *cal_data, u8 *mac_addr)
        pci_enable_ath9k_fixup(0, ap9x_wmac0_data.eeprom_data);
 }
 
+__init void ap91_pci_setup_wmac_switchcom(int idx, u32 val, char *name, char 
*desc)
+{
+       if (idx>=0 && idx<ATH9K_PLAT_MAX_SWITCH_COM_PROFILES) {
+               ap9x_wmac0_data.switch_com_profiles[idx].val = val;
+               ap9x_wmac0_data.switch_com_profiles[idx].name = name;
+               ap9x_wmac0_data.switch_com_profiles[idx].desc = desc;
+       }
+}
+
+
 static int ap94_pci_plat_dev_init(struct pci_dev *dev)
 {
        switch (PCI_SLOT(dev->devfn)) {
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/dev-ap9x-pci.h 
b/target/linux/ar71xx/files/arch/mips/ath79/dev-ap9x-pci.h
index d56f713..59b08a3 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/dev-ap9x-pci.h
+++ b/target/linux/ar71xx/files/arch/mips/ath79/dev-ap9x-pci.h
@@ -25,6 +25,9 @@ void ap91_pci_init(u8 *cal_data, u8 *mac_addr);
 void ap94_pci_init(u8 *cal_data0, u8 *mac_addr0,
                   u8 *cal_data1, u8 *mac_addr1);
 
+void ap91_pci_setup_wmac_switchcom(int idx, u32 val,
+                                  char *name,
+                                  char *desc) __init;
 #else
 static inline void ap9x_pci_setup_wmac_led_pin(unsigned wmac, int pin) {}
 static inline void ap9x_pci_setup_wmac_gpio(unsigned wmac,
@@ -40,6 +43,10 @@ static inline struct ath9k_platform_data 
*ap9x_pci_get_wmac_data(unsigned wmac)
 static inline void ap91_pci_init(u8 *cal_data, u8 *mac_addr) {}
 static inline void ap94_pci_init(u8 *cal_data0, u8 *mac_addr0,
                                 u8 *cal_data1, u8 *mac_addr1) {}
+
+static inline void ap91_pci_setup_wmac_switchcom(int idx, u32 val,
+                                                char *name,
+                                                char *desc) {}
 #endif
 
 #endif /* _ATH79_DEV_AP9X_PCI_H */
diff --git a/target/linux/ar71xx/files/arch/mips/ath79/mach-all0258n.c 
b/target/linux/ar71xx/files/arch/mips/ath79/mach-all0258n.c
index 2495bcb..71ecf03 100644
--- a/target/linux/ar71xx/files/arch/mips/ath79/mach-all0258n.c
+++ b/target/linux/ar71xx/files/arch/mips/ath79/mach-all0258n.c
@@ -30,6 +30,9 @@
 /* showed up in the original firmware's bootlog */
 #define ALL0258N_SEC_PHYMASK BIT(3)
 
+#define ALL0258N_SWITCHCOM_HORIZONTAL  0x09a00210
+#define ALL0258N_SWITCHCOM_VERTICAL    0x0a900120
+
 static struct gpio_led all0258n_leds_gpio[] __initdata = {
        {
                .name           = "all0258n:green:rssihigh",
@@ -81,6 +84,9 @@ static void __init all0258n_setup(void)
        ath79_register_eth(0);
        ath79_register_eth(1);
 
+       ap91_pci_setup_wmac_switchcom(0, ALL0258N_SWITCHCOM_HORIZONTAL, 
"horiz", "horizontal TX, vertical RX");
+       ap91_pci_setup_wmac_switchcom(1, ALL0258N_SWITCHCOM_VERTICAL, "vert", 
"vertical TX, horizontal RX");
+
        ap91_pci_init(ee, mac);
 }
 
diff --git a/target/linux/generic/files/include/linux/ath9k_platform.h 
b/target/linux/generic/files/include/linux/ath9k_platform.h
index 15b9137..3bdae0d 100644
--- a/target/linux/generic/files/include/linux/ath9k_platform.h
+++ b/target/linux/generic/files/include/linux/ath9k_platform.h
@@ -20,6 +20,7 @@
 #define _LINUX_ATH9K_PLATFORM_H
 
 #define ATH9K_PLAT_EEP_MAX_WORDS       2048
+#define ATH9K_PLAT_MAX_SWITCH_COM_PROFILES     4
 
 struct ath9k_platform_data {
        u16 eeprom_data[ATH9K_PLAT_EEP_MAX_WORDS];
@@ -36,6 +37,12 @@ struct ath9k_platform_data {
 
        int num_leds;
        const struct gpio_led *leds;
+
+       struct {
+               u32 val;
+               char *name;
+               char *desc;
+       } switch_com_profiles[ATH9K_PLAT_MAX_SWITCH_COM_PROFILES];
 };
 
 #endif /* _LINUX_ATH9K_PLATFORM_H */
-- 
1.7.11.3

Attachment: pgpybap7ydzi4.pgp
Description: PGP signature

_______________________________________________
openwrt-devel mailing list
[email protected]
https://lists.openwrt.org/mailman/listinfo/openwrt-devel

Reply via email to