void msm7200a_ulpi_config(int enable) { int n; /* Configure ULPI DATA pins */ for (n = 0x6f; n <= 0x76; n++) { msm_gpio_config(MSM_GPIO_CFG(n, 1, enable ? MSM_GPIO_CFG_INPUT : MSM_GPIO_CFG_OUTPUT, enable ? MSM_GPIO_CFG_NO_PULL : MSM_GPIO_CFG_PULL_DOWN, MSM_GPIO_CFG_2MA), 0); } msm_gpio_config(MSM_GPIO_CFG(0x77, 1, MSM_GPIO_CFG_INPUT, enable ? MSM_GPIO_CFG_NO_PULL : MSM_GPIO_CFG_PULL_DOWN, MSM_GPIO_CFG_2MA), 0); msm_gpio_config(MSM_GPIO_CFG (0x78, 1, MSM_GPIO_CFG_INPUT, enable ? MSM_GPIO_CFG_NO_PULL : MSM_GPIO_CFG_PULL_DOWN, MSM_GPIO_CFG_2MA), 0); msm_gpio_config(MSM_GPIO_CFG (0x79, 1, MSM_GPIO_CFG_OUTPUT, enable ? MSM_GPIO_CFG_NO_PULL : MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_2MA), 0); }
static void i2c_set_mux(int to_i2c) { if (to_i2c) { msm_gpio_config(MSM_GPIO_CFG(MSM7200A_GPIO_I2C_CLK, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_NO_PULL, MSM_GPIO_CFG_8MA), 0); msm_gpio_config(MSM_GPIO_CFG(MSM7200A_GPIO_I2C_DAT , 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_NO_PULL, MSM_GPIO_CFG_8MA), 0); } else { msm_gpio_config(MSM_GPIO_CFG(MSM7200A_GPIO_I2C_CLK, 1, MSM_GPIO_CFG_INPUT, MSM_GPIO_CFG_NO_PULL, MSM_GPIO_CFG_2MA), 0); msm_gpio_config(MSM_GPIO_CFG(MSM7200A_GPIO_I2C_DAT, 1, MSM_GPIO_CFG_INPUT, MSM_GPIO_CFG_NO_PULL, MSM_GPIO_CFG_2MA), 0); } }
void pcom_sdcard_gpio_config(int instance) { //Note: GPIO_NO_PULL is for clock lines. switch (instance) { case 1: /* Some cards had crc erorrs on multiblock reads. * Increasing drive strength from 8 to 16 fixed that. */ pcom_gpio_tlmm_config(MSM_GPIO_CFG(51, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_16MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(52, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_16MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(53, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_16MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(54, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_16MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(55, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_16MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(56, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_NO_PULL, MSM_GPIO_CFG_16MA), MSM_GPIO_CFG_ENABLE); break; case 2: pcom_gpio_tlmm_config(MSM_GPIO_CFG(62, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_NO_PULL, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(63, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(64, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(65, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(66, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(67, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); break; case 3: pcom_gpio_tlmm_config(MSM_GPIO_CFG(88, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_NO_PULL, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(89, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(90, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(91, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(92, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(93, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(158, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(159, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(160, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(161, 1, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); break; case 4: pcom_gpio_tlmm_config(MSM_GPIO_CFG(142, 3, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_NO_PULL, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(143, 3, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(144, 2, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(145, 2, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(146, 3, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); pcom_gpio_tlmm_config(MSM_GPIO_CFG(147, 3, MSM_GPIO_CFG_OUTPUT, MSM_GPIO_CFG_PULL_UP, MSM_GPIO_CFG_8MA), MSM_GPIO_CFG_ENABLE); break; } }