diff options
-rw-r--r-- | drivers/spi/spi-pxa2xx.c | 20 | ||||
-rw-r--r-- | include/linux/pxa2xx_ssp.h | 1 |
2 files changed, 21 insertions, 0 deletions
diff --git a/drivers/spi/spi-pxa2xx.c b/drivers/spi/spi-pxa2xx.c index a5c2dce7d0a3..f759c082f0f7 100644 --- a/drivers/spi/spi-pxa2xx.c +++ b/drivers/spi/spi-pxa2xx.c | |||
@@ -116,6 +116,16 @@ static const struct lpss_config lpss_platforms[] = { | |||
116 | .tx_threshold_lo = 32, | 116 | .tx_threshold_lo = 32, |
117 | .tx_threshold_hi = 56, | 117 | .tx_threshold_hi = 56, |
118 | }, | 118 | }, |
119 | { /* LPSS_BXT_SSP */ | ||
120 | .offset = 0x200, | ||
121 | .reg_general = -1, | ||
122 | .reg_ssp = 0x20, | ||
123 | .reg_cs_ctrl = 0x24, | ||
124 | .reg_capabilities = 0xfc, | ||
125 | .rx_threshold = 1, | ||
126 | .tx_threshold_lo = 16, | ||
127 | .tx_threshold_hi = 48, | ||
128 | }, | ||
119 | }; | 129 | }; |
120 | 130 | ||
121 | static inline const struct lpss_config | 131 | static inline const struct lpss_config |
@@ -130,6 +140,7 @@ static bool is_lpss_ssp(const struct driver_data *drv_data) | |||
130 | case LPSS_LPT_SSP: | 140 | case LPSS_LPT_SSP: |
131 | case LPSS_BYT_SSP: | 141 | case LPSS_BYT_SSP: |
132 | case LPSS_SPT_SSP: | 142 | case LPSS_SPT_SSP: |
143 | case LPSS_BXT_SSP: | ||
133 | return true; | 144 | return true; |
134 | default: | 145 | default: |
135 | return false; | 146 | return false; |
@@ -1152,6 +1163,7 @@ static int setup(struct spi_device *spi) | |||
1152 | case LPSS_LPT_SSP: | 1163 | case LPSS_LPT_SSP: |
1153 | case LPSS_BYT_SSP: | 1164 | case LPSS_BYT_SSP: |
1154 | case LPSS_SPT_SSP: | 1165 | case LPSS_SPT_SSP: |
1166 | case LPSS_BXT_SSP: | ||
1155 | config = lpss_get_config(drv_data); | 1167 | config = lpss_get_config(drv_data); |
1156 | tx_thres = config->tx_threshold_lo; | 1168 | tx_thres = config->tx_threshold_lo; |
1157 | tx_hi_thres = config->tx_threshold_hi; | 1169 | tx_hi_thres = config->tx_threshold_hi; |
@@ -1313,6 +1325,14 @@ static const struct pci_device_id pxa2xx_spi_pci_compound_match[] = { | |||
1313 | /* SPT-H */ | 1325 | /* SPT-H */ |
1314 | { PCI_VDEVICE(INTEL, 0xa129), LPSS_SPT_SSP }, | 1326 | { PCI_VDEVICE(INTEL, 0xa129), LPSS_SPT_SSP }, |
1315 | { PCI_VDEVICE(INTEL, 0xa12a), LPSS_SPT_SSP }, | 1327 | { PCI_VDEVICE(INTEL, 0xa12a), LPSS_SPT_SSP }, |
1328 | /* BXT */ | ||
1329 | { PCI_VDEVICE(INTEL, 0x0ac2), LPSS_BXT_SSP }, | ||
1330 | { PCI_VDEVICE(INTEL, 0x0ac4), LPSS_BXT_SSP }, | ||
1331 | { PCI_VDEVICE(INTEL, 0x0ac6), LPSS_BXT_SSP }, | ||
1332 | /* APL */ | ||
1333 | { PCI_VDEVICE(INTEL, 0x5ac2), LPSS_BXT_SSP }, | ||
1334 | { PCI_VDEVICE(INTEL, 0x5ac4), LPSS_BXT_SSP }, | ||
1335 | { PCI_VDEVICE(INTEL, 0x5ac6), LPSS_BXT_SSP }, | ||
1316 | { }, | 1336 | { }, |
1317 | }; | 1337 | }; |
1318 | 1338 | ||
diff --git a/include/linux/pxa2xx_ssp.h b/include/linux/pxa2xx_ssp.h index 92273776bce6..c2f2574ff61c 100644 --- a/include/linux/pxa2xx_ssp.h +++ b/include/linux/pxa2xx_ssp.h | |||
@@ -198,6 +198,7 @@ enum pxa_ssp_type { | |||
198 | LPSS_LPT_SSP, /* Keep LPSS types sorted with lpss_platforms[] */ | 198 | LPSS_LPT_SSP, /* Keep LPSS types sorted with lpss_platforms[] */ |
199 | LPSS_BYT_SSP, | 199 | LPSS_BYT_SSP, |
200 | LPSS_SPT_SSP, | 200 | LPSS_SPT_SSP, |
201 | LPSS_BXT_SSP, | ||
201 | }; | 202 | }; |
202 | 203 | ||
203 | struct ssp_device { | 204 | struct ssp_device { |