aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLeif Liddy <leif.liddy@gmail.com>2016-02-20 14:20:22 -0500
committerMark Brown <broonie@kernel.org>2016-02-20 15:01:12 -0500
commitcaba248db2863466a886735cb8d5704048063ac9 (patch)
treec2c1f304342d5c97f95bd18c95ce8fe8a276623f
parent7c04b792d30ef8d62259f24065cdeddbfb4afe3d (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.c13
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
24struct pxa_spi_info { 25struct pxa_spi_info {
@@ -42,6 +43,9 @@ static struct dw_dma_slave bsw1_rx_param = { .src_id = 7 };
42static struct dw_dma_slave bsw2_tx_param = { .dst_id = 8 }; 43static struct dw_dma_slave bsw2_tx_param = { .dst_id = 8 };
43static struct dw_dma_slave bsw2_rx_param = { .src_id = 9 }; 44static struct dw_dma_slave bsw2_rx_param = { .src_id = 9 };
44 45
46static struct dw_dma_slave lpt_tx_param = { .dst_id = 0 };
47static struct dw_dma_slave lpt_rx_param = { .src_id = 1 };
48
45static bool lpss_dma_filter(struct dma_chan *chan, void *param) 49static 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
103static int pxa2xx_spi_pci_probe(struct pci_dev *dev, 115static 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};
207MODULE_DEVICE_TABLE(pci, pxa2xx_spi_pci_devices); 220MODULE_DEVICE_TABLE(pci, pxa2xx_spi_pci_devices);