diff options
Diffstat (limited to 'arch/arm/mach-mxs')
-rw-r--r-- | arch/arm/mach-mxs/Kconfig | 4 | ||||
-rw-r--r-- | arch/arm/mach-mxs/mach-mxs.c | 33 |
2 files changed, 33 insertions, 4 deletions
diff --git a/arch/arm/mach-mxs/Kconfig b/arch/arm/mach-mxs/Kconfig index 8cde9e05b5d..84794137b17 100644 --- a/arch/arm/mach-mxs/Kconfig +++ b/arch/arm/mach-mxs/Kconfig @@ -16,11 +16,7 @@ config ARCH_MXS bool "Freescale MXS (i.MX23, i.MX28) support" depends on ARCH_MULTI_V5 select ARCH_REQUIRE_GPIOLIB - select CLKDEV_LOOKUP select CLKSRC_MMIO - select CLKSRC_OF - select GENERIC_CLOCKEVENTS - select HAVE_CLK_PREPARE select PINCTRL select SOC_BUS select SOC_IMX23 diff --git a/arch/arm/mach-mxs/mach-mxs.c b/arch/arm/mach-mxs/mach-mxs.c index 1dc5acd4fc9..2e7cec86e50 100644 --- a/arch/arm/mach-mxs/mach-mxs.c +++ b/arch/arm/mach-mxs/mach-mxs.c @@ -157,6 +157,8 @@ enum mac_oui { OUI_FSL, OUI_DENX, OUI_CRYSTALFONTZ, + OUI_I2SE, + OUI_ARMADEUS, }; static void __init update_fec_mac_prop(enum mac_oui oui) @@ -211,6 +213,16 @@ static void __init update_fec_mac_prop(enum mac_oui oui) macaddr[1] = 0xb9; macaddr[2] = 0xe1; break; + case OUI_I2SE: + macaddr[0] = 0x00; + macaddr[1] = 0x01; + macaddr[2] = 0x87; + break; + case OUI_ARMADEUS: + macaddr[0] = 0x00; + macaddr[1] = 0x1e; + macaddr[2] = 0xac; + break; } val = ocotp[i]; macaddr[3] = (val >> 16) & 0xff; @@ -236,6 +248,11 @@ static void __init imx28_evk_init(void) mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); } +static void __init imx28_apf28_init(void) +{ + update_fec_mac_prop(OUI_ARMADEUS); +} + static int apx4devkit_phy_fixup(struct phy_device *phy) { phy->dev_flags |= MICREL_PHY_50MHZ_CLK; @@ -330,6 +347,11 @@ static void __init crystalfontz_init(void) update_fec_mac_prop(OUI_CRYSTALFONTZ); } +static void __init duckbill_init(void) +{ + update_fec_mac_prop(OUI_I2SE); +} + static void __init m28cu3_init(void) { update_fec_mac_prop(OUI_DENX); @@ -426,6 +448,11 @@ static int __init mxs_restart_init(void) return 0; } +static void __init eukrea_mbmx283lc_init(void) +{ + mxs_saif_clkmux_select(MXS_DIGCTL_SAIF_CLKMUX_EXTMSTR0); +} + static void __init mxs_machine_init(void) { struct device_node *root; @@ -458,10 +485,16 @@ static void __init mxs_machine_init(void) if (of_machine_is_compatible("fsl,imx28-evk")) imx28_evk_init(); + if (of_machine_is_compatible("armadeus,imx28-apf28")) + imx28_apf28_init(); else if (of_machine_is_compatible("bluegiga,apx4devkit")) apx4devkit_init(); else if (of_machine_is_compatible("crystalfontz,cfa10036")) crystalfontz_init(); + else if (of_machine_is_compatible("eukrea,mbmx283lc")) + eukrea_mbmx283lc_init(); + else if (of_machine_is_compatible("i2se,duckbill")) + duckbill_init(); else if (of_machine_is_compatible("msr,m28cu3")) m28cu3_init(); |