Signed-off-by: Jaiganesh Narayanan <jnarayanan@atheros.com> SVN-Revision: 26521master
parent
13b1bd2ec2
commit
428888faec
@ -0,0 +1,64 @@ |
|||||||
|
/*
|
||||||
|
* Atheros AR934x SoC built-in WMAC device support |
||||||
|
* |
||||||
|
* Copyright (C) 2010-2011 Jaiganesh Narayanan <jnarayanan@atheros.com> |
||||||
|
* |
||||||
|
* Parts of this file are based on Atheros 2.6.31 BSP |
||||||
|
* |
||||||
|
* This program is free software; you can redistribute it and/or modify it |
||||||
|
* under the terms of the GNU General Public License version 2 as published |
||||||
|
* by the Free Software Foundation. |
||||||
|
*/ |
||||||
|
|
||||||
|
#include <linux/kernel.h> |
||||||
|
#include <linux/init.h> |
||||||
|
#include <linux/delay.h> |
||||||
|
#include <linux/etherdevice.h> |
||||||
|
#include <linux/platform_device.h> |
||||||
|
#include <linux/ath9k_platform.h> |
||||||
|
|
||||||
|
#include <asm/mach-ar71xx/ar71xx.h> |
||||||
|
|
||||||
|
#include "dev-ar934x-wmac.h" |
||||||
|
|
||||||
|
static struct ath9k_platform_data ar934x_wmac_data = { |
||||||
|
.led_pin = -1, |
||||||
|
}; |
||||||
|
|
||||||
|
static u8 ar934x_wmac_mac[6]; |
||||||
|
|
||||||
|
static struct resource ar934x_wmac_resources[] = { |
||||||
|
{ |
||||||
|
.start = AR934X_WMAC_BASE, |
||||||
|
.end = AR934X_WMAC_BASE + AR934X_WMAC_SIZE - 1, |
||||||
|
.flags = IORESOURCE_MEM, |
||||||
|
}, { |
||||||
|
.start = AR71XX_CPU_IRQ_IP2, |
||||||
|
.end = AR71XX_CPU_IRQ_IP2, |
||||||
|
.flags = IORESOURCE_IRQ, |
||||||
|
}, |
||||||
|
}; |
||||||
|
|
||||||
|
static struct platform_device ar934x_wmac_device = { |
||||||
|
.name = "ath9k", |
||||||
|
.id = -1, |
||||||
|
.resource = ar934x_wmac_resources, |
||||||
|
.num_resources = ARRAY_SIZE(ar934x_wmac_resources), |
||||||
|
.dev = { |
||||||
|
.platform_data = &ar934x_wmac_data, |
||||||
|
}, |
||||||
|
}; |
||||||
|
|
||||||
|
void __init ar934x_add_device_wmac(u8 *cal_data, u8 *mac_addr) |
||||||
|
{ |
||||||
|
if (cal_data) |
||||||
|
memcpy(ar934x_wmac_data.eeprom_data, cal_data, |
||||||
|
sizeof(ar934x_wmac_data.eeprom_data)); |
||||||
|
|
||||||
|
if (mac_addr) { |
||||||
|
memcpy(ar934x_wmac_mac, mac_addr, sizeof(ar934x_wmac_mac)); |
||||||
|
ar934x_wmac_data.macaddr = ar934x_wmac_mac; |
||||||
|
} |
||||||
|
|
||||||
|
platform_device_register(&ar934x_wmac_device); |
||||||
|
} |
@ -0,0 +1,18 @@ |
|||||||
|
/*
|
||||||
|
* Atheros AR934x SoC built-in WMAC device support |
||||||
|
* |
||||||
|
* Copyright (C) 2010-2011 Jaiganesh Narayanan <jnarayanan@atheros.com> |
||||||
|
* |
||||||
|
* Parts of this file are based on Atheros linux 2.6.31 BSP |
||||||
|
* |
||||||
|
* This program is free software; you can redistribute it and/or modify it |
||||||
|
* under the terms of the GNU General Public License version 2 as published |
||||||
|
* by the Free Software Foundation. |
||||||
|
*/ |
||||||
|
|
||||||
|
#ifndef _AR71XX_DEV_AR934X_WMAC_H |
||||||
|
#define _AR71XX_DEV_AR934X_WMAC_H |
||||||
|
|
||||||
|
void ar934x_add_device_wmac(u8 *cal_data, u8 *mac_addr) __init; |
||||||
|
|
||||||
|
#endif /* _AR71XX_DEV_AR934X_WMAC_H */ |
Loading…
Reference in new issue