|
@@ -133,3 +133,60 @@ static void mx28evk_flexcan_switch(void)
|
|
if (flexcan0_en || flexcan1_en)
|
|
if (flexcan0_en || flexcan1_en)
|
|
gpio_set_value(MX28EVK_FLEXCAN_SWITCH, 1);
|
|
gpio_set_value(MX28EVK_FLEXCAN_SWITCH, 1);
|
|
else
|
|
else
|
|
|
|
+ gpio_set_value(MX28EVK_FLEXCAN_SWITCH, 0);
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static void mx28evk_flexcan0_switch(int enable)
|
|
|
|
+{
|
|
|
|
+ flexcan0_en = enable;
|
|
|
|
+ mx28evk_flexcan_switch();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static void mx28evk_flexcan1_switch(int enable)
|
|
|
|
+{
|
|
|
|
+ flexcan1_en = enable;
|
|
|
|
+ mx28evk_flexcan_switch();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static struct flexcan_platform_data flexcan_pdata[2];
|
|
|
|
+
|
|
|
|
+static struct of_dev_auxdata mxs_auxdata_lookup[] __initdata = {
|
|
|
|
+ OF_DEV_AUXDATA("fsl,imx23-lcdif", 0x80030000, NULL, &mxsfb_pdata),
|
|
|
|
+ OF_DEV_AUXDATA("fsl,imx28-lcdif", 0x80030000, NULL, &mxsfb_pdata),
|
|
|
|
+ OF_DEV_AUXDATA("fsl,imx28-flexcan", 0x80032000, NULL, &flexcan_pdata[0]),
|
|
|
|
+ OF_DEV_AUXDATA("fsl,imx28-flexcan", 0x80034000, NULL, &flexcan_pdata[1]),
|
|
|
|
+ { /* sentinel */ }
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init imx23_timer_init(void)
|
|
|
|
+{
|
|
|
|
+ mx23_clocks_init();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static struct sys_timer imx23_timer = {
|
|
|
|
+ .init = imx23_timer_init,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init imx28_timer_init(void)
|
|
|
|
+{
|
|
|
|
+ mx28_clocks_init();
|
|
|
|
+}
|
|
|
|
+
|
|
|
|
+static struct sys_timer imx28_timer = {
|
|
|
|
+ .init = imx28_timer_init,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+enum mac_oui {
|
|
|
|
+ OUI_FSL,
|
|
|
|
+ OUI_DENX,
|
|
|
|
+ OUI_CRYSTALFONTZ,
|
|
|
|
+};
|
|
|
|
+
|
|
|
|
+static void __init update_fec_mac_prop(enum mac_oui oui)
|
|
|
|
+{
|
|
|
|
+ struct device_node *np, *from = NULL;
|
|
|
|
+ struct property *newmac;
|
|
|
|
+ const u32 *ocotp = mxs_get_ocotp();
|
|
|
|
+ u8 *macaddr;
|
|
|
|
+ u32 val;
|
|
|
|
+ int i;
|