summaryrefslogtreecommitdiffstats
path: root/arch/arm/boards/pm9263
diff options
context:
space:
mode:
authorJean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com>2012-10-30 22:00:20 +0100
committerSascha Hauer <s.hauer@pengutronix.de>2012-11-15 20:20:28 +0100
commit47f0e3cab6a0b8047ad7970c92d7b3255593856a (patch)
tree833da85d2cb02d8b611289a34f1f5e76830bf38e /arch/arm/boards/pm9263
parentd741f1bbba0ec844c7861746297e0847025d1441 (diff)
downloadbarebox-47f0e3cab6a0b8047ad7970c92d7b3255593856a.tar.gz
barebox-47f0e3cab6a0b8047ad7970c92d7b3255593856a.tar.xz
pm9263: use w1 serial number to generate local mac address
The OUI will be 'ron' => 72:6F:6E Signed-off-by: Jean-Christophe PLAGNIOL-VILLARD <plagnioj@jcrosoft.com> Signed-off-by: Sascha Hauer <s.hauer@pengutronix.de>
Diffstat (limited to 'arch/arm/boards/pm9263')
-rw-r--r--arch/arm/boards/pm9263/init.c29
1 files changed, 20 insertions, 9 deletions
diff --git a/arch/arm/boards/pm9263/init.c b/arch/arm/boards/pm9263/init.c
index 1d13e03791..14e821fd1b 100644
--- a/arch/arm/boards/pm9263/init.c
+++ b/arch/arm/boards/pm9263/init.c
@@ -37,6 +37,7 @@
#include <mach/at91sam9_smc.h>
#include <mach/sam9_smc.h>
#include <linux/w1-gpio.h>
+#include <w1_mac_address.h>
struct w1_gpio_platform_data w1_pdata = {
.pin = AT91_PIN_PB31,
@@ -93,6 +94,24 @@ static struct at91_ether_platform_data macb_pdata = {
.phy_addr = 0,
};
+static void pm9263_phy_init(void)
+{
+ /*
+ * PB27 enables the 50MHz oscillator for Ethernet PHY
+ * 1 - enable
+ * 0 - disable
+ */
+ at91_set_gpio_output(AT91_PIN_PB27, 1);
+ at91_set_gpio_value(AT91_PIN_PB27, 1); /* 1- enable, 0 - disable */
+}
+
+static void pm9263_add_device_eth(void)
+{
+ w1_local_mac_address_register(0, "ron", "w1-1-0");
+ pm9263_phy_init();
+ at91_add_device_eth(0, &macb_pdata);
+}
+
static int pm9263_mem_init(void)
{
at91_add_device_sdram(64 * 1024 * 1024);
@@ -106,16 +125,8 @@ static int pm9263_devices_init(void)
at91_set_gpio_input(w1_pdata.pin, 0);
add_generic_device_res("w1-gpio", DEVICE_ID_SINGLE, NULL, 0, &w1_pdata);
- /*
- * PB27 enables the 50MHz oscillator for Ethernet PHY
- * 1 - enable
- * 0 - disable
- */
- at91_set_gpio_output(AT91_PIN_PB27, 1);
- at91_set_gpio_value(AT91_PIN_PB27, 1); /* 1- enable, 0 - disable */
-
pm_add_device_nand();
- at91_add_device_eth(0, &macb_pdata);
+ pm9263_add_device_eth();
add_cfi_flash_device(0, AT91_CHIPSELECT_0, 4 * 1024 * 1024, 0);
devfs_add_partition("nor0", 0x00000, 0x40000, DEVFS_PARTITION_FIXED, "self0");