diff options
Diffstat (limited to 'drivers/spi/spi-dw-pci.c')
-rw-r--r-- | drivers/spi/spi-dw-pci.c | 14 |
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 | ||
24 | static struct spi_pci_desc spi_pci_mid_desc_1 = { | 25 | static 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 | ||
37 | static struct spi_pci_desc spi_pci_ehl_desc = { | ||
38 | .num_cs = 1, | ||
39 | .bus_num = -1, | ||
40 | .max_freq = 100000000, | ||
41 | }; | ||
42 | |||
36 | static int spi_pci_probe(struct pci_dev *pdev, const struct pci_device_id *ent) | 43 | static 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 | }; |
143 | MODULE_DEVICE_TABLE(pci, pci_ids); | ||
130 | 144 | ||
131 | static struct pci_driver dw_spi_driver = { | 145 | static struct pci_driver dw_spi_driver = { |
132 | .name = DRIVER_NAME, | 146 | .name = DRIVER_NAME, |