aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/mfd/rtsx_pcr.c
diff options
context:
space:
mode:
authorMicky Ching <micky_ching@realsil.com.cn>2015-02-25 00:50:15 -0500
committerLee Jones <lee.jones@linaro.org>2015-03-03 11:41:21 -0500
commit41bc2334737a32d3062a318dde5964590d0e24c9 (patch)
tree0167072cdea6c37af14527ce4fc19a4b6f298ea2 /drivers/mfd/rtsx_pcr.c
parent663c425f2c8d87a433629f09c5afd0af7e7e550c (diff)
mfd: rtsx: Add support for rts525A
Add support for new chip rts525A. Signed-off-by: Micky Ching <micky_ching@realsil.com.cn> Signed-off-by: Lee Jones <lee.jones@linaro.org>
Diffstat (limited to 'drivers/mfd/rtsx_pcr.c')
-rw-r--r--drivers/mfd/rtsx_pcr.c13
1 files changed, 10 insertions, 3 deletions
diff --git a/drivers/mfd/rtsx_pcr.c b/drivers/mfd/rtsx_pcr.c
index e6d97adcc825..433cb41cf556 100644
--- a/drivers/mfd/rtsx_pcr.c
+++ b/drivers/mfd/rtsx_pcr.c
@@ -59,6 +59,7 @@ static const struct pci_device_id rtsx_pci_ids[] = {
59 { PCI_DEVICE(0x10EC, 0x5287), PCI_CLASS_OTHERS << 16, 0xFF0000 }, 59 { PCI_DEVICE(0x10EC, 0x5287), PCI_CLASS_OTHERS << 16, 0xFF0000 },
60 { PCI_DEVICE(0x10EC, 0x5286), PCI_CLASS_OTHERS << 16, 0xFF0000 }, 60 { PCI_DEVICE(0x10EC, 0x5286), PCI_CLASS_OTHERS << 16, 0xFF0000 },
61 { PCI_DEVICE(0x10EC, 0x524A), PCI_CLASS_OTHERS << 16, 0xFF0000 }, 61 { PCI_DEVICE(0x10EC, 0x524A), PCI_CLASS_OTHERS << 16, 0xFF0000 },
62 { PCI_DEVICE(0x10EC, 0x525A), PCI_CLASS_OTHERS << 16, 0xFF0000 },
62 { 0, } 63 { 0, }
63}; 64};
64 65
@@ -1114,6 +1115,10 @@ static int rtsx_pci_init_chip(struct rtsx_pcr *pcr)
1114 rts524a_init_params(pcr); 1115 rts524a_init_params(pcr);
1115 break; 1116 break;
1116 1117
1118 case 0x525A:
1119 rts525a_init_params(pcr);
1120 break;
1121
1117 case 0x5287: 1122 case 0x5287:
1118 rtl8411b_init_params(pcr); 1123 rtl8411b_init_params(pcr);
1119 break; 1124 break;
@@ -1159,7 +1164,7 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
1159 struct rtsx_pcr *pcr; 1164 struct rtsx_pcr *pcr;
1160 struct pcr_handle *handle; 1165 struct pcr_handle *handle;
1161 u32 base, len; 1166 u32 base, len;
1162 int ret, i; 1167 int ret, i, bar = 0;
1163 1168
1164 dev_dbg(&(pcidev->dev), 1169 dev_dbg(&(pcidev->dev),
1165 ": Realtek PCI-E Card Reader found at %s [%04x:%04x] (rev %x)\n", 1170 ": Realtek PCI-E Card Reader found at %s [%04x:%04x] (rev %x)\n",
@@ -1204,8 +1209,10 @@ static int rtsx_pci_probe(struct pci_dev *pcidev,
1204 pcr->pci = pcidev; 1209 pcr->pci = pcidev;
1205 dev_set_drvdata(&pcidev->dev, handle); 1210 dev_set_drvdata(&pcidev->dev, handle);
1206 1211
1207 len = pci_resource_len(pcidev, 0); 1212 if (CHK_PCI_PID(pcr, 0x525A))
1208 base = pci_resource_start(pcidev, 0); 1213 bar = 1;
1214 len = pci_resource_len(pcidev, bar);
1215 base = pci_resource_start(pcidev, bar);
1209 pcr->remap_addr = ioremap_nocache(base, len); 1216 pcr->remap_addr = ioremap_nocache(base, len);
1210 if (!pcr->remap_addr) { 1217 if (!pcr->remap_addr) {
1211 ret = -ENOMEM; 1218 ret = -ENOMEM;