[PATCH v2 3/6] imx iim: add mac address support
Baruch Siach
baruch at tkos.co.il
Mon Aug 16 10:10:35 EDT 2010
---
arch/arm/mach-imx/iim.c | 22 +++++++++++++++++++++-
arch/arm/mach-imx/include/mach/iim.h | 13 +++++++++++++
2 files changed, 34 insertions(+), 1 deletions(-)
diff --git a/arch/arm/mach-imx/iim.c b/arch/arm/mach-imx/iim.c
index 73369b7..9d14d35 100644
--- a/arch/arm/mach-imx/iim.c
+++ b/arch/arm/mach-imx/iim.c
@@ -29,6 +29,8 @@
#define DRIVERNAME "imx_iim"
+static unsigned long mac_addr_base;
+
static int do_fuse_sense(unsigned long reg_base, unsigned int bank,
unsigned int row)
{
@@ -224,6 +226,11 @@ static int imx_iim_blow_enable_set(struct device_d *dev, struct param_d *param,
static int imx_iim_probe(struct device_d *dev)
{
+ struct imx_iim_platform_data *pdata = dev->platform_data;
+
+ if (pdata)
+ mac_addr_base = pdata->mac_addr_base;
+
return 0;
}
@@ -288,4 +295,17 @@ static int imx_iim_init(void)
return 0;
}
-device_initcall(imx_iim_init);
+coredevice_initcall(imx_iim_init);
+
+int imx_iim_get_mac(unsigned char *mac)
+{
+ int i;
+
+ if (mac_addr_base == 0)
+ return -EINVAL;
+
+ for (i = 0; i < 6; i++)
+ mac[i] = readb(mac_addr_base + i*4);
+
+ return 0;
+}
diff --git a/arch/arm/mach-imx/include/mach/iim.h b/arch/arm/mach-imx/include/mach/iim.h
index 6e13547..4d54cc0 100644
--- a/arch/arm/mach-imx/include/mach/iim.h
+++ b/arch/arm/mach-imx/include/mach/iim.h
@@ -39,4 +39,17 @@
#define IIM_SCS2 0x0034
#define IIM_SCS3 0x0038
+struct imx_iim_platform_data {
+ unsigned long mac_addr_base;
+};
+
+#ifdef CONFIG_IMX_IIM
+int imx_iim_get_mac(unsigned char *mac);
+#else
+int imx_iim_get_mac(unsigned char *mac)
+{
+ return -EINVAL;
+}
+#endif /* CONFIG_IMX_IIM */
+
#endif /* __MACH_IMX_IIM_H */
--
1.7.1
More information about the barebox
mailing list