static void mynet_n750_get_mac(const char *name, char *mac)
{
	u8 *nvram = (u8 *) KSEG1ADDR(MYNET_N750_NVRAM_ADDR);
	int err;

	err = ath79_nvram_parse_mac_addr(nvram, MYNET_N750_NVRAM_SIZE,
					 name, mac);
	if (err)
		pr_err("no MAC address found for %s\n", name);
}
Example #2
0
static void qihoo_c301_get_mac(const char *name, char *mac)
{
	u8 *nvram = (u8 *) KSEG1ADDR(QIHOO_C301_NVRAM_ADDR);
	int err;

	err = ath79_nvram_parse_mac_addr(nvram, QIHOO_C301_NVRAM_SIZE,
					 name, mac);
	if (err)
		pr_err("no MAC address found for %s\n", name);
}
Example #3
0
static void __init esr900_setup(void)
{
	const char *config = (char *) KSEG1ADDR(ESR900_CONFIG_ADDR);
	u8 *art = (u8 *) KSEG1ADDR(ESR900_CALDATA_ADDR);
	u8 lan_mac[ETH_ALEN];
	u8 wlan0_mac[ETH_ALEN];
	u8 wlan1_mac[ETH_ALEN];

	if (ath79_nvram_parse_mac_addr(config, ESR900_CONFIG_SIZE,
				       "ethaddr=", lan_mac) == 0) {
		ath79_init_local_mac(ath79_eth0_data.mac_addr, lan_mac);
		ath79_init_mac(wlan0_mac, lan_mac, 0);
		ath79_init_mac(wlan1_mac, lan_mac, 1);
	} else {
		pr_err("could not find ethaddr in u-boot environment\n");
	}

	ath79_register_m25p80(NULL);

	ath79_register_leds_gpio(-1, ARRAY_SIZE(esr900_leds_gpio),
					esr900_leds_gpio);
	ath79_register_gpio_keys_polled(-1, ESR900_KEYS_POLL_INTERVAL,
					ARRAY_SIZE(esr900_gpio_keys),
					esr900_gpio_keys);

	ath79_register_usb();

	ath79_register_wmac(art + ESR900_WMAC_CALDATA_OFFSET, wlan0_mac);

	ath79_setup_qca955x_eth_cfg(QCA955X_ETH_CFG_RGMII_EN);

	ath79_register_mdio(0, 0x0);

	mdiobus_register_board_info(esr900_mdio0_info,
				    ARRAY_SIZE(esr900_mdio0_info));

	/* GMAC0 is connected to the RMGII interface */
	ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RGMII;
	ath79_eth0_data.phy_mask = ESR900_LAN_PHYMASK;
	ath79_eth0_data.mii_bus_dev = &ath79_mdio0_device.dev;

	ath79_eth0_pll_data.pll_1000 = 0xa6000000;
	ath79_register_eth(0);

	/* GMAC1 is connected to the SGMII interface */
	ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_SGMII;
	ath79_eth1_data.speed = SPEED_1000;
	ath79_eth1_data.duplex = DUPLEX_FULL;

	ath79_eth1_pll_data.pll_1000 = 0x03000101;
	ath79_register_eth(1);

	ap91_pci_init(art + ESR900_PCIE_CALDATA_OFFSET, wlan1_mac);
}
Example #4
0
static void __init wrt160nl_setup(void)
{
	const char *nvram = (char *) KSEG1ADDR(WRT160NL_NVRAM_ADDR);
	u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000);
	u8 mac[6];

	if (ath79_nvram_parse_mac_addr(nvram, WRT160NL_NVRAM_SIZE,
				       "lan_hwaddr=", mac) == 0) {
		ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
		ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1);
	}

	ath79_register_mdio(0, 0x0);

	ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
	ath79_eth0_data.phy_mask = 0x01;

	ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
	ath79_eth1_data.phy_mask = 0x10;

	ath79_register_eth(0);
	ath79_register_eth(1);

	ath79_register_m25p80(&wrt160nl_flash_data);

	ath79_register_usb();

	if (ath79_nvram_parse_mac_addr(nvram, WRT160NL_NVRAM_SIZE,
				       "wl0_hwaddr=", mac) == 0)
		ath79_register_wmac(eeprom, mac);
	else
		ath79_register_wmac(eeprom, NULL);

	ath79_register_leds_gpio(-1, ARRAY_SIZE(wrt160nl_leds_gpio),
				 wrt160nl_leds_gpio);

	ath79_register_gpio_keys_polled(-1, WRT160NL_KEYS_POLL_INTERVAL,
					ARRAY_SIZE(wrt160nl_gpio_keys),
					wrt160nl_gpio_keys);
}
Example #5
0
static int epg5000_get_mac(const char *name, char *mac)
{
	u8 *nvram = (u8 *) KSEG1ADDR(EPG5000_NVRAM_ADDR);
	int err;

	err = ath79_nvram_parse_mac_addr(nvram, EPG5000_NVRAM_SIZE,
					 name, mac);
	if (err) {
		pr_err("no MAC address found for %s\n", name);
		return false;
	}

	return true;
}
Example #6
0
static void __init dir_600_a1_setup(void)
{
	const char *nvram = (char *) KSEG1ADDR(DIR_600_A1_NVRAM_ADDR);
	u8 *ee = (u8 *) KSEG1ADDR(0x1fff1000);
	u8 mac_buff[6];
	u8 *mac = NULL;

	if (ath79_nvram_parse_mac_addr(nvram, DIR_600_A1_NVRAM_SIZE,
				       "lan_mac=", mac_buff) == 0) {
		ath79_init_mac(ath79_eth0_data.mac_addr, mac_buff, 0);
		ath79_init_mac(ath79_eth1_data.mac_addr, mac_buff, 1);
		mac = mac_buff;
	}

	ath79_register_m25p80(NULL);

	ath79_gpio_function_disable(AR724X_GPIO_FUNC_ETH_SWITCH_LED0_EN |
				    AR724X_GPIO_FUNC_ETH_SWITCH_LED1_EN |
				    AR724X_GPIO_FUNC_ETH_SWITCH_LED2_EN |
				    AR724X_GPIO_FUNC_ETH_SWITCH_LED3_EN |
				    AR724X_GPIO_FUNC_ETH_SWITCH_LED4_EN);

	ath79_register_leds_gpio(-1, ARRAY_SIZE(dir_600_a1_leds_gpio),
				 dir_600_a1_leds_gpio);

	ath79_register_gpio_keys_polled(-1, DIR_600_A1_KEYS_POLL_INTERVAL,
					ARRAY_SIZE(dir_600_a1_gpio_keys),
					dir_600_a1_gpio_keys);

	ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
	ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1);

	ath79_register_mdio(0, 0x0);

	/* LAN ports */
	ath79_register_eth(1);

	/* WAN port */
	ath79_register_eth(0);

	ap91_pci_init(ee, mac);
}
Example #7
0
static void __init dir_615c1_setup(void)
{
    const char *config = (char *) KSEG1ADDR(DIR_615C1_CONFIG_ADDR);
    u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000);
    u8 mac[6];
    u8 *wlan_mac = NULL;

    if (ath79_nvram_parse_mac_addr(config, DIR_615C1_CONFIG_SIZE,
                                   "lan_mac=", mac) == 0) {
        ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
        ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1);
        wlan_mac = mac;
    }

    ath79_register_mdio(0, DIR_615C1_MDIO_MASK);

    ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
    ath79_eth0_data.phy_mask = DIR_615C1_LAN_PHYMASK;

    ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
    ath79_eth1_data.phy_mask = DIR_615C1_WAN_PHYMASK;

    ath79_register_eth(0);
    ath79_register_eth(1);

    ath79_register_m25p80(NULL);

    ath79_register_leds_gpio(-1, ARRAY_SIZE(dir_615c1_leds_gpio),
                             dir_615c1_leds_gpio);

    ath79_register_gpio_keys_polled(-1, DIR_615C1_KEYS_POLL_INTERVAL,
                                    ARRAY_SIZE(dir_615c1_gpio_keys),
                                    dir_615c1_gpio_keys);

    ath79_register_wmac(eeprom, wlan_mac);
}
Example #8
0
static void __init tew_632brp_setup(void)
{
	const char *config = (char *) KSEG1ADDR(TEW_632BRP_CONFIG_ADDR);
	u8 *eeprom = (u8 *) KSEG1ADDR(0x1fff1000);
	u8 mac[6];
	u8 *wlan_mac = NULL;

	if (ath79_nvram_parse_mac_addr(config, TEW_632BRP_CONFIG_SIZE,
				       "lan_mac=", mac) == 0) {
		ath79_init_mac(ath79_eth0_data.mac_addr, mac, 0);
		ath79_init_mac(ath79_eth1_data.mac_addr, mac, 1);
		wlan_mac = mac;
	}

	ath79_register_mdio(0, TEW_632BRP_MDIO_MASK);

	ath79_eth0_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
	ath79_eth0_data.phy_mask = TEW_632BRP_LAN_PHYMASK;

	ath79_eth1_data.phy_if_mode = PHY_INTERFACE_MODE_RMII;
	ath79_eth1_data.phy_mask = TEW_632BRP_WAN_PHYMASK;

	ath79_register_eth(0);
	ath79_register_eth(1);

	ath79_register_m25p80(&tew_632brp_flash_data);

	ath79_register_leds_gpio(-1, ARRAY_SIZE(tew_632brp_leds_gpio),
				 tew_632brp_leds_gpio);

	ath79_register_gpio_keys_polled(-1, TEW_632BRP_KEYS_POLL_INTERVAL,
					ARRAY_SIZE(tew_632brp_gpio_keys),
					tew_632brp_gpio_keys);

	ath79_register_wmac(eeprom, wlan_mac);
}