summaryrefslogtreecommitdiffstats
path: root/drivers/spi/spi-dw-pci.c
diff options
context:
space:
mode:
Diffstat (limited to 'drivers/spi/spi-dw-pci.c')
-rw-r--r--drivers/spi/spi-dw-pci.c14
1 files changed, 14 insertions, 0 deletions
diff --git a/drivers/spi/spi-dw-pci.c b/drivers/spi/spi-dw-pci.c
index 9651679ee7f7..90e7b789da3b 100644
--- a/drivers/spi/spi-dw-pci.c
+++ b/drivers/spi/spi-dw-pci.c
@@ -19,6 +19,7 @@ struct spi_pci_desc {
19 int (*setup)(struct dw_spi *); 19 int (*setup)(struct dw_spi *);
20 u16 num_cs; 20 u16 num_cs;
21 u16 bus_num; 21 u16 bus_num;
22 u32 max_freq;
22}; 23};
23 24
24static struct spi_pci_desc spi_pci_mid_desc_1 = { 25static struct spi_pci_desc spi_pci_mid_desc_1 = {
@@ -33,6 +34,12 @@ static struct spi_pci_desc spi_pci_mid_desc_2 = {
33 .bus_num = 1, 34 .bus_num = 1,
34}; 35};
35 36
37static struct spi_pci_desc spi_pci_ehl_desc = {
38 .num_cs = 1,
39 .bus_num = -1,
40 .max_freq = 100000000,
41};
42
36static int spi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) 43static int spi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
37{ 44{
38 struct dw_spi *dws; 45 struct dw_spi *dws;
@@ -65,6 +72,7 @@ static int spi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent)
65 if (desc) { 72 if (desc) {
66 dws->num_cs = desc->num_cs; 73 dws->num_cs = desc->num_cs;
67 dws->bus_num = desc->bus_num; 74 dws->bus_num = desc->bus_num;
75 dws->max_freq = desc->max_freq;
68 76
69 if (desc->setup) { 77 if (desc->setup) {
70 ret = desc->setup(dws); 78 ret = desc->setup(dws);
@@ -125,8 +133,14 @@ static const struct pci_device_id pci_ids[] = {
125 { PCI_VDEVICE(INTEL, 0x0800), (kernel_ulong_t)&spi_pci_mid_desc_1}, 133 { PCI_VDEVICE(INTEL, 0x0800), (kernel_ulong_t)&spi_pci_mid_desc_1},
126 /* Intel MID platform SPI controller 2 */ 134 /* Intel MID platform SPI controller 2 */
127 { PCI_VDEVICE(INTEL, 0x0812), (kernel_ulong_t)&spi_pci_mid_desc_2}, 135 { PCI_VDEVICE(INTEL, 0x0812), (kernel_ulong_t)&spi_pci_mid_desc_2},
136 /* Intel Elkhart Lake PSE SPI controllers */
137 { PCI_VDEVICE(INTEL, 0x4b84), (kernel_ulong_t)&spi_pci_ehl_desc},
138 { PCI_VDEVICE(INTEL, 0x4b85), (kernel_ulong_t)&spi_pci_ehl_desc},
139 { PCI_VDEVICE(INTEL, 0x4b86), (kernel_ulong_t)&spi_pci_ehl_desc},
140 { PCI_VDEVICE(INTEL, 0x4b87), (kernel_ulong_t)&spi_pci_ehl_desc},
128 {}, 141 {},
129}; 142};
143MODULE_DEVICE_TABLE(pci, pci_ids);
130 144
131static struct pci_driver dw_spi_driver = { 145static struct pci_driver dw_spi_driver = {
132 .name = DRIVER_NAME, 146 .name = DRIVER_NAME,