static void __init board_init(void) { int num_displays = 0; omap_board_config = board_config; omap_board_config_size = ARRAY_SIZE(board_config); #ifdef CONFIG_CLOCKS_INIT archos_clocks_init(&board_clocks); #endif archos_leds_init(); // set it here mask hugly transitions /* before omap_i2c_init() or IRQ will not forwarded to driver */ if (display_config.nrev > hardware_rev) archos_hdmi_gpio_init(&display_config.rev[hardware_rev]); msecure_init(); /* offmode config, before I2C config! */ board_offmode_config(); omap_i2c_init(); /* Fix to prevent VIO leakage on wl127x */ wl127x_vio_leakage_fix(); #if defined CONFIG_OMAP2_DSS if (archos_lcd_panel_init(&board_lcd_device) == 0) { board_dss_devices[num_displays++] = &board_lcd_device; board_dss_data.default_device = &board_lcd_device; } board_dss_devices[num_displays++] = &board_hdmi_device; #ifdef CONFIG_OMAP2_DSS_DUMMY board_dss_devices[num_displays++] = &board_dummy_device; board_dss_data.default_device = &board_dummy_device; #endif /* CONFIG_OMAP2_DSS_DUMMY */ board_dss_data.num_devices = num_displays; #endif/* CONFIG_OMAP2_DSS */ platform_add_devices(board_devices, ARRAY_SIZE(board_devices)); omap_cfg_reg(H20_3430_UART3_RX_IRRX); omap_serial_init(); usb_musb_init(); archos_usb_ohci_init(); archos_touchscreen_goodix_init(&board_goodix_pdata); archos_accel_init(&board_mma7660fc_pdata); archos_mmc1_setup_gpios(&mmc[0], &board_vmmc_ext); twl4030_mmc_init(mmc); board_vmmc_ext_supply.dev = mmc[0].dev; board_vmmc2_supply.dev = mmc[1].dev; archos_audio_gpio_init(); archos_camera_ov7675_init(); archos_keys_init(); enable_board_wakeup_source(); }
static void __init board_init(void) { int num_displays = 0; omap_board_config = board_config; omap_board_config_size = ARRAY_SIZE(board_config); msecure_init(); /* offmode config, before I2C config! */ board_offmode_config(); omap_i2c_init(); /* Fix to prevent VIO leakage on wl127x */ wl127x_vio_leakage_fix(); #if defined CONFIG_OMAP2_DSS if (archos_lcd_panel_init(&board_lcd_device) == 0) { board_dss_devices[num_displays++] = &board_lcd_device; board_dss_data.default_device = &board_lcd_device; } #ifdef CONFIG_OMAP2_DSS_DUMMY board_dss_devices[num_displays++] = &board_dummy_device; board_dss_data.default_device = &board_dummy_device; #endif /* CONFIG_OMAP2_DSS_DUMMY */ board_dss_data.num_devices = num_displays; #endif/* CONFIG_OMAP2_DSS */ platform_add_devices(board_devices, ARRAY_SIZE(board_devices)); omap_cfg_reg(R3_3611_UART2_RX); omap_cfg_reg(Y3_3611_UART1_RX); omap_cfg_reg(AA2_3611_UART1_CTS); omap_serial_init(); usb_musb_init(); archos_accel_init(&board_mma7660fc_pdata); ads7846_dev_init(); archos_mmc1_setup_gpios(&mmc[0], &board_vmmc_ext); twl4030_mmc_init(mmc); board_vmmc_ext_supply.dev = mmc[0].dev; board_vmmc2_supply.dev = mmc[1].dev; archos_audio_gpio_init(); archos_leds_init(); archos_keys_init(); enable_board_wakeup_source(); }