mirror of
https://github.com/BobTheBlinker/android_kernel_motorola_sm6375.git
synced 2026-10-30 11:41:38 -04:00
MMC highlights for 3.12:
Core: - Support Allocation Units 8MB-64MB in SD3.0, previous max was 4MB. - The slot-gpio helper can now handle GPIO debouncing card-detect. - Read supported voltages from DT "voltage-ranges" property. Drivers: - dw_mmc: Add support for ARC architecture, and support exynos5420. - mmc_spi: Support CD/RO GPIOs. - sh_mobile_sdhi: Add compatibility for more Renesas SoCs. - sh_mmcif: Add DT support for DMA channels. -----BEGIN PGP SIGNATURE----- Version: GnuPG v1.4.13 (GNU/Linux) iQIcBAABAgAGBQJSLxu8AAoJEHNBYZ7TNxYMkV8P/RZMkP3L88wPmvdQ4IxVD/Bg jphPsZTAlY8pLY7EcBVfbIGfBMMoVZ8CayuAbj9u5jFiMBNDUKRnKrky1m95F62n xXiS5vUiKdWpByMpfKmrqvJr6eS8SWq5z/yug1c3s1Y9T363KgfypgJLvNgbMGiv qbmjE+Zw65nMwHCk+4Rvq6s4aN6KosRZP0ABsn1foXt3kybSgemp5ShrlEyXohfS E91EiYxHFC4fdmuWiZZvL1tyHFeV25omyZA90mpkioNItiwoyOM2rfjfEfNq+WBw UrmdBesbGsF0Zi12CBa9LtzdRjYK8PugBWKW3mycS5++NX9KW6Ac/EpGqFeH9KgL WZ2v4aQjkbnzQKUB2HcWAyXm88G9MkNvpLbIrmIPtson+q0UjgPYWe5BI3dy/Y1v YS1JeseslVtSTKzGYsa1GJ7Nc1xYiILRz0RS4YGYXNjwvrl89i2UH7cglYDW36Xd vxvRBaFpVsj1mfjjITEoG6nE0v5aYH6gSITY79XR+/kN871/99/oIUaWdpjcm9yv SIYmK7ipcvxugkQ7BoMGbym/dvuUrZ+Vnf8dFlGPTJegZVsnfgrVAnRpvcVwW8+x 4Z79wUPSIETRqj2XX2I/Y0JnrXry+dLLVyeK1tELoeOKev73Ai2lcqPSz6J0tzJs IErcz0hM1znL2RtgNwio =+EYB -----END PGP SIGNATURE----- Merge tag 'mmc-updates-for-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc Pull MMC updates from Chris Ball: "MMC highlights for 3.12: Core: - Support Allocation Units 8MB-64MB in SD3.0, previous max was 4MB. - The slot-gpio helper can now handle GPIO debouncing card-detect. - Read supported voltages from DT "voltage-ranges" property. Drivers: - dw_mmc: Add support for ARC architecture, and support exynos5420. - mmc_spi: Support CD/RO GPIOs. - sh_mobile_sdhi: Add compatibility for more Renesas SoCs. - sh_mmcif: Add DT support for DMA channels" * tag 'mmc-updates-for-3.12-rc1' of git://git.kernel.org/pub/scm/linux/kernel/git/cjb/mmc: (50 commits) Revert "mmc: tmio-mmc: Remove .set_pwr() callback from platform data" mmc: dw_mmc: Add support for ARC mmc: sdhci-s3c: initialize host->quirks2 for using quirks2 mmc: sdhci-s3c: fix the wrong register value, when clock is disabled mmc: esdhc: add support to get voltage from device-tree mmc: sdhci: get voltage from sdhc host mmc: core: parse voltage from device-tree mmc: omap_hsmmc: use the generic config for omap2plus devices mmc: omap_hsmmc: clear status flags before starting a new command mmc: dw_mmc: exynos: Add a new compatible string for exynos5420 mmc: sh_mmcif: revision-specific CLK_CTRL2 handling mmc: sh_mmcif: revision-specific Command Completion Signal handling mmc: sh_mmcif: add support for Device Tree DMA bindings mmc: sh_mmcif: move header include from header into .c mmc: SDHI: add DT compatibility strings for further SoCs mmc: dw_mmc-pci: enable bus-mastering mode mmc: dw_mmc-pci: get resources from a proper BAR mmc: tmio-mmc: Remove .set_pwr() callback from platform data mmc: tmio-mmc: Remove .get_cd() callback from platform data mmc: sh_mobile_sdhi: Remove .set_pwr() callback from platform data ...
This commit is contained in:
commit
d0048f0b91
42 changed files with 336 additions and 335 deletions
|
|
@ -600,37 +600,13 @@ static struct platform_device sdhi0_power = {
|
|||
},
|
||||
};
|
||||
|
||||
static void sdhi0_set_pwr(struct platform_device *pdev, int state)
|
||||
{
|
||||
static int power_gpio = -EINVAL;
|
||||
|
||||
if (power_gpio < 0) {
|
||||
int ret = gpio_request(GPIO_PTB6, NULL);
|
||||
if (!ret) {
|
||||
power_gpio = GPIO_PTB6;
|
||||
gpio_direction_output(power_gpio, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Toggle the GPIO regardless, whether we managed to grab it above or
|
||||
* the fixed regulator driver did.
|
||||
*/
|
||||
gpio_set_value(GPIO_PTB6, state);
|
||||
}
|
||||
|
||||
static int sdhi0_get_cd(struct platform_device *pdev)
|
||||
{
|
||||
return !gpio_get_value(GPIO_PTY7);
|
||||
}
|
||||
|
||||
static struct sh_mobile_sdhi_info sdhi0_info = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI0_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI0_RX,
|
||||
.set_pwr = sdhi0_set_pwr,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ | MMC_CAP_POWER_OFF_CARD |
|
||||
MMC_CAP_NEEDS_POLL,
|
||||
.get_cd = sdhi0_get_cd,
|
||||
.tmio_flags = TMIO_MMC_USE_GPIO_CD,
|
||||
.cd_gpio = GPIO_PTY7,
|
||||
};
|
||||
|
||||
static struct resource sdhi0_resources[] = {
|
||||
|
|
@ -656,39 +632,15 @@ static struct platform_device sdhi0_device = {
|
|||
},
|
||||
};
|
||||
|
||||
static void cn12_set_pwr(struct platform_device *pdev, int state)
|
||||
{
|
||||
static int power_gpio = -EINVAL;
|
||||
|
||||
if (power_gpio < 0) {
|
||||
int ret = gpio_request(GPIO_PTB7, NULL);
|
||||
if (!ret) {
|
||||
power_gpio = GPIO_PTB7;
|
||||
gpio_direction_output(power_gpio, 0);
|
||||
}
|
||||
}
|
||||
|
||||
/*
|
||||
* Toggle the GPIO regardless, whether we managed to grab it above or
|
||||
* the fixed regulator driver did.
|
||||
*/
|
||||
gpio_set_value(GPIO_PTB7, state);
|
||||
}
|
||||
|
||||
#if !defined(CONFIG_MMC_SH_MMCIF) && !defined(CONFIG_MMC_SH_MMCIF_MODULE)
|
||||
/* SDHI1 */
|
||||
static int sdhi1_get_cd(struct platform_device *pdev)
|
||||
{
|
||||
return !gpio_get_value(GPIO_PTW7);
|
||||
}
|
||||
|
||||
static struct sh_mobile_sdhi_info sdhi1_info = {
|
||||
.dma_slave_tx = SHDMA_SLAVE_SDHI1_TX,
|
||||
.dma_slave_rx = SHDMA_SLAVE_SDHI1_RX,
|
||||
.tmio_caps = MMC_CAP_SDIO_IRQ | MMC_CAP_POWER_OFF_CARD |
|
||||
MMC_CAP_NEEDS_POLL,
|
||||
.set_pwr = cn12_set_pwr,
|
||||
.get_cd = sdhi1_get_cd,
|
||||
.tmio_flags = TMIO_MMC_USE_GPIO_CD,
|
||||
.cd_gpio = GPIO_PTW7,
|
||||
};
|
||||
|
||||
static struct resource sdhi1_resources[] = {
|
||||
|
|
@ -718,27 +670,19 @@ static struct platform_device sdhi1_device = {
|
|||
#else
|
||||
|
||||
/* MMC SPI */
|
||||
static int mmc_spi_get_ro(struct device *dev)
|
||||
{
|
||||
return gpio_get_value(GPIO_PTY6);
|
||||
}
|
||||
|
||||
static int mmc_spi_get_cd(struct device *dev)
|
||||
{
|
||||
return !gpio_get_value(GPIO_PTY7);
|
||||
}
|
||||
|
||||
static void mmc_spi_setpower(struct device *dev, unsigned int maskval)
|
||||
{
|
||||
gpio_set_value(GPIO_PTB6, maskval ? 1 : 0);
|
||||
}
|
||||
|
||||
static struct mmc_spi_platform_data mmc_spi_info = {
|
||||
.get_ro = mmc_spi_get_ro,
|
||||
.get_cd = mmc_spi_get_cd,
|
||||
.caps = MMC_CAP_NEEDS_POLL,
|
||||
.caps2 = MMC_CAP2_RO_ACTIVE_HIGH,
|
||||
.ocr_mask = MMC_VDD_32_33 | MMC_VDD_33_34, /* 3.3V only */
|
||||
.setpower = mmc_spi_setpower,
|
||||
.flags = MMC_SPI_USE_CD_GPIO | MMC_SPI_USE_RO_GPIO,
|
||||
.cd_gpio = GPIO_PTY7,
|
||||
.ro_gpio = GPIO_PTY6,
|
||||
};
|
||||
|
||||
static struct spi_board_info spi_bus[] = {
|
||||
|
|
@ -998,11 +942,6 @@ static struct platform_device vou_device = {
|
|||
|
||||
#if defined(CONFIG_MMC_SH_MMCIF) || defined(CONFIG_MMC_SH_MMCIF_MODULE)
|
||||
/* SH_MMCIF */
|
||||
static void mmcif_down_pwr(struct platform_device *pdev)
|
||||
{
|
||||
cn12_set_pwr(pdev, 0);
|
||||
}
|
||||
|
||||
static struct resource sh_mmcif_resources[] = {
|
||||
[0] = {
|
||||
.name = "SH_MMCIF",
|
||||
|
|
@ -1023,8 +962,6 @@ static struct resource sh_mmcif_resources[] = {
|
|||
};
|
||||
|
||||
static struct sh_mmcif_plat_data sh_mmcif_plat = {
|
||||
.set_pwr = cn12_set_pwr,
|
||||
.down_pwr = mmcif_down_pwr,
|
||||
.sup_pclk = 0, /* SH7724: Max Pclk/2 */
|
||||
.caps = MMC_CAP_4_BIT_DATA |
|
||||
MMC_CAP_8_BIT_DATA |
|
||||
|
|
@ -1341,10 +1278,6 @@ static int __init arch_setup(void)
|
|||
gpio_direction_input(GPIO_PTR6);
|
||||
|
||||
/* SD-card slot CN11 */
|
||||
/* Card-detect, used on CN11, either with SDHI0 or with SPI */
|
||||
gpio_request(GPIO_PTY7, NULL);
|
||||
gpio_direction_input(GPIO_PTY7);
|
||||
|
||||
#if defined(CONFIG_MMC_SDHI) || defined(CONFIG_MMC_SDHI_MODULE)
|
||||
/* enable SDHI0 on CN11 (needs DS2.4 set to ON) */
|
||||
gpio_request(GPIO_FN_SDHI0WP, NULL);
|
||||
|
|
@ -1363,8 +1296,6 @@ static int __init arch_setup(void)
|
|||
gpio_direction_output(GPIO_PTM4, 1); /* active low CS */
|
||||
gpio_request(GPIO_PTB6, NULL); /* 3.3V power control */
|
||||
gpio_direction_output(GPIO_PTB6, 0); /* disable power by default */
|
||||
gpio_request(GPIO_PTY6, NULL); /* write protect */
|
||||
gpio_direction_input(GPIO_PTY6);
|
||||
|
||||
spi_register_board_info(spi_bus, ARRAY_SIZE(spi_bus));
|
||||
#endif
|
||||
|
|
@ -1394,10 +1325,6 @@ static int __init arch_setup(void)
|
|||
gpio_request(GPIO_FN_SDHI1D1, NULL);
|
||||
gpio_request(GPIO_FN_SDHI1D0, NULL);
|
||||
|
||||
/* Card-detect, used on CN12 with SDHI1 */
|
||||
gpio_request(GPIO_PTW7, NULL);
|
||||
gpio_direction_input(GPIO_PTW7);
|
||||
|
||||
cn12_enabled = true;
|
||||
#endif
|
||||
|
||||
|
|
|
|||
Loading…
Reference in a new issue