static void __init balloon3_init(void) { pr_info("Initialising Balloon3\n"); ARB_CNTRL = ARB_CORE_PARK | 0x234; pxa_set_i2c_info(NULL); if (balloon3_has(BALLOON3_FEATURE_AUDIO)) pxa_set_ac97_info(NULL); if (balloon3_has(BALLOON3_FEATURE_TOPPOLY)) { pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_lcd_pin_config)); gpio_request(BALLOON3_GPIO_RUN_BACKLIGHT, "LCD Backlight Power"); gpio_direction_output(BALLOON3_GPIO_RUN_BACKLIGHT, 1); set_pxa_fb_info(&balloon3_pxafb_info); } if (balloon3_has(BALLOON3_FEATURE_MMC)) { pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_mmc_pin_config)); pxa_set_mci_info(&balloon3_mci_platform_data); } pxa_set_ficp_info(&balloon3_ficp_platform_data); if (balloon3_has(BALLOON3_FEATURE_OHCI)) { pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_ohci_pin_config)); pxa_set_ohci_info(&balloon3_ohci_platform_data); } pxa_set_udc_info(&balloon3_udc_info); pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_pin_config)); platform_device_register(&balloon3led_device); }
static void __init balloon3_uhc_init(void) { if (!balloon3_has(BALLOON3_FEATURE_OHCI)) return; pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_uhc_pin_config)); pxa_set_ohci_info(&balloon3_ohci_info); }
static void __init balloon3_lcd_init(void) { int ret; if (!balloon3_has(BALLOON3_FEATURE_TOPPOLY)) return; pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_lcd_pin_config)); ret = gpio_request(BALLOON3_GPIO_RUN_BACKLIGHT, "BKL-ON"); if (ret) { pr_err("Requesting BKL-ON GPIO failed!\n"); goto err; } ret = gpio_direction_output(BALLOON3_GPIO_RUN_BACKLIGHT, 1); if (ret) { pr_err("Setting BKL-ON GPIO direction failed!\n"); goto err2; } balloon3_lcd_screen.pxafb_backlight_power = balloon3_backlight_power; set_pxa_fb_info(&balloon3_lcd_screen); return; err2: gpio_free(BALLOON3_GPIO_RUN_BACKLIGHT); err: return; }
static void __init balloon3_cf_init(void) { if (!balloon3_has(BALLOON3_FEATURE_CF)) return; pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_cf_pin_config)); }
static void __init balloon3_ts_init(void) { if (!balloon3_has(BALLOON3_FEATURE_AUDIO)) return; pxa2xx_mfp_config(ARRAY_AND_SIZE(balloon3_ac97_pin_config)); pxa_set_ac97_info(NULL); platform_device_register(&balloon3_ucb1400_device); }