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
pgpybap7ydzi4.pgp
Description: PGP signature
_______________________________________________ openwrt-devel mailing list [email protected] https://lists.openwrt.org/mailman/listinfo/openwrt-devel
