static int __init mx28evk_fec_get_mac(void) { int i; u32 val; const u32 *ocotp = mxs_get_ocotp(); if (!ocotp) return -ETIMEDOUT; /* * OCOTP only stores the last 4 octets for each mac address, * so hard-code Freescale OUI (00:04:9f) here. */ for (i = 0; i < 2; i++) { val = ocotp[i]; mx28_fec_pdata[i].mac[0] = 0x00; mx28_fec_pdata[i].mac[1] = 0x04; mx28_fec_pdata[i].mac[2] = 0x9f; mx28_fec_pdata[i].mac[3] = (val >> 16) & 0xff; mx28_fec_pdata[i].mac[4] = (val >> 8) & 0xff; mx28_fec_pdata[i].mac[5] = (val >> 0) & 0xff; } return 0; }
static int __init mx28evk_fec_get_mac(void) { int i; u32 val; const u32 *ocotp = mxs_get_ocotp(); if (!ocotp) goto error; /* * OCOTP only stores the last 4 octets for each mac address, * so hard-code Freescale OUI (00:04:9f) here. */ for (i = 0; i < 2; i++) { val = ocotp[i * 4]; mx28_fec_pdata[i].mac[0] = 0x00; mx28_fec_pdata[i].mac[1] = 0x04; mx28_fec_pdata[i].mac[2] = 0x9f; mx28_fec_pdata[i].mac[3] = (val >> 16) & 0xff; mx28_fec_pdata[i].mac[4] = (val >> 8) & 0xff; mx28_fec_pdata[i].mac[5] = (val >> 0) & 0xff; } return 0; error: pr_err("%s: timeout when reading fec mac from OCOTP\n", __func__); return -ETIMEDOUT; }
static int __init m28evk_fec_get_mac(void) { int i; u32 val; const u32 *ocotp = mxs_get_ocotp(); if (!ocotp) { pr_err("%s: timeout when reading fec mac from OCOTP\n", __func__); return -ETIMEDOUT; } /* * OCOTP only stores the last 4 octets for each mac address, * so hard-code DENX OUI (C0:E5:4E) here. */ for (i = 0; i < 2; i++) { val = ocotp[i * 4]; mx28_fec_pdata[i].mac[0] = 0xC0; mx28_fec_pdata[i].mac[1] = 0xE5; mx28_fec_pdata[i].mac[2] = 0x4E; mx28_fec_pdata[i].mac[3] = (val >> 16) & 0xff; mx28_fec_pdata[i].mac[4] = (val >> 8) & 0xff; mx28_fec_pdata[i].mac[5] = (val >> 0) & 0xff; } return 0; }