void __init omap4_espresso10_input_init(void) { u32 boardtype = omap4_espresso10_get_board_type(); if (boardtype == SEC_MACHINE_ESPRESSO10_WIFI) espresso10_ts_pdata.model_name = "P5110"; else if (boardtype == SEC_MACHINE_ESPRESSO10_USA_BBY) espresso10_ts_pdata.model_name = "P5113"; else espresso10_ts_pdata.model_name = "P5100"; if (system_rev >= 7) espresso10_ts_panel_setup(); espresso10_gpio_keypad_gpio_init(); espresso10_tsp_gpio_init(); i2c_register_board_info(3, espresso_i2c3_boardinfo, ARRAY_SIZE(espresso_i2c3_boardinfo)); espresso_create_sec_key_dev(); #ifdef CONFIG_SEC_DEBUG if (sec_debug_get_level()) { espresso_gpio_keypad_keys_info_high.flags |= GPIOEDF_PRINT_KEYS; espresso_gpio_keypad_keys_info_low.flags |= GPIOEDF_PRINT_KEYS; } #endif platform_device_register(&espresso_gpio_keypad_device); }
int __init omap4_espresso10_irled_init(void) { int ret = 0; int i; unsigned int boardtype = omap4_espresso10_get_board_type(); if (system_rev > 6 && boardtype != SEC_MACHINE_ESPRESSO10_USA_BBY) { for (i = 0; i < ARRAY_SIZE(irled_gpios); i++) { irled_gpios[i].gpio = omap_muxtbl_get_gpio_by_name(irled_gpios[i].label); omap_mux_set_gpio( OMAP_PIN_INPUT_PULLDOWN | OMAP_MUX_MODE7, irled_gpios[i].gpio); } return 0; } for (i = 0; i < ARRAY_SIZE(irled_gpios); i++) irled_gpios[i].gpio = omap_muxtbl_get_gpio_by_name(irled_gpios[i].label); gpio_request_array(irled_gpios, ARRAY_SIZE(irled_gpios)); ret = irled_init(); if (ret < 0) { pr_err("irled: irled_init failed\n"); for (i = 0; i < ARRAY_SIZE(irled_gpios); i++) gpio_free(irled_gpios[i].gpio); } return ret; }
void __init omap4_espresso10_none_modem_init(void) { unsigned int board_type = omap4_espresso10_get_board_type(); if (board_type == SEC_MACHINE_ESPRESSO10_WIFI || board_type == SEC_MACHINE_ESPRESSO10_USA_BBY) none_modem_cfg_mux(); }
static int __init init_modem(void) { unsigned int board_type = omap4_espresso10_get_board_type(); if (board_type == SEC_MACHINE_ESPRESSO10_WIFI || board_type == SEC_MACHINE_ESPRESSO10_USA_BBY) return 0; umts_modem_cfg_gpio(); platform_device_register(&umts_modem); mif_info("board init_modem done\n"); return 0; }
void __init omap4_espresso10_pmic_init(void) { unsigned int board_type = omap4_espresso10_get_board_type(); unsigned int gpio_sys_drm_msec = omap_muxtbl_get_gpio_by_name("SYS_DRM_MSEC"); /* Update oscillator information */ omap_pm_set_osc_lp_time(15000, 1); /* * This will allow unused regulator to be shutdown. This flag * should be set in the board file. Before regulators are registered. */ regulator_has_full_constraints(); espresso10_audio_init(); platform_add_devices(espresso10_pmic_devices, ARRAY_SIZE(espresso10_pmic_devices)); /* * PMIC is change from twl6030 to twl6032 from rev0.2. * Espresso10 rev0.2 board have 5 as system_rev. * ldo4 is used for VAP_IO_2.8V and ldo is nc from rev0.3 * Espresso10 rev0.3 board have 6 as system_rev. */ if (system_rev >= 6) i2c_register_board_info(1, espresso10_twl6032_i2c1_board_info_rev03, ARRAY_SIZE(espresso10_twl6032_i2c1_board_info_rev03)); else if (system_rev == 5) i2c_register_board_info(1, espresso10_twl6032_i2c1_board_info_rev02, ARRAY_SIZE(espresso10_twl6032_i2c1_board_info_rev02)); else i2c_register_board_info(1, espresso10_twl6030_i2c1_board_info, ARRAY_SIZE(espresso10_twl6030_i2c1_board_info)); /* * Use external ldo for tflash from rev0.3 * Register fixed regulator to control ldo which is used by tflash. */ if (system_rev >= 6) { espresso10_vmmc_config.gpio = omap_muxtbl_get_gpio_by_name("TF_EN"); platform_device_register(&espresso10_vmmc_device); } /* * only best buy Wi-Fi verstion support MHL from rev0.4 * Set lodln regulator as VDAC regulator which is used by MHL. */ if (board_type == SEC_MACHINE_ESPRESSO10_USA_BBY && system_rev >= 7) espresso10_twl6032_pdata_rev03.ldoln = &espresso10_vdac; /* * Drive MSECURE high for TWL6030 write access. */ gpio_request(gpio_sys_drm_msec, "SYS_DRM_MSEC"); gpio_direction_output(gpio_sys_drm_msec, 1); if (enable_sr) omap_enable_smartreflex_on_init(); /*enable off-mode*/ omap_pm_enable_off_mode(); }
void __init omap4_espresso10_display_init(void) { struct ltn101al03_panel_data *panel; int ret, i; u8 board_type; /* Default setting vlaue for SEC panel*/ int platform_brightness[] = { BRIGHTNESS_OFF, BRIGHTNESS_DIM, BRIGHTNESS_MIN, BRIGHTNESS_25, BRIGHTNESS_DEFAULT, BRIGHTNESS_MAX}; int kernel_brightness[] = {0, 3, 3, 8, 47, 81}; if (espresso10_panel_data.panel_id == PANEL_BOE) { kernel_brightness[4] = 47; kernel_brightness[5] = 81; } #ifdef CONFIG_FB_OMAP_BOOTLOADER_INIT dss_ick = clk_get(NULL, "ick"); if (IS_ERR(dss_ick)) { pr_err("Could not get dss interface clock\n"); /* return -ENOENT; */ } dss_sys_fclk = omap_clk_get_by_name("dss_sys_clk"); if (IS_ERR(dss_sys_fclk)) { pr_err("Could not get dss system clock\n"); /* return -ENOENT; */ } clk_enable(dss_sys_fclk); dss_dss_fclk = omap_clk_get_by_name("dss_dss_clk"); if (IS_ERR(dss_dss_fclk)) { pr_err("Could not get dss functional clock\n"); /* return -ENOENT; */ } #endif espresso10_panel_data.lvds_nshdn_gpio = omap_muxtbl_get_gpio_by_name("LVDS_nSHDN"); espresso10_panel_data.lcd_en_gpio = omap_muxtbl_get_gpio_by_name("LCD_EN"); espresso10_panel_data.led_backlight_reset_gpio = omap_muxtbl_get_gpio_by_name("LED_BACKLIGHT_RESET"); espresso10_panel_data.backlight_gptimer_num = 10; espresso10_panel_data.set_power = espresso10_lcd_set_power; espresso10_panel_data.set_gptimer_idle = espresso10_lcd_set_gptimer_idle; for (i = 0 ; i < NUM_BRIGHTNESS_LEVEL ; i++) { espresso10_panel_data.brightness_table.platform_value[i] = platform_brightness[i]; espresso10_panel_data.brightness_table.kernel_value[i] = kernel_brightness[i]; } ret = gpio_request(espresso10_panel_data.lcd_en_gpio, "lcd_en"); if (ret < 0) pr_err("(%s): gpio_request %d failed!\n", __func__, espresso10_panel_data.lcd_en_gpio); gpio_direction_output(espresso10_panel_data.lcd_en_gpio, 1); panel = &espresso10_panel_data; espresso10_lcd_device.data = panel; board_type = omap4_espresso10_get_board_type(); if (board_type == SEC_MACHINE_ESPRESSO10_USA_BBY) { /* Two DSS devices: LCD & HDMI */ espresso10_dss_data.num_devices = 2; espresso10_hdmi_device.hpd_gpio = omap_muxtbl_get_gpio_by_name("HDMI_HPD"); espresso10_hdmi_mux_init(); } else /* LCD only */ espresso10_dss_data.num_devices = 1; omapfb_set_platform_data(&espresso10_fb_pdata); omap_display_init(&espresso10_dss_data); }