int __init buzz_init_mmc(unsigned int sys_rev) { uint32_t id; sdslot_vreg_enabled = 0; /* initial WIFI_SHUTDOWN */ id = PCOM_GPIO_CFG(BUZZ_GPIO_WIFI_EN, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &id, 0); gpio_set_value(BUZZ_GPIO_WIFI_EN, 0); wifi_status_cb = NULL; printk(KERN_INFO "%s\n", __func__); msm_add_sdcc(1, &buzz_wifi_data, 0, 0); register_msm_irq_mask(INT_SDC2_0); register_msm_irq_mask(INT_SDC2_1); if (opt_disable_sdcard) { printk(KERN_INFO "buzz: SD-Card interface disabled\n"); goto done; } vreg_sdslot = vreg_get(0, "gp6"); if (IS_ERR(vreg_sdslot)) return PTR_ERR(vreg_sdslot); set_irq_wake(MSM_GPIO_TO_INT(BUZZ_GPIO_SDMC_CD_N), 1); msm_add_sdcc(2, &buzz_sdslot_data, MSM_GPIO_TO_INT(BUZZ_GPIO_SDMC_CD_N), IORESOURCE_IRQ_LOWEDGE | IORESOURCE_IRQ_HIGHEDGE); done: return 0; }
#ifdef CONFIG_MT9P012 { I2C_BOARD_INFO("mt9p012", 0x6C >> 1), }, #endif #if defined(CONFIG_MT9T013) || defined(CONFIG_SENSORS_MT9T013) { I2C_BOARD_INFO("mt9t013", 0x6C), // 0x78>>1 }, #endif }; #ifdef CONFIG_MSM_CAMERA static uint32_t camera_off_gpio_table[] = { /* parallel CAMERA interfaces */ PCOM_GPIO_CFG(0, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT0 */ PCOM_GPIO_CFG(1, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT1 */ PCOM_GPIO_CFG(2, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT2 */ PCOM_GPIO_CFG(3, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT3 */ PCOM_GPIO_CFG(4, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT4 */ PCOM_GPIO_CFG(5, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT5 */ PCOM_GPIO_CFG(6, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT6 */ PCOM_GPIO_CFG(7, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT7 */ PCOM_GPIO_CFG(8, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT8 */ PCOM_GPIO_CFG(9, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT9 */ PCOM_GPIO_CFG(10, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT10 */ PCOM_GPIO_CFG(11, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* DAT11 */ PCOM_GPIO_CFG(12, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* PCLK */ PCOM_GPIO_CFG(13, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* HSYNC_IN */ PCOM_GPIO_CFG(14, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), /* VSYNC_IN */ PCOM_GPIO_CFG(15, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), /* MCLK */
}; static struct microp_i2c_platform_data microp_data = { .num_functions = ARRAY_SIZE(microp_functions), .microp_function = microp_functions, .num_devices = ARRAY_SIZE(microp_devices), .microp_devices = microp_devices, .gpio_reset = BRAVO_GPIO_UP_RESET_N, .spi_devices = SPI_OJ | SPI_GSENSOR, }; static uint opt_usb_h2w_sw; module_param_named(usb_h2w_sw, opt_usb_h2w_sw, uint, 0); static uint32_t usb_phy_3v3_table[] = { PCOM_GPIO_CFG(BRAVO_USB_PHY_3V3_ENABLE, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA) }; static uint32_t usb_ID_PIN_input_table[] = { PCOM_GPIO_CFG(BRAVO_GPIO_USB_ID_PIN, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_4MA), PCOM_GPIO_CFG(BRAVO_GPIO_USB_ID1_PIN, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_4MA), }; static uint32_t usb_ID_PIN_ouput_table[] = { PCOM_GPIO_CFG(BRAVO_GPIO_USB_ID_PIN, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), }; void config_bravo_usb_id_gpios(bool output) { if (output) { config_gpio_table(usb_ID_PIN_ouput_table, ARRAY_SIZE(usb_ID_PIN_ouput_table));
.gain[VOC_NB_INDEX] = {-500, -200, 100, 400, 700, 1000, 0, 0, 0, 0}, .gain[VOC_WB_INDEX] = {-500, -200, 100, 400, 700, 1000, 0, 0, 0, 0}, }, [Q5V2_HW_HAC] = { .max_step = 6, .gain[VOC_NB_INDEX] = {-500, -200, 100, 400, 700, 1000, 0, 0, 0, 0}, .gain[VOC_WB_INDEX] = {-500, -200, 100, 400, 700, 1000, 0, 0, 0, 0}, }, }; static unsigned aux_pcm_gpio_off[] = { PCOM_GPIO_CFG(SPADE_GPIO_BT_PCM_OUT, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(SPADE_GPIO_BT_PCM_IN, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(SPADE_GPIO_BT_PCM_SYNC, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(SPADE_GPIO_BT_PCM_CLK, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), }; static unsigned aux_pcm_gpio_on[] = { PCOM_GPIO_CFG(SPADE_GPIO_BT_PCM_OUT, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(SPADE_GPIO_BT_PCM_IN, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(SPADE_GPIO_BT_PCM_SYNC, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA),
/* * In boot loader, mddi is powered on already. * * So, we just detect panel here, setting different * power function for each panel. * * Then we did not have to detect panel in each time * mddi_client_power or panel_power is called. * * jay: Nov 20, 08' */ int __init latte_init_panel(void) { int rc; int panel_type = 0; int panel_id = -1; int gpio_lcd_id0, gpio_lcd_id1; uint32_t config; struct panel_data *panel_data = &eid_client_data.panel_conf; if (!machine_is_latte()) return -1; B(KERN_INFO "%s: enter.\n", __func__); vreg_lcm_2v6 = vreg_get(0, "gp4"); if (IS_ERR(vreg_lcm_2v6)) return PTR_ERR(vreg_lcm_2v6); vreg_lcm_2v85 = vreg_get(0, "rfrx2"); if (IS_ERR(vreg_lcm_2v85)) return PTR_ERR(vreg_lcm_2v85); gpio_lcd_id0 = PCOM_GPIO_CFG(LATTE_GPIO_LCD_ID0, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA); gpio_lcd_id1 = PCOM_GPIO_CFG(LATTE_GPIO_LCD_ID1, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA); msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &gpio_lcd_id0, 0); msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &gpio_lcd_id1, 0); panel_id = gpio_get_value(LATTE_GPIO_LCD_ID0) | (gpio_get_value(LATTE_GPIO_LCD_ID1) << 1); B(KERN_INFO "%s: panel_id: %d\n", __func__, panel_id); switch(panel_id) { case 0: panel_type = 8; break; case 1: panel_type = 7; break; default: return -1; break; } panel_data->panel_id = panel_type; panel_data->caps = MSMFB_CAP_CABC; panel_data->pwm = pwm_eid; panel_data->shrink = 1; panel_data->shrink_br = latte_panel_shrink; config = PCOM_GPIO_CFG(LATTE_GPIO_LCD_VSYNC, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA); msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); rc = platform_device_register(&msm_device_mdp); if (rc) return rc; msm_device_mddi0.dev.platform_data = &latte_pdata; rc = platform_device_register(&msm_device_mddi0); if (rc) return rc; led_trigger_register_simple("lcd-backlight-gate", &latte_lcd_backlight); if (IS_ERR(latte_lcd_backlight)) printk(KERN_ERR "%s: backlight registration failed!\n", __func__); return 0; }
pmic_spkr_en(RIGHT_SPKR, 1); /* unmute */ pmic_spkr_en_mute(RIGHT_SPKR, 1); } else { pmic_spkr_en_mute(RIGHT_SPKR, 0); pmic_spkr_en(RIGHT_SPKR, 0); pmic_set_spkr_configuration(&scm); } } } static uint32_t hdmi_i2s_enable[] = { PCOM_GPIO_CFG(SUPERSONIC_I2S_CLK, 2, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(SUPERSONIC_I2S_WS, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(SUPERSONIC_I2S_DOUT, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_2MA), }; static uint32_t hdmi_i2s_disable[] = { PCOM_GPIO_CFG(SUPERSONIC_I2S_CLK, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(SUPERSONIC_I2S_WS, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(SUPERSONIC_I2S_DOUT, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_2MA), };
TPO_160_TABLE, TPO_180_TABLE, TPO_200_TABLE, TPO_220_TABLE, TPO_240_TABLE, TPO_260_TABLE, TPO_280_TABLE, TPO_300_TABLE, }; static struct vreg *vreg_lcm_1v8; static struct vreg *vreg_lcm_2v8; static uint32_t display_on_gpio_table[] = { /* Display */ PCOM_GPIO_CFG(LEGEND_LCD_G5, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_DE, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_HSYNC, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_VSYNC, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_B0, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_B1, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_G1, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_G0, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_B4, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_B3, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_B2, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_G4, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_G3, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA), PCOM_GPIO_CFG(LEGEND_LCD_G2, 1, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_16MA),
#include "devices.h" #include "proc_comm.h" #define DEBUG_SDSLOT_VDD 1 static bool opt_disable_sdcard; static int __init supersonic_disablesdcard_setup(char *str) { opt_disable_sdcard = (bool)simple_strtol(str, NULL, 0); return 1; } __setup("board_supersonic.disable_sdcard=", supersonic_disablesdcard_setup); static uint32_t sdcard_on_gpio_table[] = { PCOM_GPIO_CFG(62, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CLK */ PCOM_GPIO_CFG(63, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CMD */ PCOM_GPIO_CFG(64, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT3 */ PCOM_GPIO_CFG(65, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* DAT2 */ PCOM_GPIO_CFG(66, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ PCOM_GPIO_CFG(67, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ }; static uint32_t sdcard_off_gpio_table[] = { PCOM_GPIO_CFG(62, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CLK */ PCOM_GPIO_CFG(63, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CMD */ PCOM_GPIO_CFG(64, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */ PCOM_GPIO_CFG(65, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */ PCOM_GPIO_CFG(66, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ PCOM_GPIO_CFG(67, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ };
.resume_early = hero_pwrsink_resume_early, .suspend_early = hero_pwrsink_suspend_early, .resume_late = hero_pwrsink_resume_late, }; static struct platform_device hero_pwr_sink = { .name = "htc_pwrsink", .id = -1, .dev = { .platform_data = &hero_pwrsink_data, }, }; /* Switch between UART3 and GPIO */ static uint32_t uart3_on_gpio_table[] = { /* RX */ PCOM_GPIO_CFG(HERO_GPIO_UART3_RX, 1, GPIO_INPUT, GPIO_NO_PULL, 0), /* TX */ PCOM_GPIO_CFG(HERO_GPIO_UART3_TX, 1, GPIO_OUTPUT, GPIO_NO_PULL, 0), }; /* default TX,RX to GPI */ static uint32_t uart3_off_gpio_table[] = { /* RX, H2W DATA */ PCOM_GPIO_CFG(HERO_GPIO_H2W_DATA, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), /* TX, H2W CLK */ PCOM_GPIO_CFG(HERO_GPIO_H2W_CLK, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), }; static int hero_h2w_path = H2W_GPIO; static void h2w_configure(int route)
I2C_BOARD_INFO(AKM8973_I2C_NAME, 0x1C), .platform_data = &compass_platform_data, .irq = MSM_GPIO_TO_INT(HTCLEO_GPIO_COMPASS_INT_N), }, { I2C_BOARD_INFO("s5k3e2fx", 0x20 >> 1), }, }; /////////////////////////////////////////////////////////////////////// // USB /////////////////////////////////////////////////////////////////////// static uint32_t usb_phy_3v3_table[] = { PCOM_GPIO_CFG(HTCLEO_GPIO_USBPHY_3V3_ENABLE, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA) }; static int htcleo_phy_init_seq[] ={0x0C, 0x31, 0x30, 0x32, 0x1D, 0x0D, 0x1D, 0x10, -1}; // modified to further reflect bravo kernel code static struct msm_hsusb_platform_data msm_hsusb_pdata = { .phy_init_seq = htcleo_phy_init_seq, .phy_reset = msm_hsusb_8x50_phy_reset, .accessory_detect = 0, /* detect by ID pin gpio */ }; static struct usb_mass_storage_platform_data mass_storage_pdata = { .nluns = 1, .vendor = "HTC", .product = "HD2",
#include <linux/gpio.h> #include <asm/mach-types.h> #include "gpio_chip.h" #include "proc_comm.h" #include "board-liberty.h" static struct rfkill *bt_rfk; static const char bt_name[] = "bcm4329"; /* bt initial configuration */ static uint32_t liberty_bt_init_table[] = { PCOM_GPIO_CFG(LIBERTY_GPIO_BT_UART1_RTS, /* BT_RTS */ 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), PCOM_GPIO_CFG(LIBERTY_GPIO_BT_UART1_CTS, /* BT_CTS */ 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), PCOM_GPIO_CFG(LIBERTY_GPIO_BT_UART1_RX, /* BT_RX */ 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_8MA), PCOM_GPIO_CFG(LIBERTY_GPIO_BT_UART1_TX, /* BT_TX */ 0, GPIO_OUTPUT,
static void mddi_novatec_power(struct msm_mddi_client_data *client_data, int on) { int rc; unsigned config; if (panel_type == 0) { if (on) { if(axi_clk) clk_set_rate(axi_clk, 192000000); vreg_enable(V_LCM_2V85); vreg_enable(V_LCMIO_1V8); hr_msleep(20); gpio_set_value(LEXIKONCT_LCD_RSTz, 1); hr_msleep(25); gpio_set_value(LEXIKONCT_LCD_RSTz, 0); hr_msleep(10); gpio_set_value(LEXIKONCT_LCD_RSTz, 1); hr_msleep(20); } else { vreg_disable(V_LCMIO_1V8); vreg_disable(V_LCM_2V85); gpio_set_value(LEXIKONCT_LCD_RSTz, 0); } } else { if (on) { if(axi_clk) clk_set_rate(axi_clk, 192000000); vreg_enable(V_LCM_2V85); hr_msleep(3); vreg_disable(V_LCM_2V85); hr_msleep(50); vreg_enable(V_LCM_2V85); vreg_enable(V_LCMIO_1V8); hr_msleep(2); gpio_set_value(LEXIKONCT_LCD_RSTz, 1); hr_msleep(1); gpio_set_value(LEXIKONCT_LCD_RSTz, 0); hr_msleep(1); gpio_set_value(LEXIKONCT_LCD_RSTz, 1); hr_msleep(60); config = PCOM_GPIO_CFG(LEXIKONCT_MDDI_TE, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA); rc = msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); config = PCOM_GPIO_CFG(LEXIKONCT_LCD_ID1, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA); rc = msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); config = PCOM_GPIO_CFG(LEXIKONCT_LCD_ID0, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA); rc = msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); } else { config = PCOM_GPIO_CFG(LEXIKONCT_MDDI_TE, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_2MA); rc = msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); config = PCOM_GPIO_CFG(LEXIKONCT_LCD_ID1, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA); rc = msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); config = PCOM_GPIO_CFG(LEXIKONCT_LCD_ID0, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA); rc = msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); gpio_set_value(LEXIKONCT_LCD_RSTz, 0); hr_msleep(10); vreg_disable(V_LCMIO_1V8); vreg_disable(V_LCM_2V85); } } }
.dev = { .platform_data = &msm_camera_device_data, }, }; static struct platform_device trout_camera = { .name = "camera", .dev = { .platform_data = &msm_camera_device, }, }; /* Switch between UART3 and GPIO */ static uint32_t uart3_on_gpio_table[] = { /* RX */ PCOM_GPIO_CFG(BAHAMAS_GPIO_UART3_RX, 1, GPIO_INPUT, GPIO_NO_PULL, 0), /* TX */ PCOM_GPIO_CFG(BAHAMAS_GPIO_UART3_TX, 1, GPIO_OUTPUT, GPIO_NO_PULL, 0), }; /* Set TX,RX to GPI */ static uint32_t uart3_off_gpi_table[] = { PCOM_GPIO_CFG(BAHAMAS_GPIO_H2W_DATA, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), /* RX, H2W DATA */ PCOM_GPIO_CFG(BAHAMAS_GPIO_H2W_CLK, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), /* TX, H2W CLK */ }; static int bahamas_h2w_path = H2W_GPIO; static void h2w_configure(int route)
static struct msm_otg_platform_data msm_otg_pdata = { .phy_init_seq = htcleo_phy_init_seq, .mode = USB_PERIPHERAL, .otg_control = OTG_PHY_CONTROL, }; #endif #if 0 static struct msm_hsusb_gadget_platform_data msm_gadget_pdata = { .is_phy_status_timer_on = 1, }; #endif static uint32_t usb_phy_3v3_table[] = { PCOM_GPIO_CFG(HTCLEO_GPIO_USBPHY_3V3_ENABLE, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA) }; #if 0 // modified to further reflect bravo kernel code static struct msm_hsusb_platform_data msm_hsusb_pdata = { .phy_init_seq = htcleo_phy_init_seq, .phy_reset = msm_hsusb_8x50_phy_reset, .accessory_detect = 0, /* detect by ID pin gpio */ }; #endif static struct usb_mass_storage_platform_data mass_storage_pdata = { .nluns = 1, .vendor = "HTC", .product = "HD2", .release = 0x0100,
/* * In boot loader, mddi is powered on already. * * So, we just detect panel here, setting different * power function for each panel. * * Then we did not have to detect panel in each time * mddi_client_power or panel_power is called. * * jay: Nov 20, 08' */ int __init chacha_init_panel(void) { int rc; int panel_id = -1; int gpio_lcd_id0, gpio_lcd_id1; uint32_t config; struct panel_data *panel_data = &renesas_AUO_client_data.panel_conf; struct msm_mddi_client_data *client = renesas.client_data; B(KERN_INFO "%s: enter.\n", __func__); vreg_lcm_2v6 = vreg_get(0, "gp4"); if (IS_ERR(vreg_lcm_2v6)) return PTR_ERR(vreg_lcm_2v6); vreg_lcm_2v85 = vreg_get(0, "rfrx2"); if (IS_ERR(vreg_lcm_2v85)) return PTR_ERR(vreg_lcm_2v85); gpio_lcd_id0 = PCOM_GPIO_CFG(CHACHA_GPIO_LCD_ID0, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA); gpio_lcd_id1 = PCOM_GPIO_CFG(CHACHA_GPIO_LCD_ID1, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA); msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &gpio_lcd_id0, 0); msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &gpio_lcd_id1, 0); panel_id = gpio_get_value(CHACHA_GPIO_LCD_ID0) | (gpio_get_value(CHACHA_GPIO_LCD_ID1) << 1); B(KERN_INFO "%s: panel_id:%d.\n", __func__,panel_id); switch(panel_id) { case 0: panel_data = &renesas_liberty_client_data.panel_conf; break; case 1: panel_data = &renesas_AUO_client_data.panel_conf; break; default: chacha_mddi_renesas_power(client, 0); gpio_lcd_id0 = PCOM_GPIO_CFG(CHACHA_GPIO_LCD_ID0, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA); gpio_lcd_id1 = PCOM_GPIO_CFG(CHACHA_GPIO_LCD_ID1, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA); msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &gpio_lcd_id0, 0); msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &gpio_lcd_id1, 0); break; } panel_data->panel_id = panel_type; panel_data->caps = MSMFB_CAP_CABC; panel_data->pwm = pwm_renesas; panel_data->shrink = 1; panel_data->shrink_br = chacha_panel_shrink; panel_data->default_br = 83; config = PCOM_GPIO_CFG(CHACHA_GPIO_MDDI_TE, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA); msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &config, 0); msm_device_mdp.dev.platform_data = &chacha_mdp_pdata; rc = platform_device_register(&msm_device_mdp); if (rc) return rc; msm_device_mddi0.dev.platform_data = &chacha_pdata; rc = platform_device_register(&msm_device_mddi0); if (rc) return rc; led_trigger_register_simple("lcd-backlight-gate", &chacha_lcd_backlight); if (IS_ERR(chacha_lcd_backlight)) printk(KERN_ERR "[BKL] %s: backlight registration failed!\n", __func__); return 0; }
/* ---- COMMON ---- */ static void config_gpio_table(uint32_t *table, int len) { int n; unsigned id; for(n = 0; n < len; n++) { id = table[n]; msm_proc_comm(PCOM_RPC_GPIO_TLMM_CONFIG_EX, &id, 0); } } /* ---- SDCARD ---- */ static uint32_t sdcard_on_gpio_table[] = { PCOM_GPIO_CFG(62, 2, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* CLK */ PCOM_GPIO_CFG(63, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* CMD */ PCOM_GPIO_CFG(64, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT3 */ PCOM_GPIO_CFG(65, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT2 */ PCOM_GPIO_CFG(66, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT1 */ PCOM_GPIO_CFG(67, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT0 */ }; static uint32_t sdcard_off_gpio_table[] = { PCOM_GPIO_CFG(62, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CLK */ PCOM_GPIO_CFG(63, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CMD */ PCOM_GPIO_CFG(64, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */ PCOM_GPIO_CFG(65, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */ PCOM_GPIO_CFG(66, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ PCOM_GPIO_CFG(67, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ };
#include <asm/mach-types.h> #include "gpio_chip.h" #include "proc_comm.h" #include "board-spade.h" static struct rfkill *bt_rfk; static const char bt_name[] = "bcm4329"; /* bt initial configuration */ static uint32_t spade_bt_init_table[] = { /* BT_RTS */ PCOM_GPIO_CFG(SPADE_GPIO_BT_UART1_RTS, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_8MA), /* BT_CTS */ PCOM_GPIO_CFG(SPADE_GPIO_BT_UART1_CTS, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_8MA), /* BT_RX */ PCOM_GPIO_CFG(SPADE_GPIO_BT_UART1_RX, 1, GPIO_INPUT, GPIO_PULL_UP, GPIO_8MA), /* BT_TX */
static char bt_chip_id[10] = "bcm4329"; module_param_string(bt_chip_id, bt_chip_id, sizeof(bt_chip_id), S_IWUSR | S_IRUGO); MODULE_PARM_DESC(bt_chip_id, "BT's chip id"); static char bt_fw_version[10] = "v2.0.38"; module_param_string(bt_fw_version, bt_fw_version, sizeof(bt_fw_version), S_IWUSR | S_IRUGO); MODULE_PARM_DESC(bt_fw_version, "BT's fw version"); static void buzzc_reset(void) { gpio_set_value(BUZZC_GPIO_PS_HOLD, 0); } static uint32_t proximity_on_gpio_table[] = { PCOM_GPIO_CFG(BUZZC_GPIO_PROXIMITY_INT, 0, GPIO_INPUT, GPIO_NO_PULL, 0), /* PS_VOUT */ }; static uint32_t proximity_off_gpio_table[] = { PCOM_GPIO_CFG(BUZZC_GPIO_PROXIMITY_INT, 0, GPIO_INPUT, GPIO_PULL_DOWN, 0) /* PS_VOUT */ }; static uint32_t camera_off_gpio_table[] = { /* CAMERA */ PCOM_GPIO_CFG(2, 0, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT2 */ PCOM_GPIO_CFG(3, 0, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT3 */ PCOM_GPIO_CFG(4, 0, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT4 */ PCOM_GPIO_CFG(5, 0, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT5 */ PCOM_GPIO_CFG(6, 0, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT6 */ PCOM_GPIO_CFG(7, 0, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_4MA), /* DAT7 */
} else { pmic_spkr_en_mute(RIGHT_SPKR, 0); pmic_spkr_en(RIGHT_SPKR, 0); pmic_set_spkr_configuration(&scm); } // } } static uint32_t bt_sco_enable[] = { PCOM_GPIO_CFG(HTCLEO_BT_PCM_OUT, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(HTCLEO_BT_PCM_IN, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(HTCLEO_BT_PCM_SYNC, 2, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(HTCLEO_BT_PCM_CLK, 2, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA) }; static uint32_t bt_sco_disable[] = { PCOM_GPIO_CFG(HTCLEO_BT_PCM_OUT, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(HTCLEO_BT_PCM_IN, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(HTCLEO_BT_PCM_SYNC, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(HTCLEO_BT_PCM_CLK, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA) }; void htcleo_bt_sco_enable(int en) {
{ .gpio = PM8058_GPIO_PM_TO_SYS(GLACIER_SEND_KEY), .code = KEY_F13,/*Genius/voice command key*/ }, { .gpio = PM8058_GPIO_PM_TO_SYS(GLACIER_CAM_STEP2), .code = KEY_CAMERA, }, { .gpio = PM8058_GPIO_PM_TO_SYS(GLACIER_CAM_STEP1), .code = KEY_HP, }, }; uint32_t inputs_gpio_table[] = { PCOM_GPIO_CFG(GLACIER_GPIO_KEYPAD_POWER_KEY, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_4MA), }; static void glacier_setup_input_gpio(void) { gpio_tlmm_config(inputs_gpio_table[0], GPIO_CFG_ENABLE); } static struct gpio_event_input_info glacier_keypad_input_info = { .info.func = gpio_event_input_func, #ifdef CONFIG_OPTICALJOYSTICK_CRUCIAL .info.oj_btn = true, #endif .flags = GPIOEDF_PRINT_KEYS, .type = EV_KEY,
#include <mach/htc_pwrsink.h> #include <asm/mach/mmc.h> #include "devices.h" #include "board-vision.h" #include "proc_comm.h" extern int msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat, unsigned int stat_irq, unsigned long stat_irq_flags); /* ---- SDCARD ---- */ static uint32_t sdcard_on_gpio_table[] = { PCOM_GPIO_CFG(58, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_16MA), /* CLK */ PCOM_GPIO_CFG(59, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* CMD */ PCOM_GPIO_CFG(60, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT3 */ PCOM_GPIO_CFG(61, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT2 */ PCOM_GPIO_CFG(62, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT1 */ PCOM_GPIO_CFG(63, 1, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT0 */ }; static uint32_t sdcard_off_gpio_table[] = { PCOM_GPIO_CFG(58, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CLK */ PCOM_GPIO_CFG(59, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* CMD */ PCOM_GPIO_CFG(60, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT3 */ PCOM_GPIO_CFG(61, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT2 */ PCOM_GPIO_CFG(62, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT1 */ PCOM_GPIO_CFG(63, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* DAT0 */ };
.gain[VOC_NB_INDEX] = {-500, -200, 100, 400, 700, 1000, 0, 0, 0, 0}, .gain[VOC_WB_INDEX] = {-500, -200, 100, 400, 700, 1000, 0, 0, 0, 0}, }, [Q5V2_HW_HAC] = { .max_step = 6, .gain[VOC_NB_INDEX] = {-500, -200, 100, 400, 700, 1000, 0, 0, 0, 0}, .gain[VOC_WB_INDEX] = {-500, -200, 100, 400, 700, 1000, 0, 0, 0, 0}, }, }; static unsigned aux_pcm_gpio_off[] = { PCOM_GPIO_CFG(SPEEDY_GPIO_BT_PCM_OUT, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(SPEEDY_GPIO_BT_PCM_IN, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), PCOM_GPIO_CFG(SPEEDY_GPIO_BT_PCM_SYNC, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(SPEEDY_GPIO_BT_PCM_CLK, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), }; static unsigned aux_pcm_gpio_on[] = { PCOM_GPIO_CFG(SPEEDY_GPIO_BT_PCM_OUT, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(SPEEDY_GPIO_BT_PCM_IN, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(SPEEDY_GPIO_BT_PCM_SYNC, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA),
static struct i2c_board_info rev_CX_i2c_devices[] = { { I2C_BOARD_INFO("tpa2018d1", 0x58), .platform_data = &tpa2018_data, }, { I2C_BOARD_INFO("smb329", 0x6E >> 1), }, }; static void config_gpio_table(uint32_t *table, int len); static uint32_t camera_off_gpio_table[] = { /* CAMERA */ PCOM_GPIO_CFG(0, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT0 */ PCOM_GPIO_CFG(1, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT1 */ PCOM_GPIO_CFG(2, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT2 */ PCOM_GPIO_CFG(3, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT3 */ PCOM_GPIO_CFG(4, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT4 */ PCOM_GPIO_CFG(5, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT5 */ PCOM_GPIO_CFG(6, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT6 */ PCOM_GPIO_CFG(7, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT7 */ PCOM_GPIO_CFG(8, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT8 */ PCOM_GPIO_CFG(9, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT9 */ PCOM_GPIO_CFG(10, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT10 */ PCOM_GPIO_CFG(11, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT11 */ PCOM_GPIO_CFG(12, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* PCLK */ PCOM_GPIO_CFG(13, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* HSYNC */ PCOM_GPIO_CFG(14, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* VSYNC */ PCOM_GPIO_CFG(15, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), /* MCLK */
pmic_spkr_en(RIGHT_SPKR, 1); /* unmute */ pmic_spkr_en_mute(RIGHT_SPKR, 1); } else { pmic_spkr_en_mute(RIGHT_SPKR, 0); pmic_spkr_en(RIGHT_SPKR, 0); pmic_set_spkr_configuration(&scm); } } } static uint32_t bt_sco_enable[] = { PCOM_GPIO_CFG(INCREDIBLEC_BT_PCM_OUT, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(INCREDIBLEC_BT_PCM_IN, 1, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(INCREDIBLEC_BT_PCM_SYNC, 2, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), PCOM_GPIO_CFG(INCREDIBLEC_BT_PCM_CLK, 2, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_2MA), }; static uint32_t bt_sco_disable[] = { PCOM_GPIO_CFG(INCREDIBLEC_BT_PCM_OUT, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(INCREDIBLEC_BT_PCM_IN, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), PCOM_GPIO_CFG(INCREDIBLEC_BT_PCM_SYNC, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA),
if (system_rev && uart) {/* XB */ /* Winmax uart */ if (gpio_get_value(SUPERSONIC_WIMAX_CPU_UARTz_SW)) { printk(KERN_INFO "%s:Wimax UART\n", __func__); gpio_set_value(SUPERSONIC_USB_UARTz_SW,1); gpio_set_value(SUPERSONIC_WIMAX_CPU_UARTz_SW,1); } else {/* USB, CPU UART */ printk(KERN_INFO "%s:Non wimax UART\n", __func__); gpio_set_value(SUPERSONIC_WIMAX_CPU_UARTz_SW, uart==2?1:0); } } } static uint32_t usb_phy_3v3_table[] = { PCOM_GPIO_CFG(SUPERSONIC_USB_PHY_3V3_ENABLE, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA) }; static uint32_t usb_ID_PIN_input_table[] = { PCOM_GPIO_CFG(SUPERSONIC_GPIO_USB_ID_PIN, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_4MA), }; static uint32_t usb_ID_PIN_ouput_table[] = { PCOM_GPIO_CFG(SUPERSONIC_GPIO_USB_ID_PIN, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), }; void config_supersonic_usb_id_gpios(bool output) { if (output) { config_gpio_table(usb_ID_PIN_ouput_table, ARRAY_SIZE(usb_ID_PIN_ouput_table));
MODULE_PARM_DESC(bt_fw_version, "BT's fw version"); static void latte_reset(void) { gpio_set_value(LATTE_GPIO_PS_HOLD, 0); } static struct i2c_board_info i2c_camera_devices[] = { { I2C_BOARD_INFO("s5k4e1gx", 0x20 >> 1),/*5M samsung bayer sensor driver*/ }, }; static uint32_t proximity_on_gpio_table[] = { PCOM_GPIO_CFG(21, 0, GPIO_INPUT, GPIO_NO_PULL, 0), /* PS_VOUT */ }; static uint32_t proximity_off_gpio_table[] = { PCOM_GPIO_CFG(21, 0, GPIO_INPUT, GPIO_PULL_DOWN, 0) /* PS_VOUT */ }; static uint32_t camera_off_gpio_table[] = { /* CAMERA */ PCOM_GPIO_CFG(0, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT0 */ PCOM_GPIO_CFG(1, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT1 */ PCOM_GPIO_CFG(2, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT2 */ PCOM_GPIO_CFG(3, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT3 */ PCOM_GPIO_CFG(4, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT4 */ PCOM_GPIO_CFG(5, 0, GPIO_INPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT5 */
pmic_spkr_en_mute(LEFT_SPKR, 0); pmic_spkr_en(LEFT_SPKR, 0); pmic_spkr_en(RIGHT_SPKR, 0); pmic_set_spkr_configuration(&scm); } } void bravo_receiver_enable(int en) { /* Do nothing for bravo. */ } static uint32_t bt_sco_enable[] = { PCOM_GPIO_CFG(BRAVO_BT_PCM_OUT, 1, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(BRAVO_BT_PCM_IN, 1, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(BRAVO_BT_PCM_SYNC, 2, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(BRAVO_BT_PCM_CLK, 2, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA), }; static uint32_t bt_sco_disable[] = { PCOM_GPIO_CFG(BRAVO_BT_PCM_OUT, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_2MA), PCOM_GPIO_CFG(BRAVO_BT_PCM_IN, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_2MA), PCOM_GPIO_CFG(BRAVO_BT_PCM_SYNC, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_2MA),
-1 }; static void marvelc_phy_reset(void) { int ret; printk(KERN_INFO "msm_hsusb_phy_reset\n"); ret = msm_proc_comm(PCOM_MSM_HSUSB_PHY_RESET, NULL, NULL); if (ret) printk(KERN_INFO "%s failed\n", __func__); } #ifdef CONFIG_USB_ANDROID static uint32_t usb_ID_PIN_input_table[] = { PCOM_GPIO_CFG(MARVELC_GPIO_USB_ID_PIN, 0, GPIO_INPUT, GPIO_PULL_UP, GPIO_4MA), }; static uint32_t usb_ID_PIN_ouput_table[] = { PCOM_GPIO_CFG(MARVELC_GPIO_USB_ID_PIN, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA), }; void config_marvelc_usb_id_gpios(bool output) { if (output) { config_gpio_table(usb_ID_PIN_ouput_table, ARRAY_SIZE(usb_ID_PIN_ouput_table)); gpio_set_value(MARVELC_GPIO_USB_ID_PIN, 1); } else config_gpio_table(usb_ID_PIN_input_table, ARRAY_SIZE(usb_ID_PIN_input_table));
#include "devices.h" #include "board-chacha.h" #include "proc_comm.h" #include <linux/dma-mapping.h> #include <mach/dma.h> #include "../../../drivers/mmc/host/msm_sdcc.h" /* #include <linux/irq.h> */ extern int msm_add_sdcc(unsigned int controller, struct mmc_platform_data *plat, unsigned int stat_irq, unsigned long stat_irq_flags); /* ---- SDCARD ---- */ static uint32_t sdcard_on_gpio_table[] = { PCOM_GPIO_CFG(62, 2, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_6MA), /* CLK */ PCOM_GPIO_CFG(63, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* CMD */ PCOM_GPIO_CFG(64, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT3 */ PCOM_GPIO_CFG(65, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT2 */ PCOM_GPIO_CFG(66, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT1 */ PCOM_GPIO_CFG(67, 2, GPIO_OUTPUT, GPIO_PULL_UP, GPIO_8MA), /* DAT0 */ }; static uint32_t sdcard_off_gpio_table[] = { PCOM_GPIO_CFG(62, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_4MA), /* CLK */ PCOM_GPIO_CFG(63, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_4MA), /* CMD */ PCOM_GPIO_CFG(64, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT3 */ PCOM_GPIO_CFG(65, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT2 */ PCOM_GPIO_CFG(66, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT1 */ PCOM_GPIO_CFG(67, 0, GPIO_OUTPUT, GPIO_PULL_DOWN, GPIO_4MA), /* DAT0 */ };
static struct gpio_led_platform_data incrediblec_leds_data = { .num_leds = ARRAY_SIZE(incrediblec_led_list), .leds = incrediblec_led_list, }; static struct platform_device incrediblec_leds = { .name = "leds-gpio", .id = -1, .dev = { .platform_data = &incrediblec_leds_data, }, }; static uint32_t usb_phy_3v3_table[] = { PCOM_GPIO_CFG(INCREDIBLEC_USB_PHY_3V3_ENABLE, 0, GPIO_OUTPUT, GPIO_NO_PULL, GPIO_4MA) }; static uint32_t usb_ID_PIN_table[] = { PCOM_GPIO_CFG(INCREDIBLEC_GPIO_USB_ID_PIN, 0, GPIO_INPUT, GPIO_NO_PULL, GPIO_4MA), }; static int incrediblec_phy_init_seq[] = { 0x1D, 0x0D, 0x1D, 0x10, -1 }; #ifdef CONFIG_USB_ANDROID static struct msm_hsusb_platform_data msm_hsusb_pdata = { .phy_init_seq = incrediblec_phy_init_seq, .phy_reset = msm_hsusb_8x50_phy_reset, .usb_id_pin_gpio = INCREDIBLEC_GPIO_USB_ID_PIN, }; static struct usb_mass_storage_platform_data mass_storage_pdata = {