diff options
author | Leif Liddy <leif.liddy@gmail.com> | 2016-02-20 14:20:22 -0500 |
---|---|---|
committer | Mark Brown <broonie@kernel.org> | 2016-02-20 15:01:12 -0500 |
commit | caba248db2863466a886735cb8d5704048063ac9 (patch) | |
tree | c2c1f304342d5c97f95bd18c95ce8fe8a276623f | |
parent | 7c04b792d30ef8d62259f24065cdeddbfb4afe3d (diff) |
spi: spi-pxa2xx-pci: Add ID and driver type for WildcatPoint PCH
WildcatPoint PCH as seen on MacBook 12-inch (Early 2015) has a PCI enabled
SPI controller. Enable it by adding its ID to the corresponding driver.
The ACPI enumerated name for this SPI controller (found in spi-pxa2xx.c) is INT33C1.
Therefore, we associate the SPI controller with the corresponding type of LPSS_LPT_SSP.
Signed-off-by: Leif Liddy <leif.liddy@gmail.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
-rw-r--r-- | drivers/spi/spi-pxa2xx-pci.c | 13 |
1 files changed, 13 insertions, 0 deletions
diff --git a/drivers/spi/spi-pxa2xx-pci.c b/drivers/spi/spi-pxa2xx-pci.c index d19d7f28aecb..520ed1dd5780 100644 --- a/drivers/spi/spi-pxa2xx-pci.c +++ b/drivers/spi/spi-pxa2xx-pci.c | |||
@@ -19,6 +19,7 @@ enum { | |||
19 | PORT_BSW1, | 19 | PORT_BSW1, |
20 | PORT_BSW2, | 20 | PORT_BSW2, |
21 | PORT_QUARK_X1000, | 21 | PORT_QUARK_X1000, |
22 | PORT_LPT, | ||
22 | }; | 23 | }; |
23 | 24 | ||
24 | struct pxa_spi_info { | 25 | struct pxa_spi_info { |
@@ -42,6 +43,9 @@ static struct dw_dma_slave bsw1_rx_param = { .src_id = 7 }; | |||
42 | static struct dw_dma_slave bsw2_tx_param = { .dst_id = 8 }; | 43 | static struct dw_dma_slave bsw2_tx_param = { .dst_id = 8 }; |
43 | static struct dw_dma_slave bsw2_rx_param = { .src_id = 9 }; | 44 | static struct dw_dma_slave bsw2_rx_param = { .src_id = 9 }; |
44 | 45 | ||
46 | static struct dw_dma_slave lpt_tx_param = { .dst_id = 0 }; | ||
47 | static struct dw_dma_slave lpt_rx_param = { .src_id = 1 }; | ||
48 | |||
45 | static bool lpss_dma_filter(struct dma_chan *chan, void *param) | 49 | static bool lpss_dma_filter(struct dma_chan *chan, void *param) |
46 | { | 50 | { |
47 | struct dw_dma_slave *dws = param; | 51 | struct dw_dma_slave *dws = param; |
@@ -98,6 +102,14 @@ static struct pxa_spi_info spi_info_configs[] = { | |||
98 | .num_chipselect = 1, | 102 | .num_chipselect = 1, |
99 | .max_clk_rate = 50000000, | 103 | .max_clk_rate = 50000000, |
100 | }, | 104 | }, |
105 | [PORT_LPT] = { | ||
106 | .type = LPSS_LPT_SSP, | ||
107 | .port_id = 0, | ||
108 | .num_chipselect = 1, | ||
109 | .max_clk_rate = 50000000, | ||
110 | .tx_param = &lpt_tx_param, | ||
111 | .rx_param = &lpt_rx_param, | ||
112 | }, | ||
101 | }; | 113 | }; |
102 | 114 | ||
103 | static int pxa2xx_spi_pci_probe(struct pci_dev *dev, | 115 | static int pxa2xx_spi_pci_probe(struct pci_dev *dev, |
@@ -202,6 +214,7 @@ static const struct pci_device_id pxa2xx_spi_pci_devices[] = { | |||
202 | { PCI_VDEVICE(INTEL, 0x228e), PORT_BSW0 }, | 214 | { PCI_VDEVICE(INTEL, 0x228e), PORT_BSW0 }, |
203 | { PCI_VDEVICE(INTEL, 0x2290), PORT_BSW1 }, | 215 | { PCI_VDEVICE(INTEL, 0x2290), PORT_BSW1 }, |
204 | { PCI_VDEVICE(INTEL, 0x22ac), PORT_BSW2 }, | 216 | { PCI_VDEVICE(INTEL, 0x22ac), PORT_BSW2 }, |
217 | { PCI_VDEVICE(INTEL, 0x9ce6), PORT_LPT }, | ||
205 | { }, | 218 | { }, |
206 | }; | 219 | }; |
207 | MODULE_DEVICE_TABLE(pci, pxa2xx_spi_pci_devices); | 220 | MODULE_DEVICE_TABLE(pci, pxa2xx_spi_pci_devices); |