diff options
author | Micky Ching <micky_ching@realsil.com.cn> | 2015-02-25 00:50:15 -0500 |
---|---|---|
committer | Lee Jones <lee.jones@linaro.org> | 2015-03-03 11:41:21 -0500 |
commit | 41bc2334737a32d3062a318dde5964590d0e24c9 (patch) | |
tree | 0167072cdea6c37af14527ce4fc19a4b6f298ea2 /drivers/mfd/rtsx_pcr.c | |
parent | 663c425f2c8d87a433629f09c5afd0af7e7e550c (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.c | 13 |
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; |