Hi Florian, Please pull OMAP DSS patches for v3.2 merge window. Note that there are some conflicts with other trees. The board file conflicts are trivial, changes in code which just happen to be next to each other. The LCD driver conflicts are even simpler, there were changes to them from some other tree, but I have removed the files. The conflicts have been solved properly by Stephen in linux-next: https://github.com/sfrothwell/linux-next/commit/3e31b3042760e3906d0a275d7adedfaf55ee5b0a I also attached the output from git show, as github seems to show the full diff for the merge commit. Are you ok with the conflicts? Tomi The following changes since commit b6fd41e29dea9c6753b1843a77e50433e6123bcb: Linux 3.1-rc6 (2011-09-12 14:02:02 -0700) are available in the git repository at: git://gitorious.org/linux-omap-dss2/linux.git for-florian Andy Doan (1): OMAPFB: make debug message more useful Archit Taneja (26): OMAP: DSS2: DISPC: Prepare dispc_dump_regs() for shortening OMAP: DSS2: DISPC: Shorten dispc_dump_regs() OMAP: DSS2: DISPC: dispc_save_context() and dispc_restore_context() cleanup OMAP: DSS2: DISPC: Shorten _dispc_set_color_conv_coef() OMAP: DSS2: Use a macro to declare size of the fifo_size array in dispc.c OMAP: DSS2: Use MIPI DSI enums from include/video/mipi_display.h OMAP: DSS2: DSI: Represent L4 and VP as sources of VC instead of modes OMAP: DSS2: Create enum for DSI operation modes OMAP: DSS2: DSI: Introduce generic write functions OMAP: DSS2: DSI: Remove functions dsi_vc_dcs_read_1() and dsi_vc_dcs_read_2() OMAP: DSS2: DSI: Split dsi_vc_dcs_read() into 2 functions OMAP: DSS2: DSI: Introduce generic read functions OMAP: DSS2: Clean up stallmode and io pad mode selection OMAP: DSS2: Create an enum for DSI pixel formats OMAP: DSS2: DSI: Send zero length packet in dsi_vc_send_null() OMAP: DSS2: DSI Video mode support OMAPDSS: DISPC: Reduce the number of arguments in dispc_ovl_setup() OMAPDSS: DISPC: Pass overlay params as arguments to dispc_ovl_setup() OMAPDSS: DISPC: Create helper function dispc_mgr_is_lcd() OMAPDSS: DISPC: Get correct pixel clock for TV manager OMAPDSS: DISPC: Remove hardcoded use of PPL in five tap clock calculation OMAPDSS: DISPC: Clean up scaling related clock and five tap calculations OMAPDSS: FEATURES: Create a range param to get max downscaling OMAPDSS/OMAP_VOUT: Fix incorrect OMAP3-alpha compatibility setting OMAPDSS: DISPC: VIDEO3 pipeline support OMAPDSS: DISPC: zorder support for DSS overlays Arnd Bergmann (1): video/omap: fix build dependencies Daniel Morsing (1): OMAP: DSS2: Don't allow moving managers away from enabled displays Dima Zavin (1): OMAP: DSS: dispc: enable/disable clocks in error handler Mayuresh Janorkar (1): OMAP: DSS2: Add picodlp panel driver Mythri P K (14): OMAP4: DSS2: HDMI: HDMI clean up to pass base_address OMAP4: DSS2: HDMI: Move pll and video configuration OMAP4: DSS2: HDMI: Use specific HDMI timings structure OMAP4: DSS2: HDMI: Move HDMI IP independent generic header OMAP4: DSS2: HDMI: Move the EDID definition from HDMI OMAP4: DSS2: HDMI: Split the current HDMI driver to move OMAP4: DSS2: HDMI: Move the HDMI IP dependent audio OMAP4: DSS2: HDMI: Rename the functions in HDMI IP library OMAP4: DSS2: HDMI: Function pointer approach to call OMAP4: DSS2: Rename hdmi_omap4_panel.c to hdmi_panel.c OMAPDSS: HDMI: Move the comments in avi infoframe OMAPDSS: HDMI: Replace hdmi_reg struct with u16 OMAPDSS: HDMI: Add missing register definitions OMAPDSS: HDMI: Add support to dump registers through debugfs Thomas Weber (2): OMAP: DSS2: Support for Innolux AT070TN83 OMAP: Devkit8000: Change lcd driver to AT070TN83 Tomi Valkeinen (63): OMAP: DSS2: PicoDLP: fix error handling in power_on OMAP: DSS2: check for manager when enabling display Revert "HACK: OMAP: DSS2: clk hack for OMAP2/3" Revert "OMAP: DSS2: HDMI: fix hdmi clock name" OMAP: DSS2: remove unneeded fck enable/disables OMAP: DSS2: Change DSI device naming OMAP4: TWL: Add common omapdss supplies OMAP: DSS2: DSI: Improve dsi_mux_pads parameters OMAP: DSS2: Implement dsi_mux_pads for OMAP4 OMAP: OMAPFB: make omapfb start even when a display is missing a driver OMAP: DSS2: fix clock sources on error and uninit OMAP: DSS2: Handle manager change in apply OMAP: DSS2: Remove "EXPERIMENTAL" from Kconfig OMAP: DSS2: Remove support for non-DISPC overlays OMAP: DSS2: DISPC: use lookup tables for bit shifts OMAP: DSS2: Add overlay caps to DSS features OMAP: DSS2: Add GLOBAL_ALPHA & PRE_MULT_ALPHA to ovl caps OMAP: DSS2: string parsing cleanups OMAP: OMAPFB: string parsing cleanups OMAP: DSS2: DISPC: remove non-existing func prototypes OMAP: DSS2: DISPC: rename overlay related funcs OMAP: DSS2: DISPC: rename manager related funcs OMAP: DSS2: reorganize functions in dss.h OMAP: DSS2: DISPC: Fix minimum PCD value OMAP: DSS2: HDMI: use default dividers OMAP: DSS2: HDMI: change regn definition OMAP: DSS2: DSI: Add comment about regn OMAP: DSS2: DISPC: Add missing IRQ definitions OMAP: DSS2: add dss_get_hdmi_venc_clk_source() OMAP: DSS2: DISPC: improve dispc_mgr_enable_digit_out() OMAP: DSS2: HDMI: improve hdmi output enable OMAP: DSS2: add read_edid() to omap_dss_driver struct OMAP: DSS2: add detect() to omap_dss_driver struct OMAP: DSS2: HDMI: make set_timing saner OMAP: DSS2: HDMI: implement read_edid() OMAP: DSS2: HDMI: remove edid parsing OMAP: DSS2: HDMI: split hdmi_core_ddc_edid OMAP: DSS2: HDMI: clean up edid reading & fix checksum OMAP: DSS2: HDMI: remove error prints in check_timings OMAP: DSS2: HDMI: implement detect() OMAP: DSS2: add panel-dvi driver OMAP: use dvi panel driver instead of generic-dpi OMAP: stalker: Remove LCD device from board file OMAP: DSS2: panel-generic-dpi: remove "generic" panel OMAP: Add DDC i2c_bus_num to board files OMAPFB: find best mode from edid OMAPDSS: Taal: remove external backlight support OMAPFB: Remove unused lcd drivers OMAPDSS: Port 2430sdp display driver to DSS2 OMAPDSS: Port the H4 display driver to DSS2 OMAPDSS: Port the Apollon display driver to DSS2 OMAPDSS: Add N800 panel driver OMAPDSS: remove vaddr from overlay info OMAP: 4430SDP: Remove unneeded lcd config OMAP4: 4430SDP: Add panel support to board file OMAP4: 4430SDP: Add picodlp support to board file OMAP: RX51: Remove unused old omapfb stuff OMAP: omap3touchbook: Remove unused lcd stuff OMAP: 2420SDP: Port the display driver to new DSS2 OMAP: LDP: Port the display driver to new DSS2 OMAP: H4: Port the display driver to new DSS2 OMAP: Apollon: Port the display driver to new DSS2 OMAPDSS: picodlp: add missing #include <linux/module.h> arch/arm/mach-omap2/board-2430sdp.c | 78 +- arch/arm/mach-omap2/board-3430sdp.c | 7 +- arch/arm/mach-omap2/board-4430sdp.c | 208 +++- arch/arm/mach-omap2/board-am3517evm.c | 6 +- arch/arm/mach-omap2/board-apollon.c | 35 +- arch/arm/mach-omap2/board-cm-t35.c | 6 +- arch/arm/mach-omap2/board-devkit8000.c | 10 +- arch/arm/mach-omap2/board-h4.c | 42 +- arch/arm/mach-omap2/board-igep0020.c | 8 +- arch/arm/mach-omap2/board-ldp.c | 123 ++- arch/arm/mach-omap2/board-omap3beagle.c | 8 +- arch/arm/mach-omap2/board-omap3evm.c | 7 +- arch/arm/mach-omap2/board-omap3pandora.c | 2 +- arch/arm/mach-omap2/board-omap3stalker.c | 40 +- arch/arm/mach-omap2/board-omap3touchbook.c | 18 - arch/arm/mach-omap2/board-omap4panda.c | 8 +- arch/arm/mach-omap2/board-overo.c | 7 +- arch/arm/mach-omap2/board-rx51.c | 25 - arch/arm/mach-omap2/display.c | 60 +- arch/arm/mach-omap2/twl-common.c | 11 +- drivers/media/video/omap/omap_vout.c | 18 +- drivers/video/omap/Kconfig | 29 - drivers/video/omap/Makefile | 8 - drivers/video/omap/lcd_2430sdp.c | 203 --- drivers/video/omap/lcd_apollon.c | 136 -- drivers/video/omap/lcd_h4.c | 117 -- drivers/video/omap/lcd_ldp.c | 201 --- drivers/video/omap/lcd_omap3beagle.c | 130 -- drivers/video/omap/lcd_omap3evm.c | 193 --- drivers/video/omap/lcd_overo.c | 180 --- drivers/video/omap2/displays/Kconfig | 28 +- drivers/video/omap2/displays/Makefile | 3 + drivers/video/omap2/displays/panel-dvi.c | 363 +++++ drivers/video/omap2/displays/panel-generic-dpi.c | 113 +- drivers/video/omap2/displays/panel-n8x0.c | 747 +++++++++ drivers/video/omap2/displays/panel-picodlp.c | 594 +++++++ drivers/video/omap2/displays/panel-picodlp.h | 288 ++++ drivers/video/omap2/displays/panel-taal.c | 123 +- drivers/video/omap2/dss/Kconfig | 2 +- drivers/video/omap2/dss/Makefile | 2 +- drivers/video/omap2/dss/core.c | 4 + drivers/video/omap2/dss/dispc.c | 1700 ++++++++------------ drivers/video/omap2/dss/dispc.h | 57 + drivers/video/omap2/dss/display.c | 31 +- drivers/video/omap2/dss/dpi.c | 28 +- drivers/video/omap2/dss/dsi.c | 929 +++++++----- drivers/video/omap2/dss/dss.c | 18 +- drivers/video/omap2/dss/dss.h | 156 +- drivers/video/omap2/dss/dss_features.c | 130 ++- drivers/video/omap2/dss/dss_features.h | 17 +- drivers/video/omap2/dss/hdmi.c | 1260 ++------------- .../omap2/dss/{hdmi_omap4_panel.c => hdmi_panel.c} | 68 +- drivers/video/omap2/dss/manager.c | 191 +-- drivers/video/omap2/dss/overlay.c | 122 +- drivers/video/omap2/dss/rfbi.c | 45 +- drivers/video/omap2/dss/sdi.c | 19 +- drivers/video/omap2/dss/ti_hdmi.h | 138 ++ drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c | 1239 ++++++++++++++ .../video/omap2/dss/{hdmi.h => ti_hdmi_4xxx_ip.h} | 400 +++--- drivers/video/omap2/dss/venc.c | 27 +- drivers/video/omap2/omapfb/Kconfig | 2 +- drivers/video/omap2/omapfb/omapfb-main.c | 134 ++- drivers/video/omap2/omapfb/omapfb-sysfs.c | 6 +- include/video/omap-panel-dvi.h | 37 + include/video/omap-panel-n8x0.h | 15 + include/video/omap-panel-nokia-dsi.h | 8 +- include/video/omap-panel-picodlp.h | 23 + include/video/omapdss.h | 100 +- 68 files changed, 6495 insertions(+), 4596 deletions(-) delete mode 100644 drivers/video/omap/lcd_2430sdp.c delete mode 100644 drivers/video/omap/lcd_apollon.c delete mode 100644 drivers/video/omap/lcd_h4.c delete mode 100644 drivers/video/omap/lcd_ldp.c delete mode 100644 drivers/video/omap/lcd_omap3beagle.c delete mode 100644 drivers/video/omap/lcd_omap3evm.c delete mode 100644 drivers/video/omap/lcd_overo.c create mode 100644 drivers/video/omap2/displays/panel-dvi.c create mode 100644 drivers/video/omap2/displays/panel-n8x0.c create mode 100644 drivers/video/omap2/displays/panel-picodlp.c create mode 100644 drivers/video/omap2/displays/panel-picodlp.h rename drivers/video/omap2/dss/{hdmi_omap4_panel.c => hdmi_panel.c} (79%) create mode 100644 drivers/video/omap2/dss/ti_hdmi.h create mode 100644 drivers/video/omap2/dss/ti_hdmi_4xxx_ip.c rename drivers/video/omap2/dss/{hdmi.h => ti_hdmi_4xxx_ip.h} (54%) create mode 100644 include/video/omap-panel-dvi.h create mode 100644 include/video/omap-panel-n8x0.h create mode 100644 include/video/omap-panel-picodlp.h
commit 3e31b3042760e3906d0a275d7adedfaf55ee5b0a Merge: 49d6b1b 3e28189 Author: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Date: Fri Oct 7 14:12:41 2011 +1100 Merge remote-tracking branch 'omap_dss2/for-next' Conflicts: arch/arm/mach-omap2/board-2430sdp.c arch/arm/mach-omap2/board-4430sdp.c arch/arm/mach-omap2/board-apollon.c arch/arm/mach-omap2/board-h4.c arch/arm/mach-omap2/board-ldp.c arch/arm/mach-omap2/board-rx51.c drivers/video/omap/lcd_apollon.c drivers/video/omap/lcd_ldp.c drivers/video/omap/lcd_overo.c diff --cc arch/arm/mach-omap2/board-2430sdp.c index 4191743,6ab6350..ba7d92b --- a/arch/arm/mach-omap2/board-2430sdp.c +++ b/arch/arm/mach-omap2/board-2430sdp.c @@@ -137,10 -192,12 +192,6 @@@ static inline void board_smc91x_init(vo #endif - static struct omap_board_config_kernel sdp2430_config[] __initdata = { - {OMAP_TAG_LCD, &sdp2430_lcd_config}, - }; - -static void __init omap_2430sdp_init_early(void) -{ - omap2_init_common_infrastructure(); - omap2_init_common_devices(NULL, NULL); -} - static struct regulator_consumer_supply sdp2430_vmmc1_supplies[] = { REGULATOR_SUPPLY("vmmc", "omap_hsmmc.0"), }; diff --cc arch/arm/mach-omap2/board-4430sdp.c index f3917b3,d3874a6..4d0c8b9 --- a/arch/arm/mach-omap2/board-4430sdp.c +++ b/arch/arm/mach-omap2/board-4430sdp.c @@@ -381,14 -379,12 +379,6 @@@ static struct platform_device *sdp4430_ &sdp4430_vbat, }; - static struct omap_lcd_config sdp4430_lcd_config __initdata = { - .ctrl_name = "internal", - }; - - static struct omap_board_config_kernel sdp4430_config[] __initdata = { - { OMAP_TAG_LCD, &sdp4430_lcd_config }, - }; - -static void __init omap_4430sdp_init_early(void) -{ - omap2_init_common_infrastructure(); - omap2_init_common_devices(NULL, NULL); -} - static struct omap_musb_board_data musb_board_data = { .interface_type = MUSB_INTERFACE_UTMI, .mode = MUSB_OTG, diff --cc arch/arm/mach-omap2/board-apollon.c index 868d5f0,d8eb81e..66f3842 --- a/arch/arm/mach-omap2/board-apollon.c +++ b/arch/arm/mach-omap2/board-apollon.c @@@ -265,14 -262,34 +262,28 @@@ static struct omap_usb_config apollon_u .pins[0] = 6, }; - static struct omap_lcd_config apollon_lcd_config __initdata = { - .ctrl_name = "internal", + static struct panel_generic_dpi_data apollon_panel_data = { + .name = "apollon", }; - static struct omap_board_config_kernel apollon_config[] __initdata = { - { OMAP_TAG_LCD, &apollon_lcd_config }, + static struct omap_dss_device apollon_lcd_device = { + .name = "lcd", + .driver_name = "generic_dpi_panel", + .type = OMAP_DISPLAY_TYPE_DPI, + .phy.dpi.data_lines = 18, + .data = &apollon_panel_data, + }; + + static struct omap_dss_device *apollon_dss_devices[] = { + &apollon_lcd_device, + }; + + static struct omap_dss_board_info apollon_dss_data = { + .num_devices = ARRAY_SIZE(apollon_dss_devices), + .devices = apollon_dss_devices, + .default_device = &apollon_lcd_device, }; -static void __init omap_apollon_init_early(void) -{ - omap2_init_common_infrastructure(); - omap2_init_common_devices(NULL, NULL); -} - static struct gpio apollon_gpio_leds[] __initdata = { { LED0_GPIO13, GPIOF_OUT_INIT_LOW, "LED0" }, /* LED0 - AA10 */ { LED1_GPIO14, GPIOF_OUT_INIT_LOW, "LED1" }, /* LED1 - AA6 */ @@@ -334,7 -349,8 +343,9 @@@ static void __init omap_apollon_init(vo */ platform_add_devices(apollon_devices, ARRAY_SIZE(apollon_devices)); omap_serial_init(); + omap_sdrc_init(NULL, NULL); + + omap_display_init(&apollon_dss_data); } static void __init omap_apollon_map_io(void) diff --cc arch/arm/mach-omap2/board-h4.c index f0ddc27,f7c09de..ba81484 --- a/arch/arm/mach-omap2/board-h4.c +++ b/arch/arm/mach-omap2/board-h4.c @@@ -285,10 -301,12 +300,6 @@@ static struct omap_usb_config h4_usb_co .hmc_mode = 0x00, /* 0:dev|otg 1:disable 2:disable */ }; - static struct omap_board_config_kernel h4_config[] __initdata = { - { OMAP_TAG_LCD, &h4_lcd_config }, - }; - -static void __init omap_h4_init_early(void) -{ - omap2_init_common_infrastructure(); - omap2_init_common_devices(NULL, NULL); -} - static void __init omap_h4_init_irq(void) { omap2_init_irq(); @@@ -364,8 -379,9 +372,10 @@@ static void __init omap_h4_init(void platform_add_devices(h4_devices, ARRAY_SIZE(h4_devices)); omap2_usbfs_init(&h4_usb_config); omap_serial_init(); + omap_sdrc_init(NULL, NULL); h4_init_flash(); + + omap_display_init(&h4_dss_data); } static void __init omap_h4_map_io(void) diff --cc arch/arm/mach-omap2/board-ldp.c index 5797917,689ed49..e179da0 --- a/arch/arm/mach-omap2/board-ldp.c +++ b/arch/arm/mach-omap2/board-ldp.c @@@ -179,19 -183,103 +183,97 @@@ static inline void __init ldp_init_smsc gpmc_smsc911x_init(&smsc911x_cfg); } - static struct platform_device ldp_lcd_device = { - .name = "ldp_lcd", - .id = -1, + /* LCD */ + + static int ldp_backlight_gpio; + static int ldp_lcd_enable_gpio; + + #define LCD_PANEL_RESET_GPIO 55 + #define LCD_PANEL_QVGA_GPIO 56 + + static int ldp_panel_enable_lcd(struct omap_dss_device *dssdev) + { + if (gpio_is_valid(ldp_lcd_enable_gpio)) + gpio_direction_output(ldp_lcd_enable_gpio, 1); + if (gpio_is_valid(ldp_backlight_gpio)) + gpio_direction_output(ldp_backlight_gpio, 1); + + return 0; + } + + static void ldp_panel_disable_lcd(struct omap_dss_device *dssdev) + { + if (gpio_is_valid(ldp_lcd_enable_gpio)) + gpio_direction_output(ldp_lcd_enable_gpio, 0); + if (gpio_is_valid(ldp_backlight_gpio)) + gpio_direction_output(ldp_backlight_gpio, 0); + } + + static struct panel_generic_dpi_data ldp_panel_data = { + .name = "nec_nl2432dr22-11b", + .platform_enable = ldp_panel_enable_lcd, + .platform_disable = ldp_panel_disable_lcd, }; - static struct omap_lcd_config ldp_lcd_config __initdata = { - .ctrl_name = "internal", + static struct omap_dss_device ldp_lcd_device = { + .name = "lcd", + .driver_name = "generic_dpi_panel", + .type = OMAP_DISPLAY_TYPE_DPI, + .phy.dpi.data_lines = 18, + .data = &ldp_panel_data, + }; + + static struct omap_dss_device *ldp_dss_devices[] = { + &ldp_lcd_device, }; - static struct omap_board_config_kernel ldp_config[] __initdata = { - { OMAP_TAG_LCD, &ldp_lcd_config }, + static struct omap_dss_board_info ldp_dss_data = { + .num_devices = ARRAY_SIZE(ldp_dss_devices), + .devices = ldp_dss_devices, + .default_device = &ldp_lcd_device, }; + static void __init ldp_display_init(void) + { + int r; + + static struct gpio gpios[] __initdata = { + {LCD_PANEL_RESET_GPIO, GPIOF_OUT_INIT_HIGH, "LCD RESET"}, + {LCD_PANEL_QVGA_GPIO, GPIOF_OUT_INIT_HIGH, "LCD QVGA"}, + }; + + r = gpio_request_array(gpios, ARRAY_SIZE(gpios)); + if (r) { + pr_err("Cannot request LCD GPIOs, error %d\n", r); + return; + } + + omap_display_init(&ldp_dss_data); + } + -static void __init omap_ldp_init_early(void) -{ - omap2_init_common_infrastructure(); - omap2_init_common_devices(NULL, NULL); -} - + static int ldp_twl_gpio_setup(struct device *dev, unsigned gpio, unsigned ngpio) + { + int r; + + struct gpio gpios[] = { + {gpio + 7 , GPIOF_OUT_INIT_LOW, "LCD ENABLE"}, + {gpio + 15, GPIOF_OUT_INIT_LOW, "LCD BACKLIGHT"}, + }; + + r = gpio_request_array(gpios, ARRAY_SIZE(gpios)); + if (r) { + pr_err("Cannot request LCD GPIOs, error %d\n", r); + ldp_backlight_gpio = -EINVAL; + ldp_lcd_enable_gpio = -EINVAL; + return r; + } + + ldp_backlight_gpio = gpio + 15; + ldp_lcd_enable_gpio = gpio + 7; + + return 0; + } + static struct twl4030_gpio_platform_data ldp_gpio_data = { .gpio_base = OMAP_MAX_GPIO_LINES, .irq_base = TWL4030_GPIO_IRQ_BASE, diff --cc arch/arm/mach-omap2/board-rx51.c index e2e958a,9e7dde6..34858c8 --- a/arch/arm/mach-omap2/board-rx51.c +++ b/arch/arm/mach-omap2/board-rx51.c @@@ -79,29 -79,15 +79,6 @@@ static struct cpuidle_params rx51_cpuid {7505 + 15274, 484329, 1}, }; - static struct omap_lcd_config rx51_lcd_config = { - .ctrl_name = "internal", - }; - - static struct omap_fbmem_config rx51_fbmem0_config = { - .size = 752 * 1024, - }; - - static struct omap_fbmem_config rx51_fbmem1_config = { - .size = 752 * 1024, - }; - - static struct omap_fbmem_config rx51_fbmem2_config = { - .size = 752 * 1024, - }; - - static struct omap_board_config_kernel rx51_config[] = { - { OMAP_TAG_FBMEM, &rx51_fbmem0_config }, - { OMAP_TAG_FBMEM, &rx51_fbmem1_config }, - { OMAP_TAG_FBMEM, &rx51_fbmem2_config }, - { OMAP_TAG_LCD, &rx51_lcd_config }, - }; - -static void __init rx51_init_early(void) -{ - struct omap_sdrc_params *sdrc_params; - - omap2_init_common_infrastructure(); - sdrc_params = nokia_get_sdram_timings(); - omap2_init_common_devices(sdrc_params, sdrc_params); -} - extern void __init rx51_peripherals_init(void); #ifdef CONFIG_OMAP_MUX @@@ -118,17 -104,9 +95,15 @@@ static struct omap_musb_board_data musb static void __init rx51_init(void) { + struct omap_sdrc_params *sdrc_params; + omap3_mux_init(board_mux, OMAP_PACKAGE_CBB); - omap_board_config = rx51_config; - omap_board_config_size = ARRAY_SIZE(rx51_config); omap3_pm_init_cpuidle(rx51_cpuidle_params); omap_serial_init(); + + sdrc_params = nokia_get_sdram_timings(); + omap_sdrc_init(sdrc_params, sdrc_params); + usb_musb_init(&musb_board_data); rx51_peripherals_init();