static int mx28_evk_devices_init(void) { int i; /* initizalize muxing */ for (i = 0; i < ARRAY_SIZE(mx28evk_pads); i++) imx_gpio_mode(mx28evk_pads[i]); /* enable IOCLK0 to run at the PLL frequency */ imx_set_ioclk(0, 480000000); /* run the SSP unit clock at 100 MHz */ imx_set_sspclk(0, 100000000, 1); armlinux_set_bootparams((void *)IMX_MEMORY_BASE + 0x100); armlinux_set_architecture(MACH_TYPE_MX28EVK); add_generic_device("mxs_mci", 0, NULL, IMX_SSP0_BASE, 0x2000, IORESOURCE_MEM, &mci_pdata); add_generic_device("stmfb", 0, NULL, IMX_FB_BASE, 0x2000, IORESOURCE_MEM, &mx28_evk_fb_pdata); add_generic_device("ocotp", 0, NULL, IMX_OCOTP_BASE, 0x2000, IORESOURCE_MEM, NULL); mx28_evk_get_ethaddr(); /* must be after registering ocotp */ imx_enable_enetclk(); mx28_evk_fec_reset(); add_generic_device("fec_imx", 0, NULL, IMX_FEC0_BASE, 0x4000, IORESOURCE_MEM, &fec_info); return 0; }
static int mx28_evk_devices_init(void) { int i; /* initizalize muxing */ for (i = 0; i < ARRAY_SIZE(mx28evk_pads); i++) imx_gpio_mode(mx28evk_pads[i]); armlinux_set_architecture(MACH_TYPE_MX28EVK); add_generic_device("mxs_mci", 0, NULL, IMX_SSP0_BASE, 0x2000, IORESOURCE_MEM, &mci_pdata); add_generic_device("stmfb", 0, NULL, IMX_FB_BASE, 0x2000, IORESOURCE_MEM, &mx28_evk_fb_pdata); mx28_evk_get_ethaddr(); /* must be after registering ocotp */ mx28_evk_fec_reset(); add_generic_device("imx28-fec", 0, NULL, IMX_FEC0_BASE, 0x4000, IORESOURCE_MEM, &fec_info); imx28_add_nand(); spi_register_board_info(mx28evk_spi_board_info, ARRAY_SIZE(mx28evk_spi_board_info)); add_generic_device("mxs_spi", 2, NULL, IMX_SSP2_BASE, 0x2000, IORESOURCE_MEM, NULL); #ifdef CONFIG_USB_GADGET_DRIVER_ARC imx28_usb_phy0_enable(); imx28_usb_phy1_enable(); add_generic_usb_ehci_device(DEVICE_ID_DYNAMIC, IMX_USB1_BASE, NULL); add_generic_device("fsl-udc", DEVICE_ID_DYNAMIC, NULL, IMX_USB0_BASE, 0x200, IORESOURCE_MEM, &usb_pdata); #endif return 0; }