Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

mmc: mmci: Add Qualcomm Id to amba id table

This patch adds a fake Qualcomm ID 0x00051180 to the amba_ids, as Qualcomm
SDCC controller is pl180, but amba id registers read 0x0's.
The plan is to remove SDCC driver totally and use mmci as the main SD
controller driver for Qualcomm SOCs.

Signed-off-by: Srinivas Kandagatla <srinivas.kandagatla@linaro.org>
Reviewed-by: Linus Walleij <linus.walleij@linaro.org>
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>

authored by

Srinivas Kandagatla and committed by
Ulf Hansson
55b604ae 9c34b73d

+23
+23
drivers/mmc/host/mmci.c
··· 190 190 .pwrreg_nopower = true, 191 191 }; 192 192 193 + static struct variant_data variant_qcom = { 194 + .fifosize = 16 * 4, 195 + .fifohalfsize = 8 * 4, 196 + .clkreg = MCI_CLK_ENABLE, 197 + .clkreg_enable = MCI_QCOM_CLK_FLOWENA | 198 + MCI_QCOM_CLK_SELECT_IN_FBCLK, 199 + .clkreg_8bit_bus_enable = MCI_QCOM_CLK_WIDEBUS_8, 200 + .datactrl_mask_ddrmode = MCI_QCOM_CLK_SELECT_IN_DDR_MODE, 201 + .data_cmd_enable = MCI_QCOM_CSPM_DATCMD, 202 + .blksz_datactrl4 = true, 203 + .datalength_bits = 24, 204 + .pwrreg_powerup = MCI_PWR_UP, 205 + .f_max = 208000000, 206 + .explicit_mclk_control = true, 207 + .qcom_fifo = true, 208 + }; 209 + 193 210 static int mmci_card_busy(struct mmc_host *mmc) 194 211 { 195 212 struct mmci_host *host = mmc_priv(mmc); ··· 1848 1831 .id = 0x10480180, 1849 1832 .mask = 0xf0ffffff, 1850 1833 .data = &variant_ux500v2, 1834 + }, 1835 + /* Qualcomm variants */ 1836 + { 1837 + .id = 0x00051180, 1838 + .mask = 0x000fffff, 1839 + .data = &variant_qcom, 1851 1840 }, 1852 1841 { 0, 0 }, 1853 1842 };